Details

Time bar (total: 3.7s)

analyze58.0ms (1.5%)

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)

sample2.5s (66.5%)

Results
2.4s8256×body256valid
50.0ms661×body256invalid
Bogosity

preprocess119.0ms (3.2%)

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)

simplify629.0ms (16.8%)

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
31.6b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
31.6b
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
Compiler

Compiled 10 to 6 computations (40% saved)

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
1.8b
(-.f64 (*.f64 a a) (*.f64 b b))
29.5b
(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
@0
(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
@-inf
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))

rewrite54.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1454×rational.json-simplify-35
1152×bool.json-1
1152×bool.json-2
1138×rational.json-1
1138×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0942
19142
227442
372442
4284242
Stop Event
node limit
Counts
2 → 49
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 not (not (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a a) (neg.f64 (*.f64 b 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 (neg.f64 (*.f64 b b)) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (-.f64 (*.f64 b b) (*.f64 a a))))))) (#(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 1 (-.f64 (*.f64 b b) (*.f64 a a))) -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 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 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 (*.f64 a a) (*.f64 b b)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b 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 (*.f64 a a) (*.f64 b b)) 4)) (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 b b) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 (*.f64 a a) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 (*.f64 a a) (*.f64 b b)) (-.f64 (*.f64 a a) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (*.f64 a a) (*.f64 b b)) (-.f64 (*.f64 a a) (*.f64 b b)))))))

simplify94.0ms (2.5%)

Algorithm
egg-herbie
Rules
1068×rational.json-simplify-2
1066×rational.json-simplify-1
872×rational.json-simplify-44
766×rational.json-simplify-51
728×rational.json-simplify-47
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01653035
13402977
26832977
318662977
463892837
Stop Event
node limit
Counts
97 → 107
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)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 0)
(+.f64 0 (-.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 (neg.f64 (*.f64 b b)) (*.f64 a a))
(+.f64 -1 (-.f64 1 (-.f64 (*.f64 b b) (*.f64 a a))))
(+.f64 -1 (+.f64 (-.f64 1 (*.f64 b b)) (*.f64 a a)))
(+.f64 (-.f64 1 (-.f64 (*.f64 b b) (*.f64 a a))) -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 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 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 (*.f64 a a) (*.f64 b b)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 4)) 8)
(/.f64 (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 4)) (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 4))) 16)
(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 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))))))
(+.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 (pow.f64 (sqrt.f64 -1) 3) (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/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.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 (*.f64 (sqrt.f64 -1) b) (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (+.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 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5))))))
(+.f64 (*.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 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (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 a (*.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 (+.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 -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 (neg.f64 a) (+.f64 (*.f64 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) 1/8) (*.f64 1/2 (/.f64 (pow.f64 b 2) a))))
(+.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 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) 1/8) (+.f64 (neg.f64 a) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))) (*.f64 1/2 (/.f64 (pow.f64 b 2) a)))))
(+.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 a (*.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 (+.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 -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 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))))))
(+.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 (pow.f64 (sqrt.f64 -1) 3) (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/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (+.f64 (*.f64 (sqrt.f64 -1) b) (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.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 (*.f64 (sqrt.f64 -1) b) (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))))))
(+.f64 (*.f64 (sqrt.f64 -1) b) (+.f64 (+.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 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5))))))
(+.f64 (*.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 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (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 -1 (*.f64 (sqrt.f64 -1) b)) (*.f64 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)) -1/2))
(+.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 -1 (*.f64 (sqrt.f64 -1) b)) (+.f64 (*.f64 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)) -1/2) (*.f64 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))) 1/8)))
(+.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 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))) 1/8)))
(+.f64 (*.f64 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)) -1/2) (+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (*.f64 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (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 -1 (*.f64 (sqrt.f64 -1) b)) (+.f64 (*.f64 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)) -1/2) (+.f64 (*.f64 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))) 1/8) (*.f64 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (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 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))) 1/8) (*.f64 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5))) -1/16))))
(+.f64 (*.f64 (sqrt.f64 -1) (neg.f64 b)) (+.f64 (+.f64 (*.f64 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b)) -1/2) (*.f64 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))) 1/8)) (*.f64 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (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)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(+.f64 0 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(-.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 0)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(*.f64 1 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(*.f64 2 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(*.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 1/2)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2))
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(*.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 2)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 1)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 2) 2)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) 4) 4)
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a 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)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a 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)))
(sqrt.f64 (*.f64 (+.f64 b a) (-.f64 a b)))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(+.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 0)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(+.f64 0 (-.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(+.f64 (neg.f64 (*.f64 b b)) (*.f64 a a))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(+.f64 -1 (-.f64 1 (-.f64 (*.f64 b b) (*.f64 a a))))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(+.f64 -1 (+.f64 (-.f64 1 (*.f64 b b)) (*.f64 a a)))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(+.f64 (-.f64 1 (-.f64 (*.f64 b b) (*.f64 a a))) -1)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 1 (-.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (+.f64 a b) (-.f64 a b))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (-.f64 a b) (+.f64 a b))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 2 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2) 1/2)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) -1)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (-.f64 (fabs.f64 a) b) (+.f64 b (fabs.f64 a)))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (+.f64 a (fabs.f64 b)) (-.f64 a (fabs.f64 b)))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (-.f64 a (fabs.f64 b)) (+.f64 a (fabs.f64 b)))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (+.f64 (fabs.f64 a) (fabs.f64 b)) (-.f64 (fabs.f64 a) (fabs.f64 b)))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (-.f64 (fabs.f64 a) (fabs.f64 b)) (+.f64 (fabs.f64 a) (fabs.f64 b)))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (+.f64 b (fabs.f64 a)) (-.f64 (fabs.f64 a) b))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (*.f64 (-.f64 a b) 2) (/.f64 (+.f64 a b) 2))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (*.f64 (+.f64 a b) 2) (/.f64 (-.f64 a b) 2))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 -1 (-.f64 (*.f64 b b) (*.f64 a a)))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 1/2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2) 2)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (/.f64 (+.f64 a b) 2) (*.f64 (-.f64 a b) 2))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(*.f64 (/.f64 (-.f64 a b) 2) (*.f64 (+.f64 a b) 2))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 1)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(/.f64 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 2) 2)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(/.f64 (-.f64 (*.f64 b b) (*.f64 a a)) -1)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(/.f64 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 4) 4)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 4)) 8)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(/.f64 (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))) -2)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 4)) (*.f64 2 (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) 4))) 16)
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))
(neg.f64 (-.f64 (*.f64 b b) (*.f64 a a)))
(+.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
(*.f64 (+.f64 b a) (-.f64 a b))

eval34.0ms (0.9%)

Compiler

Compiled 1852 to 1210 computations (34.7% saved)

prune14.0ms (0.4%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1052107
Fresh000
Picked011
Done000
Total1053108
Error
0.3b
Counts
108 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
31.6b
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
30.5b
(neg.f64 a)
33.4b
a
Compiler

Compiled 17 to 11 computations (35.3% saved)

localize3.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done011
Total033
Error
0.3b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
31.6b
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
30.5b
(neg.f64 a)
33.4b
a
Compiler

Compiled 17 to 11 computations (35.3% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Error
0.3b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
31.6b
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
30.5b
(neg.f64 a)
33.4b
a
Compiler

Compiled 17 to 11 computations (35.3% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Error
0.3b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
31.6b
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
30.5b
(neg.f64 a)
33.4b
a
Compiler

Compiled 17 to 11 computations (35.3% saved)

regimes71.0ms (1.9%)

Accuracy

Total -62.8b remaining (-10493.2%)

Threshold costs -62.8b (-10493.2%)

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

6 calls:

26.0ms
b
12.0ms
(*.f64 b b)
9.0ms
(-.f64 (*.f64 a a) (*.f64 b b))
8.0ms
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
8.0ms
(*.f64 a a)
Results
ErrorSegmentsBranch
0.6b2a
20.8b8b
13.5b3(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
13.5b3(-.f64 (*.f64 a a) (*.f64 b b))
13.5b3(*.f64 a a)
22.6b5(*.f64 b b)
Compiler

Compiled 48 to 28 computations (41.7% saved)

bsearch33.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
33.0ms
-2.3353896247746582e-262
7.48752312843505e-276
Results
31.0ms375×body256invalid
1.0ms13×body256valid
Compiler

Compiled 15 to 10 computations (33.3% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 12 to 8 computations (33.3% saved)

soundness111.0ms (3%)

Algorithm
egg-herbie
Rules
1068×rational.json-simplify-2
1066×rational.json-simplify-1
872×rational.json-simplify-44
766×rational.json-simplify-51
728×rational.json-simplify-47
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01653035
13402977
26832977
318662977
463892837
Stop Event
node limit
Compiler

Compiled 10 to 7 computations (30% saved)

end18.0ms (0.5%)

Compiler

Compiled 10 to 6 computations (40% saved)

Profiling

Loading profile data...