bug366, discussion (missed optimization)

Time bar (total: 4.6s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze30.0ms (0.6%)

Memory
19.9MiB live, 19.9MiB 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)

sample977.0ms (21.1%)

Memory
6.2MiB live, 826.7MiB allocated
Samples
696.0ms8 256×0valid
41.0ms657×0invalid
Precisions
Click to see histograms. Total time spent on operations: 255.0ms
ival-mult: 138.0ms (54.1% of total)
ival-sqrt: 66.0ms (25.9% of total)
ival-sub: 42.0ms (16.5% of total)
ival-true: 7.0ms (2.7% of total)
ival-assert: 3.0ms (1.2% of total)
Bogosity

explain79.0ms (1.7%)

Memory
-2.7MiB live, 114.3MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1340-0-(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
150-15(2.6015499494854727e+249 7.977143741269804e+189)(-.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-rescue1270
(*.f64 b b)overflow15
(-.f64 (*.f64 a a) (*.f64 b b))overflow127
(*.f64 a a)overflow127
sqrt.f64(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))uflow-rescue70
(*.f64 b b)underflow108
(-.f64 (*.f64 a a) (*.f64 b b))underflow7
(*.f64 a a)underflow7
Confusion
Predicted +Predicted -
+1340
-0122
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+13400
-00122
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0122
1134
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
27.0ms512×0valid
Compiler

Compiled 104 to 34 computations (67.3% saved)

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

preprocess440.0ms (9.5%)

Memory
15.0MiB live, 280.9MiB 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.3MiB live, 0.3MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 8 to 6 computations (25% saved)

simplify399.0ms (8.6%)

Memory
-22.9MiB live, 221.7MiB 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

localize21.0ms (0.4%)

Memory
-11.4MiB live, 26.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 b b)
accuracy0
(*.f64 a a)
accuracy2.9921875000000004
(-.f64 (*.f64 a a) (*.f64 b b))
accuracy31.085215500136698
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
Samples
15.0ms256×0valid
Compiler

