Diagrams.TwoD.Ellipse:ellipse from diagrams-lib-1.3.0.3

Time bar (total: 3.5s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze2.0ms (0.1%)

Memory
2.0MiB live, 2.0MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
0%0%50%0%0%50%0%3
50%25%25%0%0%50%0%4
75%37.5%12.5%0%0%50%0%5
87.5%43.7%6.2%0%0%50%0%6
93.8%46.9%3.1%0%0%50%0%7
96.9%48.4%1.6%0%0%50%0%8
98.4%49.2%0.8%0%0%50%0%9
99.2%49.6%0.4%0%0%50%0%10
99.6%49.8%0.2%0%0%50%0%11
99.8%49.9%0.1%0%0%50%0%12
Compiler

Compiled 8 to 7 computations (12.5% saved)

sample806.0ms (22.8%)

Memory
-106.3MiB live, 683.1MiB allocated
Samples
613.0ms8 256×0valid
0.0ms0invalid
Precisions
Click to see histograms. Total time spent on operations: 422.0ms
ival-sqrt: 261.0ms (61.9% of total)
ival-mult: 100.0ms (23.7% of total)
ival-sub: 47.0ms (11.1% of total)
ival-true: 6.0ms (1.4% of total)
exact: 5.0ms (1.2% of total)
ival-assert: 3.0ms (0.7% of total)
Bogosity

explain62.0ms (1.8%)

Memory
9.5MiB live, 86.1MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
00-0-#s(literal 1 binary64)
00-0-(-.f64 #s(literal 1 binary64) (*.f64 x x))
00-0-(*.f64 x x)
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
23.0ms512×0valid
Compiler

Compiled 42 to 19 computations (54.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 5.0ms (39.8% of total)
ival-sqrt: 4.0ms (31.8% of total)
ival-sub: 3.0ms (23.9% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess410.0ms (11.6%)

Memory
18.8MiB live, 249.8MiB allocated
Algorithm
egg-herbie
Rules
30 426×lower-fma.f64
30 426×lower-fma.f32
3 778×lower-*.f32
3 776×lower-*.f64
2 412×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
12513
24513
38713
411613
516713
628013
750713
890013
9146713
10383913
11553713
12630013
13659813
14665413
15668613
16694813
17754213
056
086
1156
2226
3306
4456
5656
61086
73056
85856
911596
1020706
1137796
1247336
1350516
1453376
1555066
1655836
1758506
1868486
1979046
082896
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
Outputs
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
Symmetry

(abs x)

Compiler

Compiled 6 to 5 computations (16.7% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify266.0ms (7.5%)

Memory
3.0MiB live, 238.2MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(-.f64 #s(literal 1 binary64) (*.f64 x x))
cost-diff0
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
Rules
30 426×lower-fma.f64
30 426×lower-fma.f32
3 778×lower-*.f32
3 776×lower-*.f64
2 412×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0516
0816
11516
22216
33016
44516
56516
610816
730516
858516
9115916
10207016
11377916
12473316
13505116
14533716
15550616
16558316
17585016
18684816
19790416
0828916
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
(-.f64 #s(literal 1 binary64) (*.f64 x x))
#s(literal 1 binary64)
(*.f64 x x)
x
Outputs
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
(-.f64 #s(literal 1 binary64) (*.f64 x x))
#s(literal 1 binary64)
(*.f64 x x)
x

localize21.0ms (0.6%)

Memory
-17.4MiB live, 29.9MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(-.f64 #s(literal 1 binary64) (*.f64 x x))
accuracy0
(*.f64 x x)
accuracy0.00390625
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
Samples
16.0ms256×0valid
Compiler

Compiled 18 to 7 computations (61.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 2.0ms (37.8% of total)
ival-sqrt: 2.0ms (37.8% of total)
ival-sub: 1.0ms (18.9% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.1%)

Memory
6.1MiB live, 6.1MiB allocated
Counts
3 → 36
Calls
Call 1
Inputs
#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())
#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())
Outputs
#s(alt 1 (taylor 0 x) (#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2))) (taylor 0 x) (#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -1/16 (pow x 2)) 1/8)) 1/2))) (taylor 0 x) (#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1 (pow x 2))) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1 (pow x 2))) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1 (pow x 2))) (taylor 0 x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt -1)) (taylor inf x) (#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1)))))) (taylor inf x) (#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3))))) (taylor inf x) (#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3)))))) (taylor inf x) (#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1)) (taylor inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt -1))) (taylor -inf x) (#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1))))))) (taylor -inf x) (#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3)))))) (taylor -inf x) (#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3))))))) (taylor -inf x) (#s(alt (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (patch (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1)) (taylor -inf x) (#s(alt (-.f64 #s(literal 1 binary64) (*.f64 x x)) (patch (-.f64 #s(literal 1 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((sqrt (- 1 (* x x))) (- 1 (* x x)) (* x x))
1.0ms
x
@0
((sqrt (- 1 (* x x))) (- 1 (* x x)) (* x x))
0.0ms
x
@-inf
((sqrt (- 1 (* x x))) (- 1 (* x x)) (* x x))

simplify106.0ms (3%)

Memory
19.8MiB live, 130.4MiB allocated
Algorithm
egg-herbie
Rules
8 366×lower-fma.f64
8 366×lower-fma.f32
3 130×lower-*.f64
3 130×lower-*.f32
1 412×unsub-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
062295
1149286
2419278
31279264
43834263
56189263
08166252
Stop Event
iter limit
node limit
Counts
36 → 36
Calls
Call 1
Inputs
1
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -1/16 (pow x 2)) 1/8)) 1/2)))
1
(+ 1 (* -1 (pow x 2)))
(+ 1 (* -1 (pow x 2)))
(+ 1 (* -1 (pow x 2)))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* x (sqrt -1))
(* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1))))))
(* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3)))))
(* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3))))))
(* -1 (pow x 2))
(* (pow x 2) (- (/ 1 (pow x 2)) 1))
(* (pow x 2) (- (/ 1 (pow x 2)) 1))
(* (pow x 2) (- (/ 1 (pow x 2)) 1))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* -1 (* x (sqrt -1)))
(* -1 (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1)))))))
(* -1 (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3))))))
(* -1 (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3)))))))
(* -1 (pow x 2))
(* (pow x 2) (- (/ 1 (pow x 2)) 1))
(* (pow x 2) (- (/ 1 (pow x 2)) 1))
(* (pow x 2) (- (/ 1 (pow x 2)) 1))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
Outputs
1
#s(literal 1 binary64)
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2)))
(fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -1/16 (pow x 2)) 1/8)) 1/2)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/16 binary64) (*.f64 x x) #s(literal -1/8 binary64)) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
1
#s(literal 1 binary64)
(+ 1 (* -1 (pow x 2)))
(fma.f64 (neg.f64 x) x #s(literal 1 binary64))
(+ 1 (* -1 (pow x 2)))
(fma.f64 (neg.f64 x) x #s(literal 1 binary64))
(+ 1 (* -1 (pow x 2)))
(fma.f64 (neg.f64 x) x #s(literal 1 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* x (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) x)
(* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1))))))
(fma.f64 (sqrt.f64 #s(literal -1 binary64)) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3)))))
(fma.f64 (-.f64 (sqrt.f64 #s(literal -1 binary64)) (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64)))) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3))))))
(fma.f64 (-.f64 (+.f64 (/.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (pow.f64 x #s(literal 6 binary64))) (sqrt.f64 #s(literal -1 binary64))) (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64)))) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* (pow x 2) (- (/ 1 (pow x 2)) 1))
(fma.f64 (neg.f64 x) x #s(literal 1 binary64))
(* (pow x 2) (- (/ 1 (pow x 2)) 1))
(fma.f64 (neg.f64 x) x #s(literal 1 binary64))
(* (pow x 2) (- (/ 1 (pow x 2)) 1))
(fma.f64 (neg.f64 x) x #s(literal 1 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* -1 (* x (sqrt -1)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal -1 binary64)))
(* -1 (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1)))))))
(neg.f64 (fma.f64 (sqrt.f64 #s(literal -1 binary64)) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x))))
(* -1 (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3))))))
(fma.f64 (-.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) x (/.f64 #s(literal -1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* -1 (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3)))))))
(fma.f64 (-.f64 (-.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64))) (/.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (pow.f64 x #s(literal 6 binary64)))) (sqrt.f64 #s(literal -1 binary64))) x (/.f64 #s(literal -1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* (pow x 2) (- (/ 1 (pow x 2)) 1))
(fma.f64 (neg.f64 x) x #s(literal 1 binary64))
(* (pow x 2) (- (/ 1 (pow x 2)) 1))
(fma.f64 (neg.f64 x) x #s(literal 1 binary64))
(* (pow x 2) (- (/ 1 (pow x 2)) 1))
(fma.f64 (neg.f64 x) x #s(literal 1 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)

rewrite420.0ms (11.9%)

Memory
-25.2MiB live, 298.6MiB allocated
Rules
4 716×lower-fma.f64
4 716×lower-fma.f32
4 136×lower-/.f64
4 136×lower-/.f32
3 492×lower-*.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0514
0814
13214
218714
3134014
0936512
Stop Event
iter limit
node limit
iter limit
Counts
3 → 355
Calls
Call 1
Inputs
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
(-.f64 #s(literal 1 binary64) (*.f64 x x))
(*.f64 x x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval53.0ms (1.5%)

Memory
10.1MiB live, 94.5MiB allocated
Compiler

Compiled 9 639 to 1 265 computations (86.9% saved)

prune6.0ms (0.2%)

Memory
-16.9MiB live, 22.1MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New3883391
Fresh000
Picked011
Done000
Total3884392
Accuracy
100.0%
Counts
392 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
99.8%
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
99.7%
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
99.3%
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))
Compiler

Compiled 27 to 22 computations (18.5% saved)

simplify273.0ms (7.7%)

Memory
38.6MiB live, 225.4MiB allocated
Algorithm
egg-herbie
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64))
cost-diff0
(fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
cost-diff0
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
cost-diff0
(*.f64 x x)
cost-diff0
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
cost-diff0
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
cost-diff0
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))
Rules
25 508×lower-fma.f32
25 502×lower-fma.f64
4 196×lower-*.f32
4 194×lower-*.f64
2 376×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01476
02176
14076
26276
310176
414276
516576
620876
745576
876376
9144276
10309776
11443776
12574876
13604776
14636476
15640376
16643176
17649176
18732776
0805276
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(*.f64 x x)
x
#s(literal -1/2 binary64)
#s(literal 1 binary64)
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64))
#s(literal -1/8 binary64)
(*.f64 x x)
x
#s(literal -1/2 binary64)
#s(literal 1 binary64)
Outputs
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
#s(approx (sqrt (- 1 (* x x))) (fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1 binary64))
(*.f64 x x)
x
#s(literal -1/2 binary64)
#s(literal 1 binary64)
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64))
#s(literal -1/8 binary64)
(*.f64 x x)
x
#s(literal -1/2 binary64)
#s(literal 1 binary64)

localize68.0ms (1.9%)

Memory
-15.0MiB live, 111.6MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0
(fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
accuracy0
(fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64))
accuracy0
(*.f64 x x)
accuracy0.1494408483000267
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
accuracy0
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
accuracy0
(*.f64 x x)
accuracy0.17644518501660506
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
accuracy0.43442420615710287
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))
Samples
59.0ms256×0valid
Compiler

Compiled 61 to 15 computations (75.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 51.0ms
ival-mult: 42.0ms (82.8% of total)
ival-add: 5.0ms (9.9% of total)
ival-sqrt: 2.0ms (3.9% of total)
ival-sub: 1.0ms (2% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series5.0ms (0.1%)

Memory
9.6MiB live, 9.6MiB allocated
Counts
7 → 84
Calls
Call 1
Inputs
#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())
#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())
#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())
#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())
Outputs
#s(alt 1 (taylor 0 x) (#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2))) (taylor 0 x) (#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -1/16 (pow x 2)) 1/8)) 1/2))) (taylor 0 x) (#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2))) (taylor 0 x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -1/16 (pow x 2)) 1/8)) 1/2))) (taylor 0 x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2))) (taylor 0 x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -1/16 (pow x 2)) 1/8)) 1/2))) (taylor 0 x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1/2 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2))) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2))) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt -1/2 (taylor 0 x) (#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* -1/8 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* -1/8 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* -1/8 (pow x 2)) 1/2) (taylor 0 x) (#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt -1)) (taylor inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1)))))) (taylor inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3))))) (taylor inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3)))))) (taylor inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt -1)) (taylor inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1)))))) (taylor inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3))))) (taylor inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3)))))) (taylor inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1/2 (pow x 2)) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1/2)) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1/2)) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1/2)) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt -1)) (taylor inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1)))))) (taylor inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3))))) (taylor inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3)))))) (taylor inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1/8 (pow x 4)) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 4) (+ 1/8 (* 1/2 (/ 1 (pow x 2)))))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (/ 1 (pow x 4)) (+ 1/8 (* 1/2 (/ 1 (pow x 2)))))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (/ 1 (pow x 4)) (+ 1/8 (* 1/2 (/ 1 (pow x 2)))))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/8 (pow x 2)) (taylor inf x) (#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2)))))) (taylor inf x) (#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2)))))) (taylor inf x) (#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2)))))) (taylor inf x) (#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt -1))) (taylor -inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1))))))) (taylor -inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3)))))) (taylor -inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3))))))) (taylor -inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) (patch #s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt -1))) (taylor -inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1))))))) (taylor -inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3)))))) (taylor -inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3))))))) (taylor -inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1/2 (pow x 2)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1/2)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1/2)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (/ 1 (pow x 2)) 1/2)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt -1))) (taylor -inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1))))))) (taylor -inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3)))))) (taylor -inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3))))))) (taylor -inf x) (#s(alt #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) (patch #s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1/8 (pow x 4)) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 4) (+ 1/8 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (/ 1 (pow x 4)) (+ 1/8 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (/ 1 (pow x 4)) (+ 1/8 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/8 (pow x 2)) (taylor -inf x) (#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (patch (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((sqrt (- 1 (* x x))) (sqrt (- 1 (* x x))) (+ (* (* x x) -1/2) 1) (* x x) (sqrt (- 1 (* x x))) (+ (* (+ (* -1/8 (* x x)) -1/2) (* x x)) 1) (+ (* -1/8 (* x x)) -1/2))
1.0ms
x
@0
((sqrt (- 1 (* x x))) (sqrt (- 1 (* x x))) (+ (* (* x x) -1/2) 1) (* x x) (sqrt (- 1 (* x x))) (+ (* (+ (* -1/8 (* x x)) -1/2) (* x x)) 1) (+ (* -1/8 (* x x)) -1/2))
1.0ms
x
@-inf
((sqrt (- 1 (* x x))) (sqrt (- 1 (* x x))) (+ (* (* x x) -1/2) 1) (* x x) (sqrt (- 1 (* x x))) (+ (* (+ (* -1/8 (* x x)) -1/2) (* x x)) 1) (+ (* -1/8 (* x x)) -1/2))

simplify238.0ms (6.7%)

Memory
7.0MiB live, 243.1MiB allocated
Algorithm
egg-herbie
Rules
13 116×lower-fma.f64
13 116×lower-fma.f32
3 116×lower-*.f64
3 116×lower-*.f32
2 008×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
070892
1183880
2566866
31748824
44797821
57808821
08192755
Stop Event
iter limit
node limit
Counts
84 → 84
Calls
Call 1
Inputs
1
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -1/16 (pow x 2)) 1/8)) 1/2)))
1
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -1/16 (pow x 2)) 1/8)) 1/2)))
1
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* -1/2 (pow x 2)))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
1
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -1/16 (pow x 2)) 1/8)) 1/2)))
1
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2)))
-1/2
(- (* -1/8 (pow x 2)) 1/2)
(- (* -1/8 (pow x 2)) 1/2)
(- (* -1/8 (pow x 2)) 1/2)
(* x (sqrt -1))
(* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1))))))
(* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3)))))
(* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3))))))
(* x (sqrt -1))
(* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1))))))
(* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3)))))
(* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3))))))
(* -1/2 (pow x 2))
(* (pow x 2) (- (/ 1 (pow x 2)) 1/2))
(* (pow x 2) (- (/ 1 (pow x 2)) 1/2))
(* (pow x 2) (- (/ 1 (pow x 2)) 1/2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* x (sqrt -1))
(* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1))))))
(* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3)))))
(* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3))))))
(* -1/8 (pow x 4))
(* -1 (* (pow x 4) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(* (pow x 4) (- (/ 1 (pow x 4)) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(* (pow x 4) (- (/ 1 (pow x 4)) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(* -1/8 (pow x 2))
(* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(* -1 (* x (sqrt -1)))
(* -1 (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1)))))))
(* -1 (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3))))))
(* -1 (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3)))))))
(* -1 (* x (sqrt -1)))
(* -1 (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1)))))))
(* -1 (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3))))))
(* -1 (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3)))))))
(* -1/2 (pow x 2))
(* (pow x 2) (- (/ 1 (pow x 2)) 1/2))
(* (pow x 2) (- (/ 1 (pow x 2)) 1/2))
(* (pow x 2) (- (/ 1 (pow x 2)) 1/2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* -1 (* x (sqrt -1)))
(* -1 (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1)))))))
(* -1 (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3))))))
(* -1 (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3)))))))
(* -1/8 (pow x 4))
(* -1 (* (pow x 4) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(* (pow x 4) (- (/ 1 (pow x 4)) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(* (pow x 4) (- (/ 1 (pow x 4)) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(* -1/8 (pow x 2))
(* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
Outputs
1
#s(literal 1 binary64)
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2)))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -1/16 (pow x 2)) 1/8)) 1/2)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/16 binary64) (*.f64 x x) #s(literal -1/8 binary64)) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
1
#s(literal 1 binary64)
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2)))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -1/16 (pow x 2)) 1/8)) 1/2)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/16 binary64) (*.f64 x x) #s(literal -1/8 binary64)) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
1
#s(literal 1 binary64)
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
1
#s(literal 1 binary64)
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2)))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -1/16 (pow x 2)) 1/8)) 1/2)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/16 binary64) (*.f64 x x) #s(literal -1/8 binary64)) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
1
#s(literal 1 binary64)
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2)))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* -1/8 (pow x 2)) 1/2)))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
-1/2
#s(literal -1/2 binary64)
(- (* -1/8 (pow x 2)) 1/2)
(fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64))
(- (* -1/8 (pow x 2)) 1/2)
(fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64))
(- (* -1/8 (pow x 2)) 1/2)
(fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64))
(* x (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) x)
(* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1))))))
(fma.f64 (sqrt.f64 #s(literal -1 binary64)) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3)))))
(fma.f64 (-.f64 (sqrt.f64 #s(literal -1 binary64)) (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64)))) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3))))))
(fma.f64 (-.f64 (+.f64 (/.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (pow.f64 x #s(literal 6 binary64))) (sqrt.f64 #s(literal -1 binary64))) (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64)))) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* x (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) x)
(* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1))))))
(fma.f64 (sqrt.f64 #s(literal -1 binary64)) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3)))))
(fma.f64 (-.f64 (sqrt.f64 #s(literal -1 binary64)) (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64)))) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3))))))
(fma.f64 (-.f64 (+.f64 (/.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (pow.f64 x #s(literal 6 binary64))) (sqrt.f64 #s(literal -1 binary64))) (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64)))) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* -1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/2 binary64))
(* (pow x 2) (- (/ 1 (pow x 2)) 1/2))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(* (pow x 2) (- (/ 1 (pow x 2)) 1/2))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(* (pow x 2) (- (/ 1 (pow x 2)) 1/2))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* x (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) x)
(* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1))))))
(fma.f64 (sqrt.f64 #s(literal -1 binary64)) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3)))))
(fma.f64 (-.f64 (sqrt.f64 #s(literal -1 binary64)) (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64)))) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3))))))
(fma.f64 (-.f64 (+.f64 (/.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (pow.f64 x #s(literal 6 binary64))) (sqrt.f64 #s(literal -1 binary64))) (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64)))) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* -1/8 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/8 binary64))
(* -1 (* (pow x 4) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/8 binary64) (*.f64 (*.f64 x x) #s(literal -1/2 binary64)))
(* (pow x 4) (- (/ 1 (pow x 4)) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(* (pow x 4) (- (/ 1 (pow x 4)) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(* -1/8 (pow x 2))
(*.f64 #s(literal -1/8 binary64) (*.f64 x x))
(* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64))
(* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64))
(* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64))
(* -1 (* x (sqrt -1)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal -1 binary64)))
(* -1 (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1)))))))
(neg.f64 (fma.f64 (sqrt.f64 #s(literal -1 binary64)) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x))))
(* -1 (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3))))))
(fma.f64 (-.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) x (/.f64 #s(literal -1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* -1 (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3)))))))
(fma.f64 (-.f64 (-.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) (/.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (pow.f64 x #s(literal 6 binary64)))) x (/.f64 #s(literal -1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* -1 (* x (sqrt -1)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal -1 binary64)))
(* -1 (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1)))))))
(neg.f64 (fma.f64 (sqrt.f64 #s(literal -1 binary64)) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x))))
(* -1 (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3))))))
(fma.f64 (-.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) x (/.f64 #s(literal -1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* -1 (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3)))))))
(fma.f64 (-.f64 (-.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) (/.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (pow.f64 x #s(literal 6 binary64)))) x (/.f64 #s(literal -1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* -1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/2 binary64))
(* (pow x 2) (- (/ 1 (pow x 2)) 1/2))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(* (pow x 2) (- (/ 1 (pow x 2)) 1/2))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(* (pow x 2) (- (/ 1 (pow x 2)) 1/2))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* -1 (* x (sqrt -1)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal -1 binary64)))
(* -1 (* x (+ (sqrt -1) (* 1/2 (/ 1 (* (pow x 2) (sqrt -1)))))))
(neg.f64 (fma.f64 (sqrt.f64 #s(literal -1 binary64)) x (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x))))
(* -1 (* x (- (+ (sqrt -1) (/ 1/2 (* (pow x 2) (sqrt -1)))) (/ 1/8 (* (pow x 4) (pow (sqrt -1) 3))))))
(fma.f64 (-.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) x (/.f64 #s(literal -1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* -1 (* x (- (+ (sqrt -1) (+ (/ 1/2 (* (pow x 2) (sqrt -1))) (* 1/16 (/ 1 (* (pow x 6) (pow (sqrt -1) 5)))))) (* 1/8 (/ 1 (* (pow x 4) (pow (sqrt -1) 3)))))))
(fma.f64 (-.f64 (-.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 x #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) (/.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (pow.f64 x #s(literal 6 binary64)))) x (/.f64 #s(literal -1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) x)))
(* -1/8 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/8 binary64))
(* -1 (* (pow x 4) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/8 binary64) (*.f64 (*.f64 x x) #s(literal -1/2 binary64)))
(* (pow x 4) (- (/ 1 (pow x 4)) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(* (pow x 4) (- (/ 1 (pow x 4)) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(* -1/8 (pow x 2))
(*.f64 #s(literal -1/8 binary64) (*.f64 x x))
(* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64))
(* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64))
(* -1 (* (pow x 2) (+ 1/8 (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) x) x #s(literal -1/2 binary64))

rewrite173.0ms (4.9%)

Memory
7.5MiB live, 234.9MiB allocated
Rules
8 300×lower-fma.f32
8 294×lower-fma.f64
4 584×lower-*.f32
4 582×lower-*.f64
2 484×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01465
02165
19065
262865
3627065
0810865
Stop Event
iter limit
node limit
iter limit
Counts
7 → 294
Calls
Call 1
Inputs
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(*.f64 x x)
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval221.0ms (6.3%)

Memory
2.5MiB live, 87.6MiB allocated
Compiler

Compiled 9 574 to 1 173 computations (87.7% saved)

prune11.0ms (0.3%)

Memory
-7.1MiB live, 29.8MiB allocated
Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New4220422
Fresh000
Picked033
Done011
Total4224426
Accuracy
100.0%
Counts
426 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
99.8%
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
99.7%
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
99.3%
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))
Compiler

Compiled 54 to 35 computations (35.2% saved)

regimes7.0ms (0.2%)

Memory
14.4MiB live, 14.5MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
Outputs
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
Calls

4 calls:

2.0ms
x
2.0ms
(*.f64 x x)
1.0ms
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
1.0ms
(-.f64 #s(literal 1 binary64) (*.f64 x x))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
100.0%1(-.f64 #s(literal 1 binary64) (*.f64 x x))
100.0%1(*.f64 x x)
Compiler

Compiled 15 to 12 computations (20% saved)

regimes8.0ms (0.2%)

Memory
-27.4MiB live, 11.2MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
Outputs
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
Calls

4 calls:

4.0ms
(*.f64 x x)
1.0ms
x
1.0ms
(-.f64 #s(literal 1 binary64) (*.f64 x x))
1.0ms
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
Results
AccuracySegmentsBranch
99.7%1x
99.7%1(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
99.7%1(-.f64 #s(literal 1 binary64) (*.f64 x x))
99.7%1(*.f64 x x)
Compiler

Compiled 15 to 12 computations (20% saved)

regimes4.0ms (0.1%)

Memory
13.5MiB live, 13.5MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))
Outputs
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))
Calls

4 calls:

1.0ms
x
1.0ms
(*.f64 x x)
1.0ms
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
1.0ms
(-.f64 #s(literal 1 binary64) (*.f64 x x))
Results
AccuracySegmentsBranch
99.3%1x
99.3%1(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
99.3%1(-.f64 #s(literal 1 binary64) (*.f64 x x))
99.3%1(*.f64 x x)
Compiler

Compiled 15 to 12 computations (20% saved)

simplify27.0ms (0.8%)

Memory
12.9MiB live, 51.2MiB allocated
Algorithm
egg-herbie
Rules
+-commutative-binary64-+.f64
sub-neg-binary64-neg.f64-+.f64--.f64
*-commutative-binary64-*.f64
neg-sub0-binary64--.f64-neg.f64
neg-mul-1-binary64-*.f64-neg.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01227
12027
22727
33127
43327
Stop Event
saturated
Calls
Call 1
Inputs
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))
Outputs
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)))
#s(approx (sqrt (- 1 (* x x))) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
#s(approx (sqrt (- 1 (* x x))) #s(literal 1 binary64))

soundness268.0ms (7.6%)

Memory
-49.9MiB live, 127.4MiB allocated
Rules
8 366×lower-fma.f64
8 366×lower-fma.f32
3 130×lower-*.f64
3 130×lower-*.f32
1 412×unsub-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
062295
1149286
2419278
31279264
43834263
56189263
08166252
Stop Event
done
iter limit
node limit
Compiler

Compiled 22 to 16 computations (27.3% saved)

preprocess71.0ms (2%)

Memory
21.7MiB live, 63.5MiB allocated
Remove

(abs x)

Compiler

Compiled 66 to 48 computations (27.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...