(FPCore (x) :precision binary64 (* (sqrt (- 1.0 (pow x 2.0))) (- (+ (- (+ (- (+ (- (+ (- (+ (- (+ (- (+ (- (+ (- (+ (- (* 346759527252.22327 (pow x 39.0)) (* 3252516578403.765 (pow x 37.0))) (* 14066078189720.18 (pow x 35.0))) (* 37196962323926.695 (pow x 33.0))) (* 67260260640524.984 (pow x 31.0))) (* 88101468162941.17 (pow x 29.0))) (* 86399024333705.6 (pow x 27.0))) (* 64661103499212.51 (pow x 25.0))) (* 37304482788007.22 (pow x 23.0))) (* 16645562866606.395 (pow x 21.0))) (* 5730439675389.087 (pow x 19.0))) (* 1509869313546.277 (pow x 17.0))) (* 300207933687.56384 (pow x 15.0))) (* 44086479772.29958 (pow x 13.0))) (* 4634427792.775428 (pow x 11.0))) (* 333194155.0361419 (pow x 9.0))) (* 15299731.608802434 (pow x 7.0))) (* 402120.6054879238 (pow x 5.0))) (* 4964.451919603997 (pow x 3.0))) (* 18.229321614212964 x))))
double code(double x) { return sqrt((1.0 - pow(x, 2.0))) * ((((((((((((((((((((346759527252.22327 * pow(x, 39.0)) - (3252516578403.765 * pow(x, 37.0))) + (14066078189720.18 * pow(x, 35.0))) - (37196962323926.695 * pow(x, 33.0))) + (67260260640524.984 * pow(x, 31.0))) - (88101468162941.17 * pow(x, 29.0))) + (86399024333705.6 * pow(x, 27.0))) - (64661103499212.51 * pow(x, 25.0))) + (37304482788007.22 * pow(x, 23.0))) - (16645562866606.395 * pow(x, 21.0))) + (5730439675389.087 * pow(x, 19.0))) - (1509869313546.277 * pow(x, 17.0))) + (300207933687.56384 * pow(x, 15.0))) - (44086479772.29958 * pow(x, 13.0))) + (4634427792.775428 * pow(x, 11.0))) - (333194155.0361419 * pow(x, 9.0))) + (15299731.608802434 * pow(x, 7.0))) - (402120.6054879238 * pow(x, 5.0))) + (4964.451919603997 * pow(x, 3.0))) - (18.229321614212964 * x)); }
real(8) function code(x) real(8), intent (in) :: x code = sqrt((1.0d0 - (x ** 2.0d0))) * ((((((((((((((((((((346759527252.22327d0 * (x ** 39.0d0)) - (3252516578403.765d0 * (x ** 37.0d0))) + (14066078189720.18d0 * (x ** 35.0d0))) - (37196962323926.695d0 * (x ** 33.0d0))) + (67260260640524.984d0 * (x ** 31.0d0))) - (88101468162941.17d0 * (x ** 29.0d0))) + (86399024333705.6d0 * (x ** 27.0d0))) - (64661103499212.51d0 * (x ** 25.0d0))) + (37304482788007.22d0 * (x ** 23.0d0))) - (16645562866606.395d0 * (x ** 21.0d0))) + (5730439675389.087d0 * (x ** 19.0d0))) - (1509869313546.277d0 * (x ** 17.0d0))) + (300207933687.56384d0 * (x ** 15.0d0))) - (44086479772.29958d0 * (x ** 13.0d0))) + (4634427792.775428d0 * (x ** 11.0d0))) - (333194155.0361419d0 * (x ** 9.0d0))) + (15299731.608802434d0 * (x ** 7.0d0))) - (402120.6054879238d0 * (x ** 5.0d0))) + (4964.451919603997d0 * (x ** 3.0d0))) - (18.229321614212964d0 * x)) end function
public static double code(double x) { return Math.sqrt((1.0 - Math.pow(x, 2.0))) * ((((((((((((((((((((346759527252.22327 * Math.pow(x, 39.0)) - (3252516578403.765 * Math.pow(x, 37.0))) + (14066078189720.18 * Math.pow(x, 35.0))) - (37196962323926.695 * Math.pow(x, 33.0))) + (67260260640524.984 * Math.pow(x, 31.0))) - (88101468162941.17 * Math.pow(x, 29.0))) + (86399024333705.6 * Math.pow(x, 27.0))) - (64661103499212.51 * Math.pow(x, 25.0))) + (37304482788007.22 * Math.pow(x, 23.0))) - (16645562866606.395 * Math.pow(x, 21.0))) + (5730439675389.087 * Math.pow(x, 19.0))) - (1509869313546.277 * Math.pow(x, 17.0))) + (300207933687.56384 * Math.pow(x, 15.0))) - (44086479772.29958 * Math.pow(x, 13.0))) + (4634427792.775428 * Math.pow(x, 11.0))) - (333194155.0361419 * Math.pow(x, 9.0))) + (15299731.608802434 * Math.pow(x, 7.0))) - (402120.6054879238 * Math.pow(x, 5.0))) + (4964.451919603997 * Math.pow(x, 3.0))) - (18.229321614212964 * x)); }
def code(x): return math.sqrt((1.0 - math.pow(x, 2.0))) * ((((((((((((((((((((346759527252.22327 * math.pow(x, 39.0)) - (3252516578403.765 * math.pow(x, 37.0))) + (14066078189720.18 * math.pow(x, 35.0))) - (37196962323926.695 * math.pow(x, 33.0))) + (67260260640524.984 * math.pow(x, 31.0))) - (88101468162941.17 * math.pow(x, 29.0))) + (86399024333705.6 * math.pow(x, 27.0))) - (64661103499212.51 * math.pow(x, 25.0))) + (37304482788007.22 * math.pow(x, 23.0))) - (16645562866606.395 * math.pow(x, 21.0))) + (5730439675389.087 * math.pow(x, 19.0))) - (1509869313546.277 * math.pow(x, 17.0))) + (300207933687.56384 * math.pow(x, 15.0))) - (44086479772.29958 * math.pow(x, 13.0))) + (4634427792.775428 * math.pow(x, 11.0))) - (333194155.0361419 * math.pow(x, 9.0))) + (15299731.608802434 * math.pow(x, 7.0))) - (402120.6054879238 * math.pow(x, 5.0))) + (4964.451919603997 * math.pow(x, 3.0))) - (18.229321614212964 * x))
function code(x) return Float64(sqrt(Float64(1.0 - (x ^ 2.0))) * Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(346759527252.22327 * (x ^ 39.0)) - Float64(3252516578403.765 * (x ^ 37.0))) + Float64(14066078189720.18 * (x ^ 35.0))) - Float64(37196962323926.695 * (x ^ 33.0))) + Float64(67260260640524.984 * (x ^ 31.0))) - Float64(88101468162941.17 * (x ^ 29.0))) + Float64(86399024333705.6 * (x ^ 27.0))) - Float64(64661103499212.51 * (x ^ 25.0))) + Float64(37304482788007.22 * (x ^ 23.0))) - Float64(16645562866606.395 * (x ^ 21.0))) + Float64(5730439675389.087 * (x ^ 19.0))) - Float64(1509869313546.277 * (x ^ 17.0))) + Float64(300207933687.56384 * (x ^ 15.0))) - Float64(44086479772.29958 * (x ^ 13.0))) + Float64(4634427792.775428 * (x ^ 11.0))) - Float64(333194155.0361419 * (x ^ 9.0))) + Float64(15299731.608802434 * (x ^ 7.0))) - Float64(402120.6054879238 * (x ^ 5.0))) + Float64(4964.451919603997 * (x ^ 3.0))) - Float64(18.229321614212964 * x))) end
function tmp = code(x) tmp = sqrt((1.0 - (x ^ 2.0))) * ((((((((((((((((((((346759527252.22327 * (x ^ 39.0)) - (3252516578403.765 * (x ^ 37.0))) + (14066078189720.18 * (x ^ 35.0))) - (37196962323926.695 * (x ^ 33.0))) + (67260260640524.984 * (x ^ 31.0))) - (88101468162941.17 * (x ^ 29.0))) + (86399024333705.6 * (x ^ 27.0))) - (64661103499212.51 * (x ^ 25.0))) + (37304482788007.22 * (x ^ 23.0))) - (16645562866606.395 * (x ^ 21.0))) + (5730439675389.087 * (x ^ 19.0))) - (1509869313546.277 * (x ^ 17.0))) + (300207933687.56384 * (x ^ 15.0))) - (44086479772.29958 * (x ^ 13.0))) + (4634427792.775428 * (x ^ 11.0))) - (333194155.0361419 * (x ^ 9.0))) + (15299731.608802434 * (x ^ 7.0))) - (402120.6054879238 * (x ^ 5.0))) + (4964.451919603997 * (x ^ 3.0))) - (18.229321614212964 * x)); end
code[x_] := N[(N[Sqrt[N[(1.0 - N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(346759527252.22327 * N[Power[x, 39.0], $MachinePrecision]), $MachinePrecision] - N[(3252516578403.765 * N[Power[x, 37.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(14066078189720.18 * N[Power[x, 35.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(37196962323926.695 * N[Power[x, 33.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(67260260640524.984 * N[Power[x, 31.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(88101468162941.17 * N[Power[x, 29.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(86399024333705.6 * N[Power[x, 27.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(64661103499212.51 * N[Power[x, 25.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(37304482788007.22 * N[Power[x, 23.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(16645562866606.395 * N[Power[x, 21.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(5730439675389.087 * N[Power[x, 19.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(1509869313546.277 * N[Power[x, 17.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(300207933687.56384 * N[Power[x, 15.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(44086479772.29958 * N[Power[x, 13.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(4634427792.775428 * N[Power[x, 11.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(333194155.0361419 * N[Power[x, 9.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(15299731.608802434 * N[Power[x, 7.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(402120.6054879238 * N[Power[x, 5.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(4964.451919603997 * N[Power[x, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(18.229321614212964 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \sqrt{1 - {x}^{2}} \cdot \left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(346759527252.22327 \cdot {x}^{39} - 3252516578403.765 \cdot {x}^{37}\right) + 14066078189720.18 \cdot {x}^{35}\right) - 37196962323926.695 \cdot {x}^{33}\right) + 67260260640524.984 \cdot {x}^{31}\right) - 88101468162941.17 \cdot {x}^{29}\right) + 86399024333705.6 \cdot {x}^{27}\right) - 64661103499212.51 \cdot {x}^{25}\right) + 37304482788007.22 \cdot {x}^{23}\right) - 16645562866606.395 \cdot {x}^{21}\right) + 5730439675389.087 \cdot {x}^{19}\right) - 1509869313546.277 \cdot {x}^{17}\right) + 300207933687.56384 \cdot {x}^{15}\right) - 44086479772.29958 \cdot {x}^{13}\right) + 4634427792.775428 \cdot {x}^{11}\right) - 333194155.0361419 \cdot {x}^{9}\right) + 15299731.608802434 \cdot {x}^{7}\right) - 402120.6054879238 \cdot {x}^{5}\right) + 4964.451919603997 \cdot {x}^{3}\right) - 18.229321614212964 \cdot x\right) \end{array}
Sampling outcomes in binary64 precision:
Herbie found 12 alternatives:
Alternative | Accuracy | Speedup |
---|
(FPCore (x) :precision binary64 (* (sqrt (- 1.0 (pow x 2.0))) (- (+ (- (+ (- (+ (- (+ (- (+ (- (+ (- (+ (- (+ (- (+ (- (* 346759527252.22327 (pow x 39.0)) (* 3252516578403.765 (pow x 37.0))) (* 14066078189720.18 (pow x 35.0))) (* 37196962323926.695 (pow x 33.0))) (* 67260260640524.984 (pow x 31.0))) (* 88101468162941.17 (pow x 29.0))) (* 86399024333705.6 (pow x 27.0))) (* 64661103499212.51 (pow x 25.0))) (* 37304482788007.22 (pow x 23.0))) (* 16645562866606.395 (pow x 21.0))) (* 5730439675389.087 (pow x 19.0))) (* 1509869313546.277 (pow x 17.0))) (* 300207933687.56384 (pow x 15.0))) (* 44086479772.29958 (pow x 13.0))) (* 4634427792.775428 (pow x 11.0))) (* 333194155.0361419 (pow x 9.0))) (* 15299731.608802434 (pow x 7.0))) (* 402120.6054879238 (pow x 5.0))) (* 4964.451919603997 (pow x 3.0))) (* 18.229321614212964 x))))
double code(double x) { return sqrt((1.0 - pow(x, 2.0))) * ((((((((((((((((((((346759527252.22327 * pow(x, 39.0)) - (3252516578403.765 * pow(x, 37.0))) + (14066078189720.18 * pow(x, 35.0))) - (37196962323926.695 * pow(x, 33.0))) + (67260260640524.984 * pow(x, 31.0))) - (88101468162941.17 * pow(x, 29.0))) + (86399024333705.6 * pow(x, 27.0))) - (64661103499212.51 * pow(x, 25.0))) + (37304482788007.22 * pow(x, 23.0))) - (16645562866606.395 * pow(x, 21.0))) + (5730439675389.087 * pow(x, 19.0))) - (1509869313546.277 * pow(x, 17.0))) + (300207933687.56384 * pow(x, 15.0))) - (44086479772.29958 * pow(x, 13.0))) + (4634427792.775428 * pow(x, 11.0))) - (333194155.0361419 * pow(x, 9.0))) + (15299731.608802434 * pow(x, 7.0))) - (402120.6054879238 * pow(x, 5.0))) + (4964.451919603997 * pow(x, 3.0))) - (18.229321614212964 * x)); }
real(8) function code(x) real(8), intent (in) :: x code = sqrt((1.0d0 - (x ** 2.0d0))) * ((((((((((((((((((((346759527252.22327d0 * (x ** 39.0d0)) - (3252516578403.765d0 * (x ** 37.0d0))) + (14066078189720.18d0 * (x ** 35.0d0))) - (37196962323926.695d0 * (x ** 33.0d0))) + (67260260640524.984d0 * (x ** 31.0d0))) - (88101468162941.17d0 * (x ** 29.0d0))) + (86399024333705.6d0 * (x ** 27.0d0))) - (64661103499212.51d0 * (x ** 25.0d0))) + (37304482788007.22d0 * (x ** 23.0d0))) - (16645562866606.395d0 * (x ** 21.0d0))) + (5730439675389.087d0 * (x ** 19.0d0))) - (1509869313546.277d0 * (x ** 17.0d0))) + (300207933687.56384d0 * (x ** 15.0d0))) - (44086479772.29958d0 * (x ** 13.0d0))) + (4634427792.775428d0 * (x ** 11.0d0))) - (333194155.0361419d0 * (x ** 9.0d0))) + (15299731.608802434d0 * (x ** 7.0d0))) - (402120.6054879238d0 * (x ** 5.0d0))) + (4964.451919603997d0 * (x ** 3.0d0))) - (18.229321614212964d0 * x)) end function
public static double code(double x) { return Math.sqrt((1.0 - Math.pow(x, 2.0))) * ((((((((((((((((((((346759527252.22327 * Math.pow(x, 39.0)) - (3252516578403.765 * Math.pow(x, 37.0))) + (14066078189720.18 * Math.pow(x, 35.0))) - (37196962323926.695 * Math.pow(x, 33.0))) + (67260260640524.984 * Math.pow(x, 31.0))) - (88101468162941.17 * Math.pow(x, 29.0))) + (86399024333705.6 * Math.pow(x, 27.0))) - (64661103499212.51 * Math.pow(x, 25.0))) + (37304482788007.22 * Math.pow(x, 23.0))) - (16645562866606.395 * Math.pow(x, 21.0))) + (5730439675389.087 * Math.pow(x, 19.0))) - (1509869313546.277 * Math.pow(x, 17.0))) + (300207933687.56384 * Math.pow(x, 15.0))) - (44086479772.29958 * Math.pow(x, 13.0))) + (4634427792.775428 * Math.pow(x, 11.0))) - (333194155.0361419 * Math.pow(x, 9.0))) + (15299731.608802434 * Math.pow(x, 7.0))) - (402120.6054879238 * Math.pow(x, 5.0))) + (4964.451919603997 * Math.pow(x, 3.0))) - (18.229321614212964 * x)); }
def code(x): return math.sqrt((1.0 - math.pow(x, 2.0))) * ((((((((((((((((((((346759527252.22327 * math.pow(x, 39.0)) - (3252516578403.765 * math.pow(x, 37.0))) + (14066078189720.18 * math.pow(x, 35.0))) - (37196962323926.695 * math.pow(x, 33.0))) + (67260260640524.984 * math.pow(x, 31.0))) - (88101468162941.17 * math.pow(x, 29.0))) + (86399024333705.6 * math.pow(x, 27.0))) - (64661103499212.51 * math.pow(x, 25.0))) + (37304482788007.22 * math.pow(x, 23.0))) - (16645562866606.395 * math.pow(x, 21.0))) + (5730439675389.087 * math.pow(x, 19.0))) - (1509869313546.277 * math.pow(x, 17.0))) + (300207933687.56384 * math.pow(x, 15.0))) - (44086479772.29958 * math.pow(x, 13.0))) + (4634427792.775428 * math.pow(x, 11.0))) - (333194155.0361419 * math.pow(x, 9.0))) + (15299731.608802434 * math.pow(x, 7.0))) - (402120.6054879238 * math.pow(x, 5.0))) + (4964.451919603997 * math.pow(x, 3.0))) - (18.229321614212964 * x))
function code(x) return Float64(sqrt(Float64(1.0 - (x ^ 2.0))) * Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(346759527252.22327 * (x ^ 39.0)) - Float64(3252516578403.765 * (x ^ 37.0))) + Float64(14066078189720.18 * (x ^ 35.0))) - Float64(37196962323926.695 * (x ^ 33.0))) + Float64(67260260640524.984 * (x ^ 31.0))) - Float64(88101468162941.17 * (x ^ 29.0))) + Float64(86399024333705.6 * (x ^ 27.0))) - Float64(64661103499212.51 * (x ^ 25.0))) + Float64(37304482788007.22 * (x ^ 23.0))) - Float64(16645562866606.395 * (x ^ 21.0))) + Float64(5730439675389.087 * (x ^ 19.0))) - Float64(1509869313546.277 * (x ^ 17.0))) + Float64(300207933687.56384 * (x ^ 15.0))) - Float64(44086479772.29958 * (x ^ 13.0))) + Float64(4634427792.775428 * (x ^ 11.0))) - Float64(333194155.0361419 * (x ^ 9.0))) + Float64(15299731.608802434 * (x ^ 7.0))) - Float64(402120.6054879238 * (x ^ 5.0))) + Float64(4964.451919603997 * (x ^ 3.0))) - Float64(18.229321614212964 * x))) end
function tmp = code(x) tmp = sqrt((1.0 - (x ^ 2.0))) * ((((((((((((((((((((346759527252.22327 * (x ^ 39.0)) - (3252516578403.765 * (x ^ 37.0))) + (14066078189720.18 * (x ^ 35.0))) - (37196962323926.695 * (x ^ 33.0))) + (67260260640524.984 * (x ^ 31.0))) - (88101468162941.17 * (x ^ 29.0))) + (86399024333705.6 * (x ^ 27.0))) - (64661103499212.51 * (x ^ 25.0))) + (37304482788007.22 * (x ^ 23.0))) - (16645562866606.395 * (x ^ 21.0))) + (5730439675389.087 * (x ^ 19.0))) - (1509869313546.277 * (x ^ 17.0))) + (300207933687.56384 * (x ^ 15.0))) - (44086479772.29958 * (x ^ 13.0))) + (4634427792.775428 * (x ^ 11.0))) - (333194155.0361419 * (x ^ 9.0))) + (15299731.608802434 * (x ^ 7.0))) - (402120.6054879238 * (x ^ 5.0))) + (4964.451919603997 * (x ^ 3.0))) - (18.229321614212964 * x)); end
code[x_] := N[(N[Sqrt[N[(1.0 - N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(346759527252.22327 * N[Power[x, 39.0], $MachinePrecision]), $MachinePrecision] - N[(3252516578403.765 * N[Power[x, 37.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(14066078189720.18 * N[Power[x, 35.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(37196962323926.695 * N[Power[x, 33.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(67260260640524.984 * N[Power[x, 31.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(88101468162941.17 * N[Power[x, 29.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(86399024333705.6 * N[Power[x, 27.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(64661103499212.51 * N[Power[x, 25.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(37304482788007.22 * N[Power[x, 23.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(16645562866606.395 * N[Power[x, 21.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(5730439675389.087 * N[Power[x, 19.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(1509869313546.277 * N[Power[x, 17.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(300207933687.56384 * N[Power[x, 15.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(44086479772.29958 * N[Power[x, 13.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(4634427792.775428 * N[Power[x, 11.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(333194155.0361419 * N[Power[x, 9.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(15299731.608802434 * N[Power[x, 7.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(402120.6054879238 * N[Power[x, 5.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(4964.451919603997 * N[Power[x, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(18.229321614212964 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \sqrt{1 - {x}^{2}} \cdot \left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(346759527252.22327 \cdot {x}^{39} - 3252516578403.765 \cdot {x}^{37}\right) + 14066078189720.18 \cdot {x}^{35}\right) - 37196962323926.695 \cdot {x}^{33}\right) + 67260260640524.984 \cdot {x}^{31}\right) - 88101468162941.17 \cdot {x}^{29}\right) + 86399024333705.6 \cdot {x}^{27}\right) - 64661103499212.51 \cdot {x}^{25}\right) + 37304482788007.22 \cdot {x}^{23}\right) - 16645562866606.395 \cdot {x}^{21}\right) + 5730439675389.087 \cdot {x}^{19}\right) - 1509869313546.277 \cdot {x}^{17}\right) + 300207933687.56384 \cdot {x}^{15}\right) - 44086479772.29958 \cdot {x}^{13}\right) + 4634427792.775428 \cdot {x}^{11}\right) - 333194155.0361419 \cdot {x}^{9}\right) + 15299731.608802434 \cdot {x}^{7}\right) - 402120.6054879238 \cdot {x}^{5}\right) + 4964.451919603997 \cdot {x}^{3}\right) - 18.229321614212964 \cdot x\right) \end{array}
(FPCore (x) :precision binary64 (* (sqrt (- 1.0 (pow x 2.0))) (fma (* x x) (* x 4964.451919603997) (- (fma -402120.6054879238 (pow x 5.0) (+ (fma 15299731.608802434 (pow x 7.0) (* (pow x 9.0) -333194155.0361419)) (fma 4634427792.775428 (pow x 11.0) (fma (pow x 13.0) -44086479772.29958 (fma 300207933687.56384 (pow x 15.0) (fma (pow x 17.0) -1509869313546.277 (fma 5730439675389.087 (pow x 19.0) (fma (pow x 21.0) -16645562866606.395 (fma 37304482788007.22 (pow x 23.0) (fma (pow x 25.0) -64661103499212.51 (fma 86399024333705.6 (pow x 27.0) (fma (pow x 29.0) -88101468162941.17 (fma 67260260640524.984 (pow x 31.0) (fma (pow x 33.0) -37196962323926.695 (fma 14066078189720.18 (pow x 35.0) (fma (pow x 37.0) -3252516578403.765 (* 346759527252.22327 (pow x 39.0)))))))))))))))))) (* 18.229321614212964 x)))))
double code(double x) { return sqrt((1.0 - pow(x, 2.0))) * fma((x * x), (x * 4964.451919603997), (fma(-402120.6054879238, pow(x, 5.0), (fma(15299731.608802434, pow(x, 7.0), (pow(x, 9.0) * -333194155.0361419)) + fma(4634427792.775428, pow(x, 11.0), fma(pow(x, 13.0), -44086479772.29958, fma(300207933687.56384, pow(x, 15.0), fma(pow(x, 17.0), -1509869313546.277, fma(5730439675389.087, pow(x, 19.0), fma(pow(x, 21.0), -16645562866606.395, fma(37304482788007.22, pow(x, 23.0), fma(pow(x, 25.0), -64661103499212.51, fma(86399024333705.6, pow(x, 27.0), fma(pow(x, 29.0), -88101468162941.17, fma(67260260640524.984, pow(x, 31.0), fma(pow(x, 33.0), -37196962323926.695, fma(14066078189720.18, pow(x, 35.0), fma(pow(x, 37.0), -3252516578403.765, (346759527252.22327 * pow(x, 39.0)))))))))))))))))) - (18.229321614212964 * x))); }
function code(x) return Float64(sqrt(Float64(1.0 - (x ^ 2.0))) * fma(Float64(x * x), Float64(x * 4964.451919603997), Float64(fma(-402120.6054879238, (x ^ 5.0), Float64(fma(15299731.608802434, (x ^ 7.0), Float64((x ^ 9.0) * -333194155.0361419)) + fma(4634427792.775428, (x ^ 11.0), fma((x ^ 13.0), -44086479772.29958, fma(300207933687.56384, (x ^ 15.0), fma((x ^ 17.0), -1509869313546.277, fma(5730439675389.087, (x ^ 19.0), fma((x ^ 21.0), -16645562866606.395, fma(37304482788007.22, (x ^ 23.0), fma((x ^ 25.0), -64661103499212.51, fma(86399024333705.6, (x ^ 27.0), fma((x ^ 29.0), -88101468162941.17, fma(67260260640524.984, (x ^ 31.0), fma((x ^ 33.0), -37196962323926.695, fma(14066078189720.18, (x ^ 35.0), fma((x ^ 37.0), -3252516578403.765, Float64(346759527252.22327 * (x ^ 39.0)))))))))))))))))) - Float64(18.229321614212964 * x)))) end
code[x_] := N[(N[Sqrt[N[(1.0 - N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * N[(x * 4964.451919603997), $MachinePrecision] + N[(N[(-402120.6054879238 * N[Power[x, 5.0], $MachinePrecision] + N[(N[(15299731.608802434 * N[Power[x, 7.0], $MachinePrecision] + N[(N[Power[x, 9.0], $MachinePrecision] * -333194155.0361419), $MachinePrecision]), $MachinePrecision] + N[(4634427792.775428 * N[Power[x, 11.0], $MachinePrecision] + N[(N[Power[x, 13.0], $MachinePrecision] * -44086479772.29958 + N[(300207933687.56384 * N[Power[x, 15.0], $MachinePrecision] + N[(N[Power[x, 17.0], $MachinePrecision] * -1509869313546.277 + N[(5730439675389.087 * N[Power[x, 19.0], $MachinePrecision] + N[(N[Power[x, 21.0], $MachinePrecision] * -16645562866606.395 + N[(37304482788007.22 * N[Power[x, 23.0], $MachinePrecision] + N[(N[Power[x, 25.0], $MachinePrecision] * -64661103499212.51 + N[(86399024333705.6 * N[Power[x, 27.0], $MachinePrecision] + N[(N[Power[x, 29.0], $MachinePrecision] * -88101468162941.17 + N[(67260260640524.984 * N[Power[x, 31.0], $MachinePrecision] + N[(N[Power[x, 33.0], $MachinePrecision] * -37196962323926.695 + N[(14066078189720.18 * N[Power[x, 35.0], $MachinePrecision] + N[(N[Power[x, 37.0], $MachinePrecision] * -3252516578403.765 + N[(346759527252.22327 * N[Power[x, 39.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(18.229321614212964 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \sqrt{1 - {x}^{2}} \cdot \mathsf{fma}\left(x \cdot x, x \cdot 4964.451919603997, \mathsf{fma}\left(-402120.6054879238, {x}^{5}, \mathsf{fma}\left(15299731.608802434, {x}^{7}, {x}^{9} \cdot -333194155.0361419\right) + \mathsf{fma}\left(4634427792.775428, {x}^{11}, \mathsf{fma}\left({x}^{13}, -44086479772.29958, \mathsf{fma}\left(300207933687.56384, {x}^{15}, \mathsf{fma}\left({x}^{17}, -1509869313546.277, \mathsf{fma}\left(5730439675389.087, {x}^{19}, \mathsf{fma}\left({x}^{21}, -16645562866606.395, \mathsf{fma}\left(37304482788007.22, {x}^{23}, \mathsf{fma}\left({x}^{25}, -64661103499212.51, \mathsf{fma}\left(86399024333705.6, {x}^{27}, \mathsf{fma}\left({x}^{29}, -88101468162941.17, \mathsf{fma}\left(67260260640524.984, {x}^{31}, \mathsf{fma}\left({x}^{33}, -37196962323926.695, \mathsf{fma}\left(14066078189720.18, {x}^{35}, \mathsf{fma}\left({x}^{37}, -3252516578403.765, 346759527252.22327 \cdot {x}^{39}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) - 18.229321614212964 \cdot x\right) \end{array}
Initial program 99.7%
Applied rewrites99.7%
Applied rewrites99.7%
(FPCore (x) :precision binary64 (* (sqrt (- 1.0 (pow x 2.0))) (fma x (* x (* 4964.451919603997 x)) (- (fma (pow x 5.0) -402120.6054879238 (fma 15299731.608802434 (pow x 7.0) (fma (pow x 9.0) -333194155.0361419 (fma 4634427792.775428 (pow x 11.0) (fma (pow x 13.0) -44086479772.29958 (fma 300207933687.56384 (pow x 15.0) (fma (pow x 17.0) -1509869313546.277 (fma 5730439675389.087 (pow x 19.0) (fma (pow x 21.0) -16645562866606.395 (fma 37304482788007.22 (pow x 23.0) (fma (pow x 25.0) -64661103499212.51 (fma 86399024333705.6 (pow x 27.0) (fma (pow x 29.0) -88101468162941.17 (fma 67260260640524.984 (pow x 31.0) (fma (pow x 33.0) -37196962323926.695 (fma 14066078189720.18 (pow x 35.0) (fma (pow x 37.0) -3252516578403.765 (* 346759527252.22327 (pow x 39.0))))))))))))))))))) (* 18.229321614212964 x)))))
double code(double x) { return sqrt((1.0 - pow(x, 2.0))) * fma(x, (x * (4964.451919603997 * x)), (fma(pow(x, 5.0), -402120.6054879238, fma(15299731.608802434, pow(x, 7.0), fma(pow(x, 9.0), -333194155.0361419, fma(4634427792.775428, pow(x, 11.0), fma(pow(x, 13.0), -44086479772.29958, fma(300207933687.56384, pow(x, 15.0), fma(pow(x, 17.0), -1509869313546.277, fma(5730439675389.087, pow(x, 19.0), fma(pow(x, 21.0), -16645562866606.395, fma(37304482788007.22, pow(x, 23.0), fma(pow(x, 25.0), -64661103499212.51, fma(86399024333705.6, pow(x, 27.0), fma(pow(x, 29.0), -88101468162941.17, fma(67260260640524.984, pow(x, 31.0), fma(pow(x, 33.0), -37196962323926.695, fma(14066078189720.18, pow(x, 35.0), fma(pow(x, 37.0), -3252516578403.765, (346759527252.22327 * pow(x, 39.0))))))))))))))))))) - (18.229321614212964 * x))); }
function code(x) return Float64(sqrt(Float64(1.0 - (x ^ 2.0))) * fma(x, Float64(x * Float64(4964.451919603997 * x)), Float64(fma((x ^ 5.0), -402120.6054879238, fma(15299731.608802434, (x ^ 7.0), fma((x ^ 9.0), -333194155.0361419, fma(4634427792.775428, (x ^ 11.0), fma((x ^ 13.0), -44086479772.29958, fma(300207933687.56384, (x ^ 15.0), fma((x ^ 17.0), -1509869313546.277, fma(5730439675389.087, (x ^ 19.0), fma((x ^ 21.0), -16645562866606.395, fma(37304482788007.22, (x ^ 23.0), fma((x ^ 25.0), -64661103499212.51, fma(86399024333705.6, (x ^ 27.0), fma((x ^ 29.0), -88101468162941.17, fma(67260260640524.984, (x ^ 31.0), fma((x ^ 33.0), -37196962323926.695, fma(14066078189720.18, (x ^ 35.0), fma((x ^ 37.0), -3252516578403.765, Float64(346759527252.22327 * (x ^ 39.0))))))))))))))))))) - Float64(18.229321614212964 * x)))) end
code[x_] := N[(N[Sqrt[N[(1.0 - N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(x * N[(x * N[(4964.451919603997 * x), $MachinePrecision]), $MachinePrecision] + N[(N[(N[Power[x, 5.0], $MachinePrecision] * -402120.6054879238 + N[(15299731.608802434 * N[Power[x, 7.0], $MachinePrecision] + N[(N[Power[x, 9.0], $MachinePrecision] * -333194155.0361419 + N[(4634427792.775428 * N[Power[x, 11.0], $MachinePrecision] + N[(N[Power[x, 13.0], $MachinePrecision] * -44086479772.29958 + N[(300207933687.56384 * N[Power[x, 15.0], $MachinePrecision] + N[(N[Power[x, 17.0], $MachinePrecision] * -1509869313546.277 + N[(5730439675389.087 * N[Power[x, 19.0], $MachinePrecision] + N[(N[Power[x, 21.0], $MachinePrecision] * -16645562866606.395 + N[(37304482788007.22 * N[Power[x, 23.0], $MachinePrecision] + N[(N[Power[x, 25.0], $MachinePrecision] * -64661103499212.51 + N[(86399024333705.6 * N[Power[x, 27.0], $MachinePrecision] + N[(N[Power[x, 29.0], $MachinePrecision] * -88101468162941.17 + N[(67260260640524.984 * N[Power[x, 31.0], $MachinePrecision] + N[(N[Power[x, 33.0], $MachinePrecision] * -37196962323926.695 + N[(14066078189720.18 * N[Power[x, 35.0], $MachinePrecision] + N[(N[Power[x, 37.0], $MachinePrecision] * -3252516578403.765 + N[(346759527252.22327 * N[Power[x, 39.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(18.229321614212964 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \sqrt{1 - {x}^{2}} \cdot \mathsf{fma}\left(x, x \cdot \left(4964.451919603997 \cdot x\right), \mathsf{fma}\left({x}^{5}, -402120.6054879238, \mathsf{fma}\left(15299731.608802434, {x}^{7}, \mathsf{fma}\left({x}^{9}, -333194155.0361419, \mathsf{fma}\left(4634427792.775428, {x}^{11}, \mathsf{fma}\left({x}^{13}, -44086479772.29958, \mathsf{fma}\left(300207933687.56384, {x}^{15}, \mathsf{fma}\left({x}^{17}, -1509869313546.277, \mathsf{fma}\left(5730439675389.087, {x}^{19}, \mathsf{fma}\left({x}^{21}, -16645562866606.395, \mathsf{fma}\left(37304482788007.22, {x}^{23}, \mathsf{fma}\left({x}^{25}, -64661103499212.51, \mathsf{fma}\left(86399024333705.6, {x}^{27}, \mathsf{fma}\left({x}^{29}, -88101468162941.17, \mathsf{fma}\left(67260260640524.984, {x}^{31}, \mathsf{fma}\left({x}^{33}, -37196962323926.695, \mathsf{fma}\left(14066078189720.18, {x}^{35}, \mathsf{fma}\left({x}^{37}, -3252516578403.765, 346759527252.22327 \cdot {x}^{39}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) - 18.229321614212964 \cdot x\right) \end{array}
Initial program 99.7%
Applied rewrites99.7%
Applied rewrites99.7%
(FPCore (x) :precision binary64 (* (sqrt (- 1.0 (* x x))) (fma (* x x) (* x 4964.451919603997) (- (fma -402120.6054879238 (pow x 5.0) (fma (pow x 7.0) 15299731.608802434 (fma -333194155.0361419 (pow x 9.0) (fma (pow x 11.0) 4634427792.775428 (fma -44086479772.29958 (pow x 13.0) (fma (pow x 15.0) 300207933687.56384 (fma -1509869313546.277 (pow x 17.0) (fma (pow x 19.0) 5730439675389.087 (fma -16645562866606.395 (pow x 21.0) (fma (pow x 23.0) 37304482788007.22 (fma -64661103499212.51 (pow x 25.0) (fma (pow x 27.0) 86399024333705.6 (fma -88101468162941.17 (pow x 29.0) (fma (pow x 31.0) 67260260640524.984 (fma -37196962323926.695 (pow x 33.0) (fma (pow x 35.0) 14066078189720.18 (fma -3252516578403.765 (pow x 37.0) (* (pow x 39.0) 346759527252.22327)))))))))))))))))) (* 18.229321614212964 x)))))
double code(double x) { return sqrt((1.0 - (x * x))) * fma((x * x), (x * 4964.451919603997), (fma(-402120.6054879238, pow(x, 5.0), fma(pow(x, 7.0), 15299731.608802434, fma(-333194155.0361419, pow(x, 9.0), fma(pow(x, 11.0), 4634427792.775428, fma(-44086479772.29958, pow(x, 13.0), fma(pow(x, 15.0), 300207933687.56384, fma(-1509869313546.277, pow(x, 17.0), fma(pow(x, 19.0), 5730439675389.087, fma(-16645562866606.395, pow(x, 21.0), fma(pow(x, 23.0), 37304482788007.22, fma(-64661103499212.51, pow(x, 25.0), fma(pow(x, 27.0), 86399024333705.6, fma(-88101468162941.17, pow(x, 29.0), fma(pow(x, 31.0), 67260260640524.984, fma(-37196962323926.695, pow(x, 33.0), fma(pow(x, 35.0), 14066078189720.18, fma(-3252516578403.765, pow(x, 37.0), (pow(x, 39.0) * 346759527252.22327)))))))))))))))))) - (18.229321614212964 * x))); }
function code(x) return Float64(sqrt(Float64(1.0 - Float64(x * x))) * fma(Float64(x * x), Float64(x * 4964.451919603997), Float64(fma(-402120.6054879238, (x ^ 5.0), fma((x ^ 7.0), 15299731.608802434, fma(-333194155.0361419, (x ^ 9.0), fma((x ^ 11.0), 4634427792.775428, fma(-44086479772.29958, (x ^ 13.0), fma((x ^ 15.0), 300207933687.56384, fma(-1509869313546.277, (x ^ 17.0), fma((x ^ 19.0), 5730439675389.087, fma(-16645562866606.395, (x ^ 21.0), fma((x ^ 23.0), 37304482788007.22, fma(-64661103499212.51, (x ^ 25.0), fma((x ^ 27.0), 86399024333705.6, fma(-88101468162941.17, (x ^ 29.0), fma((x ^ 31.0), 67260260640524.984, fma(-37196962323926.695, (x ^ 33.0), fma((x ^ 35.0), 14066078189720.18, fma(-3252516578403.765, (x ^ 37.0), Float64((x ^ 39.0) * 346759527252.22327)))))))))))))))))) - Float64(18.229321614212964 * x)))) end
code[x_] := N[(N[Sqrt[N[(1.0 - N[(x * x), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * N[(x * 4964.451919603997), $MachinePrecision] + N[(N[(-402120.6054879238 * N[Power[x, 5.0], $MachinePrecision] + N[(N[Power[x, 7.0], $MachinePrecision] * 15299731.608802434 + N[(-333194155.0361419 * N[Power[x, 9.0], $MachinePrecision] + N[(N[Power[x, 11.0], $MachinePrecision] * 4634427792.775428 + N[(-44086479772.29958 * N[Power[x, 13.0], $MachinePrecision] + N[(N[Power[x, 15.0], $MachinePrecision] * 300207933687.56384 + N[(-1509869313546.277 * N[Power[x, 17.0], $MachinePrecision] + N[(N[Power[x, 19.0], $MachinePrecision] * 5730439675389.087 + N[(-16645562866606.395 * N[Power[x, 21.0], $MachinePrecision] + N[(N[Power[x, 23.0], $MachinePrecision] * 37304482788007.22 + N[(-64661103499212.51 * N[Power[x, 25.0], $MachinePrecision] + N[(N[Power[x, 27.0], $MachinePrecision] * 86399024333705.6 + N[(-88101468162941.17 * N[Power[x, 29.0], $MachinePrecision] + N[(N[Power[x, 31.0], $MachinePrecision] * 67260260640524.984 + N[(-37196962323926.695 * N[Power[x, 33.0], $MachinePrecision] + N[(N[Power[x, 35.0], $MachinePrecision] * 14066078189720.18 + N[(-3252516578403.765 * N[Power[x, 37.0], $MachinePrecision] + N[(N[Power[x, 39.0], $MachinePrecision] * 346759527252.22327), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(18.229321614212964 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \sqrt{1 - x \cdot x} \cdot \mathsf{fma}\left(x \cdot x, x \cdot 4964.451919603997, \mathsf{fma}\left(-402120.6054879238, {x}^{5}, \mathsf{fma}\left({x}^{7}, 15299731.608802434, \mathsf{fma}\left(-333194155.0361419, {x}^{9}, \mathsf{fma}\left({x}^{11}, 4634427792.775428, \mathsf{fma}\left(-44086479772.29958, {x}^{13}, \mathsf{fma}\left({x}^{15}, 300207933687.56384, \mathsf{fma}\left(-1509869313546.277, {x}^{17}, \mathsf{fma}\left({x}^{19}, 5730439675389.087, \mathsf{fma}\left(-16645562866606.395, {x}^{21}, \mathsf{fma}\left({x}^{23}, 37304482788007.22, \mathsf{fma}\left(-64661103499212.51, {x}^{25}, \mathsf{fma}\left({x}^{27}, 86399024333705.6, \mathsf{fma}\left(-88101468162941.17, {x}^{29}, \mathsf{fma}\left({x}^{31}, 67260260640524.984, \mathsf{fma}\left(-37196962323926.695, {x}^{33}, \mathsf{fma}\left({x}^{35}, 14066078189720.18, \mathsf{fma}\left(-3252516578403.765, {x}^{37}, {x}^{39} \cdot 346759527252.22327\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) - 18.229321614212964 \cdot x\right) \end{array}
Initial program 99.7%
Applied rewrites99.7%
lift-pow.f64
N/A
pow2
N/A
lift-*.f64
99.7
Applied rewrites99.7%
(FPCore (x) :precision binary64 (* (sqrt (- 1.0 (pow x 2.0))) (fma (* x x) (* x 4964.451919603997) (- (fma -402120.6054879238 (pow x 5.0) (fma (pow x 7.0) 15299731.608802434 (fma -333194155.0361419 (pow x 9.0) (fma (pow x 11.0) 4634427792.775428 (fma -44086479772.29958 (pow x 13.0) (fma (pow x 15.0) 300207933687.56384 (fma -1509869313546.277 (pow x 17.0) (fma (pow x 19.0) 5730439675389.087 (fma -16645562866606.395 (pow x 21.0) (fma (pow x 23.0) 37304482788007.22 (fma -64661103499212.51 (pow x 25.0) (fma (pow x 27.0) 86399024333705.6 (fma -88101468162941.17 (pow x 29.0) (* (fma (fma (fma -3252516578403.765 (* x x) 14066078189720.18) (* x x) -37196962323926.695) (* x x) 67260260640524.984) (pow x 31.0))))))))))))))) (* 18.229321614212964 x)))))
double code(double x) { return sqrt((1.0 - pow(x, 2.0))) * fma((x * x), (x * 4964.451919603997), (fma(-402120.6054879238, pow(x, 5.0), fma(pow(x, 7.0), 15299731.608802434, fma(-333194155.0361419, pow(x, 9.0), fma(pow(x, 11.0), 4634427792.775428, fma(-44086479772.29958, pow(x, 13.0), fma(pow(x, 15.0), 300207933687.56384, fma(-1509869313546.277, pow(x, 17.0), fma(pow(x, 19.0), 5730439675389.087, fma(-16645562866606.395, pow(x, 21.0), fma(pow(x, 23.0), 37304482788007.22, fma(-64661103499212.51, pow(x, 25.0), fma(pow(x, 27.0), 86399024333705.6, fma(-88101468162941.17, pow(x, 29.0), (fma(fma(fma(-3252516578403.765, (x * x), 14066078189720.18), (x * x), -37196962323926.695), (x * x), 67260260640524.984) * pow(x, 31.0))))))))))))))) - (18.229321614212964 * x))); }
function code(x) return Float64(sqrt(Float64(1.0 - (x ^ 2.0))) * fma(Float64(x * x), Float64(x * 4964.451919603997), Float64(fma(-402120.6054879238, (x ^ 5.0), fma((x ^ 7.0), 15299731.608802434, fma(-333194155.0361419, (x ^ 9.0), fma((x ^ 11.0), 4634427792.775428, fma(-44086479772.29958, (x ^ 13.0), fma((x ^ 15.0), 300207933687.56384, fma(-1509869313546.277, (x ^ 17.0), fma((x ^ 19.0), 5730439675389.087, fma(-16645562866606.395, (x ^ 21.0), fma((x ^ 23.0), 37304482788007.22, fma(-64661103499212.51, (x ^ 25.0), fma((x ^ 27.0), 86399024333705.6, fma(-88101468162941.17, (x ^ 29.0), Float64(fma(fma(fma(-3252516578403.765, Float64(x * x), 14066078189720.18), Float64(x * x), -37196962323926.695), Float64(x * x), 67260260640524.984) * (x ^ 31.0))))))))))))))) - Float64(18.229321614212964 * x)))) end
code[x_] := N[(N[Sqrt[N[(1.0 - N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * N[(x * 4964.451919603997), $MachinePrecision] + N[(N[(-402120.6054879238 * N[Power[x, 5.0], $MachinePrecision] + N[(N[Power[x, 7.0], $MachinePrecision] * 15299731.608802434 + N[(-333194155.0361419 * N[Power[x, 9.0], $MachinePrecision] + N[(N[Power[x, 11.0], $MachinePrecision] * 4634427792.775428 + N[(-44086479772.29958 * N[Power[x, 13.0], $MachinePrecision] + N[(N[Power[x, 15.0], $MachinePrecision] * 300207933687.56384 + N[(-1509869313546.277 * N[Power[x, 17.0], $MachinePrecision] + N[(N[Power[x, 19.0], $MachinePrecision] * 5730439675389.087 + N[(-16645562866606.395 * N[Power[x, 21.0], $MachinePrecision] + N[(N[Power[x, 23.0], $MachinePrecision] * 37304482788007.22 + N[(-64661103499212.51 * N[Power[x, 25.0], $MachinePrecision] + N[(N[Power[x, 27.0], $MachinePrecision] * 86399024333705.6 + N[(-88101468162941.17 * N[Power[x, 29.0], $MachinePrecision] + N[(N[(N[(N[(-3252516578403.765 * N[(x * x), $MachinePrecision] + 14066078189720.18), $MachinePrecision] * N[(x * x), $MachinePrecision] + -37196962323926.695), $MachinePrecision] * N[(x * x), $MachinePrecision] + 67260260640524.984), $MachinePrecision] * N[Power[x, 31.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(18.229321614212964 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \sqrt{1 - {x}^{2}} \cdot \mathsf{fma}\left(x \cdot x, x \cdot 4964.451919603997, \mathsf{fma}\left(-402120.6054879238, {x}^{5}, \mathsf{fma}\left({x}^{7}, 15299731.608802434, \mathsf{fma}\left(-333194155.0361419, {x}^{9}, \mathsf{fma}\left({x}^{11}, 4634427792.775428, \mathsf{fma}\left(-44086479772.29958, {x}^{13}, \mathsf{fma}\left({x}^{15}, 300207933687.56384, \mathsf{fma}\left(-1509869313546.277, {x}^{17}, \mathsf{fma}\left({x}^{19}, 5730439675389.087, \mathsf{fma}\left(-16645562866606.395, {x}^{21}, \mathsf{fma}\left({x}^{23}, 37304482788007.22, \mathsf{fma}\left(-64661103499212.51, {x}^{25}, \mathsf{fma}\left({x}^{27}, 86399024333705.6, \mathsf{fma}\left(-88101468162941.17, {x}^{29}, \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-3252516578403.765, x \cdot x, 14066078189720.18\right), x \cdot x, -37196962323926.695\right), x \cdot x, 67260260640524.984\right) \cdot {x}^{31}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) - 18.229321614212964 \cdot x\right) \end{array}
Initial program 99.7%
Applied rewrites99.7%
Taylor expanded in x around 0
*-commutative
N/A
lower-*.f64
N/A
+-commutative
N/A
*-commutative
N/A
lower-fma.f64
N/A
sub-neg
N/A
*-commutative
N/A
metadata-eval
N/A
lower-fma.f64
N/A
+-commutative
N/A
lower-fma.f64
N/A
unpow2
N/A
lower-*.f64
N/A
unpow2
N/A
lower-*.f64
N/A
unpow2
N/A
lower-*.f64
N/A
lower-pow.f64
99.4
Applied rewrites99.4%
(FPCore (x) :precision binary64 (* (sqrt (- 1.0 (pow x 2.0))) (fma (* x x) (* x 4964.451919603997) (- (fma -402120.6054879238 (pow x 5.0) (fma (pow x 7.0) 15299731.608802434 (fma -333194155.0361419 (pow x 9.0) (fma (pow x 11.0) 4634427792.775428 (fma -44086479772.29958 (pow x 13.0) (fma (pow x 15.0) 300207933687.56384 (fma -1509869313546.277 (pow x 17.0) (fma (pow x 19.0) 5730439675389.087 (fma -16645562866606.395 (pow x 21.0) (fma (pow x 23.0) 37304482788007.22 (fma -64661103499212.51 (pow x 25.0) (fma (pow x 27.0) 86399024333705.6 (* (fma (fma -37196962323926.695 (* x x) 67260260640524.984) (* x x) -88101468162941.17) (pow x 29.0)))))))))))))) (* 18.229321614212964 x)))))
double code(double x) { return sqrt((1.0 - pow(x, 2.0))) * fma((x * x), (x * 4964.451919603997), (fma(-402120.6054879238, pow(x, 5.0), fma(pow(x, 7.0), 15299731.608802434, fma(-333194155.0361419, pow(x, 9.0), fma(pow(x, 11.0), 4634427792.775428, fma(-44086479772.29958, pow(x, 13.0), fma(pow(x, 15.0), 300207933687.56384, fma(-1509869313546.277, pow(x, 17.0), fma(pow(x, 19.0), 5730439675389.087, fma(-16645562866606.395, pow(x, 21.0), fma(pow(x, 23.0), 37304482788007.22, fma(-64661103499212.51, pow(x, 25.0), fma(pow(x, 27.0), 86399024333705.6, (fma(fma(-37196962323926.695, (x * x), 67260260640524.984), (x * x), -88101468162941.17) * pow(x, 29.0)))))))))))))) - (18.229321614212964 * x))); }
function code(x) return Float64(sqrt(Float64(1.0 - (x ^ 2.0))) * fma(Float64(x * x), Float64(x * 4964.451919603997), Float64(fma(-402120.6054879238, (x ^ 5.0), fma((x ^ 7.0), 15299731.608802434, fma(-333194155.0361419, (x ^ 9.0), fma((x ^ 11.0), 4634427792.775428, fma(-44086479772.29958, (x ^ 13.0), fma((x ^ 15.0), 300207933687.56384, fma(-1509869313546.277, (x ^ 17.0), fma((x ^ 19.0), 5730439675389.087, fma(-16645562866606.395, (x ^ 21.0), fma((x ^ 23.0), 37304482788007.22, fma(-64661103499212.51, (x ^ 25.0), fma((x ^ 27.0), 86399024333705.6, Float64(fma(fma(-37196962323926.695, Float64(x * x), 67260260640524.984), Float64(x * x), -88101468162941.17) * (x ^ 29.0)))))))))))))) - Float64(18.229321614212964 * x)))) end
code[x_] := N[(N[Sqrt[N[(1.0 - N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * N[(x * 4964.451919603997), $MachinePrecision] + N[(N[(-402120.6054879238 * N[Power[x, 5.0], $MachinePrecision] + N[(N[Power[x, 7.0], $MachinePrecision] * 15299731.608802434 + N[(-333194155.0361419 * N[Power[x, 9.0], $MachinePrecision] + N[(N[Power[x, 11.0], $MachinePrecision] * 4634427792.775428 + N[(-44086479772.29958 * N[Power[x, 13.0], $MachinePrecision] + N[(N[Power[x, 15.0], $MachinePrecision] * 300207933687.56384 + N[(-1509869313546.277 * N[Power[x, 17.0], $MachinePrecision] + N[(N[Power[x, 19.0], $MachinePrecision] * 5730439675389.087 + N[(-16645562866606.395 * N[Power[x, 21.0], $MachinePrecision] + N[(N[Power[x, 23.0], $MachinePrecision] * 37304482788007.22 + N[(-64661103499212.51 * N[Power[x, 25.0], $MachinePrecision] + N[(N[Power[x, 27.0], $MachinePrecision] * 86399024333705.6 + N[(N[(N[(-37196962323926.695 * N[(x * x), $MachinePrecision] + 67260260640524.984), $MachinePrecision] * N[(x * x), $MachinePrecision] + -88101468162941.17), $MachinePrecision] * N[Power[x, 29.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(18.229321614212964 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \sqrt{1 - {x}^{2}} \cdot \mathsf{fma}\left(x \cdot x, x \cdot 4964.451919603997, \mathsf{fma}\left(-402120.6054879238, {x}^{5}, \mathsf{fma}\left({x}^{7}, 15299731.608802434, \mathsf{fma}\left(-333194155.0361419, {x}^{9}, \mathsf{fma}\left({x}^{11}, 4634427792.775428, \mathsf{fma}\left(-44086479772.29958, {x}^{13}, \mathsf{fma}\left({x}^{15}, 300207933687.56384, \mathsf{fma}\left(-1509869313546.277, {x}^{17}, \mathsf{fma}\left({x}^{19}, 5730439675389.087, \mathsf{fma}\left(-16645562866606.395, {x}^{21}, \mathsf{fma}\left({x}^{23}, 37304482788007.22, \mathsf{fma}\left(-64661103499212.51, {x}^{25}, \mathsf{fma}\left({x}^{27}, 86399024333705.6, \mathsf{fma}\left(\mathsf{fma}\left(-37196962323926.695, x \cdot x, 67260260640524.984\right), x \cdot x, -88101468162941.17\right) \cdot {x}^{29}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) - 18.229321614212964 \cdot x\right) \end{array}
Initial program 99.7%
Applied rewrites99.7%
Taylor expanded in x around 0
*-commutative
N/A
lower-*.f64
N/A
sub-neg
N/A
*-commutative
N/A
metadata-eval
N/A
lower-fma.f64
N/A
+-commutative
N/A
lower-fma.f64
N/A
unpow2
N/A
lower-*.f64
N/A
unpow2
N/A
lower-*.f64
N/A
lower-pow.f64
99.4
Applied rewrites99.4%
(FPCore (x) :precision binary64 (* (sqrt (- 1.0 (pow x 2.0))) (fma (* x x) (* x 4964.451919603997) (- (fma -402120.6054879238 (pow x 5.0) (fma (pow x 7.0) 15299731.608802434 (fma -333194155.0361419 (pow x 9.0) (fma (pow x 11.0) 4634427792.775428 (fma -44086479772.29958 (pow x 13.0) (fma (pow x 15.0) 300207933687.56384 (fma -1509869313546.277 (pow x 17.0) (fma (pow x 19.0) 5730439675389.087 (fma -16645562866606.395 (pow x 21.0) (fma (pow x 23.0) 37304482788007.22 (fma -64661103499212.51 (pow x 25.0) (fma (pow x 27.0) 86399024333705.6 (* -88101468162941.17 (pow x 29.0)))))))))))))) (* 18.229321614212964 x)))))
double code(double x) { return sqrt((1.0 - pow(x, 2.0))) * fma((x * x), (x * 4964.451919603997), (fma(-402120.6054879238, pow(x, 5.0), fma(pow(x, 7.0), 15299731.608802434, fma(-333194155.0361419, pow(x, 9.0), fma(pow(x, 11.0), 4634427792.775428, fma(-44086479772.29958, pow(x, 13.0), fma(pow(x, 15.0), 300207933687.56384, fma(-1509869313546.277, pow(x, 17.0), fma(pow(x, 19.0), 5730439675389.087, fma(-16645562866606.395, pow(x, 21.0), fma(pow(x, 23.0), 37304482788007.22, fma(-64661103499212.51, pow(x, 25.0), fma(pow(x, 27.0), 86399024333705.6, (-88101468162941.17 * pow(x, 29.0)))))))))))))) - (18.229321614212964 * x))); }
function code(x) return Float64(sqrt(Float64(1.0 - (x ^ 2.0))) * fma(Float64(x * x), Float64(x * 4964.451919603997), Float64(fma(-402120.6054879238, (x ^ 5.0), fma((x ^ 7.0), 15299731.608802434, fma(-333194155.0361419, (x ^ 9.0), fma((x ^ 11.0), 4634427792.775428, fma(-44086479772.29958, (x ^ 13.0), fma((x ^ 15.0), 300207933687.56384, fma(-1509869313546.277, (x ^ 17.0), fma((x ^ 19.0), 5730439675389.087, fma(-16645562866606.395, (x ^ 21.0), fma((x ^ 23.0), 37304482788007.22, fma(-64661103499212.51, (x ^ 25.0), fma((x ^ 27.0), 86399024333705.6, Float64(-88101468162941.17 * (x ^ 29.0)))))))))))))) - Float64(18.229321614212964 * x)))) end
code[x_] := N[(N[Sqrt[N[(1.0 - N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * N[(x * 4964.451919603997), $MachinePrecision] + N[(N[(-402120.6054879238 * N[Power[x, 5.0], $MachinePrecision] + N[(N[Power[x, 7.0], $MachinePrecision] * 15299731.608802434 + N[(-333194155.0361419 * N[Power[x, 9.0], $MachinePrecision] + N[(N[Power[x, 11.0], $MachinePrecision] * 4634427792.775428 + N[(-44086479772.29958 * N[Power[x, 13.0], $MachinePrecision] + N[(N[Power[x, 15.0], $MachinePrecision] * 300207933687.56384 + N[(-1509869313546.277 * N[Power[x, 17.0], $MachinePrecision] + N[(N[Power[x, 19.0], $MachinePrecision] * 5730439675389.087 + N[(-16645562866606.395 * N[Power[x, 21.0], $MachinePrecision] + N[(N[Power[x, 23.0], $MachinePrecision] * 37304482788007.22 + N[(-64661103499212.51 * N[Power[x, 25.0], $MachinePrecision] + N[(N[Power[x, 27.0], $MachinePrecision] * 86399024333705.6 + N[(-88101468162941.17 * N[Power[x, 29.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(18.229321614212964 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \sqrt{1 - {x}^{2}} \cdot \mathsf{fma}\left(x \cdot x, x \cdot 4964.451919603997, \mathsf{fma}\left(-402120.6054879238, {x}^{5}, \mathsf{fma}\left({x}^{7}, 15299731.608802434, \mathsf{fma}\left(-333194155.0361419, {x}^{9}, \mathsf{fma}\left({x}^{11}, 4634427792.775428, \mathsf{fma}\left(-44086479772.29958, {x}^{13}, \mathsf{fma}\left({x}^{15}, 300207933687.56384, \mathsf{fma}\left(-1509869313546.277, {x}^{17}, \mathsf{fma}\left({x}^{19}, 5730439675389.087, \mathsf{fma}\left(-16645562866606.395, {x}^{21}, \mathsf{fma}\left({x}^{23}, 37304482788007.22, \mathsf{fma}\left(-64661103499212.51, {x}^{25}, \mathsf{fma}\left({x}^{27}, 86399024333705.6, -88101468162941.17 \cdot {x}^{29}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) - 18.229321614212964 \cdot x\right) \end{array}
Initial program 99.7%
Applied rewrites99.7%
Taylor expanded in x around 0
lower-*.f64
N/A
lower-pow.f64
99.3
Applied rewrites99.3%
(FPCore (x) :precision binary64 (* (sqrt (- 1.0 (pow x 2.0))) (fma (* x x) (* x 4964.451919603997) (- (fma -402120.6054879238 (pow x 5.0) (* (fma (fma (fma -44086479772.29958 (* x x) 4634427792.775428) (* x x) -333194155.0361419) (* x x) 15299731.608802434) (pow x 7.0))) (* 18.229321614212964 x)))))
double code(double x) { return sqrt((1.0 - pow(x, 2.0))) * fma((x * x), (x * 4964.451919603997), (fma(-402120.6054879238, pow(x, 5.0), (fma(fma(fma(-44086479772.29958, (x * x), 4634427792.775428), (x * x), -333194155.0361419), (x * x), 15299731.608802434) * pow(x, 7.0))) - (18.229321614212964 * x))); }
function code(x) return Float64(sqrt(Float64(1.0 - (x ^ 2.0))) * fma(Float64(x * x), Float64(x * 4964.451919603997), Float64(fma(-402120.6054879238, (x ^ 5.0), Float64(fma(fma(fma(-44086479772.29958, Float64(x * x), 4634427792.775428), Float64(x * x), -333194155.0361419), Float64(x * x), 15299731.608802434) * (x ^ 7.0))) - Float64(18.229321614212964 * x)))) end
code[x_] := N[(N[Sqrt[N[(1.0 - N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * N[(x * 4964.451919603997), $MachinePrecision] + N[(N[(-402120.6054879238 * N[Power[x, 5.0], $MachinePrecision] + N[(N[(N[(N[(-44086479772.29958 * N[(x * x), $MachinePrecision] + 4634427792.775428), $MachinePrecision] * N[(x * x), $MachinePrecision] + -333194155.0361419), $MachinePrecision] * N[(x * x), $MachinePrecision] + 15299731.608802434), $MachinePrecision] * N[Power[x, 7.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(18.229321614212964 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \sqrt{1 - {x}^{2}} \cdot \mathsf{fma}\left(x \cdot x, x \cdot 4964.451919603997, \mathsf{fma}\left(-402120.6054879238, {x}^{5}, \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-44086479772.29958, x \cdot x, 4634427792.775428\right), x \cdot x, -333194155.0361419\right), x \cdot x, 15299731.608802434\right) \cdot {x}^{7}\right) - 18.229321614212964 \cdot x\right) \end{array}
Initial program 99.7%
Applied rewrites99.7%
Taylor expanded in x around 0
*-commutative
N/A
lower-*.f64
N/A
+-commutative
N/A
*-commutative
N/A
lower-fma.f64
N/A
sub-neg
N/A
*-commutative
N/A
metadata-eval
N/A
lower-fma.f64
N/A
+-commutative
N/A
lower-fma.f64
N/A
unpow2
N/A
lower-*.f64
N/A
unpow2
N/A
lower-*.f64
N/A
unpow2
N/A
lower-*.f64
N/A
lower-pow.f64
99.3
Applied rewrites99.3%
(FPCore (x) :precision binary64 (* (- (fma (pow x 3.0) 4964.451919603997 (* (fma (fma -333194155.0361419 (* x x) 15299731.608802434) (* x x) -402120.6054879238) (pow x 5.0))) (* 18.229321614212964 x)) (sqrt (- 1.0 (* x x)))))
double code(double x) { return (fma(pow(x, 3.0), 4964.451919603997, (fma(fma(-333194155.0361419, (x * x), 15299731.608802434), (x * x), -402120.6054879238) * pow(x, 5.0))) - (18.229321614212964 * x)) * sqrt((1.0 - (x * x))); }
function code(x) return Float64(Float64(fma((x ^ 3.0), 4964.451919603997, Float64(fma(fma(-333194155.0361419, Float64(x * x), 15299731.608802434), Float64(x * x), -402120.6054879238) * (x ^ 5.0))) - Float64(18.229321614212964 * x)) * sqrt(Float64(1.0 - Float64(x * x)))) end
code[x_] := N[(N[(N[(N[Power[x, 3.0], $MachinePrecision] * 4964.451919603997 + N[(N[(N[(-333194155.0361419 * N[(x * x), $MachinePrecision] + 15299731.608802434), $MachinePrecision] * N[(x * x), $MachinePrecision] + -402120.6054879238), $MachinePrecision] * N[Power[x, 5.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(18.229321614212964 * x), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(1.0 - N[(x * x), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \left(\mathsf{fma}\left({x}^{3}, 4964.451919603997, \mathsf{fma}\left(\mathsf{fma}\left(-333194155.0361419, x \cdot x, 15299731.608802434\right), x \cdot x, -402120.6054879238\right) \cdot {x}^{5}\right) - 18.229321614212964 \cdot x\right) \cdot \sqrt{1 - x \cdot x} \end{array}
Initial program 99.7%
Taylor expanded in x around 0
lower-*.f64
N/A
lower-pow.f64
N/A
sub-neg
N/A
*-commutative
N/A
metadata-eval
N/A
lower-fma.f64
N/A
+-commutative
N/A
lower-fma.f64
N/A
unpow2
N/A
lower-*.f64
N/A
unpow2
N/A
lower-*.f64
99.2
Applied rewrites99.2%
Applied rewrites99.2%
(FPCore (x) :precision binary64 (* (fma (fma (fma 15500172.494389046 (* x x) -404600.552782524) (* x x) 4973.566580411104) (* x x) -18.229321614212964) x))
double code(double x) { return fma(fma(fma(15500172.494389046, (x * x), -404600.552782524), (x * x), 4973.566580411104), (x * x), -18.229321614212964) * x; }
function code(x) return Float64(fma(fma(fma(15500172.494389046, Float64(x * x), -404600.552782524), Float64(x * x), 4973.566580411104), Float64(x * x), -18.229321614212964) * x) end
code[x_] := N[(N[(N[(N[(15500172.494389046 * N[(x * x), $MachinePrecision] + -404600.552782524), $MachinePrecision] * N[(x * x), $MachinePrecision] + 4973.566580411104), $MachinePrecision] * N[(x * x), $MachinePrecision] + -18.229321614212964), $MachinePrecision] * x), $MachinePrecision]
\begin{array}{l} \\ \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(15500172.494389046, x \cdot x, -404600.552782524\right), x \cdot x, 4973.566580411104\right), x \cdot x, -18.229321614212964\right) \cdot x \end{array}
Initial program 99.7%
Applied rewrites99.7%
Taylor expanded in x around 0
*-commutative
N/A
lower-*.f64
N/A
Applied rewrites99.1%
(FPCore (x) :precision binary64 (* (fma (fma -404600.552782524 (* x x) 4973.566580411104) (* x x) -18.229321614212964) x))
double code(double x) { return fma(fma(-404600.552782524, (x * x), 4973.566580411104), (x * x), -18.229321614212964) * x; }
function code(x) return Float64(fma(fma(-404600.552782524, Float64(x * x), 4973.566580411104), Float64(x * x), -18.229321614212964) * x) end
code[x_] := N[(N[(N[(-404600.552782524 * N[(x * x), $MachinePrecision] + 4973.566580411104), $MachinePrecision] * N[(x * x), $MachinePrecision] + -18.229321614212964), $MachinePrecision] * x), $MachinePrecision]
\begin{array}{l} \\ \mathsf{fma}\left(\mathsf{fma}\left(-404600.552782524, x \cdot x, 4973.566580411104\right), x \cdot x, -18.229321614212964\right) \cdot x \end{array}
Initial program 99.7%
Applied rewrites99.7%
Taylor expanded in x around 0
*-commutative
N/A
lower-*.f64
N/A
sub-neg
N/A
*-commutative
N/A
metadata-eval
N/A
lower-fma.f64
N/A
+-commutative
N/A
lower-fma.f64
N/A
unpow2
N/A
lower-*.f64
N/A
unpow2
N/A
lower-*.f64
99.0
Applied rewrites99.0%
(FPCore (x) :precision binary64 (* (fma 4973.566580411104 (* x x) -18.229321614212964) x))
double code(double x) { return fma(4973.566580411104, (x * x), -18.229321614212964) * x; }
function code(x) return Float64(fma(4973.566580411104, Float64(x * x), -18.229321614212964) * x) end
code[x_] := N[(N[(4973.566580411104 * N[(x * x), $MachinePrecision] + -18.229321614212964), $MachinePrecision] * x), $MachinePrecision]
\begin{array}{l} \\ \mathsf{fma}\left(4973.566580411104, x \cdot x, -18.229321614212964\right) \cdot x \end{array}
Initial program 99.7%
Applied rewrites99.7%
Taylor expanded in x around 0
*-commutative
N/A
lower-*.f64
N/A
sub-neg
N/A
metadata-eval
N/A
lower-fma.f64
N/A
unpow2
N/A
lower-*.f64
98.8
Applied rewrites98.8%
(FPCore (x) :precision binary64 (* 1.0 (* -18.229321614212964 x)))
double code(double x) { return 1.0 * (-18.229321614212964 * x); }
real(8) function code(x) real(8), intent (in) :: x code = 1.0d0 * ((-18.229321614212964d0) * x) end function
public static double code(double x) { return 1.0 * (-18.229321614212964 * x); }
def code(x): return 1.0 * (-18.229321614212964 * x)
function code(x) return Float64(1.0 * Float64(-18.229321614212964 * x)) end
function tmp = code(x) tmp = 1.0 * (-18.229321614212964 * x); end
code[x_] := N[(1.0 * N[(-18.229321614212964 * x), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ 1 \cdot \left(-18.229321614212964 \cdot x\right) \end{array}
Initial program 99.7%
Taylor expanded in x around 0
lower-*.f64
98.2
Applied rewrites98.2%
Taylor expanded in x around 0
Applied rewrites98.2%
herbie shell --seed 1
(FPCore (x)
:name "sqrt(1 - pow(x, 2))*(346759527252.22327*pow(x, 39) - 3252516578403.7652*pow(x, 37) + 14066078189720.179*pow(x, 35) - 37196962323926.696*pow(x, 33) + 67260260640524.985*pow(x, 31) - 88101468162941.178*pow(x, 29) + 86399024333705.6*pow(x, 27) - 64661103499212.506*pow(x, 25) + 37304482788007.215*pow(x, 23) - 16645562866606.394*pow(x, 21) + 5730439675389.0865*pow(x, 19) - 1509869313546.277*pow(x, 17) + 300207933687.56385*pow(x, 15) - 44086479772.299586*pow(x, 13) + 4634427792.7754282*pow(x, 11) - 333194155.03614189*pow(x, 9) + 15299731.608802434*pow(x, 7) - 402120.6054879238*pow(x, 5) + 4964.4519196039976*pow(x, 3) - 18.229321614212965*x);"
:precision binary64
:pre (and (<= -1.0 x) (<= x 1.0))
(* (sqrt (- 1.0 (pow x 2.0))) (- (+ (- (+ (- (+ (- (+ (- (+ (- (+ (- (+ (- (+ (- (+ (- (* 346759527252.22327 (pow x 39.0)) (* 3252516578403.765 (pow x 37.0))) (* 14066078189720.18 (pow x 35.0))) (* 37196962323926.695 (pow x 33.0))) (* 67260260640524.984 (pow x 31.0))) (* 88101468162941.17 (pow x 29.0))) (* 86399024333705.6 (pow x 27.0))) (* 64661103499212.51 (pow x 25.0))) (* 37304482788007.22 (pow x 23.0))) (* 16645562866606.395 (pow x 21.0))) (* 5730439675389.087 (pow x 19.0))) (* 1509869313546.277 (pow x 17.0))) (* 300207933687.56384 (pow x 15.0))) (* 44086479772.29958 (pow x 13.0))) (* 4634427792.775428 (pow x 11.0))) (* 333194155.0361419 (pow x 9.0))) (* 15299731.608802434 (pow x 7.0))) (* 402120.6054879238 (pow x 5.0))) (* 4964.451919603997 (pow x 3.0))) (* 18.229321614212964 x))))