Details

Time bar (total: 3.2s)

analyze60.0ms (1.9%)

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
0%0%81.2%0.1%0%18.7%0%5
16%12.5%65.6%0.1%0%21.9%0%6
27.9%18.7%48.4%0.1%0%32.8%0%7
43.4%28.1%36.7%0.1%0%35.1%0%8
55.6%32.8%26.1%0.1%0%41%0%9
66.4%38.2%19.3%0.1%0%42.3%0%10
75.1%41%13.6%0.1%0%45.4%0%11
81.6%43.9%9.9%0.1%0%46.1%0%12
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample796.0ms (25.2%)

Results
731.0ms8256×body256valid
53.0ms642×body256invalid
Bogosity

preprocess120.0ms (3.8%)

Algorithm
egg-herbie
Rules
1098×rational.json-simplify-2
916×rational.json-simplify-44
898×rational.json-simplify-37
814×rational.json-simplify-47
790×rational.json-simplify-39
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01146
11946
23046
38446
439246
5394646
6626646
7748946
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 a a)))
Outputs
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(sqrt.f64 (*.f64 (+.f64 a b) (-.f64 a b)))
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 a a)))
Compiler

Compiled 12 to 8 computations (33.3% saved)

simplify115.0ms (3.6%)

Algorithm
egg-herbie
Rules
1090×rational.json-simplify-2
926×rational.json-simplify-44
902×rational.json-simplify-37
820×rational.json-simplify-47
802×rational.json-simplify-39
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0923
11423
22423
36923
437423
5394723
6623923
7740023
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
Outputs
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))

eval0.0ms (0%)

Compiler

Compiled 10 to 6 computations (40% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
29.8b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
29.8b
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
Compiler

Compiled 10 to 6 computations (40% saved)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
3.4b
(-.f64 (*.f64 a a) (*.f64 b b))
27.9b
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
Compiler

Compiled 25 to 6 computations (76% saved)

series3.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite82.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
2104×rational.json-1
2104×rational.json-2
1286×rational.json-simplify-35
888×exponential.json-3
888×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0942
16142
215642
344742
4207342
5680142
Stop Event
node limit
Counts
2 → 51
Calls
Call 1
Inputs
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(-.f64 (*.f64 a a) (*.f64 b b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 a a) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (neg.f64 b)) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 (*.f64 a a) (-.f64 (*.f64 b b) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (-.f64 1 (*.f64 b b)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 a a) (-.f64 (*.f64 b b) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 a a) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 a b) (-.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 a b) (+.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 b b) (*.f64 a a)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (fabs.f64 a) b) (+.f64 b (fabs.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 a (fabs.f64 b)) (+.f64 a (fabs.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (fabs.f64 a) (fabs.f64 b)) (-.f64 (fabs.f64 a) (fabs.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (fabs.f64 a) (fabs.f64 b)) (+.f64 (fabs.f64 a) (fabs.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 a (fabs.f64 b)) (-.f64 a (fabs.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 b (fabs.f64 a)) (-.f64 (fabs.f64 a) b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 a b) 2) (/.f64 (-.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 a b) 2) (/.f64 (+.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 b b) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 a b) 2) (*.f64 (-.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 a b) 2) (*.f64 (+.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 b b) (*.f64 a a)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 a b) (*.f64 (-.f64 a b) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 a b) (*.f64 (-.f64 a b) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 a b) (*.f64 (-.f64 a b) 4))) (*.f64 2 (*.f64 (+.f64 a b) (*.f64 (-.f64 a b) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 b b) (*.f64 a a)))))))

simplify99.0ms (3.1%)