Compiled 48 to 14 computations (70.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-mult: 6.0ms (66.2% of total)
ival-sqrt: 2.0ms (22.1% of total)
ival-sub: 1.0ms (11% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series7.0ms (0.1%)

Memory
6.6MiB live, 6.6MiB 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
@inf
((- (* 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
b
@-inf
((- (* a a) (* b b)) (sqrt (- (* a a) (* b b))) (* a a) (* b b))

simplify177.0ms (3.8%)

Memory
-11.1MiB live, 138.9MiB 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)

rewrite180.0ms (3.9%)

Memory
24.7MiB live, 219.0MiB 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>

eval119.0ms (2.6%)

Memory
-29.2MiB live, 104.5MiB allocated
Compiler

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

prune7.0ms (0.2%)

Memory
25.8MiB live, 25.8MiB allocated
Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New3924396
Fresh000
Picked101
Done000
Total3934397
Accuracy
100.0%
Counts
397 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
51.4%
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
51.1%
(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))
0.9%
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
Compiler

Compiled 25 to 22 computations (12% saved)

simplify161.0ms (3.5%)

Memory
-7.3MiB live, 147.2MiB allocated
Algorithm
egg-herbie
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 b a)
cost-diff0
(-.f64 a b)
cost-diff0
(*.f64 (-.f64 a b) (+.f64 b a))
cost-diff0
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
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
020100
031100
157100
293100
3160100
4280100
5607100
61547100
73291100
86472100
08080100
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
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
(*.f64 (-.f64 a b) (+.f64 b a))
(-.f64 a b)
a
b
(+.f64 b 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
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(*.f64 (-.f64 a b) (+.f64 b a))
(*.f64 (+.f64 b a) (-.f64 a b))
(-.f64 a b)
a
b
(+.f64 b a)

localize64.0ms (1.4%)

Memory
28.6MiB live, 99.3MiB allocated
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
accuracy0
(-.f64 a b)
accuracy0
(+.f64 b a)
accuracy0
(*.f64 (-.f64 a b) (+.f64 b a))
accuracy31.085215500136698
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
accuracy0
(*.f64 a a)
accuracy0.1890196843765473
#s(approx (- (* a a) (* b b)) (*.f64 a a))
accuracy31.085215500136698
(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.2421875
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
accuracy0
(neg.f64 a)
accuracy63.40563254162477
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
Samples
53.0ms256×0valid
Compiler

Compiled 153 to 34 computations (77.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 42.0ms
ival-mult: 28.0ms (66.2% of total)
ival-div: 5.0ms (11.8% of total)
ival-sqrt: 3.0ms (7.1% of total)
ival-add: 2.0ms (4.7% of total)
ival-sub: 2.0ms (4.7% of total)
ival-neg: 1.0ms (2.4% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series30.0ms (0.6%)

Memory
-30.8MiB live, 55.9MiB allocated
Counts
13 → 276
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>) () ())
#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())
#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())
#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())
#s(alt (+.f64 b a) (patch (+.f64 b 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 a (taylor 0 b) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (+ a (* 1/2 (/ (* b (+ a (* -1 a))) a))) (taylor 0 b) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (+ a (* b (+ (* -1/2 (/ (* b (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2))))) a)) (* 1/2 (/ (+ a (* -1 a)) a))))) (taylor 0 b) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (+ a (* b (+ (* 1/2 (/ (+ a (* -1 a)) a)) (* b (+ (* -1/2 (/ (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2)))) a)) (* 1/4 (/ (* b (* (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2)))) (+ a (* -1 a)))) (pow a 3)))))))) (taylor 0 b) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (pow a 2) (taylor 0 b) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (+ (* b (+ a (* -1 a))) (pow a 2)) (taylor 0 b) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (+ (* b (+ a (+ (* -1 a) (* -1 b)))) (pow a 2)) (taylor 0 b) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (+ (* b (+ a (+ (* -1 a) (* -1 b)))) (pow a 2)) (taylor 0 b) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt a (taylor 0 b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (+ a (* -1 b)) (taylor 0 b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (+ a (* -1 b)) (taylor 0 b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (+ a (* -1 b)) (taylor 0 b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt a (taylor 0 b) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (+ a b) (taylor 0 b) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (+ a b) (taylor 0 b) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (+ a b) (taylor 0 b) (#s(alt (+.f64 b a) (patch (+.f64 b 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 (* b (sqrt -1)) (taylor inf b) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* b (+ (sqrt -1) (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))))) (taylor inf b) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* b (+ (sqrt -1) (+ (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* (pow b 2) (sqrt -1))))))) (taylor inf b) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* b (+ (sqrt -1) (+ (* -1/4 (/ (* (+ a (* -1 a)) (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2))))) (* (pow b 3) (pow (sqrt -1) 3)))) (+ (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* (pow b 2) (sqrt -1)))))))) (taylor inf b) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow b 2)) (taylor inf b) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* (pow b 2) (- (+ (* -1 (/ a b)) (/ a b)) 1)) (taylor inf b) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* (pow b 2) (- (+ (* -1 (/ a b)) (+ (/ a b) (/ (pow a 2) (pow b 2)))) 1)) (taylor inf b) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* (pow b 2) (- (+ (* -1 (/ a b)) (+ (/ a b) (/ (pow a 2) (pow b 2)))) 1)) (taylor inf b) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* -1 b) (taylor inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* b (- (/ a b) 1)) (taylor inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* b (- (/ a b) 1)) (taylor inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* b (- (/ a b) 1)) (taylor inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt b (taylor inf b) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* b (+ 1 (/ a b))) (taylor inf b) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* b (+ 1 (/ a b))) (taylor inf b) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* b (+ 1 (/ a b))) (taylor inf b) (#s(alt (+.f64 b a) (patch (+.f64 b 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 (* -1 (* b (sqrt -1))) (taylor -inf b) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (+ (sqrt -1) (* -1/2 (/ (+ a (* -1 a)) (* b (sqrt -1))))))) (taylor -inf b) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (+ (sqrt -1) (* -1 (/ (+ (* -1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* b (sqrt -1)))) (* 1/2 (/ (+ a (* -1 a)) (sqrt -1)))) b))))) (taylor -inf b) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 1/4 (/ (* (+ a (* -1 a)) (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2))))) (* b (pow (sqrt -1) 3)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (sqrt -1)))) b)) (* 1/2 (/ (+ a (* -1 a)) (sqrt -1)))) b))))) (taylor -inf b) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow b 2)) (taylor -inf b) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* (pow b 2) (- (* -1 (/ (+ a (* -1 a)) b)) 1)) (taylor -inf b) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* (pow b 2) (- (* -1 (/ (+ a (+ (* -1 a) (* -1 (/ (pow a 2) b)))) b)) 1)) (taylor -inf b) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* (pow b 2) (- (* -1 (/ (+ a (+ (* -1 a) (* -1 (/ (pow a 2) b)))) b)) 1)) (taylor -inf b) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* -1 b) (taylor -inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (+ 1 (* -1 (/ a b))))) (taylor -inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (+ 1 (* -1 (/ a b))))) (taylor -inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (+ 1 (* -1 (/ a b))))) (taylor -inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt b (taylor -inf b) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (- (* -1 (/ a b)) 1))) (taylor -inf b) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (- (* -1 (/ a b)) 1))) (taylor -inf b) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (- (* -1 (/ a b)) 1))) (taylor -inf b) (#s(alt (+.f64 b a) (patch (+.f64 b 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 (* b (sqrt -1)) (taylor 0 a) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (+ (* 1/2 (/ (* a (+ b (* -1 b))) (* b (sqrt -1)))) (* b (sqrt -1))) (taylor 0 a) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (+ (* a (+ (* 1/2 (/ (* a (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2)))))) (* b (sqrt -1)))) (* 1/2 (/ (+ b (* -1 b)) (* b (sqrt -1)))))) (* b (sqrt -1))) (taylor 0 a) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (+ (* a (+ (* 1/2 (/ (+ b (* -1 b)) (* b (sqrt -1)))) (* a (+ (* -1/4 (/ (* a (* (+ b (* -1 b)) (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2))))))) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2))))) (* b (sqrt -1)))))))) (* b (sqrt -1))) (taylor 0 a) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow b 2)) (taylor 0 a) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 (pow b 2)) (* a (+ b (* -1 b)))) (taylor 0 a) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 (pow b 2)) (* a (+ a (+ b (* -1 b))))) (taylor 0 a) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 (pow b 2)) (* a (+ a (+ b (* -1 b))))) (taylor 0 a) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* -1 b) (taylor 0 a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (- a b) (taylor 0 a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (- a b) (taylor 0 a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (- a b) (taylor 0 a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt b (taylor 0 a) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (+ a b) (taylor 0 a) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (+ a b) (taylor 0 a) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (+ a b) (taylor 0 a) (#s(alt (+.f64 b a) (patch (+.f64 b 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 a (taylor inf a) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (* 1/2 (/ (+ b (* -1 b)) a)))) (taylor inf a) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (+ (* 1/2 (/ (+ b (* -1 b)) a)) (* 1/2 (/ (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2))) (pow a 2)))))) (taylor inf a) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (+ (* -1/4 (/ (* (+ b (* -1 b)) (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2)))) (pow a 3))) (+ (* 1/2 (/ (+ b (* -1 b)) a)) (* 1/2 (/ (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2))) (pow a 2))))))) (taylor inf a) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (pow a 2) (taylor inf a) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* (pow a 2) (+ 1 (+ (* -1 (/ b a)) (/ b a)))) (taylor inf a) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* (pow a 2) (+ 1 (+ (* -1 (/ b a)) (+ (* -1 (/ (pow b 2) (pow a 2))) (/ b a))))) (taylor inf a) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* (pow a 2) (+ 1 (+ (* -1 (/ b a)) (+ (* -1 (/ (pow b 2) (pow a 2))) (/ b a))))) (taylor inf a) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt a (taylor inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (* -1 (/ b a)))) (taylor inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (* -1 (/ b a)))) (taylor inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (* -1 (/ b a)))) (taylor inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt a (taylor inf a) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (/ b a))) (taylor inf a) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (/ b a))) (taylor inf a) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (/ b a))) (taylor inf a) (#s(alt (+.f64 b a) (patch (+.f64 b 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>) () ())) ())
#s(alt (* -1 (* a (pow (sqrt -1) 2))) (taylor -inf a) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ (* -1/2 (/ (+ b (* -1 b)) a)) (pow (sqrt -1) 2)))) (taylor -inf a) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ (* -1 (/ (+ (* -1/2 (/ (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2)))) a)) (* 1/2 (+ b (* -1 b)))) a)) (pow (sqrt -1) 2)))) (taylor -inf a) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/4 (/ (* (+ b (* -1 b)) (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2))))) (* a (pow (sqrt -1) 2)))) (* 1/2 (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2)))))) a)) (* 1/2 (+ b (* -1 b)))) a)) (pow (sqrt -1) 2)))) (taylor -inf a) (#s(alt (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) (patch (sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a))) #<representation binary64>) () ())) ())
#s(alt (pow a 2) (taylor -inf a) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* (pow a 2) (+ 1 (+ (* -1 (/ b a)) (/ b a)))) (taylor -inf a) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* (pow a 2) (+ 1 (* -1 (/ (+ (* -1 (+ b (* -1 b))) (/ (pow b 2) a)) a)))) (taylor -inf a) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* (pow a 2) (+ 1 (* -1 (/ (+ (* -1 (+ b (* -1 b))) (/ (pow b 2) a)) a)))) (taylor -inf a) (#s(alt (*.f64 (-.f64 a b) (+.f64 b a)) (patch (*.f64 (-.f64 a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt a (taylor -inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (- (/ b a) 1))) (taylor -inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (- (/ b a) 1))) (taylor -inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (- (/ b a) 1))) (taylor -inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt a (taylor -inf a) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (- (* -1 (/ b a)) 1))) (taylor -inf a) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (- (* -1 (/ b a)) 1))) (taylor -inf a) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (- (* -1 (/ b a)) 1))) (taylor -inf a) (#s(alt (+.f64 b a) (patch (+.f64 b a) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
8.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) (sqrt (* (- a b) (+ b a))) (* (- a b) (+ b a)) (- a b) (+ b a))
3.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) (sqrt (* (- a b) (+ b a))) (* (- a b) (+ b a)) (- a b) (+ b a))
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) (sqrt (* (- a b) (+ b a))) (* (- a b) (+ b a)) (- a b) (+ b a))
2.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) (sqrt (* (- a b) (+ b a))) (* (- a b) (+ b a)) (- a b) (+ b a))
2.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) (sqrt (* (- a b) (+ b a))) (* (- a b) (+ b a)) (- a b) (+ b a))

simplify102.0ms (2.2%)

