bug366, discussion (missed optimization)

Time bar (total: 4.1s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze32.0ms (0.8%)

Memory
-13.6MiB live, 65.6MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
30.8%25%56.2%0.1%0%18.7%0%5
32%25%53.1%0.1%0%21.9%0%6
55.8%37.5%29.7%0.1%0%32.8%0%7
57.8%37.5%27.3%0.1%0%35.1%0%8
74.2%43.7%15.2%0.1%0%41%0%9
75.9%43.7%13.9%0.1%0%42.3%0%10
85.9%46.8%7.7%0.1%0%45.4%0%11
87%46.8%7%0.1%0%46.1%0%12
Compiler

Compiled 10 to 8 computations (20% saved)

sample1.4s (34.3%)

Memory
-8.4MiB live, 1 274.6MiB allocated
Samples
1.1s8 256×0valid
32.0ms657×0invalid
Precisions
Click to see histograms. Total time spent on operations: 570.0ms
ival-mult: 265.0ms (46.5% of total)
ival-sub: 181.0ms (31.8% of total)
ival-sqrt: 113.0ms (19.8% of total)
ival-true: 7.0ms (1.2% of total)
ival-assert: 4.0ms (0.7% of total)
Bogosity

explain107.0ms (2.6%)

Memory
10.3MiB live, 167.4MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1170-0-(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
130-0-(-.f64 (*.f64 a a) (*.f64 b b))
00-0-(*.f64 a a)
00-0-a
00-0-b
00-0-(*.f64 b b)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))oflow-rescue1050
(*.f64 b b)overflow13
(-.f64 (*.f64 a a) (*.f64 b b))overflow105
(*.f64 a a)overflow105
-.f64(-.f64 (*.f64 a a) (*.f64 b b))nan-rescue130
(*.f64 a a)overflow105
(*.f64 b b)overflow13
sqrt.f64(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))uflow-rescue120
(*.f64 b b)underflow122
(-.f64 (*.f64 a a) (*.f64 b b))underflow12
(*.f64 a a)underflow12
Confusion
Predicted +Predicted -
+1170
-0139
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+11700
-00139
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0139
1104
213
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
44.0ms512×0valid
Compiler

Compiled 58 to 22 computations (62.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 14.0ms
ival-mult: 7.0ms (49.3% of total)
ival-sqrt: 4.0ms (28.2% of total)
ival-sub: 2.0ms (14.1% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess424.0ms (10.3%)

Memory
-4.2MiB live, 269.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01642
15442
212842
333142
482742
5120042
6187642
7275642
8356642
9403242
10413842
11418442
12420242
13646442
14717142
15781542
068
0108
1188
2298
3558
41158
53188
65878
712578
825318
941978
1050568
1154258
1256558
1357698
1457698
1567298
1668898
1772098
1872098
1976098
2077698
2178498
2278498
2378498
0103358
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
Outputs
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
Symmetry

(abs b)

(abs a)

Compiler

Compiled 8 to 6 computations (25% saved)

eval0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.3MiB live, 1.3MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
57.0%
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
Compiler

Compiled 8 to 6 computations (25% saved)

simplify342.0ms (8.3%)

Memory
-12.2MiB live, 192.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 b b)
cost-diff0
(*.f64 a a)
cost-diff0
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
cost-diff128
(-.f64 (*.f64 a a) (*.f64 b b))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0623
01023
11823
22923
35523
411523
531823
658723
7125723
8253123
9419723
10505623
11542523
12565523
13576923
14576923
15672923
16688923
17720923
18720923
19760923
20776923
21784923
22784923
23784923
01033523
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 a a)
a
(*.f64 b b)
b
Outputs
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (-.f64 a b) (+.f64 b a))
(*.f64 a a)
a
(*.f64 b b)
b

localize54.0ms (1.3%)

Memory
27.5MiB live, 102.3MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 b b)
accuracy0
(*.f64 a a)
accuracy2.5898437500000004
(-.f64 (*.f64 a a) (*.f64 b b))
accuracy27.241348465738422
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
Samples
15.0ms256×0valid
Compiler

Compiled 25 to 8 computations (68% saved)

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

series7.0ms (0.2%)

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

6 calls:

TimeVariablePointExpression
1.0ms
b
@inf
((- (* a a) (* b b)) (sqrt (- (* a a) (* b b))) (* a a) (* b b))
1.0ms
b
@0
((- (* a a) (* b b)) (sqrt (- (* a a) (* b b))) (* a a) (* b b))
1.0ms
a
@0
((- (* a a) (* b b)) (sqrt (- (* a a) (* b b))) (* a a) (* b b))
1.0ms
a
@inf
((- (* a a) (* b b)) (sqrt (- (* a a) (* b b))) (* a a) (* b b))
1.0ms
b
@-inf
((- (* a a) (* b b)) (sqrt (- (* a a) (* b b))) (* a a) (* b b))