Algorithm
egg-herbie
Rules
1030×rational.json-simplify-1
912×rational.json-simplify-2
906×rational.json-simplify-51
760×rational.json-simplify-44
680×rational.json-simplify-19
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01703019
13592969
27132969
318992969
468192825
Stop Event
node limit
Counts
99 → 105
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 -1) b)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (*.f64 (sqrt.f64 -1) b))))
a
(+.f64 a (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)))
(+.f64 a (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (*.f64 -1/2 (/.f64 (pow.f64 b 2) a))))
(+.f64 a (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 -1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))))))
(*.f64 -1 a)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 -1 a))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 -1 a)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))) (*.f64 -1 a))))
a
(+.f64 a (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)))
(+.f64 a (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (*.f64 -1/2 (/.f64 (pow.f64 b 2) a))))
(+.f64 a (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 -1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))))))
(*.f64 (sqrt.f64 -1) b)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (*.f64 (sqrt.f64 -1) b))))
(*.f64 -1 (*.f64 (sqrt.f64 -1) b))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1) b)) (*.f64 -1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1) b)) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))))))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1) b)) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (*.f64 -1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))))))
(*.f64 -1 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(pow.f64 a 2)
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(pow.f64 a 2)
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(pow.f64 a 2)
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(*.f64 -1 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(*.f64 -1 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)
(+.f64 0 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))
(-.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)
(*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(*.f64 1 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))
(*.f64 2 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2))
(*.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 1/2)
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2))
(*.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 2)
(/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4))) 16)
(pow.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(+.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 0)
(+.f64 0 (-.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 (*.f64 b (neg.f64 b)) (*.f64 a a))
(+.f64 -1 (-.f64 (*.f64 a a) (-.f64 (*.f64 b b) 1)))
(+.f64 -1 (+.f64 (-.f64 1 (*.f64 b b)) (*.f64 a a)))
(+.f64 (-.f64 (*.f64 a a) (-.f64 (*.f64 b b) 1)) -1)
(*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)
(*.f64 1 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 (+.f64 a b) (-.f64 a b))
(*.f64 (-.f64 a b) (+.f64 a b))
(*.f64 2 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2))
(*.f64 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2) 1/2)
(*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) -1)
(*.f64 (-.f64 (fabs.f64 a) b) (+.f64 b (fabs.f64 a)))
(*.f64 (-.f64 a (fabs.f64 b)) (+.f64 a (fabs.f64 b)))
(*.f64 (+.f64 (fabs.f64 a) (fabs.f64 b)) (-.f64 (fabs.f64 a) (fabs.f64 b)))
(*.f64 (-.f64 (fabs.f64 a) (fabs.f64 b)) (+.f64 (fabs.f64 a) (fabs.f64 b)))
(*.f64 (+.f64 a (fabs.f64 b)) (-.f64 a (fabs.f64 b)))
(*.f64 (+.f64 b (fabs.f64 a)) (-.f64 (fabs.f64 a) b))
(*.f64 (*.f64 (+.f64 a b) 2) (/.f64 (-.f64 a b) 2))
(*.f64 (*.f64 (-.f64 a b) 2) (/.f64 (+.f64 a b) 2))
(*.f64 -1 (-.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 1/2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2))
(*.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2) 2)
(*.f64 (/.f64 (+.f64 a b) 2) (*.f64 (-.f64 a b) 2))
(*.f64 (/.f64 (-.f64 a b) 2) (*.f64 (+.f64 a b) 2))
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)
(/.f64 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2) 2)
(/.f64 (-.f64 (*.f64 b b) (*.f64 a a)) -1)
(/.f64 (*.f64 (+.f64 a b) (*.f64 (-.f64 a b) 4)) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 a b) (*.f64 (-.f64 a b) 4))) 8)
(/.f64 (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 a b) (*.f64 (-.f64 a b) 4))) (*.f64 2 (*.f64 (+.f64 a b) (*.f64 (-.f64 a b) 4)))) 16)
(pow.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)
(neg.f64 (-.f64 (*.f64 b b) (*.f64 a a)))
Outputs
(*.f64 (sqrt.f64 -1) b)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3)))) (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/16 (/.f64 (/.f64 (pow.f64 a 6) (sqrt.f64 -1)) (pow.f64 b 5)))) (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3)))) (+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (sqrt.f64 -1) (pow.f64 b 5)))) (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 1/16 (/.f64 (/.f64 (pow.f64 a 6) (pow.f64 b 5)) (sqrt.f64 -1)))) (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (sqrt.f64 -1) (pow.f64 b 5)))))))
a
(+.f64 a (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)))
(+.f64 a (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (*.f64 -1/2 (/.f64 (pow.f64 b 2) a))))
(+.f64 a (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 a (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))))
(+.f64 a (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 -1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))))))
(+.f64 a (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))) (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))))))
(+.f64 a (+.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))) (*.f64 -1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5)))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (+.f64 a (*.f64 -1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))))))
(*.f64 -1 a)
(neg.f64 a)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 -1 a))
(+.f64 (*.f64 -1 a) (*.f64 1/2 (/.f64 (pow.f64 b 2) a)))
(+.f64 (neg.f64 a) (*.f64 1/2 (/.f64 (pow.f64 b 2) a)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 -1 a)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 -1 a) (*.f64 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) 1/8)))
(+.f64 (+.f64 (neg.f64 a) (*.f64 1/2 (/.f64 (pow.f64 b 2) a))) (*.f64 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) 1/8))
(+.f64 (neg.f64 a) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) 1/8)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))) (*.f64 -1 a))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (+.f64 (*.f64 -1 a) (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5)))) (*.f64 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) 1/8)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) 1/8) (+.f64 (neg.f64 a) (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))))))
(+.f64 (neg.f64 a) (+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) 1/8)) (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))) (+.f64 (neg.f64 a) (*.f64 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) 1/8))))
a
(+.f64 a (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)))
(+.f64 a (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (*.f64 -1/2 (/.f64 (pow.f64 b 2) a))))
(+.f64 a (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 a (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))))
(+.f64 a (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 -1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))))))
(+.f64 a (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))) (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))))))
(+.f64 a (+.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))) (*.f64 -1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5)))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))) (+.f64 a (*.f64 -1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))))))
(*.f64 (sqrt.f64 -1) b)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3)))) (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/16 (/.f64 (/.f64 (pow.f64 a 6) (sqrt.f64 -1)) (pow.f64 b 5)))) (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3)))) (+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (sqrt.f64 -1) (pow.f64 b 5)))) (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 1/16 (/.f64 (/.f64 (pow.f64 a 6) (pow.f64 b 5)) (sqrt.f64 -1)))) (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (sqrt.f64 -1) (pow.f64 b 5)))))))
(*.f64 -1 (*.f64 (sqrt.f64 -1) b))
(*.f64 (sqrt.f64 -1) (neg.f64 b))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1) b)) (*.f64 -1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (*.f64 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)) -1/2))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1) b)) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))))))
(+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (+.f64 (*.f64 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)) -1/2) (*.f64 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))) 1/8)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1) b)) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (*.f64 -1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))))))
(+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (+.f64 (*.f64 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)) -1/2) (+.f64 (*.f64 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))) 1/8) (*.f64 (/.f64 (/.f64 (pow.f64 a 6) (sqrt.f64 -1)) (pow.f64 b 5)) -1/16))))
(+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (+.f64 (*.f64 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)) -1/2) (+.f64 (*.f64 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))) 1/8) (*.f64 (/.f64 (pow.f64 a 6) (*.f64 (sqrt.f64 -1) (pow.f64 b 5))) -1/16))))
(+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (+.f64 (*.f64 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))) 1/8) (+.f64 (*.f64 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)) -1/2) (*.f64 (/.f64 (/.f64 (pow.f64 a 6) (pow.f64 b 5)) (sqrt.f64 -1)) -1/16))))
(+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (+.f64 (*.f64 (/.f64 (pow.f64 a 4) (*.f64 (sqrt.f64 -1) (pow.f64 b 3))) 1/8) (+.f64 (*.f64 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)) -1/2) (*.f64 (/.f64 (pow.f64 a 6) (*.f64 (sqrt.f64 -1) (pow.f64 b 5))) -1/16))))
(*.f64 -1 (pow.f64 b 2))
(neg.f64 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(pow.f64 a 2)
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(pow.f64 a 2)
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(pow.f64 a 2)
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (pow.f64 b 2))
(neg.f64 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (pow.f64 b 2))
(neg.f64 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 b 2)))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 0 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(-.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 1 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 1/2)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 2)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 2)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 4)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4)) 8)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4))) 16)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(pow.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(+.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 0)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(+.f64 0 (-.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(+.f64 (*.f64 b (neg.f64 b)) (*.f64 a a))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(+.f64 -1 (-.f64 (*.f64 a a) (-.f64 (*.f64 b b) 1)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(+.f64 -1 (+.f64 (-.f64 1 (*.f64 b b)) (*.f64 a a)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(+.f64 (-.f64 (*.f64 a a) (-.f64 (*.f64 b b) 1)) -1)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 1 (-.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (+.f64 a b) (-.f64 a b))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (-.f64 a b) (+.f64 a b))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 2 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2) 1/2)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) -1)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (-.f64 (fabs.f64 a) b) (+.f64 b (fabs.f64 a)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (-.f64 a (fabs.f64 b)) (+.f64 a (fabs.f64 b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (+.f64 (fabs.f64 a) (fabs.f64 b)) (-.f64 (fabs.f64 a) (fabs.f64 b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (-.f64 (fabs.f64 a) (fabs.f64 b)) (+.f64 (fabs.f64 a) (fabs.f64 b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (+.f64 a (fabs.f64 b)) (-.f64 a (fabs.f64 b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (+.f64 b (fabs.f64 a)) (-.f64 (fabs.f64 a) b))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (*.f64 (+.f64 a b) 2) (/.f64 (-.f64 a b) 2))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (*.f64 (-.f64 a b) 2) (/.f64 (+.f64 a b) 2))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 -1 (-.f64 (*.f64 b b) (*.f64 a a)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 1/2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2) 2)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (/.f64 (+.f64 a b) 2) (*.f64 (-.f64 a b) 2))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (/.f64 (-.f64 a b) 2) (*.f64 (+.f64 a b) 2))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2) 2)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (-.f64 (*.f64 b b) (*.f64 a a)) -1)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (*.f64 (+.f64 a b) (*.f64 (-.f64 a b) 4)) 4)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (*.f64 2 (*.f64 (+.f64 a b) (*.f64 (-.f64 a b) 4))) 8)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))) -2)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 a b) (*.f64 (-.f64 a b) 4))) (*.f64 2 (*.f64 (+.f64 a b) (*.f64 (-.f64 a b) 4)))) 16)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(neg.f64 (-.f64 (*.f64 b b) (*.f64 a a)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))