Memory
-3.3MiB live, 154.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03542863
111402785
249462747
083032593
Stop Event
iter limit
node limit
Counts
276 → 256
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))
a
(+ a (* 1/2 (/ (* b (+ a (* -1 a))) a)))
(+ a (* b (+ (* -1/2 (/ (* b (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2))))) a)) (* 1/2 (/ (+ a (* -1 a)) a)))))
(+ a (* b (+ (* 1/2 (/ (+ a (* -1 a)) a)) (* b (+ (* -1/2 (/ (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2)))) a)) (* 1/4 (/ (* b (* (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2)))) (+ a (* -1 a)))) (pow a 3))))))))
(pow a 2)
(+ (* b (+ a (* -1 a))) (pow a 2))
(+ (* b (+ a (+ (* -1 a) (* -1 b)))) (pow a 2))
(+ (* b (+ a (+ (* -1 a) (* -1 b)))) (pow a 2))
a
(+ a (* -1 b))
(+ a (* -1 b))
(+ a (* -1 b))
a
(+ a b)
(+ a b)
(+ a b)
(* 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))
(* b (sqrt -1))
(* b (+ (sqrt -1) (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1))))))
(* b (+ (sqrt -1) (+ (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* (pow b 2) (sqrt -1)))))))
(* b (+ (sqrt -1) (+ (* -1/4 (/ (* (+ a (* -1 a)) (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2))))) (* (pow b 3) (pow (sqrt -1) 3)))) (+ (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* (pow b 2) (sqrt -1))))))))
(* -1 (pow b 2))
(* (pow b 2) (- (+ (* -1 (/ a b)) (/ a b)) 1))
(* (pow b 2) (- (+ (* -1 (/ a b)) (+ (/ a b) (/ (pow a 2) (pow b 2)))) 1))
(* (pow b 2) (- (+ (* -1 (/ a b)) (+ (/ a b) (/ (pow a 2) (pow b 2)))) 1))
(* -1 b)
(* b (- (/ a b) 1))
(* b (- (/ a b) 1))
(* b (- (/ a b) 1))
b
(* b (+ 1 (/ a b)))
(* b (+ 1 (/ a b)))
(* b (+ 1 (/ a b)))
(* -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))
(* -1 (* b (sqrt -1)))
(* -1 (* b (+ (sqrt -1) (* -1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))))))
(* -1 (* b (+ (sqrt -1) (* -1 (/ (+ (* -1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* b (sqrt -1)))) (* 1/2 (/ (+ a (* -1 a)) (sqrt -1)))) b)))))
(* -1 (* b (+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 1/4 (/ (* (+ a (* -1 a)) (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2))))) (* b (pow (sqrt -1) 3)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (sqrt -1)))) b)) (* 1/2 (/ (+ a (* -1 a)) (sqrt -1)))) b)))))
(* -1 (pow b 2))
(* (pow b 2) (- (* -1 (/ (+ a (* -1 a)) b)) 1))
(* (pow b 2) (- (* -1 (/ (+ a (+ (* -1 a) (* -1 (/ (pow a 2) b)))) b)) 1))
(* (pow b 2) (- (* -1 (/ (+ a (+ (* -1 a) (* -1 (/ (pow a 2) b)))) b)) 1))
(* -1 b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(* -1 (* b (+ 1 (* -1 (/ a b)))))
b
(* -1 (* b (- (* -1 (/ a b)) 1)))
(* -1 (* b (- (* -1 (/ a b)) 1)))
(* -1 (* b (- (* -1 (/ a b)) 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)
(* b (sqrt -1))
(+ (* 1/2 (/ (* a (+ b (* -1 b))) (* b (sqrt -1)))) (* b (sqrt -1)))
(+ (* a (+ (* 1/2 (/ (* a (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2)))))) (* b (sqrt -1)))) (* 1/2 (/ (+ b (* -1 b)) (* b (sqrt -1)))))) (* b (sqrt -1)))
(+ (* a (+ (* 1/2 (/ (+ b (* -1 b)) (* b (sqrt -1)))) (* a (+ (* -1/4 (/ (* a (* (+ b (* -1 b)) (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2))))))) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2))))) (* b (sqrt -1)))))))) (* b (sqrt -1)))
(* -1 (pow b 2))
(+ (* -1 (pow b 2)) (* a (+ b (* -1 b))))
(+ (* -1 (pow b 2)) (* a (+ a (+ b (* -1 b)))))
(+ (* -1 (pow b 2)) (* a (+ a (+ b (* -1 b)))))
(* -1 b)
(- a b)
(- a b)
(- a b)
b
(+ a b)
(+ a b)
(+ a b)
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)
a
(* a (+ 1 (* 1/2 (/ (+ b (* -1 b)) a))))
(* a (+ 1 (+ (* 1/2 (/ (+ b (* -1 b)) a)) (* 1/2 (/ (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2))) (pow a 2))))))
(* a (+ 1 (+ (* -1/4 (/ (* (+ b (* -1 b)) (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2)))) (pow a 3))) (+ (* 1/2 (/ (+ b (* -1 b)) a)) (* 1/2 (/ (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2))) (pow a 2)))))))
(pow a 2)
(* (pow a 2) (+ 1 (+ (* -1 (/ b a)) (/ b a))))
(* (pow a 2) (+ 1 (+ (* -1 (/ b a)) (+ (* -1 (/ (pow b 2) (pow a 2))) (/ b a)))))
(* (pow a 2) (+ 1 (+ (* -1 (/ b a)) (+ (* -1 (/ (pow b 2) (pow a 2))) (/ b a)))))
a
(* a (+ 1 (* -1 (/ b a))))
(* a (+ 1 (* -1 (/ b a))))
(* a (+ 1 (* -1 (/ b a))))
a
(* a (+ 1 (/ b a)))
(* a (+ 1 (/ b a)))
(* a (+ 1 (/ b 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))))))))
(* -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)
(* -1 (* a (pow (sqrt -1) 2)))
(* -1 (* a (+ (* -1/2 (/ (+ b (* -1 b)) a)) (pow (sqrt -1) 2))))
(* -1 (* a (+ (* -1 (/ (+ (* -1/2 (/ (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2)))) a)) (* 1/2 (+ b (* -1 b)))) a)) (pow (sqrt -1) 2))))
(* -1 (* a (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/4 (/ (* (+ b (* -1 b)) (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2))))) (* a (pow (sqrt -1) 2)))) (* 1/2 (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2)))))) a)) (* 1/2 (+ b (* -1 b)))) a)) (pow (sqrt -1) 2))))
(pow a 2)
(* (pow a 2) (+ 1 (+ (* -1 (/ b a)) (/ b a))))
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -1 (+ b (* -1 b))) (/ (pow b 2) a)) a))))
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -1 (+ b (* -1 b))) (/ (pow b 2) a)) a))))
a
(* -1 (* a (- (/ b a) 1)))
(* -1 (* a (- (/ b a) 1)))
(* -1 (* a (- (/ b a) 1)))
a
(* -1 (* a (- (* -1 (/ b a)) 1)))
(* -1 (* a (- (* -1 (/ b a)) 1)))
(* -1 (* a (- (* -1 (/ b a)) 1)))
Outputs
a
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (*.f64 b #s(literal -1/2 binary64)) (/.f64 b a) a)
(+ a (* (pow b 2) (- (* -1/8 (/ (pow b 2) (pow a 3))) (* 1/2 (/ 1 a)))))
(fma.f64 (fma.f64 (*.f64 b (/.f64 b (pow.f64 a #s(literal 3 binary64)))) #s(literal -1/8 binary64) (/.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 (fma.f64 (fma.f64 (*.f64 b (/.f64 b (pow.f64 a #s(literal 5 binary64)))) #s(literal -1/16 binary64) (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 3 binary64)))) (*.f64 b b) (/.f64 #s(literal -1/2 binary64) a)) (*.f64 b b) a)
a
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (*.f64 b #s(literal -1/2 binary64)) (/.f64 b a) a)
(+ a (* (pow b 2) (- (* -1/8 (/ (pow b 2) (pow a 3))) (* 1/2 (/ 1 a)))))
(fma.f64 (fma.f64 (*.f64 b (/.f64 b (pow.f64 a #s(literal 3 binary64)))) #s(literal -1/8 binary64) (/.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 (fma.f64 (fma.f64 (*.f64 b (/.f64 b (pow.f64 a #s(literal 5 binary64)))) #s(literal -1/16 binary64) (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 3 binary64)))) (*.f64 b b) (/.f64 #s(literal -1/2 binary64) a)) (*.f64 b b) a)
a
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (*.f64 b #s(literal -1/2 binary64)) (/.f64 b a) a)
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (*.f64 b #s(literal -1/2 binary64)) (/.f64 b a) a)
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (*.f64 b #s(literal -1/2 binary64)) (/.f64 b 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)
a
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (*.f64 b #s(literal -1/2 binary64)) (/.f64 b a) a)
(+ a (* (pow b 2) (- (* -1/8 (/ (pow b 2) (pow a 3))) (* 1/2 (/ 1 a)))))
(fma.f64 (fma.f64 (*.f64 b (/.f64 b (pow.f64 a #s(literal 3 binary64)))) #s(literal -1/8 binary64) (/.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 (fma.f64 (fma.f64 (*.f64 b (/.f64 b (pow.f64 a #s(literal 5 binary64)))) #s(literal -1/16 binary64) (/.f64 #s(literal -1/8 binary64) (pow.f64 a #s(literal 3 binary64)))) (*.f64 b b) (/.f64 #s(literal -1/2 binary64) a)) (*.f64 b b) a)
(pow a 2)
(*.f64 a a)
(+ (* -1 (pow b 2)) (pow a 2))
(*.f64 (+.f64 b a) (-.f64 a b))
(+ (* -1 (pow b 2)) (pow a 2))
(*.f64 (+.f64 b a) (-.f64 a b))
(+ (* -1 (pow b 2)) (pow a 2))
(*.f64 (+.f64 b a) (-.f64 a b))
a
(+ a (* 1/2 (/ (* b (+ a (* -1 a))) a)))
a
(+ a (* b (+ (* -1/2 (/ (* b (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2))))) a)) (* 1/2 (/ (+ a (* -1 a)) a)))))
(fma.f64 (*.f64 b #s(literal -1/2 binary64)) (/.f64 b a) a)
(+ a (* b (+ (* 1/2 (/ (+ a (* -1 a)) a)) (* b (+ (* -1/2 (/ (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2)))) a)) (* 1/4 (/ (* b (* (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2)))) (+ a (* -1 a)))) (pow a 3))))))))
(fma.f64 (*.f64 b #s(literal -1/2 binary64)) (/.f64 b a) a)
(pow a 2)
(*.f64 a a)
(+ (* b (+ a (* -1 a))) (pow a 2))
(*.f64 a a)
(+ (* b (+ a (+ (* -1 a) (* -1 b)))) (pow a 2))
(*.f64 (+.f64 b a) (-.f64 a b))
(+ (* b (+ a (+ (* -1 a) (* -1 b)))) (pow a 2))
(*.f64 (+.f64 b a) (-.f64 a b))
a
(+ a (* -1 b))
(-.f64 a b)
(+ a (* -1 b))
(-.f64 a b)
(+ a (* -1 b))
(-.f64 a b)
a
(+ a b)
(+.f64 b a)
(+ a b)
(+.f64 b a)
(+ 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))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (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)))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/8 binary64) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (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))))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 6 binary64))) (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (fma.f64 (/.f64 #s(literal -1/8 binary64) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64))))) 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))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (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)))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/8 binary64) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (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))))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 6 binary64))) (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (fma.f64 (/.f64 #s(literal -1/8 binary64) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64))))) b)
(* -1/2 (/ (pow b 2) a))
(*.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b)
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(*.f64 (-.f64 (/.f64 a (*.f64 b b)) (/.f64 #s(literal 1/2 binary64) a)) (*.f64 b b))
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(*.f64 (-.f64 (/.f64 a (*.f64 b b)) (/.f64 #s(literal 1/2 binary64) a)) (*.f64 b b))
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(*.f64 (-.f64 (/.f64 a (*.f64 b b)) (/.f64 #s(literal 1/2 binary64) a)) (*.f64 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))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (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)))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/8 binary64) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (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))))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 6 binary64))) (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (fma.f64 (/.f64 #s(literal -1/8 binary64) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64))))) b)
(* -1 (pow b 2))
(*.f64 (neg.f64 b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 a (/.f64 a (*.f64 b b)) #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 a (/.f64 a (*.f64 b b)) #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 a (/.f64 a (*.f64 b b)) #s(literal -1 binary64)) b) b)
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(* b (+ (sqrt -1) (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1))))))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(* b (+ (sqrt -1) (+ (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* (pow b 2) (sqrt -1)))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64))) b)
(* b (+ (sqrt -1) (+ (* -1/4 (/ (* (+ a (* -1 a)) (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2))))) (* (pow b 3) (pow (sqrt -1) 3)))) (+ (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* (pow b 2) (sqrt -1))))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64))) b)
(* -1 (pow b 2))
(*.f64 (neg.f64 b) b)
(* (pow b 2) (- (+ (* -1 (/ a b)) (/ a b)) 1))
(*.f64 (neg.f64 b) b)
(* (pow b 2) (- (+ (* -1 (/ a b)) (+ (/ a b) (/ (pow a 2) (pow b 2)))) 1))
(*.f64 (*.f64 (fma.f64 a (/.f64 a (*.f64 b b)) #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (+ (* -1 (/ a b)) (+ (/ a b) (/ (pow a 2) (pow b 2)))) 1))
(*.f64 (*.f64 (fma.f64 a (/.f64 a (*.f64 b b)) #s(literal -1 binary64)) b) b)
(* -1 b)
(neg.f64 b)
(* b (- (/ a b) 1))
(*.f64 (-.f64 (/.f64 a b) #s(literal 1 binary64)) b)
(* b (- (/ a b) 1))
(*.f64 (-.f64 (/.f64 a b) #s(literal 1 binary64)) b)
(* b (- (/ a b) 1))
(*.f64 (-.f64 (/.f64 a b) #s(literal 1 binary64)) b)
b
(* b (+ 1 (/ a b)))
(fma.f64 (/.f64 a b) b b)
(* b (+ 1 (/ a b)))
(fma.f64 (/.f64 a b) b b)
(* b (+ 1 (/ a b)))
(fma.f64 (/.f64 a b) b b)
(* -1 (* b (sqrt -1)))
(*.f64 (neg.f64 (sqrt.f64 #s(literal -1 binary64))) b)
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64))) (neg.f64 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))))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/8 binary64) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64)))) (neg.f64 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)))))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 6 binary64))) (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (fma.f64 (/.f64 #s(literal -1/8 binary64) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64))))) (neg.f64 b))
(* -1 (* b (sqrt -1)))
(*.f64 (neg.f64 (sqrt.f64 #s(literal -1 binary64))) b)
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64))) (neg.f64 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))))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/8 binary64) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64)))) (neg.f64 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)))))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 6 binary64))) (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (fma.f64 (/.f64 #s(literal -1/8 binary64) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64))))) (neg.f64 b))
(* -1/2 (/ (pow b 2) a))
(*.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b)
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(*.f64 (-.f64 (/.f64 a (*.f64 b b)) (/.f64 #s(literal 1/2 binary64) a)) (*.f64 b b))
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(*.f64 (-.f64 (/.f64 a (*.f64 b b)) (/.f64 #s(literal 1/2 binary64) a)) (*.f64 b b))
(* (pow b 2) (- (/ a (pow b 2)) (* 1/2 (/ 1 a))))
(*.f64 (-.f64 (/.f64 a (*.f64 b b)) (/.f64 #s(literal 1/2 binary64) a)) (*.f64 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 (sqrt.f64 #s(literal -1 binary64))) b)
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64))) (neg.f64 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))))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/8 binary64) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64)))) (neg.f64 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)))))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 6 binary64))) (/.f64 (pow.f64 a #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (fma.f64 (/.f64 #s(literal -1/8 binary64) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (pow.f64 b #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a (*.f64 b b))) (sqrt.f64 #s(literal -1 binary64))))) (neg.f64 b))
(* -1 (pow b 2))
(*.f64 (neg.f64 b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 a (/.f64 a (*.f64 b b)) #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 a (/.f64 a (*.f64 b b)) #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 a (/.f64 a (*.f64 b b)) #s(literal -1 binary64)) b) b)
(* -1 (* b (sqrt -1)))
(*.f64 (neg.f64 (sqrt.f64 #s(literal -1 binary64))) b)
(* -1 (* b (+ (sqrt -1) (* -1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))))))
(*.f64 (neg.f64 (sqrt.f64 #s(literal -1 binary64))) b)
(* -1 (* b (+ (sqrt -1) (* -1 (/ (+ (* -1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* b (sqrt -1)))) (* 1/2 (/ (+ a (* -1 a)) (sqrt -1)))) b)))))
(*.f64 (+.f64 (/.f64 (fma.f64 (/.f64 #s(literal -1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a b)) #s(literal 0 binary64)) b) (neg.f64 (sqrt.f64 #s(literal -1 binary64)))) b)
(* -1 (* b (+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 1/4 (/ (* (+ a (* -1 a)) (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2))))) (* b (pow (sqrt -1) 3)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (sqrt -1)))) b)) (* 1/2 (/ (+ a (* -1 a)) (sqrt -1)))) b)))))
(*.f64 (+.f64 (/.f64 (/.f64 (fma.f64 (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) #s(literal 1/2 binary64) #s(literal 0 binary64)) b) b) (sqrt.f64 #s(literal -1 binary64))) (neg.f64 b))
(* -1 (pow b 2))
(*.f64 (neg.f64 b) b)
(* (pow b 2) (- (* -1 (/ (+ a (* -1 a)) b)) 1))
(*.f64 (neg.f64 b) b)
(* (pow b 2) (- (* -1 (/ (+ a (+ (* -1 a) (* -1 (/ (pow a 2) b)))) b)) 1))
(*.f64 (*.f64 (fma.f64 a (/.f64 a (*.f64 b b)) #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (* -1 (/ (+ a (+ (* -1 a) (* -1 (/ (pow a 2) b)))) b)) 1))
(*.f64 (*.f64 (fma.f64 a (/.f64 a (*.f64 b b)) #s(literal -1 binary64)) b) b)
(* -1 b)
(neg.f64 b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(*.f64 (-.f64 (/.f64 a b) #s(literal 1 binary64)) b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(*.f64 (-.f64 (/.f64 a b) #s(literal 1 binary64)) b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(*.f64 (-.f64 (/.f64 a b) #s(literal 1 binary64)) b)
b
(* -1 (* b (- (* -1 (/ a b)) 1)))
(fma.f64 (/.f64 a b) b b)
(* -1 (* b (- (* -1 (/ a b)) 1)))
(fma.f64 (/.f64 a b) b b)
(* -1 (* b (- (* -1 (/ a b)) 1)))
(fma.f64 (/.f64 a b) 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 a (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)) #s(literal 1/2 binary64)) a (*.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 a (/.f64 a (pow.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) b) #s(literal 3 binary64)))) #s(literal -1/8 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 a (pow.f64 b #s(literal 5 binary64))) (/.f64 a (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64)))) #s(literal 1/16 binary64) (/.f64 #s(literal -1/8 binary64) (pow.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) b) #s(literal 3 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 a (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)) #s(literal 1/2 binary64)) a (*.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 a (/.f64 a (pow.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) b) #s(literal 3 binary64)))) #s(literal -1/8 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 a (pow.f64 b #s(literal 5 binary64))) (/.f64 a (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64)))) #s(literal 1/16 binary64) (/.f64 #s(literal -1/8 binary64) (pow.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) b) #s(literal 3 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 #s(literal -1/2 binary64) a) b) b)
(/ (+ (* -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 a (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)) #s(literal 1/2 binary64)) a (*.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 a (/.f64 a (pow.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) b) #s(literal 3 binary64)))) #s(literal -1/8 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 a (pow.f64 b #s(literal 5 binary64))) (/.f64 a (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64)))) #s(literal 1/16 binary64) (/.f64 #s(literal -1/8 binary64) (pow.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) b) #s(literal 3 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 b a) (-.f64 a b))
(- (pow a 2) (pow b 2))
(*.f64 (+.f64 b a) (-.f64 a b))
(- (pow a 2) (pow b 2))
(*.f64 (+.f64 b a) (-.f64 a 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)
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(+ (* 1/2 (/ (* a (+ b (* -1 b))) (* b (sqrt -1)))) (* b (sqrt -1)))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(+ (* a (+ (* 1/2 (/ (* a (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2)))))) (* b (sqrt -1)))) (* 1/2 (/ (+ b (* -1 b)) (* b (sqrt -1)))))) (* b (sqrt -1)))
(fma.f64 (*.f64 (/.f64 a (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)) #s(literal 1/2 binary64)) a (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* a (+ (* 1/2 (/ (+ b (* -1 b)) (* b (sqrt -1)))) (* a (+ (* -1/4 (/ (* a (* (+ b (* -1 b)) (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2))))))) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2))))) (* b (sqrt -1)))))))) (* b (sqrt -1)))
(fma.f64 (*.f64 (/.f64 a (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)) #s(literal 1/2 binary64)) a (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(* -1 (pow b 2))
(*.f64 (neg.f64 b) b)
(+ (* -1 (pow b 2)) (* a (+ b (* -1 b))))
(*.f64 (neg.f64 b) b)
(+ (* -1 (pow b 2)) (* a (+ a (+ b (* -1 b)))))
(*.f64 (+.f64 b a) (-.f64 a b))
(+ (* -1 (pow b 2)) (* a (+ a (+ b (* -1 b)))))
(*.f64 (+.f64 b a) (-.f64 a b))
(* -1 b)
(neg.f64 b)
(- a b)
(-.f64 a b)
(- a b)
(-.f64 a b)
(- a b)
(-.f64 a b)
b
(+ a b)
(+.f64 b a)
(+ a b)
(+.f64 b a)
(+ a b)
(+.f64 b a)
a
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) 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))))))
(*.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)
(* 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)
a
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) 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))))))
(*.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)
(* 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
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal -1/2 binary64) #s(literal 1 binary64)) a)
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal -1/2 binary64) #s(literal 1 binary64)) a)
(* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2)))))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal -1/2 binary64) #s(literal 1 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)))))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) 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))))))
(*.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)
(* 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 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 b b) a) a)) a) a)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 b b) a) a)) a) a)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 b b) a) a)) 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)
a
(* a (+ 1 (* 1/2 (/ (+ b (* -1 b)) a))))
a
(* a (+ 1 (+ (* 1/2 (/ (+ b (* -1 b)) a)) (* 1/2 (/ (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2))) (pow a 2))))))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal -1/2 binary64) #s(literal 1 binary64)) a)
(* a (+ 1 (+ (* -1/4 (/ (* (+ b (* -1 b)) (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2)))) (pow a 3))) (+ (* 1/2 (/ (+ b (* -1 b)) a)) (* 1/2 (/ (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2))) (pow a 2)))))))
(*.f64 (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 (/ b a)) (/ b a))))
(*.f64 a a)
(* (pow a 2) (+ 1 (+ (* -1 (/ b a)) (+ (* -1 (/ (pow b 2) (pow a 2))) (/ b a)))))
(*.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 b b) a) a)) a) a)
(* (pow a 2) (+ 1 (+ (* -1 (/ b a)) (+ (* -1 (/ (pow b 2) (pow a 2))) (/ b a)))))
(*.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 b b) a) a)) a) a)
a
(* a (+ 1 (* -1 (/ b a))))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 b a)) a)
(* a (+ 1 (* -1 (/ b a))))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 b a)) a)
(* a (+ 1 (* -1 (/ b a))))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 b a)) a)
a
(* a (+ 1 (/ b a)))
(fma.f64 (/.f64 b a) a a)
(* a (+ 1 (/ b a)))
(fma.f64 (/.f64 b a) a a)
(* a (+ 1 (/ b a)))
(fma.f64 (/.f64 b a) a a)
(* -1 a)
(neg.f64 a)
(* -1 (* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2))))))
(*.f64 (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)))))))
(*.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))) (neg.f64 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)))) (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)
(neg.f64 a)
(* -1 (* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2))))))
(*.f64 (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)))))))
(*.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))) (neg.f64 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)))) (neg.f64 a))
a
(* -1 (* a (- (* 1/2 (/ (pow b 2) (pow a 2))) 1)))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal -1/2 binary64) #s(literal 1 binary64)) a)
(* -1 (* a (- (* 1/2 (/ (pow b 2) (pow a 2))) 1)))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal -1/2 binary64) #s(literal 1 binary64)) a)
(* -1 (* a (- (* 1/2 (/ (pow b 2) (pow a 2))) 1)))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal -1/2 binary64) #s(literal 1 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))))))
(*.f64 (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)))))))
(*.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))) (neg.f64 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)))) (neg.f64 a))
(pow a 2)
(*.f64 a a)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 b b) a) a)) a) a)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 b b) a) a)) a) a)
(* (pow a 2) (+ 1 (* -1 (/ (pow b 2) (pow a 2)))))
(*.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 b b) a) a)) 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)
(* -1 (* a (pow (sqrt -1) 2)))
a
(* -1 (* a (+ (* -1/2 (/ (+ b (* -1 b)) a)) (pow (sqrt -1) 2))))
a
(* -1 (* a (+ (* -1 (/ (+ (* -1/2 (/ (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2)))) a)) (* 1/2 (+ b (* -1 b)))) a)) (pow (sqrt -1) 2))))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal -1/2 binary64) #s(literal 1 binary64)) a)
(* -1 (* a (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/4 (/ (* (+ b (* -1 b)) (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2))))) (* a (pow (sqrt -1) 2)))) (* 1/2 (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2)))))) a)) (* 1/2 (+ b (* -1 b)))) a)) (pow (sqrt -1) 2))))
(*.f64 (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 (/ b a)) (/ b a))))
(*.f64 a a)
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -1 (+ b (* -1 b))) (/ (pow b 2) a)) a))))
(*.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 b b) a) a)) a) a)
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -1 (+ b (* -1 b))) (/ (pow b 2) a)) a))))
(*.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 b b) a) a)) a) a)
a
(* -1 (* a (- (/ b a) 1)))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 b a)) a)
(* -1 (* a (- (/ b a) 1)))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 b a)) a)
(* -1 (* a (- (/ b a) 1)))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 b a)) a)
a
(* -1 (* a (- (* -1 (/ b a)) 1)))
(fma.f64 (/.f64 b a) a a)
(* -1 (* a (- (* -1 (/ b a)) 1)))
(fma.f64 (/.f64 b a) a a)
(* -1 (* a (- (* -1 (/ b a)) 1)))
(fma.f64 (/.f64 b a) a a)