simplify161.0ms (3.9%)

Memory
-20.9MiB live, 172.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0119757
1332757
21128744
34541722
08122682
Stop Event
iter limit
node limit
Counts
72 → 70
Calls
Call 1
Inputs
(pow a 2)
(+ (* -1 (pow b 2)) (pow a 2))
(+ (* -1 (pow b 2)) (pow a 2))
(+ (* -1 (pow b 2)) (pow a 2))
a
(+ a (* -1/2 (/ (pow b 2) a)))
(+ a (* (pow b 2) (- (* -1/8 (/ (pow b 2) (pow a 3))) (* 1/2 (/ 1 a)))))
(+ a (* (pow b 2) (- (* (pow b 2) (- (* -1/16 (/ (pow b 2) (pow a 5))) (* 1/8 (/ 1 (pow a 3))))) (* 1/2 (/ 1 a)))))
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(* -1 (pow b 2))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(* b (sqrt -1))
(* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(* -1 (pow b 2))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(* -1 (* b (sqrt -1)))
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))))
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(* -1 (pow b 2))
(- (pow a 2) (pow b 2))
(- (pow a 2) (pow b 2))
(- (pow a 2) (pow b 2))
(* b (sqrt -1))
(+ (* 1/2 (/ (pow a 2) (* b (sqrt -1)))) (* b (sqrt -1)))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* -1/8 (/ (pow a 2) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* (pow a 2) (- (* 1/16 (/ (pow a 2) (* (pow b 5) (pow (sqrt -1) 5)))) (* 1/8 (/ 1 (* (pow b 3) (pow (sqrt -1) 3)))))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(pow a 2)
(pow a 2)
(pow a 2)
(pow a 2)
(pow a 2)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
a
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4))))))
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6)))))))
(pow a 2)
(pow a 2)
(pow a 2)
(pow a 2)
(pow a 2)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(* -1 a)
(* -1 (* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2))))))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6))))))))
(pow a 2)
(pow a 2)
(pow a 2)
(pow a 2)
Outputs
(pow a 2)
(*.f64 a a)
(+ (* -1 (pow b 2)) (pow a 2))
(*.f64 (-.f64 a b) (+.f64 b a))
(+ (* -1 (pow b 2)) (pow a 2))
(*.f64 (-.f64 a b) (+.f64 b a))
(+ (* -1 (pow b 2)) (pow a 2))
(*.f64 (-.f64 a b) (+.f64 b a))
a
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a)
(+ a (* (pow b 2) (- (* -1/8 (/ (pow b 2) (pow a 3))) (* 1/2 (/ 1 a)))))
(fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 3 binary64))) b) b (/.f64 #s(literal -1/2 binary64) a)) (*.f64 b b) a)
(+ a (* (pow b 2) (- (* (pow b 2) (- (* -1/16 (/ (pow b 2) (pow a 5))) (* 1/8 (/ 1 (pow a 3))))) (* 1/2 (/ 1 a)))))
(fma.f64 (pow.f64 b #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal -1/16 binary64) b) (/.f64 b (pow.f64 a #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 3 binary64)))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
(pow b 2)
(*.f64 b b)
(pow b 2)
(*.f64 b b)
(pow b 2)
(*.f64 b b)
(pow b 2)
(*.f64 b b)
(* -1 (pow b 2))
(*.f64 (neg.f64 b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (fma.f64 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64)) (*.f64 b b))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (fma.f64 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64)) (*.f64 b b))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (fma.f64 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64)) (*.f64 b b))
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) b))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (fma.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 b #s(literal 6 binary64))) (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64)))) b))
(pow b 2)
(*.f64 b b)
(pow b 2)
(*.f64 b b)
(pow b 2)
(*.f64 b b)
(pow b 2)
(*.f64 b b)
(* -1 (pow b 2))
(*.f64 (neg.f64 b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (fma.f64 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64)) (*.f64 b b))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (fma.f64 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64)) (*.f64 b b))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (fma.f64 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64)) (*.f64 b b))
(* -1 (* b (sqrt -1)))
(*.f64 (neg.f64 b) (sqrt.f64 #s(literal -1 binary64)))
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) b)))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (fma.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 b #s(literal 6 binary64))) (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64)))) b)))
(pow b 2)
(*.f64 b b)
(pow b 2)
(*.f64 b b)
(pow b 2)
(*.f64 b b)
(pow b 2)
(*.f64 b b)
(* -1 (pow b 2))
(*.f64 (neg.f64 b) b)
(- (pow a 2) (pow b 2))
(*.f64 (-.f64 a b) (+.f64 b a))
(- (pow a 2) (pow b 2))
(*.f64 (-.f64 a b) (+.f64 b a))
(- (pow a 2) (pow b 2))
(*.f64 (-.f64 a b) (+.f64 b a))
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(+ (* 1/2 (/ (pow a 2) (* b (sqrt -1)))) (* b (sqrt -1)))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* -1/8 (/ (pow a 2) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(fma.f64 (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (+.f64 (/.f64 #s(literal 1/2 binary64) b) (/.f64 (*.f64 #s(literal -1/8 binary64) (*.f64 a a)) (neg.f64 (pow.f64 b #s(literal 3 binary64))))) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* (pow a 2) (- (* 1/16 (/ (pow a 2) (* (pow b 5) (pow (sqrt -1) 5)))) (* 1/8 (/ 1 (* (pow b 3) (pow (sqrt -1) 3)))))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) a) (/.f64 a (pow.f64 b #s(literal 5 binary64))) (/.f64 (/.f64 #s(literal 1/8 binary64) (pow.f64 b #s(literal 3 binary64))) (sqrt.f64 #s(literal -1 binary64)))) (*.f64 a a) (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))) (*.f64 a a) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (-.f64 a b) (+.f64 b a))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (-.f64 a b) (+.f64 b a))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (-.f64 a b) (+.f64 b a))
a
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(fma.f64 (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) #s(literal 1 binary64) a)
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) a) (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) (fma.f64 (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) #s(literal 1 binary64) a))
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6)))))))
(fma.f64 (fma.f64 (pow.f64 b #s(literal 6 binary64)) (/.f64 #s(literal -1/16 binary64) (pow.f64 a #s(literal 6 binary64))) (*.f64 (pow.f64 b #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 4 binary64))))) a (fma.f64 (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) #s(literal 1 binary64) a))
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (-.f64 a b) (+.f64 b a))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (-.f64 a b) (+.f64 b a))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (-.f64 a b) (+.f64 b a))
(* -1 a)
(neg.f64 a)
(* -1 (* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) #s(literal 1 binary64) a))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) #s(literal 1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal 1/2 binary64) #s(literal -1 binary64))) a)
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6))))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 b #s(literal 6 binary64)) (pow.f64 a #s(literal 6 binary64))) #s(literal 1/16 binary64) (fma.f64 (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) #s(literal 1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal 1/2 binary64) #s(literal -1 binary64)))) a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)