eval78.0ms (2.5%)

Compiler

Compiled 1781 to 1148 computations (35.5% saved)

prune86.0ms (2.7%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1023105
Fresh000
Picked011
Done000
Total1024106
Error
0.2b
Counts
106 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
29.8b
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
29.7b
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 a b)))
32.7b
(neg.f64 a)
31.4b
a
Compiler

Compiled 27 to 17 computations (37% saved)

localize3.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 a b) (+.f64 a b))
27.9b
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 a b)))
Compiler

Compiled 25 to 6 computations (76% saved)

series5.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

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

rewrite198.0ms (6.3%)

Algorithm
batch-egg-rewrite
Rules
1428×exponential.json-3
1428×rational.json-1
1428×rational.json-2
1428×rational.json-4
1428×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0942
15842
212642
327842
454042
5140842
6417942
Stop Event
node limit
Counts
2 → 40
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 a b)))
(*.f64 (-.f64 a b) (+.f64 a b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1/2) (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 a a) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 (-.f64 (*.f64 a a) (*.f64 b b)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 a b) (*.f64 (+.f64 a b) 1/2)) (*.f64 (-.f64 a b) (*.f64 (+.f64 a b) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (neg.f64 b)) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (-.f64 (*.f64 a a) (*.f64 b b)) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (*.f64 b b) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 a a) (*.f64 b b))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 a b) (*.f64 (+.f64 a b) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 a b) (*.f64 (+.f64 a b) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 b b) (*.f64 a a)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 b b) (*.f64 a a)))))))

simplify95.0ms (3%)