rewrite265.0ms (5.7%)

Memory
18.9MiB live, 147.8MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02093
03193
111493
277693
0864693
Stop Event
iter limit
node limit
iter limit
Counts
13 → 791
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)
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
(*.f64 (-.f64 a b) (+.f64 b a))
(-.f64 a b)
(+.f64 b 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>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval284.0ms (6.1%)

Memory
-2.5MiB live, 149.3MiB allocated
Compiler

Compiled 23 025 to 2 973 computations (87.1% saved)

prune74.0ms (1.6%)

Memory
15.3MiB live, 51.3MiB allocated
Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New1 04611 047
Fresh000
Picked314
Done000
Total1 04921 051
Accuracy
100.0%
Counts
1 051 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
51.4%
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
99.7%
#s(approx (sqrt (* (- a b) (+ b a))) a)
Compiler

Compiled 10 to 9 computations (10% saved)

simplify306.0ms (6.6%)

Memory
-26.7MiB live, 254.0MiB allocated
Algorithm
egg-herbie
Localize:

Found 1 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (sqrt (* (- a b) (+ b a))) a)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
0711
11711
24111
39211
418711
539211
684911
7177811
8241111
9267211
10272911
11276711
12276911
13276911
14277111
0896511
Stop Event
iter limit
node limit
saturated
Calls
Call 1
Inputs
#s(approx (sqrt (* (- a b) (+ b a))) a)
a
Outputs
#s(approx (sqrt (* (- a b) (+ b a))) a)
a