rewrite230.0ms (5.6%)

Memory
26.0MiB live, 262.6MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0621
01021
13621
223921
3213521
0937821
Stop Event
iter limit
node limit
iter limit
Counts
4 → 326
Calls
Call 1
Inputs
(-.f64 (*.f64 a a) (*.f64 b b))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 a a)
(*.f64 b b)
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>

eval74.0ms (1.8%)

Memory
3.3MiB live, 76.3MiB allocated
Compiler

Compiled 10 807 to 1 293 computations (88% saved)

prune9.0ms (0.2%)

Memory
-26.9MiB live, 23.3MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New3933396
Fresh000
Picked101
Done000
Total3943397
Accuracy
100.0%
Counts
397 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
57.4%
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
100.0%
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
1.1%
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
Compiler

Compiled 17 to 16 computations (5.9% saved)

simplify145.0ms (3.5%)

Memory
23.3MiB live, 181.4MiB allocated
Algorithm
egg-herbie
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 a a)
cost-diff0
#s(approx (- (* a a) (* b b)) (*.f64 a a))
cost-diff0
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
cost-diff0
(/.f64 #s(literal -1/2 binary64) a)
cost-diff0
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
cost-diff0
(fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a)
cost-diff0
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
cost-diff0
(neg.f64 a)
cost-diff0
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01677
02377
14177
26377
39877
416377
536777
662277
7132977
8268977
9489577
10702777
0805377
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
(neg.f64 a)
a
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
(fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a)
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(/.f64 #s(literal -1/2 binary64) a)
#s(literal -1/2 binary64)
a
b
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
#s(approx (- (* a a) (* b b)) (*.f64 a a))
(*.f64 a a)
a
Outputs
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
(neg.f64 a)
a
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
(fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a)
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(/.f64 #s(literal -1/2 binary64) a)
#s(literal -1/2 binary64)
a
b
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
#s(approx (- (* a a) (* b b)) (*.f64 a a))
(*.f64 a a)
a

localize36.0ms (0.9%)

Memory
-13.6MiB live, 61.8MiB allocated
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 a a)
accuracy0
#s(approx (- (* a a) (* b b)) (*.f64 a a))
accuracy27.241348465738422
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
accuracy0
(fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a)
accuracy0
(/.f64 #s(literal -1/2 binary64) a)
accuracy0
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
accuracy0.1640625
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
accuracy0
(neg.f64 a)
accuracy63.2693058534996
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
Samples
28.0ms256×0valid
Compiler

Compiled 60 to 14 computations (76.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
ival-mult: 11.0ms (60% of total)
ival-div: 2.0ms (10.9% of total)
ival-sqrt: 2.0ms (10.9% of total)
ival-add: 1.0ms (5.5% of total)
ival-sub: 1.0ms (5.5% of total)
ival-neg: 1.0ms (5.5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series14.0ms (0.3%)

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

6 calls:

TimeVariablePointExpression
3.0ms
a
@inf
((sqrt (- (* a a) (* b b))) (neg a) (sqrt (- (* a a) (* b b))) (+ (* (* (/ -1/2 a) b) b) a) (* (/ -1/2 a) b) (/ -1/2 a) (sqrt (- (* a a) (* b b))) (- (* a a) (* b b)) (* a a))
1.0ms
a
@0
((sqrt (- (* a a) (* b b))) (neg a) (sqrt (- (* a a) (* b b))) (+ (* (* (/ -1/2 a) b) b) a) (* (/ -1/2 a) b) (/ -1/2 a) (sqrt (- (* a a) (* b b))) (- (* a a) (* b b)) (* a a))
1.0ms
b
@0
((sqrt (- (* a a) (* b b))) (neg a) (sqrt (- (* a a) (* b b))) (+ (* (* (/ -1/2 a) b) b) a) (* (/ -1/2 a) b) (/ -1/2 a) (sqrt (- (* a a) (* b b))) (- (* a a) (* b b)) (* a a))
1.0ms
a
@-inf
((sqrt (- (* a a) (* b b))) (neg a) (sqrt (- (* a a) (* b b))) (+ (* (* (/ -1/2 a) b) b) a) (* (/ -1/2 a) b) (/ -1/2 a) (sqrt (- (* a a) (* b b))) (- (* a a) (* b b)) (* a a))
1.0ms
b
@inf
((sqrt (- (* a a) (* b b))) (neg a) (sqrt (- (* a a) (* b b))) (+ (* (* (/ -1/2 a) b) b) a) (* (/ -1/2 a) b) (/ -1/2 a) (sqrt (- (* a a) (* b b))) (- (* a a) (* b b)) (* a a))

simplify295.0ms (7.2%)

Memory
-32.5MiB live, 246.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01322145
13602145
211982106
347822034
083111911
Stop Event
iter limit
node limit
Counts
180 → 171
Calls
Call 1
Inputs
a
(+ a (* -1/2 (/ (pow b 2) a)))
(+ a (* (pow b 2) (- (* -1/8 (/ (pow b 2) (pow a 3))) (* 1/2 (/ 1 a)))))
(+ a (* (pow b 2) (- (* (pow b 2) (- (* -1/16 (/ (pow b 2) (pow a 5))) (* 1/8 (/ 1 (pow a 3))))) (* 1/2 (/ 1 a)))))
a
(+ a (* -1/2 (/ (pow b 2) a)))
(+ a (* (pow b 2) (- (* -1/8 (/ (pow b 2) (pow a 3))) (* 1/2 (/ 1 a)))))
(+ a (* (pow b 2) (- (* (pow b 2) (- (* -1/16 (/ (pow b 2) (pow a 5))) (* 1/8 (/ 1 (pow a 3))))) (* 1/2 (/ 1 a)))))
a
(+ a (* -1/2 (/ (pow b 2) a)))
(+ a (* -1/2 (/ (pow b 2) a)))
(+ a (* -1/2 (/ (pow b 2) a)))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
a
(+ a (* -1/2 (/ (pow b 2) a)))
(+ a (* (pow b 2) (- (* -1/8 (/ (pow b 2) (pow a 3))) (* 1/2 (/ 1 a)))))
(+ a (* (pow b 2) (- (* (pow b 2) (- (* -1/16 (/ (pow b 2) (pow a 5))) (* 1/8 (/ 1 (pow a 3))))) (* 1/2 (/ 1 a)))))
(pow a 2)
(+ (* -1 (pow b 2)) (pow a 2))
(+ (* -1 (pow b 2)) (pow a 2))
(+ (* -1 (pow b 2)) (pow a 2))
(* b (sqrt -1))
(* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(* b (sqrt -1))
(* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(* -1/2 (/ (pow b 2) a))
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* b (sqrt -1))
(* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(* -1 (pow b 2))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(* -1 (* b (sqrt -1)))
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))))
(* -1 (* b (sqrt -1)))
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))))
(* -1/2 (/ (pow b 2) a))
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1 (* b (sqrt -1)))
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))))
(* -1 (pow b 2))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(* b (sqrt -1))
(+ (* 1/2 (/ (pow a 2) (* b (sqrt -1)))) (* b (sqrt -1)))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* -1/8 (/ (pow a 2) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* (pow a 2) (- (* 1/16 (/ (pow a 2) (* (pow b 5) (pow (sqrt -1) 5)))) (* 1/8 (/ 1 (* (pow b 3) (pow (sqrt -1) 3)))))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 a)
(* b (sqrt -1))
(+ (* 1/2 (/ (pow a 2) (* b (sqrt -1)))) (* b (sqrt -1)))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* -1/8 (/ (pow a 2) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* (pow a 2) (- (* 1/16 (/ (pow a 2) (* (pow b 5) (pow (sqrt -1) 5)))) (* 1/8 (/ 1 (* (pow b 3) (pow (sqrt -1) 3)))))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(* -1/2 (/ (pow b 2) a))
(/ (+ (* -1/2 (pow b 2)) (pow a 2)) a)
(/ (+ (* -1/2 (pow b 2)) (pow a 2)) a)
(/ (+ (* -1/2 (pow b 2)) (pow a 2)) a)
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(/ -1/2 a)
(/ -1/2 a)
(/ -1/2 a)
(/ -1/2 a)
(* b (sqrt -1))
(+ (* 1/2 (/ (pow a 2) (* b (sqrt -1)))) (* b (sqrt -1)))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* -1/8 (/ (pow a 2) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* (pow a 2) (- (* 1/16 (/ (pow a 2) (* (pow b 5) (pow (sqrt -1) 5)))) (* 1/8 (/ 1 (* (pow b 3) (pow (sqrt -1) 3)))))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(* -1 (pow b 2))
(- (pow a 2) (pow b 2))
(- (pow a 2) (pow b 2))
(- (pow a 2) (pow b 2))
(pow a 2)
(pow a 2)
(pow a 2)
(pow a 2)
a
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4))))))
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6)))))))
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 a)
a
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4))))))
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6)))))))
a
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(/ -1/2 a)
(/ -1/2 a)
(/ -1/2 a)
(/ -1/2 a)
a
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4))))))
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6)))))))
(pow a 2)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(pow a 2)
(pow a 2)
(pow a 2)
(pow a 2)
(* -1 a)
(* -1 (* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2))))))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6))))))))
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 (* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2))))))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6))))))))
a
(* -1 (* a (- (* 1/2 (/ (pow b 2) (pow a 2))) 1)))
(* -1 (* a (- (* 1/2 (/ (pow b 2) (pow a 2))) 1)))
(* -1 (* a (- (* 1/2 (/ (pow b 2) (pow a 2))) 1)))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(* -1/2 (/ b a))
(/ -1/2 a)
(/ -1/2 a)
(/ -1/2 a)
(/ -1/2 a)
(* -1 a)
(* -1 (* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2))))))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6))))))))
(pow a 2)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(pow a 2)
(pow a 2)
(pow a 2)
(pow a 2)
Outputs
a
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64) a)
(+ a (* (pow b 2) (- (* -1/8 (/ (pow b 2) (pow a 3))) (* 1/2 (/ 1 a)))))
(fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 3 binary64))) b) b (/.f64 #s(literal -1/2 binary64) a)) (*.f64 b b) a)
(+ a (* (pow b 2) (- (* (pow b 2) (- (* -1/16 (/ (pow b 2) (pow a 5))) (* 1/8 (/ 1 (pow a 3))))) (* 1/2 (/ 1 a)))))
(fma.f64 (pow.f64 b #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal -1/16 binary64) b) (/.f64 b (pow.f64 a #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 3 binary64)))) (fma.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64) a))
a
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64) a)
(+ a (* (pow b 2) (- (* -1/8 (/ (pow b 2) (pow a 3))) (* 1/2 (/ 1 a)))))
(fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 3 binary64))) b) b (/.f64 #s(literal -1/2 binary64) a)) (*.f64 b b) a)
(+ a (* (pow b 2) (- (* (pow b 2) (- (* -1/16 (/ (pow b 2) (pow a 5))) (* 1/8 (/ 1 (pow a 3))))) (* 1/2 (/ 1 a)))))
(fma.f64 (pow.f64 b #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal -1/16 binary64) b) (/.f64 b (pow.f64 a #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 3 binary64)))) (fma.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64) a))
a
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64) a)
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64) a)
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64) a)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
a
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64) a)
(+ a (* (pow b 2) (- (* -1/8 (/ (pow b 2) (pow a 3))) (* 1/2 (/ 1 a)))))
(fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 3 binary64))) b) b (/.f64 #s(literal -1/2 binary64) a)) (*.f64 b b) a)
(+ a (* (pow b 2) (- (* (pow b 2) (- (* -1/16 (/ (pow b 2) (pow a 5))) (* 1/8 (/ 1 (pow a 3))))) (* 1/2 (/ 1 a)))))
(fma.f64 (pow.f64 b #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal -1/16 binary64) b) (/.f64 b (pow.f64 a #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 3 binary64)))) (fma.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64) a))
(pow a 2)
(*.f64 a a)
(+ (* -1 (pow b 2)) (pow a 2))
(*.f64 (-.f64 a b) (+.f64 b a))
(+ (* -1 (pow b 2)) (pow a 2))
(*.f64 (-.f64 a b) (+.f64 b a))
(+ (* -1 (pow b 2)) (pow a 2))
(*.f64 (-.f64 a b) (+.f64 b a))
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) b))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 b (fma.f64 (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 6 binary64))) (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))))))
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) b))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 b (fma.f64 (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 6 binary64))) (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))))))
(* -1/2 (/ (pow b 2) a))
(*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64))
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(*.f64 (*.f64 (-.f64 (/.f64 a (*.f64 b b)) (/.f64 #s(literal 1/2 binary64) a)) b) b)
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(*.f64 (*.f64 (-.f64 (/.f64 a (*.f64 b b)) (/.f64 #s(literal 1/2 binary64) a)) b) b)
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(*.f64 (*.f64 (-.f64 (/.f64 a (*.f64 b b)) (/.f64 #s(literal 1/2 binary64) a)) b) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) b))
(* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 b (fma.f64 (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 6 binary64))) (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))))))
(* -1 (pow b 2))
(*.f64 (neg.f64 b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 (/.f64 a (*.f64 b b)) a #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 (/.f64 a (*.f64 b b)) a #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 (/.f64 a (*.f64 b b)) a #s(literal -1 binary64)) b) b)
(* -1 (* b (sqrt -1)))
(*.f64 (neg.f64 b) (sqrt.f64 #s(literal -1 binary64)))
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) b)))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 b (fma.f64 (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 6 binary64))) (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64)))))))
(* -1 (* b (sqrt -1)))
(*.f64 (neg.f64 b) (sqrt.f64 #s(literal -1 binary64)))
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) b)))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 b (fma.f64 (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 6 binary64))) (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64)))))))
(* -1/2 (/ (pow b 2) a))
(*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64))
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(*.f64 (*.f64 (-.f64 (/.f64 a (*.f64 b b)) (/.f64 #s(literal 1/2 binary64) a)) b) b)
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(*.f64 (*.f64 (-.f64 (/.f64 a (*.f64 b b)) (/.f64 #s(literal 1/2 binary64) a)) b) b)
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(*.f64 (*.f64 (-.f64 (/.f64 a (*.f64 b b)) (/.f64 #s(literal 1/2 binary64) a)) b) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1 (* b (sqrt -1)))
(*.f64 (neg.f64 b) (sqrt.f64 #s(literal -1 binary64)))
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1))))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) b)))
(* -1 (* b (+ (sqrt -1) (+ (* -1/8 (/ (pow a 4) (* (pow b 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (/ (pow a 6) (* (pow b 6) (pow (sqrt -1) 5)))) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 b (fma.f64 (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 6 binary64))) (fma.f64 (/.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64)))))))
(* -1 (pow b 2))
(*.f64 (neg.f64 b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 (/.f64 a (*.f64 b b)) a #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 (/.f64 a (*.f64 b b)) a #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 (/.f64 a (*.f64 b b)) a #s(literal -1 binary64)) b) b)
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(+ (* 1/2 (/ (pow a 2) (* b (sqrt -1)))) (* b (sqrt -1)))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* -1/8 (/ (pow a 2) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a (pow.f64 b #s(literal 3 binary64))) (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))) (*.f64 a a) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* (pow a 2) (- (* 1/16 (/ (pow a 2) (* (pow b 5) (pow (sqrt -1) 5)))) (* 1/8 (/ 1 (* (pow b 3) (pow (sqrt -1) 3)))))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) a) (/.f64 a (pow.f64 b #s(literal 5 binary64))) (/.f64 (/.f64 #s(literal 1/8 binary64) (pow.f64 b #s(literal 3 binary64))) (sqrt.f64 #s(literal -1 binary64)))) (*.f64 a a) (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))) (*.f64 a a) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(+ (* 1/2 (/ (pow a 2) (* b (sqrt -1)))) (* b (sqrt -1)))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* -1/8 (/ (pow a 2) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a (pow.f64 b #s(literal 3 binary64))) (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))) (*.f64 a a) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* (pow a 2) (- (* 1/16 (/ (pow a 2) (* (pow b 5) (pow (sqrt -1) 5)))) (* 1/8 (/ 1 (* (pow b 3) (pow (sqrt -1) 3)))))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) a) (/.f64 a (pow.f64 b #s(literal 5 binary64))) (/.f64 (/.f64 #s(literal 1/8 binary64) (pow.f64 b #s(literal 3 binary64))) (sqrt.f64 #s(literal -1 binary64)))) (*.f64 a a) (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))) (*.f64 a a) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(* -1/2 (/ (pow b 2) a))
(*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64))
(/ (+ (* -1/2 (pow b 2)) (pow a 2)) a)
(/.f64 (fma.f64 (*.f64 b b) #s(literal -1/2 binary64) (*.f64 a a)) a)
(/ (+ (* -1/2 (pow b 2)) (pow a 2)) a)
(/.f64 (fma.f64 (*.f64 b b) #s(literal -1/2 binary64) (*.f64 a a)) a)
(/ (+ (* -1/2 (pow b 2)) (pow a 2)) a)
(/.f64 (fma.f64 (*.f64 b b) #s(literal -1/2 binary64) (*.f64 a a)) a)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(/ -1/2 a)
(/.f64 #s(literal -1/2 binary64) a)
(/ -1/2 a)
(/.f64 #s(literal -1/2 binary64) a)
(/ -1/2 a)
(/.f64 #s(literal -1/2 binary64) a)
(/ -1/2 a)
(/.f64 #s(literal -1/2 binary64) a)
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(+ (* 1/2 (/ (pow a 2) (* b (sqrt -1)))) (* b (sqrt -1)))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a b) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* -1/8 (/ (pow a 2) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64))) a) (/.f64 a (pow.f64 b #s(literal 3 binary64))) (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))) (*.f64 a a) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* (pow a 2) (- (* 1/16 (/ (pow a 2) (* (pow b 5) (pow (sqrt -1) 5)))) (* 1/8 (/ 1 (* (pow b 3) (pow (sqrt -1) 3)))))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) a) (/.f64 a (pow.f64 b #s(literal 5 binary64))) (/.f64 (/.f64 #s(literal 1/8 binary64) (pow.f64 b #s(literal 3 binary64))) (sqrt.f64 #s(literal -1 binary64)))) (*.f64 a a) (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))) (*.f64 a a) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(* -1 (pow b 2))
(*.f64 (neg.f64 b) b)
(- (pow a 2) (pow b 2))
(*.f64 (-.f64 a b) (+.f64 b a))
(- (pow a 2) (pow b 2))
(*.f64 (-.f64 a b) (+.f64 b a))
(- (pow a 2) (pow b 2))
(*.f64 (-.f64 a b) (+.f64 b a))
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
a
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a)
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) a) (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) (fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a))
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6)))))))
(fma.f64 (fma.f64 (pow.f64 b #s(literal 6 binary64)) (/.f64 #s(literal -1/16 binary64) (pow.f64 a #s(literal 6 binary64))) (*.f64 (pow.f64 b #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 4 binary64))))) a (fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a))
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
a
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a)
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) a) (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) (fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a))
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6)))))))
(fma.f64 (fma.f64 (pow.f64 b #s(literal 6 binary64)) (/.f64 #s(literal -1/16 binary64) (pow.f64 a #s(literal 6 binary64))) (*.f64 (pow.f64 b #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 4 binary64))))) a (fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a))
a
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a)
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a)
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(/ -1/2 a)
(/.f64 #s(literal -1/2 binary64) a)
(/ -1/2 a)
(/.f64 #s(literal -1/2 binary64) a)
(/ -1/2 a)
(/.f64 #s(literal -1/2 binary64) a)
(/ -1/2 a)
(/.f64 #s(literal -1/2 binary64) a)
a
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a)
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) a) (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) (fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a))
(* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6)))))))
(fma.f64 (fma.f64 (pow.f64 b #s(literal 6 binary64)) (/.f64 #s(literal -1/16 binary64) (pow.f64 a #s(literal 6 binary64))) (*.f64 (pow.f64 b #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 4 binary64))))) a (fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a))
(pow a 2)
(*.f64 a a)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (-.f64 a b) (+.f64 b a))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (-.f64 a b) (+.f64 b a))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (-.f64 a b) (+.f64 b a))
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(* -1 a)
(neg.f64 a)
(* -1 (* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2))))))
(fma.f64 #s(literal -1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) (neg.f64 a))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) #s(literal 1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal 1/2 binary64) #s(literal -1 binary64))) a)
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6))))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 b #s(literal 6 binary64)) (pow.f64 a #s(literal 6 binary64))) #s(literal 1/16 binary64) (fma.f64 (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) #s(literal 1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal 1/2 binary64) #s(literal -1 binary64)))) a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 (* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2))))))
(fma.f64 #s(literal -1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) (neg.f64 a))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) #s(literal 1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal 1/2 binary64) #s(literal -1 binary64))) a)
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6))))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 b #s(literal 6 binary64)) (pow.f64 a #s(literal 6 binary64))) #s(literal 1/16 binary64) (fma.f64 (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) #s(literal 1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal 1/2 binary64) #s(literal -1 binary64)))) a)
a
(* -1 (* a (- (* 1/2 (/ (pow b 2) (pow a 2))) 1)))
(fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a)
(* -1 (* a (- (* 1/2 (/ (pow b 2) (pow a 2))) 1)))
(fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a)
(* -1 (* a (- (* 1/2 (/ (pow b 2) (pow a 2))) 1)))
(fma.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) a)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(* -1/2 (/ b a))
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(/ -1/2 a)
(/.f64 #s(literal -1/2 binary64) a)
(/ -1/2 a)
(/.f64 #s(literal -1/2 binary64) a)
(/ -1/2 a)
(/.f64 #s(literal -1/2 binary64) a)
(/ -1/2 a)
(/.f64 #s(literal -1/2 binary64) a)
(* -1 a)
(neg.f64 a)
(* -1 (* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2))))))
(fma.f64 #s(literal -1 binary64) (*.f64 (/.f64 (*.f64 b b) a) #s(literal -1/2 binary64)) (neg.f64 a))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) #s(literal 1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal 1/2 binary64) #s(literal -1 binary64))) a)
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6))))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 b #s(literal 6 binary64)) (pow.f64 a #s(literal 6 binary64))) #s(literal 1/16 binary64) (fma.f64 (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) #s(literal 1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal 1/2 binary64) #s(literal -1 binary64)))) a)
(pow a 2)
(*.f64 a a)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (-.f64 a b) (+.f64 b a))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (-.f64 a b) (+.f64 b a))
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (-.f64 a b) (+.f64 b a))
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)
(pow a 2)
(*.f64 a a)