Algorithm
egg-herbie
Rules
1362×rational.json-simplify-2
1140×rational.json-simplify-1
1074×rational.json-simplify-40
1062×rational.json-simplify-35
980×rational.json-simplify-51
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01993086
15192976
211482796
328732382
465461858
Stop Event
node limit
Counts
88 → 121
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 -1) b)
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (*.f64 (+.f64 b (*.f64 -1 b)) a) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (*.f64 -1 b)) (*.f64 (sqrt.f64 -1) b))) 2)) (pow.f64 a 2)) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (*.f64 (+.f64 b (*.f64 -1 b)) a) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (*.f64 -1 b)) (*.f64 (sqrt.f64 -1) b))) 2)) (pow.f64 a 2)) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (*.f64 -1 b)) (*.f64 (sqrt.f64 -1) b))) 2)) (*.f64 (+.f64 b (*.f64 -1 b)) (pow.f64 a 3))) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (*.f64 (+.f64 b (*.f64 -1 b)) a) (*.f64 (sqrt.f64 -1) b))))))
a
(+.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) a)
(+.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) 2)) a)) a))
(+.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) 2)) a)) (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (+.f64 b (*.f64 -1 b)) (-.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) 2))) (pow.f64 a 2))) a)))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) a))
(+.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) a)))
(+.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (*.f64 -1 b)) (sqrt.f64 -1))) 2)) a)) (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) a))))
(+.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (*.f64 -1 b)) (sqrt.f64 -1))) 2)) a)) (+.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) a)) (*.f64 -1/4 (/.f64 (*.f64 (+.f64 b (*.f64 -1 b)) (-.f64 (pow.f64 b 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (*.f64 -1 b)) (sqrt.f64 -1))) 2))) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 a 2)))))))
a
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 a (*.f64 -1 a)) b) a)) a)
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 a (*.f64 -1 a)) b) a)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) a)) 2)) (pow.f64 b 2)) a)) a))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (+.f64 a (*.f64 -1 a)) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) a)) 2) 1) (pow.f64 b 3))) (pow.f64 a 3))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 a (*.f64 -1 a)) b) a)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) a)) 2)) (pow.f64 b 2)) a)) a)))
(*.f64 (sqrt.f64 -1) b)
(+.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) b))
(+.f64 (*.f64 1/2 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) 2)) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) b)))
(+.f64 (*.f64 1/2 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) 2)) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (+.f64 a (*.f64 -1 a)) (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) 2))) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 2)))) (*.f64 (sqrt.f64 -1) b))))
(*.f64 -1 (*.f64 (sqrt.f64 -1) b))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1) b)) (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1) b)) (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) 2)) (*.f64 (sqrt.f64 -1) b))) (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1)))))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1) b)) (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) 2)) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) (*.f64 -1/4 (/.f64 (*.f64 (+.f64 a (*.f64 -1 a)) (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) 2))) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 2)))))))
(*.f64 -1 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (*.f64 (+.f64 b (*.f64 -1 b)) a))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a)))
(pow.f64 a 2)
(+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a)))
(pow.f64 a 2)
(+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a)))
(pow.f64 a 2)
(+.f64 (pow.f64 a 2) (*.f64 (+.f64 a (*.f64 -1 a)) b))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 a (*.f64 -1 a)) b)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 a (*.f64 -1 a)) b)))
(*.f64 -1 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (*.f64 (+.f64 a (*.f64 -1 a)) b))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 a (*.f64 -1 a)) b)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 a (*.f64 -1 a)) b)))
(*.f64 -1 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (*.f64 -1 (*.f64 (+.f64 a (*.f64 -1 a)) b)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (*.f64 -1 (*.f64 (+.f64 a (*.f64 -1 a)) b)) (pow.f64 a 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (*.f64 -1 (*.f64 (+.f64 a (*.f64 -1 a)) b)) (pow.f64 a 2)))
(+.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)
(+.f64 0 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))
(+.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1/2) (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1/2))
(-.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)
(*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(*.f64 1 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))
(*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1/2))
(*.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 1/2)
(*.f64 4 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4))
(*.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 1/4)
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2))
(*.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1/2) 2)
(*.f64 1/4 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4))
(*.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 4)
(/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 8))) 32)
(pow.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(+.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 0)
(+.f64 0 (-.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(+.f64 -1 (-.f64 (-.f64 (*.f64 a a) (*.f64 b b)) -1))
(+.f64 (*.f64 (-.f64 a b) (*.f64 (+.f64 a b) 1/2)) (*.f64 (-.f64 a b) (*.f64 (+.f64 a b) 1/2)))
(+.f64 (*.f64 b (neg.f64 b)) (*.f64 a a))
(+.f64 (-.f64 (-.f64 (*.f64 a a) (*.f64 b b)) -1) -1)
(-.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 0)
(-.f64 0 (-.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)
(/.f64 (*.f64 (-.f64 a b) (*.f64 (+.f64 a b) 2)) 2)
(/.f64 (*.f64 (-.f64 a b) (*.f64 (+.f64 a b) 4)) 4)
(/.f64 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 8) 8)
(/.f64 (-.f64 (*.f64 b b) (*.f64 a a)) -1)
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 8))) 32)
(pow.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)
(neg.f64 (-.f64 (*.f64 b b) (*.f64 a a)))
Outputs
(*.f64 (sqrt.f64 -1) b)
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (*.f64 (+.f64 b (*.f64 -1 b)) a) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (*.f64 (+.f64 b (neg.f64 b)) (/.f64 a (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 (/.f64 (*.f64 b 0) (*.f64 (sqrt.f64 -1) b)) (*.f64 a 1/2)))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 0 (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 (sqrt.f64 -1) b) 0)
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (*.f64 -1 b)) (*.f64 (sqrt.f64 -1) b))) 2)) (pow.f64 a 2)) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (*.f64 (+.f64 b (*.f64 -1 b)) a) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 (sqrt.f64 -1) b))) (*.f64 1/2 (*.f64 (pow.f64 a 2) (/.f64 (-.f64 1 (*.f64 1/4 (pow.f64 (/.f64 (+.f64 b (neg.f64 b)) (*.f64 (sqrt.f64 -1) b)) 2))) (*.f64 (sqrt.f64 -1) b))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (+.f64 (*.f64 (-.f64 1 (*.f64 1/4 (pow.f64 (/.f64 (+.f64 b (neg.f64 b)) (*.f64 (sqrt.f64 -1) b)) 2))) (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (+.f64 b (neg.f64 b)) (/.f64 a (*.f64 (sqrt.f64 -1) b))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (+.f64 (*.f64 (*.f64 b 0) (/.f64 a (*.f64 (sqrt.f64 -1) b))) (*.f64 (-.f64 1 (*.f64 1/4 (pow.f64 (/.f64 (*.f64 b 0) (*.f64 (sqrt.f64 -1) b)) 2))) (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (+.f64 (/.f64 0 (*.f64 (sqrt.f64 -1) b)) (*.f64 (-.f64 1 (*.f64 1/4 (pow.f64 (/.f64 0 (*.f64 (sqrt.f64 -1) b)) 2))) (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))))))
(+.f64 0 (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (*.f64 -1 b)) (*.f64 (sqrt.f64 -1) b))) 2)) (pow.f64 a 2)) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (*.f64 -1 b)) (*.f64 (sqrt.f64 -1) b))) 2)) (*.f64 (+.f64 b (*.f64 -1 b)) (pow.f64 a 3))) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (*.f64 (+.f64 b (*.f64 -1 b)) a) (*.f64 (sqrt.f64 -1) b))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 (sqrt.f64 -1) b))) (*.f64 1/2 (*.f64 (pow.f64 a 2) (/.f64 (-.f64 1 (*.f64 1/4 (pow.f64 (/.f64 (+.f64 b (neg.f64 b)) (*.f64 (sqrt.f64 -1) b)) 2))) (*.f64 (sqrt.f64 -1) b))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (+.f64 (*.f64 (-.f64 1 (*.f64 1/4 (pow.f64 (/.f64 (+.f64 b (neg.f64 b)) (*.f64 (sqrt.f64 -1) b)) 2))) (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (+.f64 b (neg.f64 b)) (/.f64 a (*.f64 (sqrt.f64 -1) b))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (+.f64 (*.f64 (*.f64 b 0) (/.f64 a (*.f64 (sqrt.f64 -1) b))) (*.f64 (-.f64 1 (*.f64 1/4 (pow.f64 (/.f64 (*.f64 b 0) (*.f64 (sqrt.f64 -1) b)) 2))) (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (+.f64 (/.f64 0 (*.f64 (sqrt.f64 -1) b)) (*.f64 (-.f64 1 (*.f64 1/4 (pow.f64 (/.f64 0 (*.f64 (sqrt.f64 -1) b)) 2))) (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))))))
(+.f64 0 (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)))))
a
(+.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) a)
a
(+.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) 2)) a)) a))
(+.f64 (*.f64 1/2 (+.f64 b (neg.f64 b))) (+.f64 a (*.f64 1/2 (/.f64 (-.f64 (*.f64 -1 (pow.f64 b 2)) (*.f64 1/4 (pow.f64 (+.f64 b (neg.f64 b)) 2))) a))))
(+.f64 a (+.f64 (*.f64 1/2 (+.f64 b (neg.f64 b))) (*.f64 1/2 (/.f64 (-.f64 (neg.f64 (pow.f64 b 2)) (*.f64 1/4 (pow.f64 (+.f64 b (neg.f64 b)) 2))) a))))
(+.f64 a (*.f64 1/2 (+.f64 (/.f64 (-.f64 (neg.f64 (pow.f64 b 2)) (*.f64 1/4 (pow.f64 (*.f64 b 0) 2))) a) (*.f64 b 0))))
(+.f64 a (*.f64 1/2 (/.f64 (neg.f64 (pow.f64 b 2)) a)))
(+.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) 2)) a)) (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (+.f64 b (*.f64 -1 b)) (-.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) 2))) (pow.f64 a 2))) a)))
(+.f64 (*.f64 1/2 (+.f64 b (neg.f64 b))) (+.f64 a (*.f64 1/2 (/.f64 (-.f64 (*.f64 -1 (pow.f64 b 2)) (*.f64 1/4 (pow.f64 (+.f64 b (neg.f64 b)) 2))) a))))
(+.f64 a (+.f64 (*.f64 1/2 (+.f64 b (neg.f64 b))) (*.f64 1/2 (/.f64 (-.f64 (neg.f64 (pow.f64 b 2)) (*.f64 1/4 (pow.f64 (+.f64 b (neg.f64 b)) 2))) a))))
(+.f64 a (*.f64 1/2 (+.f64 (/.f64 (-.f64 (neg.f64 (pow.f64 b 2)) (*.f64 1/4 (pow.f64 (*.f64 b 0) 2))) a) (*.f64 b 0))))
(+.f64 a (*.f64 1/2 (/.f64 (neg.f64 (pow.f64 b 2)) a)))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) a))
(*.f64 -1 (*.f64 a 1))
(neg.f64 a)
(+.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) a)))
(*.f64 -1 (*.f64 a 1))
(neg.f64 a)
(+.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (*.f64 -1 b)) (sqrt.f64 -1))) 2)) a)) (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) a))))
(+.f64 (*.f64 1/2 (+.f64 b (neg.f64 b))) (+.f64 (*.f64 -1 (*.f64 a 1)) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (neg.f64 b)) (sqrt.f64 -1))) 2)) a))))
(+.f64 (*.f64 1/2 (+.f64 b (neg.f64 b))) (+.f64 (neg.f64 a) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (neg.f64 b)) (sqrt.f64 -1))) 2)) a))))
(+.f64 (+.f64 (*.f64 1/2 (*.f64 b 0)) (neg.f64 a)) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) (*.f64 1/4 (pow.f64 (/.f64 (*.f64 b 0) (sqrt.f64 -1)) 2))) a)))
(+.f64 (neg.f64 a) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) (pow.f64 (*.f64 1/2 (/.f64 0 (sqrt.f64 -1))) 2)) a)))
(+.f64 (neg.f64 a) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) 0) a)))
(+.f64 (*.f64 1/2 (+.f64 b (*.f64 -1 b))) (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (*.f64 -1 b)) (sqrt.f64 -1))) 2)) a)) (+.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) a)) (*.f64 -1/4 (/.f64 (*.f64 (+.f64 b (*.f64 -1 b)) (-.f64 (pow.f64 b 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (*.f64 -1 b)) (sqrt.f64 -1))) 2))) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 a 2)))))))
(+.f64 (*.f64 1/2 (+.f64 b (neg.f64 b))) (+.f64 (*.f64 -1 (*.f64 a 1)) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (neg.f64 b)) (sqrt.f64 -1))) 2)) a))))
(+.f64 (*.f64 1/2 (+.f64 b (neg.f64 b))) (+.f64 (neg.f64 a) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 b (neg.f64 b)) (sqrt.f64 -1))) 2)) a))))
(+.f64 (+.f64 (*.f64 1/2 (*.f64 b 0)) (neg.f64 a)) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) (*.f64 1/4 (pow.f64 (/.f64 (*.f64 b 0) (sqrt.f64 -1)) 2))) a)))
(+.f64 (neg.f64 a) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) (pow.f64 (*.f64 1/2 (/.f64 0 (sqrt.f64 -1))) 2)) a)))
(+.f64 (neg.f64 a) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 b 2) 0) a)))
a
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 a (*.f64 -1 a)) b) a)) a)
a
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 a (*.f64 -1 a)) b) a)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) a)) 2)) (pow.f64 b 2)) a)) a))
(+.f64 (*.f64 1/2 (*.f64 b (/.f64 (+.f64 a (*.f64 -1 a)) a))) (+.f64 a (*.f64 -1/2 (*.f64 (pow.f64 b 2) (/.f64 (+.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) a)) 2)) a)))))
(+.f64 a (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 b 2) (/.f64 (+.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (neg.f64 a)) a)) 2)) a))) (*.f64 b (*.f64 1/2 (/.f64 (+.f64 a (neg.f64 a)) a)))))
(+.f64 a (+.f64 (*.f64 b (*.f64 1/2 (/.f64 (*.f64 a 0) a))) (*.f64 -1/2 (*.f64 (+.f64 1 (*.f64 1/4 (pow.f64 (/.f64 (*.f64 a 0) a) 2))) (/.f64 (pow.f64 b 2) a)))))
(+.f64 a (+.f64 (*.f64 1/2 (/.f64 0 a)) (*.f64 (pow.f64 b 2) (*.f64 -1/2 (/.f64 (+.f64 1 (*.f64 1/4 (pow.f64 (/.f64 0 a) 2))) a)))))
(+.f64 a (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (+.f64 a (*.f64 -1 a)) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) a)) 2) 1) (pow.f64 b 3))) (pow.f64 a 3))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 a (*.f64 -1 a)) b) a)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) a)) 2)) (pow.f64 b 2)) a)) a)))
(+.f64 (*.f64 1/2 (*.f64 b (/.f64 (+.f64 a (*.f64 -1 a)) a))) (+.f64 a (*.f64 -1/2 (*.f64 (pow.f64 b 2) (/.f64 (+.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) a)) 2)) a)))))
(+.f64 a (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 b 2) (/.f64 (+.f64 1 (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (neg.f64 a)) a)) 2)) a))) (*.f64 b (*.f64 1/2 (/.f64 (+.f64 a (neg.f64 a)) a)))))
(+.f64 a (+.f64 (*.f64 b (*.f64 1/2 (/.f64 (*.f64 a 0) a))) (*.f64 -1/2 (*.f64 (+.f64 1 (*.f64 1/4 (pow.f64 (/.f64 (*.f64 a 0) a) 2))) (/.f64 (pow.f64 b 2) a)))))
(+.f64 a (+.f64 (*.f64 1/2 (/.f64 0 a)) (*.f64 (pow.f64 b 2) (*.f64 -1/2 (/.f64 (+.f64 1 (*.f64 1/4 (pow.f64 (/.f64 0 a) 2))) a)))))
(+.f64 a (*.f64 -1/2 (/.f64 (pow.f64 b 2) a)))
(*.f64 (sqrt.f64 -1) b)
(+.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) b))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (*.f64 (+.f64 b (neg.f64 b)) (/.f64 a (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 (/.f64 (*.f64 b 0) (*.f64 (sqrt.f64 -1) b)) (*.f64 a 1/2)))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 0 (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 (sqrt.f64 -1) b) 0)
(+.f64 (*.f64 1/2 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) 2)) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) b)))
(+.f64 (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1)))) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 a 2) (*.f64 1/4 (pow.f64 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1)) 2))) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (+.f64 a (neg.f64 a)) (sqrt.f64 -1)))) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 a 2) (*.f64 1/4 (pow.f64 (/.f64 (+.f64 a (neg.f64 a)) (sqrt.f64 -1)) 2))) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (+.f64 (/.f64 (-.f64 (pow.f64 a 2) (*.f64 1/4 (pow.f64 (/.f64 (*.f64 a 0) (sqrt.f64 -1)) 2))) (*.f64 (sqrt.f64 -1) b)) (/.f64 (*.f64 a 0) (sqrt.f64 -1)))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (+.f64 (/.f64 0 (sqrt.f64 -1)) (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 0 (sqrt.f64 -1))) 2)) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (+.f64 0 (/.f64 (-.f64 (pow.f64 a 2) 0) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 1/2 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) 2)) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (+.f64 a (*.f64 -1 a)) (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) 2))) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 2)))) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1)))) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 a 2) (*.f64 1/4 (pow.f64 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1)) 2))) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (+.f64 a (neg.f64 a)) (sqrt.f64 -1)))) (*.f64 1/2 (/.f64 (-.f64 (pow.f64 a 2) (*.f64 1/4 (pow.f64 (/.f64 (+.f64 a (neg.f64 a)) (sqrt.f64 -1)) 2))) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (+.f64 (/.f64 (-.f64 (pow.f64 a 2) (*.f64 1/4 (pow.f64 (/.f64 (*.f64 a 0) (sqrt.f64 -1)) 2))) (*.f64 (sqrt.f64 -1) b)) (/.f64 (*.f64 a 0) (sqrt.f64 -1)))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (+.f64 (/.f64 0 (sqrt.f64 -1)) (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 0 (sqrt.f64 -1))) 2)) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (+.f64 0 (/.f64 (-.f64 (pow.f64 a 2) 0) (*.f64 (sqrt.f64 -1) b)))))
(*.f64 -1 (*.f64 (sqrt.f64 -1) b))
(*.f64 (sqrt.f64 -1) (neg.f64 b))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1) b)) (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))))
(+.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) (neg.f64 b)))
(+.f64 (*.f64 1/2 (/.f64 (+.f64 a (neg.f64 a)) (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) (neg.f64 b)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 a 0) (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) (neg.f64 b)))
(+.f64 (*.f64 1/2 (/.f64 0 (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) (neg.f64 b)))
(+.f64 0 (*.f64 (sqrt.f64 -1) (neg.f64 b)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1) b)) (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) 2)) (*.f64 (sqrt.f64 -1) b))) (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1)))))
(+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (+.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) (*.f64 1/4 (pow.f64 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1)) 2))) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 1/2 (/.f64 (+.f64 a (neg.f64 a)) (sqrt.f64 -1))) (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) (*.f64 1/4 (pow.f64 (/.f64 (+.f64 a (neg.f64 a)) (sqrt.f64 -1)) 2))) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) (neg.f64 b))))
(+.f64 (+.f64 (*.f64 1/2 (/.f64 (*.f64 a 0) (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) (neg.f64 b))) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) (*.f64 1/4 (pow.f64 (/.f64 (*.f64 a 0) (sqrt.f64 -1)) 2))) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 1/2 (/.f64 0 (sqrt.f64 -1))) (+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 0 (sqrt.f64 -1))) 2)) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 0 (+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) 0) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1) b)) (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) 2)) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) (*.f64 -1/4 (/.f64 (*.f64 (+.f64 a (*.f64 -1 a)) (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) 2))) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 2)))))))
(+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (+.f64 (*.f64 1/2 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1))) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) (*.f64 1/4 (pow.f64 (/.f64 (+.f64 a (*.f64 -1 a)) (sqrt.f64 -1)) 2))) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 (*.f64 1/2 (/.f64 (+.f64 a (neg.f64 a)) (sqrt.f64 -1))) (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) (*.f64 1/4 (pow.f64 (/.f64 (+.f64 a (neg.f64 a)) (sqrt.f64 -1)) 2))) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) (neg.f64 b))))
(+.f64 (+.f64 (*.f64 1/2 (/.f64 (*.f64 a 0) (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) (neg.f64 b))) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) (*.f64 1/4 (pow.f64 (/.f64 (*.f64 a 0) (sqrt.f64 -1)) 2))) (*.f64 (sqrt.f64 -1) b))))
(+.f64 (*.f64 1/2 (/.f64 0 (sqrt.f64 -1))) (+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 (*.f64 1/2 (/.f64 0 (sqrt.f64 -1))) 2)) (*.f64 (sqrt.f64 -1) b)))))
(+.f64 0 (+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (*.f64 -1/2 (/.f64 (-.f64 (pow.f64 a 2) 0) (*.f64 (sqrt.f64 -1) b)))))
(*.f64 -1 (pow.f64 b 2))
(neg.f64 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (*.f64 (+.f64 b (*.f64 -1 b)) a))
(*.f64 -1 (pow.f64 b 2))
(neg.f64 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 -1 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (*.f64 (*.f64 b 0) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 0 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 -1 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (*.f64 (*.f64 b 0) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 0 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(pow.f64 a 2)
(+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a))
(pow.f64 a 2)
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 -1 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (*.f64 (*.f64 b 0) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 0 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 -1 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (*.f64 (*.f64 b 0) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 0 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(pow.f64 a 2)
(+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a))
(pow.f64 a 2)
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 -1 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (*.f64 (*.f64 b 0) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 0 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 b (*.f64 -1 b)) a)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 -1 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (*.f64 (*.f64 b 0) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 0 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(pow.f64 a 2)
(+.f64 (pow.f64 a 2) (*.f64 (+.f64 a (*.f64 -1 a)) b))
(pow.f64 a 2)
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 a (*.f64 -1 a)) b)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 -1 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (*.f64 (*.f64 b 0) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 0 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 a (*.f64 -1 a)) b)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 -1 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (*.f64 (*.f64 b 0) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 0 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (pow.f64 b 2))
(neg.f64 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (*.f64 (+.f64 a (*.f64 -1 a)) b))
(*.f64 -1 (pow.f64 b 2))
(neg.f64 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 a (*.f64 -1 a)) b)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 -1 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (*.f64 (*.f64 b 0) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 0 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 (+.f64 a (*.f64 -1 a)) b)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 -1 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (*.f64 (*.f64 b 0) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 0 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (pow.f64 b 2))
(neg.f64 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (*.f64 -1 (*.f64 (+.f64 a (*.f64 -1 a)) b)))
(*.f64 -1 (pow.f64 b 2))
(neg.f64 (pow.f64 b 2))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (*.f64 -1 (*.f64 (+.f64 a (*.f64 -1 a)) b)) (pow.f64 a 2)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 -1 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (*.f64 (*.f64 b 0) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 0 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (*.f64 -1 (pow.f64 b 2)) (+.f64 (*.f64 -1 (*.f64 (+.f64 a (*.f64 -1 a)) b)) (pow.f64 a 2)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (*.f64 -1 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 b (neg.f64 b)) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (*.f64 (*.f64 b 0) a) (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 0 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2))))
(+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))
(+.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 0 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1/2) (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1/2))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(-.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 1 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1/2))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 1/2)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 4 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 1/4)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1/2) 2)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 1/4 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 4)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 2)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 4)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 8) 8)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 8)) 16)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 8))) 32)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(pow.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 0)
(-.f64 (*.f64 a a) (*.f64 b b))
(+.f64 0 (-.f64 (*.f64 a a) (*.f64 b b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(+.f64 -1 (-.f64 (-.f64 (*.f64 a a) (*.f64 b b)) -1))
(-.f64 (*.f64 a a) (*.f64 b b))
(+.f64 (*.f64 (-.f64 a b) (*.f64 (+.f64 a b) 1/2)) (*.f64 (-.f64 a b) (*.f64 (+.f64 a b) 1/2)))
(-.f64 (*.f64 a a) (*.f64 b b))
(+.f64 (*.f64 b (neg.f64 b)) (*.f64 a a))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(+.f64 (-.f64 (-.f64 (*.f64 a a) (*.f64 b b)) -1) -1)
(-.f64 (*.f64 a a) (*.f64 b b))
(-.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 0)
(-.f64 (*.f64 a a) (*.f64 b b))
(-.f64 0 (-.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 (*.f64 a a) (*.f64 b b))
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (*.f64 (-.f64 a b) (*.f64 (+.f64 a b) 2)) 2)
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (*.f64 (-.f64 a b) (*.f64 (+.f64 a b) 4)) 4)
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 8) 8)
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (-.f64 (*.f64 b b) (*.f64 a a)) -1)
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 8)) 16)
(-.f64 (*.f64 a a) (*.f64 b b))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 8))) 32)
(-.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)
(-.f64 (*.f64 a a) (*.f64 b b))
(neg.f64 (-.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 (*.f64 a a) (*.f64 b b))

eval299.0ms (9.4%)

Compiler

Compiled 2436 to 1646 computations (32.4% saved)

prune208.0ms (6.6%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New1210121
Fresh011
Picked011
Done022
Total1214125
Error
0.2b
Counts
125 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
29.8b
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
29.7b
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 a b)))
32.7b
(neg.f64 a)
31.4b
a
Compiler