localize16.0ms (0.3%)

Memory
18.4MiB live, 18.4MiB allocated
Localize:

Found 1 expressions of interest:

NewMetricScoreProgram
accuracy0.1792176140397373
#s(approx (sqrt (* (- a b) (+ b a))) a)
Samples
11.0ms256×0valid
Compiler

Compiled 14 to 11 computations (21.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-sqrt: 2.0ms (33% of total)
ival-sub: 1.0ms (16.5% of total)
ival-add: 1.0ms (16.5% of total)
ival-mult: 1.0ms (16.5% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series1.0ms (0%)

Memory
1.5MiB live, 1.5MiB allocated
Counts
1 → 24
Calls
Call 1
Inputs
#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())
Outputs
#s(alt a (taylor 0 b) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (+ a (* 1/2 (/ (* b (+ a (* -1 a))) a))) (taylor 0 b) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (+ a (* b (+ (* -1/2 (/ (* b (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2))))) a)) (* 1/2 (/ (+ a (* -1 a)) a))))) (taylor 0 b) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (+ a (* b (+ (* 1/2 (/ (+ a (* -1 a)) a)) (* b (+ (* -1/2 (/ (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2)))) a)) (* 1/4 (/ (* b (* (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2)))) (+ a (* -1 a)))) (pow a 3)))))))) (taylor 0 b) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* b (sqrt -1)) (taylor inf b) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* b (+ (sqrt -1) (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))))) (taylor inf b) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* b (+ (sqrt -1) (+ (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* (pow b 2) (sqrt -1))))))) (taylor inf b) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* b (+ (sqrt -1) (+ (* -1/4 (/ (* (+ a (* -1 a)) (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2))))) (* (pow b 3) (pow (sqrt -1) 3)))) (+ (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* (pow b 2) (sqrt -1)))))))) (taylor inf b) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (sqrt -1))) (taylor -inf b) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (+ (sqrt -1) (* -1/2 (/ (+ a (* -1 a)) (* b (sqrt -1))))))) (taylor -inf b) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (+ (sqrt -1) (* -1 (/ (+ (* -1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* b (sqrt -1)))) (* 1/2 (/ (+ a (* -1 a)) (sqrt -1)))) b))))) (taylor -inf b) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 1/4 (/ (* (+ a (* -1 a)) (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2))))) (* b (pow (sqrt -1) 3)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (sqrt -1)))) b)) (* 1/2 (/ (+ a (* -1 a)) (sqrt -1)))) b))))) (taylor -inf b) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* b (sqrt -1)) (taylor 0 a) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (+ (* 1/2 (/ (* a (+ b (* -1 b))) (* b (sqrt -1)))) (* b (sqrt -1))) (taylor 0 a) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (+ (* a (+ (* 1/2 (/ (* a (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2)))))) (* b (sqrt -1)))) (* 1/2 (/ (+ b (* -1 b)) (* b (sqrt -1)))))) (* b (sqrt -1))) (taylor 0 a) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (+ (* a (+ (* 1/2 (/ (+ b (* -1 b)) (* b (sqrt -1)))) (* a (+ (* -1/4 (/ (* a (* (+ b (* -1 b)) (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2))))))) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2))))) (* b (sqrt -1)))))))) (* b (sqrt -1))) (taylor 0 a) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt a (taylor inf a) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (* 1/2 (/ (+ b (* -1 b)) a)))) (taylor inf a) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (+ (* 1/2 (/ (+ b (* -1 b)) a)) (* 1/2 (/ (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2))) (pow a 2)))))) (taylor inf a) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (+ (* -1/4 (/ (* (+ b (* -1 b)) (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2)))) (pow a 3))) (+ (* 1/2 (/ (+ b (* -1 b)) a)) (* 1/2 (/ (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2))) (pow a 2))))))) (taylor inf a) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (pow (sqrt -1) 2))) (taylor -inf a) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ (* -1/2 (/ (+ b (* -1 b)) a)) (pow (sqrt -1) 2)))) (taylor -inf a) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ (* -1 (/ (+ (* -1/2 (/ (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2)))) a)) (* 1/2 (+ b (* -1 b)))) a)) (pow (sqrt -1) 2)))) (taylor -inf a) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/4 (/ (* (+ b (* -1 b)) (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2))))) (* a (pow (sqrt -1) 2)))) (* 1/2 (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2)))))) a)) (* 1/2 (+ b (* -1 b)))) a)) (pow (sqrt -1) 2)))) (taylor -inf a) (#s(alt #s(approx (sqrt (* (- a b) (+ b a))) a) (patch #s(approx (sqrt (* (- a b) (+ b a))) a) #<representation binary64>) () ())) ())
Calls

6 calls:

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

simplify60.0ms (1.3%)

Memory
-0.9MiB live, 74.7MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0175514
1622331
23012207
08671198
Stop Event
iter limit
node limit
Counts
24 → 22
Calls
Call 1
Inputs
a
(+ a (* 1/2 (/ (* b (+ a (* -1 a))) a)))
(+ a (* b (+ (* -1/2 (/ (* b (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2))))) a)) (* 1/2 (/ (+ a (* -1 a)) a)))))
(+ a (* b (+ (* 1/2 (/ (+ a (* -1 a)) a)) (* b (+ (* -1/2 (/ (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2)))) a)) (* 1/4 (/ (* b (* (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2)))) (+ a (* -1 a)))) (pow a 3))))))))
(* b (sqrt -1))
(* b (+ (sqrt -1) (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1))))))
(* b (+ (sqrt -1) (+ (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* (pow b 2) (sqrt -1)))))))
(* b (+ (sqrt -1) (+ (* -1/4 (/ (* (+ a (* -1 a)) (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2))))) (* (pow b 3) (pow (sqrt -1) 3)))) (+ (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* (pow b 2) (sqrt -1))))))))
(* -1 (* b (sqrt -1)))
(* -1 (* b (+ (sqrt -1) (* -1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))))))
(* -1 (* b (+ (sqrt -1) (* -1 (/ (+ (* -1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* b (sqrt -1)))) (* 1/2 (/ (+ a (* -1 a)) (sqrt -1)))) b)))))
(* -1 (* b (+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 1/4 (/ (* (+ a (* -1 a)) (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2))))) (* b (pow (sqrt -1) 3)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (sqrt -1)))) b)) (* 1/2 (/ (+ a (* -1 a)) (sqrt -1)))) b)))))
(* b (sqrt -1))
(+ (* 1/2 (/ (* a (+ b (* -1 b))) (* b (sqrt -1)))) (* b (sqrt -1)))
(+ (* a (+ (* 1/2 (/ (* a (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2)))))) (* b (sqrt -1)))) (* 1/2 (/ (+ b (* -1 b)) (* b (sqrt -1)))))) (* b (sqrt -1)))
(+ (* a (+ (* 1/2 (/ (+ b (* -1 b)) (* b (sqrt -1)))) (* a (+ (* -1/4 (/ (* a (* (+ b (* -1 b)) (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2))))))) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2))))) (* b (sqrt -1)))))))) (* b (sqrt -1)))
a
(* a (+ 1 (* 1/2 (/ (+ b (* -1 b)) a))))
(* a (+ 1 (+ (* 1/2 (/ (+ b (* -1 b)) a)) (* 1/2 (/ (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2))) (pow a 2))))))
(* a (+ 1 (+ (* -1/4 (/ (* (+ b (* -1 b)) (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2)))) (pow a 3))) (+ (* 1/2 (/ (+ b (* -1 b)) a)) (* 1/2 (/ (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2))) (pow a 2)))))))
(* -1 (* a (pow (sqrt -1) 2)))
(* -1 (* a (+ (* -1/2 (/ (+ b (* -1 b)) a)) (pow (sqrt -1) 2))))
(* -1 (* a (+ (* -1 (/ (+ (* -1/2 (/ (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2)))) a)) (* 1/2 (+ b (* -1 b)))) a)) (pow (sqrt -1) 2))))
(* -1 (* a (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/4 (/ (* (+ b (* -1 b)) (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2))))) (* a (pow (sqrt -1) 2)))) (* 1/2 (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2)))))) a)) (* 1/2 (+ b (* -1 b)))) a)) (pow (sqrt -1) 2))))
Outputs
a
(+ a (* 1/2 (/ (* b (+ a (* -1 a))) a)))
a
(+ a (* b (+ (* -1/2 (/ (* b (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2))))) a)) (* 1/2 (/ (+ a (* -1 a)) a)))))
(fma.f64 (/.f64 b a) (*.f64 #s(literal -1/2 binary64) b) a)
(+ a (* b (+ (* 1/2 (/ (+ a (* -1 a)) a)) (* b (+ (* -1/2 (/ (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2)))) a)) (* 1/4 (/ (* b (* (+ 1 (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow a 2)))) (+ a (* -1 a)))) (pow a 3))))))))
(fma.f64 (/.f64 b a) (*.f64 #s(literal -1/2 binary64) b) a)
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(* b (+ (sqrt -1) (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1))))))
(fma.f64 (sqrt.f64 #s(literal -1 binary64)) b #s(literal 0 binary64))
(* b (+ (sqrt -1) (+ (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* (pow b 2) (sqrt -1)))))))
(*.f64 (fma.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) b) b) (*.f64 (/.f64 a (sqrt.f64 #s(literal -1 binary64))) a) (sqrt.f64 #s(literal -1 binary64))) b)
(* b (+ (sqrt -1) (+ (* -1/4 (/ (* (+ a (* -1 a)) (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2))))) (* (pow b 3) (pow (sqrt -1) 3)))) (+ (* 1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* (pow b 2) (sqrt -1))))))))
(*.f64 (fma.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) b) b) (*.f64 (/.f64 a (sqrt.f64 #s(literal -1 binary64))) a) (sqrt.f64 #s(literal -1 binary64))) b)
(* -1 (* b (sqrt -1)))
(*.f64 (neg.f64 b) (sqrt.f64 #s(literal -1 binary64)))
(* -1 (* b (+ (sqrt -1) (* -1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))))))
(*.f64 (neg.f64 b) (sqrt.f64 #s(literal -1 binary64)))
(* -1 (* b (+ (sqrt -1) (* -1 (/ (+ (* -1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (* b (sqrt -1)))) (* 1/2 (/ (+ a (* -1 a)) (sqrt -1)))) b)))))
(*.f64 (neg.f64 b) (-.f64 (sqrt.f64 #s(literal -1 binary64)) (/.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (/.f64 (*.f64 a a) b)) b)))
(* -1 (* b (+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 1/4 (/ (* (+ a (* -1 a)) (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2))))) (* b (pow (sqrt -1) 3)))) (* 1/2 (/ (- (pow a 2) (* 1/4 (/ (pow (+ a (* -1 a)) 2) (pow (sqrt -1) 2)))) (sqrt -1)))) b)) (* 1/2 (/ (+ a (* -1 a)) (sqrt -1)))) b)))))
(*.f64 (neg.f64 b) (-.f64 (sqrt.f64 #s(literal -1 binary64)) (/.f64 (/.f64 (/.f64 (*.f64 (*.f64 a a) #s(literal 1/2 binary64)) (sqrt.f64 #s(literal -1 binary64))) (neg.f64 b)) b)))
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(+ (* 1/2 (/ (* a (+ b (* -1 b))) (* b (sqrt -1)))) (* b (sqrt -1)))
(fma.f64 (sqrt.f64 #s(literal -1 binary64)) b #s(literal 0 binary64))
(+ (* a (+ (* 1/2 (/ (* a (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2)))))) (* b (sqrt -1)))) (* 1/2 (/ (+ b (* -1 b)) (* b (sqrt -1)))))) (* b (sqrt -1)))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)) a) a (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* a (+ (* 1/2 (/ (+ b (* -1 b)) (* b (sqrt -1)))) (* a (+ (* -1/4 (/ (* a (* (+ b (* -1 b)) (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2))))))) (* (pow b 3) (pow (sqrt -1) 3)))) (* 1/2 (/ (- 1 (* 1/4 (/ (pow (+ b (* -1 b)) 2) (* (pow b 2) (pow (sqrt -1) 2))))) (* b (sqrt -1)))))))) (* b (sqrt -1)))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)) a) a (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
a
(* a (+ 1 (* 1/2 (/ (+ b (* -1 b)) a))))
a
(* a (+ 1 (+ (* 1/2 (/ (+ b (* -1 b)) a)) (* 1/2 (/ (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2))) (pow a 2))))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) a) (/.f64 (/.f64 (*.f64 (neg.f64 b) b) a) a) a)
(* a (+ 1 (+ (* -1/4 (/ (* (+ b (* -1 b)) (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2)))) (pow a 3))) (+ (* 1/2 (/ (+ b (* -1 b)) a)) (* 1/2 (/ (- (* -1 (pow b 2)) (* 1/4 (pow (+ b (* -1 b)) 2))) (pow a 2)))))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) a) (/.f64 (/.f64 (*.f64 (neg.f64 b) b) a) a) a)
(* -1 (* a (pow (sqrt -1) 2)))
a
(* -1 (* a (+ (* -1/2 (/ (+ b (* -1 b)) a)) (pow (sqrt -1) 2))))
a
(* -1 (* a (+ (* -1 (/ (+ (* -1/2 (/ (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2)))) a)) (* 1/2 (+ b (* -1 b)))) a)) (pow (sqrt -1) 2))))
(fma.f64 (/.f64 (*.f64 (/.f64 b a) (*.f64 #s(literal -1/2 binary64) b)) a) a a)
(* -1 (* a (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/4 (/ (* (+ b (* -1 b)) (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2))))) (* a (pow (sqrt -1) 2)))) (* 1/2 (- (pow b 2) (* 1/4 (/ (pow (+ b (* -1 b)) 2) (pow (sqrt -1) 2)))))) a)) (* 1/2 (+ b (* -1 b)))) a)) (pow (sqrt -1) 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) a) (/.f64 (/.f64 (*.f64 (neg.f64 b) b) a) a) a)