rewrite158.0ms (3.9%)

Memory
31.1MiB live, 265.6MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01672
02372
17872
248272
3513672
0898372
Stop Event
iter limit
node limit
iter limit
Counts
9 → 216
Calls
Call 1
Inputs
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
(neg.f64 a)
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
(fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a)
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
(/.f64 #s(literal -1/2 binary64) a)
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
#s(approx (- (* a a) (* b b)) (*.f64 a a))
(*.f64 a a)
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>

eval96.0ms (2.3%)

Memory
-5.1MiB live, 80.7MiB allocated
Compiler

Compiled 6 356 to 900 computations (85.8% saved)

prune17.0ms (0.4%)

Memory
4.8MiB live, 41.0MiB allocated
Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New3870387
Fresh000
Picked033
Done000
Total3873390
Accuracy
100.0%
Counts
390 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
57.4%
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
100.0%
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
1.1%
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
Compiler

Compiled 42 to 31 computations (26.2% saved)

regimes14.0ms (0.4%)

Memory
-11.0MiB live, 27.1MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
Outputs
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
Calls

6 calls:

4.0ms
(-.f64 (*.f64 a a) (*.f64 b b))
2.0ms
b
2.0ms
a
2.0ms
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
2.0ms
(*.f64 a a)
Results
AccuracySegmentsBranch
100.0%1a
100.0%1b
100.0%1(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
100.0%1(-.f64 (*.f64 a a) (*.f64 b b))
100.0%1(*.f64 a a)
100.0%1(*.f64 b b)
Compiler

Compiled 23 to 21 computations (8.7% saved)

regimes63.0ms (1.5%)

Memory
-30.5MiB live, 29.0MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
Outputs
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
Calls

6 calls:

37.0ms
b
19.0ms
a
2.0ms
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
1.0ms
(-.f64 (*.f64 a a) (*.f64 b b))
1.0ms
(*.f64 a a)
Results
AccuracySegmentsBranch
57.4%1a
57.4%1b
57.4%1(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
57.4%1(-.f64 (*.f64 a a) (*.f64 b b))
57.4%1(*.f64 a a)
57.4%1(*.f64 b b)
Compiler

Compiled 23 to 21 computations (8.7% saved)

regimes8.0ms (0.2%)

Memory
13.3MiB live, 13.3MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
Outputs
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
Calls

6 calls:

1.0ms
a
1.0ms
b
1.0ms
(-.f64 (*.f64 a a) (*.f64 b b))
1.0ms
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
1.0ms
(*.f64 a a)
Results
AccuracySegmentsBranch
1.1%1(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
1.1%1(-.f64 (*.f64 a a) (*.f64 b b))
1.1%1(*.f64 b b)
1.1%1b
1.1%1(*.f64 a a)
1.1%1a
Compiler

Compiled 23 to 21 computations (8.7% saved)

simplify29.0ms (0.7%)

Memory
-2.5MiB live, 36.4MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01640
12140
22340
32440
Stop Event
saturated
Calls
Call 1
Inputs
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
Outputs
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))

soundness337.0ms (8.2%)

Memory
-3.0MiB live, 190.1MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0119757
1332757
21128744
34541722
08122682
Stop Event
done
iter limit
node limit
Compiler

Compiled 31 to 25 computations (19.4% saved)

preprocess44.0ms (1.1%)

Memory
17.1MiB live, 94.4MiB allocated
Remove

(abs b)

Compiler

Compiled 130 to 96 computations (26.2% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...