Compiled 27 to 17 computations (37% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0.2b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
29.8b
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
29.7b
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 a b)))
32.7b
(neg.f64 a)
31.4b
a
Compiler

Compiled 27 to 17 computations (37% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0.2b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
29.8b
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
29.7b
(sqrt.f64 (*.f64 (-.f64 a b) (+.f64 a b)))
32.7b
(neg.f64 a)
31.4b
a
Compiler

Compiled 27 to 17 computations (37% saved)

regimes429.0ms (13.6%)

Accuracy

Total -62.6b remaining (-8121.6%)

Threshold costs -62.6b (-8121.6%)

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

6 calls:

226.0ms
b
170.0ms
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
10.0ms
(*.f64 a a)
9.0ms
(-.f64 (*.f64 a a) (*.f64 b b))
7.0ms
a
Results
ErrorSegmentsBranch
0.8b2a
20.2b10b
14.0b3(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
14.0b3(-.f64 (*.f64 a a) (*.f64 b b))
14.0b3(*.f64 a a)
25.9b2(*.f64 b b)
Compiler

Compiled 56 to 32 computations (42.9% saved)

bsearch225.0ms (7.1%)

Algorithm
binary-search
Steps
TimeLeftRight
225.0ms
-1.0149084903755685e-216
1.5058944788359894e-251
Results
221.0ms767×body256invalid
3.0ms33×body256valid
Compiler

Compiled 33 to 24 computations (27.3% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01016
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 a 547172541889829/685765508599211085406992031398401158759299079491541508764000248557024672719959118395646962442045349201660590667234013968119772982843080987903012964780708787451812337588750783066948774723991753080189067657794974398949244241113521123786594812548932026532556574571938698730267509225767960757581162756440064) (neg.f64 a) a)
a
Outputs
(if (<=.f64 a 547172541889829/685765508599211085406992031398401158759299079491541508764000248557024672719959118395646962442045349201660590667234013968119772982843080987903012964780708787451812337588750783066948774723991753080189067657794974398949244241113521123786594812548932026532556574571938698730267509225767960757581162756440064) (neg.f64 a) a)
a
Compiler

Compiled 12 to 8 computations (33.3% saved)

soundness229.0ms (7.2%)

Algorithm
egg-herbie
Rules
1030×rational.json-simplify-1
912×rational.json-simplify-2
906×rational.json-simplify-51
760×rational.json-simplify-44
680×rational.json-simplify-19
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01703019
13592969
27132969
318992969
468192825
Stop Event
node limit
Compiler

Compiled 10 to 7 computations (30% saved)

end14.0ms (0.4%)

Compiler

Compiled 10 to 6 computations (40% saved)

Profiling

Loading profile data...