rewrite168.0ms (3.6%)

Memory
4.2MiB live, 173.1MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
0710
14310
237110
3762110
0812510
Stop Event
iter limit
node limit
saturated
Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (* (- a b) (+ b a))) a)
Outputs
#<batchref>

eval27.0ms (0.6%)

Memory
-34.2MiB live, 5.0MiB allocated
Compiler

Compiled 220 to 55 computations (75% saved)

prune2.0ms (0.1%)

Memory
6.9MiB live, 6.9MiB allocated
Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New23023
Fresh000
Picked011
Done011
Total23225
Accuracy
100.0%
Counts
25 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
51.4%
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
99.7%
#s(approx (sqrt (* (- a b) (+ b a))) a)
Compiler

Compiled 45 to 29 computations (35.6% saved)

regimes25.0ms (0.5%)

Memory
6.0MiB live, 49.5MiB allocated
Counts
6 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (* (- a b) (+ b a))) a)
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b 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:

12.0ms
b
3.0ms
a
2.0ms
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
2.0ms
(-.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)

regimes14.0ms (0.3%)

Memory
-5.4MiB live, 32.8MiB allocated
Accuracy

Total -63.2b remaining (-35279.1%)

Threshold costs -63.2b (-35279.1%)

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

6 calls:

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

Compiled 23 to 21 computations (8.7% saved)

simplify23.0ms (0.5%)

Memory
19.9MiB live, 58.6MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01627
11727
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))
#s(approx (sqrt (* (- a b) (+ b a))) a)
Outputs
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 b (/.f64 #s(literal -1/2 binary64) a)) b a))
#s(approx (sqrt (* (- a b) (+ b a))) a)

soundness477.0ms (10.3%)

Memory
10.1MiB live, 286.8MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03542863
111402785
249462747
083032593
0119757
1332757
21128744
34541722
08122682
0621
01021
13621
223921
3213521
0937821
Stop Event
done
iter limit
node limit
iter limit
iter limit
node limit
iter limit
node limit
Compiler

Compiled 35 to 26 computations (25.7% saved)

preprocess102.0ms (2.2%)

Memory
-26.9MiB live, 141.3MiB allocated
Remove

(abs b)

Compiler

Compiled 172 to 130 computations (24.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...