bug366, discussion (missed optimization)

Time bar (total: 4.9s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze32.0ms (0.6%)

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

sample821.0ms (16.7%)

Memory
-3.3MiB live, 837.6MiB allocated
Samples
508.0ms8 256×0valid
32.0ms655×0invalid
Precisions
Click to see histograms. Total time spent on operations: 330.0ms
ival-mult: 180.0ms (54.5% of total)
ival-sqrt: 95.0ms (28.8% of total)
ival-sub: 46.0ms (13.9% of total)
ival-true: 7.0ms (2.1% of total)
ival-assert: 3.0ms (0.9% of total)
Bogosity

explain99.0ms (2%)

Memory
7.1MiB live, 91.4MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1260-1(-2.0803057720972443e-161 -2.4918929187266795e-189)(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
220-0-(-.f64 (*.f64 a a) (*.f64 b b))
00-0-(*.f64 a a)
00-0-a
00-0-b
00-0-(*.f64 b b)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))oflow-rescue1090
(*.f64 b b)overflow22
(-.f64 (*.f64 a a) (*.f64 b b))overflow109
(*.f64 a a)overflow109
-.f64(-.f64 (*.f64 a a) (*.f64 b b))nan-rescue220
(*.f64 a a)overflow109
(*.f64 b b)overflow22
sqrt.f64(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))uflow-rescue160
(*.f64 b b)underflow110
(-.f64 (*.f64 a a) (*.f64 b b))underflow16
(*.f64 a a)underflow16
Confusion
Predicted +Predicted -
+1251
-0130
Precision
1.0
Recall
0.9920634920634921
Confusion?
Predicted +Predicted MaybePredicted -
+12501
-00130
Precision?
1.0
Recall?
0.9920634920634921
Freqs
test
numberfreq
0131
1103
222
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
27.0ms512×0valid
Compiler

Compiled 58 to 22 computations (62.1% saved)

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

preprocess439.0ms (8.9%)

Memory
6.4MiB live, 231.6MiB allocated
Algorithm
egg-herbie
Rules
24 584×lower-fma.f64
24 584×lower-fma.f32
5 200×lower-+.f64
5 200×lower-+.f32
3 968×associate-+r+
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.9MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
53.7%
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
Compiler

Compiled 8 to 6 computations (25% saved)

simplify343.0ms (7%)

Memory
0.0MiB live, 196.1MiB 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))
Rules
24 584×lower-fma.f64
24 584×lower-fma.f32
5 200×lower-+.f64
5 200×lower-+.f32
3 968×associate-+r+
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

localize97.0ms (2%)

Memory
-16.4MiB live, 45.6MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 b b)
accuracy0
(*.f64 a a)
accuracy4.382812500000001
(-.f64 (*.f64 a a) (*.f64 b b))
accuracy29.180572003783933
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
Samples
17.0ms256×0valid
Compiler

Compiled 25 to 8 computations (68% saved)

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

series7.0ms (0.1%)

Memory
9.6MiB live, 9.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
@0
((- (* a a) (* b b)) (sqrt (- (* a a) (* b b))) (* a a) (* b b))
1.0ms
a
@inf
((- (* a a) (* b b)) (sqrt (- (* a a) (* b b))) (* a a) (* b b))
1.0ms
b
@-inf
((- (* a a) (* b b)) (sqrt (- (* a a) (* b b))) (* a a) (* b b))

simplify194.0ms (3.9%)

Memory
-9.0MiB live, 180.5MiB allocated
Algorithm
egg-herbie
Rules
18 934×lower-fma.f64
18 934×lower-fma.f32
5 608×lower-*.f64
5 608×lower-*.f32
3 030×lower-+.f64
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)

rewrite276.0ms (5.6%)

Memory
-10.9MiB live, 189.0MiB allocated
Rules
6 736×lower-fma.f64
6 736×lower-fma.f32
3 576×lower-/.f64
3 576×lower-/.f32
3 476×lower-*.f32
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>

eval82.0ms (1.7%)

Memory
27.9MiB live, 65.6MiB allocated
Compiler

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

prune95.0ms (1.9%)

Memory
-25.7MiB live, 18.9MiB allocated
Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New3915396
Fresh000
Picked101
Done000
Total3925397
Accuracy
100.0%
Counts
397 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.3%
(*.f64 (sqrt.f64 (-.f64 a b)) (sqrt.f64 (+.f64 b a)))
54.4%
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
54.4%
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
99.1%
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
1.2%
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
Compiler

Compiled 68 to 58 computations (14.7% saved)

simplify144.0ms (2.9%)

Memory
14.0MiB live, 50.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 17 expressions of interest:

NewMetricScoreProgram
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
(+.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
(neg.f64 a)
cost-diff0
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
cost-diff0
(sqrt.f64 (+.f64 b a))
cost-diff0
(-.f64 a b)
cost-diff0
(sqrt.f64 (-.f64 a b))
cost-diff0
(*.f64 (sqrt.f64 (-.f64 a b)) (sqrt.f64 (+.f64 b a)))
Rules
13 330×lower-fma.f32
13 328×lower-fma.f64
3 318×lower--.f32
3 316×lower--.f64
2 170×lower-*.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023125
037125
164125
2100125
3169125
4289125
5626125
61602125
73365125
86555125
08180125
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (-.f64 a b)) (sqrt.f64 (+.f64 b a)))
(sqrt.f64 (-.f64 a b))
(-.f64 a b)
a
b
(sqrt.f64 (+.f64 b a))
(+.f64 b a)
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
(neg.f64 a)
a
(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)
#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
Outputs
(*.f64 (sqrt.f64 (-.f64 a b)) (sqrt.f64 (+.f64 b a)))
(*.f64 (sqrt.f64 (+.f64 b a)) (sqrt.f64 (-.f64 a b)))
(sqrt.f64 (-.f64 a b))
(-.f64 a b)
a
b
(sqrt.f64 (+.f64 b a))
(+.f64 b a)
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
(neg.f64 a)
a
(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)
#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

localize100.0ms (2%)

Memory
-9.4MiB live, 28.9MiB allocated
Localize:

Found 17 expressions of interest:

NewMetricScoreProgram
accuracy0
(fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a)
accuracy0
(/.f64 #s(literal -1/2 binary64) a)
accuracy0.1875
(*.f64 (/.f64 #s(literal -1/2 binary64) a) b)
accuracy0.5711728417461157
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
accuracy0
(-.f64 a b)
accuracy0
(+.f64 b a)
accuracy0
(*.f64 (-.f64 a b) (+.f64 b a))
accuracy29.180572003783933
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
accuracy0
(*.f64 a a)
accuracy0.012976281620653759
#s(approx (- (* a a) (* b b)) (*.f64 a a))
accuracy29.180572003783933
(sqrt.f64 #s(approx (- (* a a) (* b b)) (*.f64 a a)))
accuracy0
(neg.f64 a)
accuracy63.25132142790268
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
accuracy0
(+.f64 b a)
accuracy0.00390625
(sqrt.f64 (+.f64 b a))
accuracy0.0234375
(sqrt.f64 (-.f64 a b))
accuracy0.44140625
(*.f64 (sqrt.f64 (-.f64 a b)) (sqrt.f64 (+.f64 b a)))
Samples
88.0ms256×0valid
Compiler

Compiled 108 to 21 computations (80.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 23.0ms
ival-mult: 8.0ms (35.2% of total)
ival-sqrt: 6.0ms (26.4% of total)
ival-sub: 3.0ms (13.2% of total)
ival-div: 2.0ms (8.8% of total)
ival-add: 2.0ms (8.8% of total)
ival-neg: 1.0ms (4.4% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series32.0ms (0.7%)

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

6 calls:

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

simplify398.0ms (8.1%)

Memory
-7.4MiB live, 145.8MiB allocated
Algorithm
egg-herbie
Rules
11 938×lower-fma.f64
11 938×lower-fma.f32
4 572×lower-*.f64
4 572×lower-*.f32
2 664×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
05765327
118724323
275724315
080224070
Stop Event
iter limit
node limit
Counts
348 → 326
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))))))))
(sqrt a)
(+ (sqrt a) (* -1/2 (* (sqrt (/ 1 a)) b)))
(+ (sqrt a) (* b (+ (* -1/2 (sqrt (/ 1 a))) (* -1/8 (* (sqrt (/ 1 (pow a 3))) b)))))
(+ (sqrt a) (* b (+ (* -1/2 (sqrt (/ 1 a))) (* b (+ (* -1/8 (sqrt (/ 1 (pow a 3)))) (* -1/16 (* (sqrt (/ 1 (pow a 5))) b)))))))
a
(+ a (* -1 b))
(+ a (* -1 b))
(+ a (* -1 b))
(sqrt a)
(+ (sqrt a) (* 1/2 (* (sqrt (/ 1 a)) b)))
(+ (sqrt a) (* b (+ (* -1/8 (* (sqrt (/ 1 (pow a 3))) b)) (* 1/2 (sqrt (/ 1 a))))))
(+ (sqrt a) (* b (+ (* 1/2 (sqrt (/ 1 a))) (* b (+ (* -1/8 (sqrt (/ 1 (pow a 3)))) (* 1/16 (* (sqrt (/ 1 (pow a 5))) b)))))))
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)))))
(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 b)
(+ a b)
(+ a b)
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))
(* 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))))))))
(* (sqrt b) (sqrt -1))
(* b (+ (* 1/2 (* (/ a (sqrt -1)) (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (sqrt -1))))
(* b (+ (* -1/8 (* (/ (pow a 2) (pow (sqrt -1) 3)) (sqrt (/ 1 (pow b 5))))) (+ (* 1/2 (* (/ a (sqrt -1)) (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (sqrt -1)))))
(* b (+ (* -1/8 (* (/ (pow a 2) (pow (sqrt -1) 3)) (sqrt (/ 1 (pow b 5))))) (+ (* 1/16 (* (/ (pow a 3) (pow (sqrt -1) 5)) (sqrt (/ 1 (pow b 7))))) (+ (* 1/2 (* (/ a (sqrt -1)) (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (sqrt -1))))))
(* -1 b)
(* b (- (/ a b) 1))
(* b (- (/ a b) 1))
(* b (- (/ a b) 1))
(sqrt b)
(* b (+ (sqrt (/ 1 b)) (* 1/2 (* a (sqrt (/ 1 (pow b 3)))))))
(* b (+ (sqrt (/ 1 b)) (+ (* -1/8 (* (pow a 2) (sqrt (/ 1 (pow b 5))))) (* 1/2 (* a (sqrt (/ 1 (pow b 3))))))))
(* b (+ (sqrt (/ 1 b)) (+ (* -1/8 (* (pow a 2) (sqrt (/ 1 (pow b 5))))) (+ (* 1/16 (* (pow a 3) (sqrt (/ 1 (pow b 7))))) (* 1/2 (* a (sqrt (/ 1 (pow b 3)))))))))
(* 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 (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))
b
(* b (+ 1 (/ a b)))
(* b (+ 1 (/ a b)))
(* b (+ 1 (/ 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))))))))
(* -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 (/ (+ 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 (* (sqrt b) (sqrt -1)))
(* -1 (* b (+ (* 1/2 (* (* a (sqrt -1)) (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (sqrt -1)))))
(* -1 (* b (+ (* -1/8 (* (* (pow a 2) (sqrt -1)) (sqrt (/ 1 (pow b 5))))) (+ (* 1/2 (* (* a (sqrt -1)) (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (sqrt -1))))))
(* -1 (* b (+ (* -1/8 (* (* (pow a 2) (sqrt -1)) (sqrt (/ 1 (pow b 5))))) (+ (* 1/16 (* (* (pow a 3) (sqrt -1)) (sqrt (/ 1 (pow b 7))))) (+ (* 1/2 (* (* a (sqrt -1)) (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (sqrt -1)))))))
(* -1 b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(* -1 (* (sqrt b) (pow (sqrt -1) 2)))
(* -1 (* b (+ (* 1/2 (* a (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (pow (sqrt -1) 2)))))
(* -1 (* b (+ (* -1/8 (* (/ (pow a 2) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow b 5))))) (+ (* 1/2 (* a (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (pow (sqrt -1) 2))))))
(* -1 (* b (+ (* -1/8 (* (/ (pow a 2) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow b 5))))) (+ (* 1/16 (* (/ (pow a 3) (pow (sqrt -1) 4)) (sqrt (/ 1 (pow b 7))))) (+ (* 1/2 (* a (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (pow (sqrt -1) 2)))))))
(* -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 (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))
b
(* -1 (* b (- (* -1 (/ a b)) 1)))
(* -1 (* b (- (* -1 (/ a b)) 1)))
(* -1 (* b (- (* -1 (/ a b)) 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))
(* 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)))
(* (sqrt b) (sqrt -1))
(+ (* 1/2 (* (/ a (sqrt -1)) (sqrt (/ 1 b)))) (* (sqrt b) (sqrt -1)))
(+ (* a (+ (* -1/8 (* (/ a (pow (sqrt -1) 3)) (sqrt (/ 1 (pow b 3))))) (* 1/2 (* (sqrt (/ 1 b)) (/ 1 (sqrt -1)))))) (* (sqrt b) (sqrt -1)))
(+ (* a (+ (* 1/2 (* (sqrt (/ 1 b)) (/ 1 (sqrt -1)))) (* a (+ (* -1/8 (* (sqrt (/ 1 (pow b 3))) (/ 1 (pow (sqrt -1) 3)))) (* 1/16 (* (/ a (pow (sqrt -1) 5)) (sqrt (/ 1 (pow b 5))))))))) (* (sqrt b) (sqrt -1)))
(* -1 b)
(- a b)
(- a b)
(- a b)
(sqrt b)
(+ (sqrt b) (* 1/2 (* a (sqrt (/ 1 b)))))
(+ (sqrt b) (* a (+ (* -1/8 (* a (sqrt (/ 1 (pow b 3))))) (* 1/2 (sqrt (/ 1 b))))))
(+ (sqrt b) (* a (+ (* 1/2 (sqrt (/ 1 b))) (* a (+ (* -1/8 (sqrt (/ 1 (pow b 3)))) (* 1/16 (* a (sqrt (/ 1 (pow b 5))))))))))
(* 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 (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)))))
b
(+ a b)
(+ a b)
(+ a b)
(* 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)
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)))))))
(sqrt a)
(* a (+ (sqrt (/ 1 a)) (* -1/2 (* (sqrt (/ 1 (pow a 3))) b))))
(* a (+ (sqrt (/ 1 a)) (+ (* -1/2 (* (sqrt (/ 1 (pow a 3))) b)) (* -1/8 (* (sqrt (/ 1 (pow a 5))) (pow b 2))))))
(* a (+ (sqrt (/ 1 a)) (+ (* -1/2 (* (sqrt (/ 1 (pow a 3))) b)) (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (pow b 2))) (* -1/16 (* (sqrt (/ 1 (pow a 7))) (pow b 3)))))))
a
(* a (+ 1 (* -1 (/ b a))))
(* a (+ 1 (* -1 (/ b a))))
(* a (+ 1 (* -1 (/ b a))))
(sqrt a)
(* a (+ (sqrt (/ 1 a)) (* 1/2 (* (sqrt (/ 1 (pow a 3))) b))))
(* a (+ (sqrt (/ 1 a)) (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (pow b 2))) (* 1/2 (* (sqrt (/ 1 (pow a 3))) b)))))
(* a (+ (sqrt (/ 1 a)) (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (pow b 2))) (+ (* 1/16 (* (sqrt (/ 1 (pow a 7))) (pow b 3))) (* 1/2 (* (sqrt (/ 1 (pow a 3))) 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)))))))
(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 (/ b a)))
(* a (+ 1 (/ b a)))
(* a (+ 1 (/ b 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)
(* -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))))
(* -1 (* (sqrt a) (pow (sqrt -1) 2)))
(* -1 (* a (+ (* 1/2 (* (sqrt (/ 1 (pow a 3))) (* b (pow (sqrt -1) 2)))) (* (sqrt (/ 1 a)) (pow (sqrt -1) 2)))))
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (* (pow b 2) (pow (sqrt -1) 2)))) (+ (* 1/2 (* (sqrt (/ 1 (pow a 3))) (* b (pow (sqrt -1) 2)))) (* (sqrt (/ 1 a)) (pow (sqrt -1) 2))))))
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (* (pow b 2) (pow (sqrt -1) 2)))) (+ (* 1/16 (* (sqrt (/ 1 (pow a 7))) (* (pow b 3) (pow (sqrt -1) 2)))) (+ (* 1/2 (* (sqrt (/ 1 (pow a 3))) (* b (pow (sqrt -1) 2)))) (* (sqrt (/ 1 a)) (pow (sqrt -1) 2)))))))
a
(* -1 (* a (- (/ b a) 1)))
(* -1 (* a (- (/ b a) 1)))
(* -1 (* a (- (/ b a) 1)))
(* -1 (* (sqrt a) (pow (sqrt -1) 2)))
(* -1 (* a (+ (* 1/2 (* (sqrt (/ 1 (pow a 3))) b)) (* (sqrt (/ 1 a)) (pow (sqrt -1) 2)))))
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (/ (pow b 2) (pow (sqrt -1) 2)))) (+ (* 1/2 (* (sqrt (/ 1 (pow a 3))) b)) (* (sqrt (/ 1 a)) (pow (sqrt -1) 2))))))
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (/ (pow b 2) (pow (sqrt -1) 2)))) (+ (* 1/16 (* (sqrt (/ 1 (pow a 7))) (/ (pow b 3) (pow (sqrt -1) 4)))) (+ (* 1/2 (* (sqrt (/ 1 (pow a 3))) b)) (* (sqrt (/ 1 a)) (pow (sqrt -1) 2)))))))
(* -1 a)
(* -1 (* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2))))))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6))))))))
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 (* a (+ 1 (* -1/2 (/ (pow b 2) (pow a 2))))))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (+ (* -1/8 (/ (pow b 4) (pow a 4))) (* -1/16 (/ (pow b 6) (pow a 6))))))))
(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 (- (* -1 (/ b a)) 1)))
(* -1 (* a (- (* -1 (/ b a)) 1)))
(* -1 (* a (- (* -1 (/ b a)) 1)))
(* -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)
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 #s(literal -1/2 binary64) b) (/.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 #s(literal -1/2 binary64) b) (/.f64 b a) a)
(sqrt a)
(sqrt.f64 a)
(+ (sqrt a) (* -1/2 (* (sqrt (/ 1 a)) b)))
(fma.f64 (*.f64 #s(literal -1/2 binary64) b) (sqrt.f64 (/.f64 #s(literal 1 binary64) a)) (sqrt.f64 a))
(+ (sqrt a) (* b (+ (* -1/2 (sqrt (/ 1 a))) (* -1/8 (* (sqrt (/ 1 (pow a 3))) b)))))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) b) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) a)) #s(literal -1/2 binary64))) b (sqrt.f64 a))
(+ (sqrt a) (* b (+ (* -1/2 (sqrt (/ 1 a))) (* b (+ (* -1/8 (sqrt (/ 1 (pow a 3)))) (* -1/16 (* (sqrt (/ 1 (pow a 5))) b)))))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal -1/16 binary64) b) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 5 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) #s(literal -1/8 binary64))) b (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) a)) #s(literal -1/2 binary64))) b (sqrt.f64 a))
a
(+ a (* -1 b))
(-.f64 a b)
(+ a (* -1 b))
(-.f64 a b)
(+ a (* -1 b))
(-.f64 a b)
(sqrt a)
(sqrt.f64 a)
(+ (sqrt a) (* 1/2 (* (sqrt (/ 1 a)) b)))
(fma.f64 (*.f64 b #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) a)) (sqrt.f64 a))
(+ (sqrt a) (* b (+ (* -1/8 (* (sqrt (/ 1 (pow a 3))) b)) (* 1/2 (sqrt (/ 1 a))))))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) b) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) a)) #s(literal 1/2 binary64))) b (sqrt.f64 a))
(+ (sqrt a) (* b (+ (* 1/2 (sqrt (/ 1 a))) (* b (+ (* -1/8 (sqrt (/ 1 (pow a 3)))) (* 1/16 (* (sqrt (/ 1 (pow a 5))) b)))))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/16 binary64) b) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 5 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) #s(literal -1/8 binary64))) b (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) a)) #s(literal 1/2 binary64))) b (sqrt.f64 a))
a
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (*.f64 #s(literal -1/2 binary64) b) (/.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 #s(literal -1/2 binary64) b) (/.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))
(fma.f64 (neg.f64 b) b (*.f64 a a))
(+ (* -1 (pow b 2)) (pow a 2))
(fma.f64 (neg.f64 b) b (*.f64 a a))
(+ (* -1 (pow b 2)) (pow a 2))
(fma.f64 (neg.f64 b) b (*.f64 a a))
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 #s(literal -1/2 binary64) b) (/.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 #s(literal -1/2 binary64) b) (/.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))
(fma.f64 (neg.f64 b) b (*.f64 a a))
(+ (* b (+ a (+ (* -1 a) (* -1 b)))) (pow a 2))
(fma.f64 (neg.f64 b) b (*.f64 a a))
a
(+ a b)
(+.f64 b a)
(+ a b)
(+.f64 b a)
(+ a b)
(+.f64 b a)
a
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (*.f64 #s(literal -1/2 binary64) b) (/.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 #s(literal -1/2 binary64) b) (/.f64 b a) a)
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (*.f64 #s(literal -1/2 binary64) b) (/.f64 b a) a)
(+ a (* -1/2 (/ (pow b 2) a)))
(fma.f64 (*.f64 #s(literal -1/2 binary64) b) (/.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)
(* 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 (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 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 (fma.f64 (/.f64 (/.f64 a b) b) (/.f64 a (sqrt.f64 #s(literal -1 binary64))) (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))) #s(literal 1/2 binary64) (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 (fma.f64 (/.f64 (/.f64 a b) b) (/.f64 a (sqrt.f64 #s(literal -1 binary64))) (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))) #s(literal 1/2 binary64) (+.f64 (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64))) (sqrt.f64 #s(literal -1 binary64)))) b)
(* (sqrt b) (sqrt -1))
(*.f64 (sqrt.f64 b) (sqrt.f64 #s(literal -1 binary64)))
(* b (+ (* 1/2 (* (/ a (sqrt -1)) (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (sqrt -1))))
(*.f64 (fma.f64 (*.f64 (/.f64 a (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) (sqrt.f64 #s(literal -1 binary64)))) b)
(* b (+ (* -1/8 (* (/ (pow a 2) (pow (sqrt -1) 3)) (sqrt (/ 1 (pow b 5))))) (+ (* 1/2 (* (/ a (sqrt -1)) (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (sqrt -1)))))
(*.f64 (fma.f64 (*.f64 (*.f64 a (/.f64 (/.f64 a (sqrt.f64 #s(literal -1 binary64))) #s(literal -1 binary64))) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 5 binary64)))) (fma.f64 (*.f64 (/.f64 a (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) (sqrt.f64 #s(literal -1 binary64))))) b)
(* b (+ (* -1/8 (* (/ (pow a 2) (pow (sqrt -1) 3)) (sqrt (/ 1 (pow b 5))))) (+ (* 1/16 (* (/ (pow a 3) (pow (sqrt -1) 5)) (sqrt (/ 1 (pow b 7))))) (+ (* 1/2 (* (/ a (sqrt -1)) (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (sqrt -1))))))
(*.f64 (fma.f64 (*.f64 (*.f64 a (/.f64 (/.f64 a (sqrt.f64 #s(literal -1 binary64))) #s(literal -1 binary64))) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 5 binary64)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/16 binary64) (pow.f64 a #s(literal 3 binary64))) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 7 binary64)))) (fma.f64 (*.f64 (/.f64 a (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) (sqrt.f64 #s(literal -1 binary64)))))) 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)
(sqrt b)
(sqrt.f64 b)
(* b (+ (sqrt (/ 1 b)) (* 1/2 (* a (sqrt (/ 1 (pow b 3)))))))
(*.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) b))) b)
(* b (+ (sqrt (/ 1 b)) (+ (* -1/8 (* (pow a 2) (sqrt (/ 1 (pow b 5))))) (* 1/2 (* a (sqrt (/ 1 (pow b 3))))))))
(*.f64 (fma.f64 (*.f64 (*.f64 #s(literal -1/8 binary64) a) a) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 5 binary64)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) b)))) b)
(* b (+ (sqrt (/ 1 b)) (+ (* -1/8 (* (pow a 2) (sqrt (/ 1 (pow b 5))))) (+ (* 1/16 (* (pow a 3) (sqrt (/ 1 (pow b 7))))) (* 1/2 (* a (sqrt (/ 1 (pow b 3)))))))))
(*.f64 (+.f64 (fma.f64 (*.f64 (*.f64 #s(literal -1/8 binary64) a) a) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 5 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) b))) (fma.f64 (*.f64 #s(literal 1/16 binary64) (pow.f64 a #s(literal 3 binary64))) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 7 binary64)))) (*.f64 (*.f64 #s(literal 1/2 binary64) a) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 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) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (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/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (fma.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (*.f64 (*.f64 (pow.f64 b #s(literal 4 binary64)) #s(literal -1 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))))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/8 binary64) (pow.f64 b #s(literal 4 binary64))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (*.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal -1 binary64))) (+.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (*.f64 (pow.f64 a #s(literal 6 binary64)) #s(literal 1/16 binary64)) (*.f64 (pow.f64 b #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))))) (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) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (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/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (fma.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (*.f64 (*.f64 (pow.f64 b #s(literal 4 binary64)) #s(literal -1 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))))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/8 binary64) (pow.f64 b #s(literal 4 binary64))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (*.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal -1 binary64))) (+.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (*.f64 (pow.f64 a #s(literal 6 binary64)) #s(literal 1/16 binary64)) (*.f64 (pow.f64 b #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))))) (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 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 (/.f64 a b) (/.f64 a 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))))))
(fma.f64 (sqrt.f64 #s(literal -1 binary64)) b (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 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 (fma.f64 (/.f64 (/.f64 a b) b) (/.f64 a (sqrt.f64 #s(literal -1 binary64))) (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))) #s(literal 1/2 binary64) (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 (fma.f64 (/.f64 (/.f64 a b) b) (/.f64 a (sqrt.f64 #s(literal -1 binary64))) (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))) #s(literal 1/2 binary64) (+.f64 (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64))) (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 (/.f64 a b) (/.f64 a 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 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64)) 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)
(* b (+ 1 (/ a b)))
(fma.f64 (/.f64 a b) 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))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (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/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (fma.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (*.f64 (*.f64 (pow.f64 b #s(literal 4 binary64)) #s(literal -1 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))))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/8 binary64) (pow.f64 b #s(literal 4 binary64))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (*.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal -1 binary64))) (+.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (*.f64 (pow.f64 a #s(literal 6 binary64)) #s(literal 1/16 binary64)) (*.f64 (pow.f64 b #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))))) (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 (/.f64 a 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 (/.f64 a 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 (/.f64 a 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 (sqrt.f64 #s(literal -1 binary64)) (neg.f64 b))
(* -1 (* b (+ (sqrt -1) (* -1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))))))
(neg.f64 (fma.f64 (sqrt.f64 #s(literal -1 binary64)) b (/.f64 #s(literal 0 binary64) (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 (-.f64 (sqrt.f64 #s(literal -1 binary64)) (/.f64 (fma.f64 (/.f64 #s(literal -1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a b)) (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))) b)) (neg.f64 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 (sqrt.f64 #s(literal -1 binary64)) (/.f64 (-.f64 (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) #s(literal 1/2 binary64) (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))) b)) b)) (neg.f64 b))
(* -1 (* (sqrt b) (sqrt -1)))
(*.f64 (neg.f64 (sqrt.f64 #s(literal -1 binary64))) (sqrt.f64 b))
(* -1 (* b (+ (* 1/2 (* (* a (sqrt -1)) (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (sqrt -1)))))
(*.f64 (fma.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) a) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) (sqrt.f64 #s(literal -1 binary64)))) (neg.f64 b))
(* -1 (* b (+ (* -1/8 (* (* (pow a 2) (sqrt -1)) (sqrt (/ 1 (pow b 5))))) (+ (* 1/2 (* (* a (sqrt -1)) (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (sqrt -1))))))
(*.f64 (fma.f64 (*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) a) a) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 5 binary64)))) (fma.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) a) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) (sqrt.f64 #s(literal -1 binary64))))) (neg.f64 b))
(* -1 (* b (+ (* -1/8 (* (* (pow a 2) (sqrt -1)) (sqrt (/ 1 (pow b 5))))) (+ (* 1/16 (* (* (pow a 3) (sqrt -1)) (sqrt (/ 1 (pow b 7))))) (+ (* 1/2 (* (* a (sqrt -1)) (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (sqrt -1)))))))
(*.f64 (fma.f64 (*.f64 #s(literal 1/16 binary64) (pow.f64 a #s(literal 3 binary64))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 7 binary64)))) (sqrt.f64 #s(literal -1 binary64))) (fma.f64 (*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) a) a) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 5 binary64)))) (fma.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) a) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) (sqrt.f64 #s(literal -1 binary64)))))) (neg.f64 b))
(* -1 b)
(neg.f64 b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 a b)) (neg.f64 b))
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 a b)) (neg.f64 b))
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 a b)) (neg.f64 b))
(* -1 (* (sqrt b) (pow (sqrt -1) 2)))
(*.f64 (sqrt.f64 b) #s(literal 1 binary64))
(* -1 (* b (+ (* 1/2 (* a (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (pow (sqrt -1) 2)))))
(*.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) #s(literal -1 binary64))) (neg.f64 b))
(* -1 (* b (+ (* -1/8 (* (/ (pow a 2) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow b 5))))) (+ (* 1/2 (* a (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (pow (sqrt -1) 2))))))
(*.f64 (fma.f64 (*.f64 (*.f64 a (/.f64 a #s(literal -1 binary64))) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 5 binary64)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) #s(literal -1 binary64)))) (neg.f64 b))
(* -1 (* b (+ (* -1/8 (* (/ (pow a 2) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow b 5))))) (+ (* 1/16 (* (/ (pow a 3) (pow (sqrt -1) 4)) (sqrt (/ 1 (pow b 7))))) (+ (* 1/2 (* a (sqrt (/ 1 (pow b 3))))) (* (sqrt (/ 1 b)) (pow (sqrt -1) 2)))))))
(*.f64 (fma.f64 (/.f64 (*.f64 #s(literal 1/16 binary64) (pow.f64 a #s(literal 3 binary64))) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 4 binary64))) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 7 binary64)))) (fma.f64 (*.f64 (*.f64 a (/.f64 a #s(literal -1 binary64))) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 5 binary64)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) #s(literal -1 binary64))))) (neg.f64 b))
(* -1 (* b (sqrt -1)))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) (neg.f64 b))
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (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/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (fma.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (*.f64 (*.f64 (pow.f64 b #s(literal 4 binary64)) #s(literal -1 binary64)) (sqrt.f64 #s(literal -1 binary64)))) #s(literal -1/8 binary64) (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/8 binary64) (pow.f64 b #s(literal 4 binary64))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (*.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal -1 binary64))) (+.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (*.f64 (pow.f64 a #s(literal 6 binary64)) #s(literal 1/16 binary64)) (*.f64 (pow.f64 b #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))))) (sqrt.f64 #s(literal -1 binary64)))) (neg.f64 b))
(* -1 (* b (sqrt -1)))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) (neg.f64 b))
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (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/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (fma.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (*.f64 (*.f64 (pow.f64 b #s(literal 4 binary64)) #s(literal -1 binary64)) (sqrt.f64 #s(literal -1 binary64)))) #s(literal -1/8 binary64) (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/8 binary64) (pow.f64 b #s(literal 4 binary64))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (*.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal -1 binary64))) (+.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (*.f64 (pow.f64 a #s(literal 6 binary64)) #s(literal 1/16 binary64)) (*.f64 (pow.f64 b #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))))) (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 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64)) b) b)
(* (pow b 2) (- (/ (pow a 2) (pow b 2)) 1))
(*.f64 (*.f64 (fma.f64 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64)) b) b)
(* -1 (* b (sqrt -1)))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) (neg.f64 b))
(* -1 (* b (+ (sqrt -1) (* -1/2 (/ (+ a (* -1 a)) (* b (sqrt -1)))))))
(neg.f64 (fma.f64 (sqrt.f64 #s(literal -1 binary64)) b (/.f64 #s(literal 0 binary64) (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 (-.f64 (sqrt.f64 #s(literal -1 binary64)) (/.f64 (fma.f64 (/.f64 #s(literal -1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a b)) (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))) b)) (neg.f64 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 (sqrt.f64 #s(literal -1 binary64)) (/.f64 (-.f64 (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64))) (/.f64 (fma.f64 (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) #s(literal 1/2 binary64) (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))) b)) b)) (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 #s(literal -1 binary64) (/.f64 (/.f64 (*.f64 (neg.f64 a) a) b) b)) (*.f64 b b))
(* (pow b 2) (- (* -1 (/ (+ a (+ (* -1 a) (* -1 (/ (pow a 2) b)))) b)) 1))
(*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (*.f64 (neg.f64 a) a) b) b)) (*.f64 b b))
b
(* -1 (* b (- (* -1 (/ a b)) 1)))
(fma.f64 (/.f64 (neg.f64 a) b) (neg.f64 b) b)
(* -1 (* b (- (* -1 (/ a b)) 1)))
(fma.f64 (/.f64 (neg.f64 a) b) (neg.f64 b) b)
(* -1 (* b (- (* -1 (/ a b)) 1)))
(fma.f64 (/.f64 (neg.f64 a) b) (neg.f64 b) b)
(* -1 (* b (sqrt -1)))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) (neg.f64 b))
(* -1 (* b (+ (sqrt -1) (* 1/2 (/ (pow a 2) (* (pow b 2) (sqrt -1)))))))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (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/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (fma.f64 (/.f64 (pow.f64 a #s(literal 4 binary64)) (*.f64 (*.f64 (pow.f64 b #s(literal 4 binary64)) #s(literal -1 binary64)) (sqrt.f64 #s(literal -1 binary64)))) #s(literal -1/8 binary64) (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/8 binary64) (pow.f64 b #s(literal 4 binary64))) (/.f64 (pow.f64 a #s(literal 4 binary64)) (*.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal -1 binary64))) (+.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 b b)) (*.f64 a (/.f64 a (sqrt.f64 #s(literal -1 binary64)))) (/.f64 (*.f64 (pow.f64 a #s(literal 6 binary64)) #s(literal 1/16 binary64)) (*.f64 (pow.f64 b #s(literal 6 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))))) (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 (/.f64 a 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 (/.f64 a 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 (/.f64 a 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)
(+ (* 1/2 (/ (* a (+ b (* -1 b))) (* b (sqrt -1)))) (* b (sqrt -1)))
(fma.f64 (sqrt.f64 #s(literal -1 binary64)) b (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 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 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a b)) (fma.f64 (sqrt.f64 #s(literal -1 binary64)) b (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))))
(+ (* 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 (sqrt.f64 #s(literal -1 binary64)) b (fma.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (/.f64 a b) (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))) a (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))))
(* (sqrt b) (sqrt -1))
(*.f64 (sqrt.f64 b) (sqrt.f64 #s(literal -1 binary64)))
(+ (* 1/2 (* (/ a (sqrt -1)) (sqrt (/ 1 b)))) (* (sqrt b) (sqrt -1)))
(fma.f64 (*.f64 (/.f64 a (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) (*.f64 (sqrt.f64 b) (sqrt.f64 #s(literal -1 binary64))))
(+ (* a (+ (* -1/8 (* (/ a (pow (sqrt -1) 3)) (sqrt (/ 1 (pow b 3))))) (* 1/2 (* (sqrt (/ 1 b)) (/ 1 (sqrt -1)))))) (* (sqrt b) (sqrt -1)))
(fma.f64 (fma.f64 (*.f64 (/.f64 (/.f64 a (sqrt.f64 #s(literal -1 binary64))) #s(literal -1 binary64)) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (*.f64 (/.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/2 binary64))) a (*.f64 (sqrt.f64 b) (sqrt.f64 #s(literal -1 binary64))))
(+ (* a (+ (* 1/2 (* (sqrt (/ 1 b)) (/ 1 (sqrt -1)))) (* a (+ (* -1/8 (* (sqrt (/ 1 (pow b 3))) (/ 1 (pow (sqrt -1) 3)))) (* 1/16 (* (/ a (pow (sqrt -1) 5)) (sqrt (/ 1 (pow b 5))))))))) (* (sqrt b) (sqrt -1)))
(fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) (/.f64 #s(literal -1 binary64) (sqrt.f64 #s(literal -1 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (*.f64 (*.f64 (/.f64 a (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) #s(literal 1/16 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 5 binary64)))))) a (*.f64 (/.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) (sqrt.f64 #s(literal -1 binary64))) #s(literal 1/2 binary64))) a (*.f64 (sqrt.f64 b) (sqrt.f64 #s(literal -1 binary64))))
(* -1 b)
(neg.f64 b)
(- a b)
(-.f64 a b)
(- a b)
(-.f64 a b)
(- a b)
(-.f64 a b)
(sqrt b)
(sqrt.f64 b)
(+ (sqrt b) (* 1/2 (* a (sqrt (/ 1 b)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) a) (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) (sqrt.f64 b))
(+ (sqrt b) (* a (+ (* -1/8 (* a (sqrt (/ 1 (pow b 3))))) (* 1/2 (sqrt (/ 1 b))))))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) a) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) #s(literal 1/2 binary64))) a (sqrt.f64 b))
(+ (sqrt b) (* a (+ (* 1/2 (sqrt (/ 1 b))) (* a (+ (* -1/8 (sqrt (/ 1 (pow b 3)))) (* 1/16 (* a (sqrt (/ 1 (pow b 5))))))))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/16 binary64) a) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 5 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 b #s(literal 3 binary64)))) #s(literal -1/8 binary64))) a (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) b)) #s(literal 1/2 binary64))) a (sqrt.f64 b))
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(+ (* 1/2 (/ (pow a 2) (* b (sqrt -1)))) (* b (sqrt -1)))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)) a) 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 #s(literal -1/8 binary64) (pow.f64 b #s(literal 3 binary64))) (*.f64 a (/.f64 (/.f64 a (sqrt.f64 #s(literal -1 binary64))) #s(literal -1 binary64))) (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))) (*.f64 a a) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* (pow a 2) (- (* 1/16 (/ (pow a 2) (* (pow b 5) (pow (sqrt -1) 5)))) (* 1/8 (/ 1 (* (pow b 3) (pow (sqrt -1) 3)))))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(fma.f64 (fma.f64 (fma.f64 (/.f64 (/.f64 #s(literal -1 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 b #s(literal 3 binary64))) #s(literal -1/8 binary64) (/.f64 (*.f64 (*.f64 #s(literal 1/16 binary64) a) a) (*.f64 (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64)) (pow.f64 b #s(literal 5 binary64))))) (*.f64 a a) (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))) (*.f64 a a) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* b (sqrt -1))
(*.f64 (sqrt.f64 #s(literal -1 binary64)) b)
(+ (* 1/2 (/ (pow a 2) (* b (sqrt -1)))) (* b (sqrt -1)))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b)) a) 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 #s(literal -1/8 binary64) (pow.f64 b #s(literal 3 binary64))) (*.f64 a (/.f64 (/.f64 a (sqrt.f64 #s(literal -1 binary64))) #s(literal -1 binary64))) (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))) (*.f64 a a) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* (pow a 2) (- (* 1/16 (/ (pow a 2) (* (pow b 5) (pow (sqrt -1) 5)))) (* 1/8 (/ 1 (* (pow b 3) (pow (sqrt -1) 3)))))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(fma.f64 (fma.f64 (fma.f64 (/.f64 (/.f64 #s(literal -1 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 b #s(literal 3 binary64))) #s(literal -1/8 binary64) (/.f64 (*.f64 (*.f64 #s(literal 1/16 binary64) a) a) (*.f64 (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64)) (pow.f64 b #s(literal 5 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))
(fma.f64 (neg.f64 b) b (*.f64 a a))
(- (pow a 2) (pow b 2))
(fma.f64 (neg.f64 b) b (*.f64 a a))
(- (pow a 2) (pow b 2))
(fma.f64 (neg.f64 b) b (*.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)
(* 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 (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 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 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (*.f64 a (/.f64 a b)) (fma.f64 (sqrt.f64 #s(literal -1 binary64)) b (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))))
(+ (* 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 (sqrt.f64 #s(literal -1 binary64)) b (fma.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) (/.f64 a b) (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))) a (/.f64 #s(literal 0 binary64) (sqrt.f64 #s(literal -1 binary64)))))
(* -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)))))
(fma.f64 (neg.f64 b) b (*.f64 a a))
(+ (* -1 (pow b 2)) (* a (+ a (+ b (* -1 b)))))
(fma.f64 (neg.f64 b) b (*.f64 a a))
b
(+ 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)
(+ (* 1/2 (/ (pow a 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))
(+ (* 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 #s(literal -1/8 binary64) (pow.f64 b #s(literal 3 binary64))) (*.f64 a (/.f64 (/.f64 a (sqrt.f64 #s(literal -1 binary64))) #s(literal -1 binary64))) (/.f64 #s(literal 1/2 binary64) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))) (*.f64 a a) (*.f64 (sqrt.f64 #s(literal -1 binary64)) b))
(+ (* b (sqrt -1)) (* (pow a 2) (+ (* (pow a 2) (- (* 1/16 (/ (pow a 2) (* (pow b 5) (pow (sqrt -1) 5)))) (* 1/8 (/ 1 (* (pow b 3) (pow (sqrt -1) 3)))))) (* 1/2 (/ 1 (* b (sqrt -1)))))))
(fma.f64 (fma.f64 (fma.f64 (/.f64 (/.f64 #s(literal -1 binary64) (sqrt.f64 #s(literal -1 binary64))) (pow.f64 b #s(literal 3 binary64))) #s(literal -1/8 binary64) (/.f64 (*.f64 (*.f64 #s(literal 1/16 binary64) a) a) (*.f64 (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64)) (pow.f64 b #s(literal 5 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)
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 #s(literal 1/2 binary64) a) (/.f64 (*.f64 (neg.f64 b) b) a) #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 #s(literal 0 binary64) (*.f64 (neg.f64 b) b) (fma.f64 (/.f64 #s(literal 1/2 binary64) a) (/.f64 (*.f64 (neg.f64 b) b) a) #s(literal 1 binary64))) a)
(sqrt a)
(sqrt.f64 a)
(* a (+ (sqrt (/ 1 a)) (* -1/2 (* (sqrt (/ 1 (pow a 3))) b))))
(*.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) b) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) a))) a)
(* a (+ (sqrt (/ 1 a)) (+ (* -1/2 (* (sqrt (/ 1 (pow a 3))) b)) (* -1/8 (* (sqrt (/ 1 (pow a 5))) (pow b 2))))))
(*.f64 (fma.f64 (*.f64 (*.f64 b b) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 5 binary64)))) (fma.f64 (*.f64 #s(literal -1/2 binary64) b) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) a)))) a)
(* a (+ (sqrt (/ 1 a)) (+ (* -1/2 (* (sqrt (/ 1 (pow a 3))) b)) (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (pow b 2))) (* -1/16 (* (sqrt (/ 1 (pow a 7))) (pow b 3)))))))
(*.f64 (+.f64 (fma.f64 (*.f64 #s(literal -1/16 binary64) (pow.f64 b #s(literal 3 binary64))) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 7 binary64)))) (fma.f64 (*.f64 (*.f64 b b) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 5 binary64)))) (*.f64 (*.f64 #s(literal -1/2 binary64) b) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64))))))) (sqrt.f64 (/.f64 #s(literal 1 binary64) 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)
(sqrt a)
(sqrt.f64 a)
(* a (+ (sqrt (/ 1 a)) (* 1/2 (* (sqrt (/ 1 (pow a 3))) b))))
(*.f64 (fma.f64 (*.f64 b #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) a))) a)
(* a (+ (sqrt (/ 1 a)) (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (pow b 2))) (* 1/2 (* (sqrt (/ 1 (pow a 3))) b)))))
(*.f64 (fma.f64 (*.f64 (*.f64 b b) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 5 binary64)))) (fma.f64 (*.f64 b #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) a)))) a)
(* a (+ (sqrt (/ 1 a)) (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (pow b 2))) (+ (* 1/16 (* (sqrt (/ 1 (pow a 7))) (pow b 3))) (* 1/2 (* (sqrt (/ 1 (pow a 3))) b))))))
(*.f64 (+.f64 (fma.f64 (*.f64 (*.f64 b b) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 5 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) a))) (fma.f64 (*.f64 #s(literal 1/16 binary64) (pow.f64 b #s(literal 3 binary64))) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 7 binary64)))) (*.f64 (*.f64 b #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 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)))))))
(fma.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 #s(literal -1/2 binary64) a) (/.f64 (*.f64 b b) a) (/.f64 (*.f64 (pow.f64 b #s(literal 4 binary64)) #s(literal -1/8 binary64)) (pow.f64 a #s(literal 4 binary64))))) a 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)))))))
(fma.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 #s(literal -1/2 binary64) a) (/.f64 (*.f64 b b) a) (/.f64 (*.f64 (pow.f64 b #s(literal 4 binary64)) #s(literal -1/8 binary64)) (pow.f64 a #s(literal 4 binary64))))) a 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 #s(literal 1/2 binary64) a) (/.f64 (*.f64 (neg.f64 b) b) a) #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 #s(literal 0 binary64) (*.f64 (neg.f64 b) b) (fma.f64 (/.f64 #s(literal 1/2 binary64) a) (/.f64 (*.f64 (neg.f64 b) b) a) #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 (/ 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)
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)))))))
(fma.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 #s(literal -1/2 binary64) a) (/.f64 (*.f64 b b) a) (/.f64 (*.f64 (pow.f64 b #s(literal 4 binary64)) #s(literal -1/8 binary64)) (pow.f64 a #s(literal 4 binary64))))) a 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)
(* -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 (-.f64 #s(literal -1 binary64) (/.f64 (fma.f64 (/.f64 (fma.f64 b b #s(literal 0 binary64)) a) #s(literal -1/2 binary64) #s(literal 0 binary64)) a)) (neg.f64 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 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (fma.f64 (fma.f64 b b #s(literal 0 binary64)) #s(literal 1/2 binary64) #s(literal 0 binary64)) (neg.f64 a)) a)) (neg.f64 a))
(* -1 (* (sqrt a) (pow (sqrt -1) 2)))
(*.f64 (sqrt.f64 a) #s(literal 1 binary64))
(* -1 (* a (+ (* 1/2 (* (sqrt (/ 1 (pow a 3))) (* b (pow (sqrt -1) 2)))) (* (sqrt (/ 1 a)) (pow (sqrt -1) 2)))))
(*.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) b) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) a)) #s(literal -1 binary64))) (neg.f64 a))
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (* (pow b 2) (pow (sqrt -1) 2)))) (+ (* 1/2 (* (sqrt (/ 1 (pow a 3))) (* b (pow (sqrt -1) 2)))) (* (sqrt (/ 1 a)) (pow (sqrt -1) 2))))))
(*.f64 (fma.f64 (*.f64 (*.f64 b b) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 5 binary64))))) #s(literal 1/8 binary64) (fma.f64 (*.f64 #s(literal -1/2 binary64) b) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) a)) #s(literal -1 binary64)))) (neg.f64 a))
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (* (pow b 2) (pow (sqrt -1) 2)))) (+ (* 1/16 (* (sqrt (/ 1 (pow a 7))) (* (pow b 3) (pow (sqrt -1) 2)))) (+ (* 1/2 (* (sqrt (/ 1 (pow a 3))) (* b (pow (sqrt -1) 2)))) (* (sqrt (/ 1 a)) (pow (sqrt -1) 2)))))))
(*.f64 (fma.f64 (*.f64 #s(literal -1/16 binary64) (pow.f64 b #s(literal 3 binary64))) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 7 binary64)))) (fma.f64 (*.f64 (*.f64 b b) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 5 binary64))))) #s(literal 1/8 binary64) (fma.f64 (*.f64 #s(literal -1/2 binary64) b) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) a)) #s(literal -1 binary64))))) (neg.f64 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)
(* -1 (* (sqrt a) (pow (sqrt -1) 2)))
(*.f64 (sqrt.f64 a) #s(literal 1 binary64))
(* -1 (* a (+ (* 1/2 (* (sqrt (/ 1 (pow a 3))) b)) (* (sqrt (/ 1 a)) (pow (sqrt -1) 2)))))
(*.f64 (fma.f64 (*.f64 b #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) a)) #s(literal -1 binary64))) (neg.f64 a))
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (/ (pow b 2) (pow (sqrt -1) 2)))) (+ (* 1/2 (* (sqrt (/ 1 (pow a 3))) b)) (* (sqrt (/ 1 a)) (pow (sqrt -1) 2))))))
(*.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) (/.f64 (*.f64 b b) #s(literal -1 binary64))) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 5 binary64)))) (fma.f64 (*.f64 b #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) a)) #s(literal -1 binary64)))) (neg.f64 a))
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (pow a 5))) (/ (pow b 2) (pow (sqrt -1) 2)))) (+ (* 1/16 (* (sqrt (/ 1 (pow a 7))) (/ (pow b 3) (pow (sqrt -1) 4)))) (+ (* 1/2 (* (sqrt (/ 1 (pow a 3))) b)) (* (sqrt (/ 1 a)) (pow (sqrt -1) 2)))))))
(*.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) (/.f64 (*.f64 b b) #s(literal -1 binary64))) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 5 binary64)))) (fma.f64 (/.f64 (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 7 binary64)))) (pow.f64 b #s(literal 3 binary64))) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 4 binary64))) #s(literal 1/16 binary64) (fma.f64 (*.f64 b #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 a #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) a)) #s(literal -1 binary64))))) (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)) (neg.f64 a))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal -1/2 binary64) #s(literal 1 binary64))) (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))))))))
(neg.f64 (fma.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 #s(literal -1/2 binary64) a) (/.f64 (*.f64 b b) a) (/.f64 (*.f64 (pow.f64 b #s(literal 4 binary64)) #s(literal -1/8 binary64)) (pow.f64 a #s(literal 4 binary64))))) a 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)) (neg.f64 a))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal -1/2 binary64) #s(literal 1 binary64))) (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))))))))
(neg.f64 (fma.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 #s(literal -1/2 binary64) a) (/.f64 (*.f64 b b) a) (/.f64 (*.f64 (pow.f64 b #s(literal 4 binary64)) #s(literal -1/8 binary64)) (pow.f64 a #s(literal 4 binary64))))) a 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 (-.f64 #s(literal -1 binary64) (/.f64 (fma.f64 (/.f64 (fma.f64 b b #s(literal 0 binary64)) a) #s(literal -1/2 binary64) #s(literal 0 binary64)) a)) (neg.f64 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 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (fma.f64 (fma.f64 b b #s(literal 0 binary64)) #s(literal 1/2 binary64) #s(literal 0 binary64)) (neg.f64 a)) a)) (neg.f64 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 (fma.f64 b b #s(literal 0 binary64)) 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 (fma.f64 b b #s(literal 0 binary64)) a) a)) a) a)
a
(* -1 (* a (- (* -1 (/ b a)) 1)))
(fma.f64 (/.f64 (neg.f64 b) a) (neg.f64 a) a)
(* -1 (* a (- (* -1 (/ b a)) 1)))
(fma.f64 (/.f64 (neg.f64 b) a) (neg.f64 a) a)
(* -1 (* a (- (* -1 (/ b a)) 1)))
(fma.f64 (/.f64 (neg.f64 b) a) (neg.f64 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)) (neg.f64 a))
(* -1 (* a (+ 1 (+ (* -1/2 (/ (pow b 2) (pow a 2))) (* -1/8 (/ (pow b 4) (pow a 4)))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 b #s(literal 4 binary64)) (pow.f64 a #s(literal 4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal -1/2 binary64) #s(literal 1 binary64))) (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))))))))
(neg.f64 (fma.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 #s(literal -1/2 binary64) a) (/.f64 (*.f64 b b) a) (/.f64 (*.f64 (pow.f64 b #s(literal 4 binary64)) #s(literal -1/8 binary64)) (pow.f64 a #s(literal 4 binary64))))) a a))
a
(* -1 (* a (- (* 1/2 (/ (pow b 2) (pow a 2))) 1)))
(fma.f64 (*.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal 1/2 binary64)) (neg.f64 a) a)
(* -1 (* a (- (* 1/2 (/ (pow b 2) (pow a 2))) 1)))
(fma.f64 (*.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal 1/2 binary64)) (neg.f64 a) a)
(* -1 (* a (- (* 1/2 (/ (pow b 2) (pow a 2))) 1)))
(fma.f64 (*.f64 (/.f64 (/.f64 (*.f64 b b) a) a) #s(literal 1/2 binary64)) (neg.f64 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)

rewrite405.0ms (8.2%)

Memory
8.4MiB live, 134.7MiB allocated
Rules
8 732×lower-fma.f32
8 730×lower-fma.f64
5 492×lower-*.f32
5 484×lower-*.f64
4 164×lower-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023110
037109
1120109
2788109
08381109
Stop Event
iter limit
node limit
iter limit
Counts
16 → 817
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (-.f64 a b)) (sqrt.f64 (+.f64 b a)))
(sqrt.f64 (-.f64 a b))
(-.f64 a b)
(sqrt.f64 (+.f64 b a))
#s(approx (sqrt (- (* a a) (* b b))) (neg.f64 a))
(neg.f64 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 b 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)
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>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval324.0ms (6.6%)

Memory
31.3MiB live, 411.5MiB allocated
Compiler

Compiled 30 664 to 3 606 computations (88.2% saved)

prune75.0ms (1.5%)

Memory
-41.5MiB live, 95.9MiB allocated
Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New1 40111 402
Fresh000
Picked235
Done000
Total1 40341 407
Accuracy
100.0%
Counts
1 407 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.3%
(*.f64 (sqrt.f64 (-.f64 a b)) (sqrt.f64 (+.f64 b a)))
54.4%
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
98.5%
#s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a)
99.1%
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
Compiler

Compiled 28 to 23 computations (17.9% saved)

simplify8.0ms (0.2%)

Memory
19.5MiB live, 19.5MiB allocated
Algorithm
egg-herbie
Localize:

Found 1 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a)
Rules
128×lower-fma.f64
128×lower-fma.f32
68×lower-*.f64
68×lower-*.f32
48×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
0812
11212
21712
32312
43212
55312
68312
711212
816512
918912
1020912
1121112
021112
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
#s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a)
a
Outputs
#s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a)
a

localize25.0ms (0.5%)

Memory
-15.6MiB live, 65.0MiB allocated
Localize:

Found 1 expressions of interest:

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

Compiled 12 to 9 computations (25% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-add: 4.0ms (38.8% of total)
ival-sqrt: 3.0ms (29.1% of total)
ival-sub: 1.0ms (9.7% of total)
ival-mult: 1.0ms (9.7% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series2.0ms (0%)

Memory
3.7MiB live, 3.7MiB allocated
Counts
1 → 24
Calls
Call 1
Inputs
#s(alt #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) #<representation binary64>) () ())
Outputs
#s(alt a (taylor 0 b) (#s(alt #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* b (sqrt -1)) (taylor inf b) (#s(alt #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (sqrt -1))) (taylor -inf b) (#s(alt #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* b (sqrt -1)) (taylor 0 a) (#s(alt #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt a (taylor inf a) (#s(alt #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (pow (sqrt -1) 2))) (taylor -inf a) (#s(alt #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a) (patch #s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a) #<representation binary64>) () ())) ())
Calls

6 calls:

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

simplify61.0ms (1.2%)

Memory
-12.8MiB live, 103.9MiB allocated
Algorithm
egg-herbie
Rules
1 804×lower-fma.f64
1 804×lower-fma.f32
1 450×lower-*.f64
1 450×lower-*.f32
1 444×lower-/.f32
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)

rewrite252.0ms (5.1%)

Memory
-4.0MiB live, 235.6MiB allocated
Rules
4 332×lower-*.f64
4 332×lower-*.f32
2 622×lower-fma.f64
2 622×lower-fma.f32
2 136×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0811
0810
13810
229410
3461910
0858010
Stop Event
iter limit
node limit
saturated
Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a)
Outputs
#<batchref>

eval2.0ms (0%)

Memory
4.8MiB live, 4.8MiB allocated
Compiler

Compiled 220 to 55 computations (75% saved)

prune3.0ms (0.1%)

Memory
8.2MiB live, 8.2MiB allocated
Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New23023
Fresh000
Picked011
Done033
Total23427
Accuracy
100.0%
Counts
27 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.3%
(*.f64 (sqrt.f64 (-.f64 a b)) (sqrt.f64 (+.f64 b a)))
54.4%
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 b a)))
98.5%
#s(approx (* (sqrt (- a b)) (sqrt (+ b a))) a)
99.1%
#s(approx (sqrt (- (* a a) (* b b))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) a) b) b a))
Compiler

Compiled 72 to 46 computations (36.1% saved)

regimes17.0ms (0.4%)

Memory
3.7MiB live, 43.0MiB allocated
Counts
7 → 1
Calls
Call 1
Inputs
#s(approx (* (sqrt (- a b)) (sqrt (+ 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)))
(*.f64 (sqrt.f64 (-.f64 a b)) (sqrt.f64 (+.f64 b a)))
Outputs
(*.f64 (sqrt.f64 (-.f64 a b)) (sqrt.f64 (+.f64 b a)))
Calls

6 calls:

3.0ms
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
3.0ms
b
3.0ms
(-.f64 (*.f64 a a) (*.f64 b b))
3.0ms
a
3.0ms
(*.f64 a a)
Results
AccuracySegmentsBranch
99.3%1a
99.3%1b
99.3%1(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
99.3%1(-.f64 (*.f64 a a) (*.f64 b b))
99.3%1(*.f64 a a)
99.3%1(*.f64 b b)
Compiler

Compiled 23 to 21 computations (8.7% saved)

regimes16.0ms (0.3%)

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

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

Compiled 23 to 21 computations (8.7% saved)

regimes27.0ms (0.5%)

Memory
-13.7MiB live, 42.0MiB allocated
Accuracy

Total -62.3b remaining (-6691.9%)

Threshold costs -62.3b (-6691.9%)

Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (* (sqrt (- a b)) (sqrt (+ 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)) (sqrt (+ b a))) a)
Calls

6 calls:

17.0ms
a
2.0ms
b
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
98.5%1a
98.5%1b
98.5%1(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
98.5%1(-.f64 (*.f64 a a) (*.f64 b b))
98.5%1(*.f64 a a)
98.5%1(*.f64 b b)
Compiler

Compiled 23 to 21 computations (8.7% saved)

simplify34.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02237
12737
23237
33437
43537
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (-.f64 a b)) (sqrt.f64 (+.f64 b a)))
#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)) (sqrt (+ b a))) a)
Outputs
(*.f64 (sqrt.f64 (-.f64 a b)) (sqrt.f64 (+.f64 b a)))
(*.f64 (sqrt.f64 (+.f64 b a)) (sqrt.f64 (-.f64 a b)))
#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)) (sqrt (+ b a))) a)

soundness427.0ms (8.7%)

Memory
-16.2MiB live, 374.6MiB allocated
Rules
18 934×lower-fma.f64
18 934×lower-fma.f32
11 938×lower-fma.f64
11 938×lower-fma.f32
6 736×lower-fma.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0621
01021
13621
223921
3213521
0937821
0119757
1332757
21128744
34541722
08122682
05765327
118724323
275724315
080224070
Stop Event
done
iter limit
node limit
iter limit
node limit
iter limit
node limit
iter limit
Compiler

Compiled 63 to 43 computations (31.7% saved)

preprocess72.0ms (1.5%)

Memory
17.3MiB live, 138.1MiB allocated
Remove

(abs b)

Compiler

Compiled 190 to 140 computations (26.3% saved)

end0.0ms (0%)

Memory
0.1MiB live, 0.0MiB allocated

Profiling

Loading profile data...