Details

Time bar (total: 4.3s)

analyze164.0ms (3.8%)

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
12.5%12.5%87.4%0.1%0%0%0%5
18.8%18.7%81.2%0.1%0%0%0%6
37.5%37.5%62.4%0.1%0%0%0%7
42.2%42.1%57.8%0.1%0%0%0%8
54.7%54.6%45.3%0.1%0%0%0%9
57.4%57.4%42.5%0.1%0%0%0%10
64.5%64.4%35.5%0.1%0%0%0%11
65.9%65.9%34%0.1%0%0%0%12
Compiler

Compiled 18 to 13 computations (27.8% saved)

sample1.4s (31.7%)

Results
719.0ms6372×body256valid
249.0ms546×body4096valid
231.0ms657×body2048valid
116.0ms422×body1024valid
48.0ms259×body512valid
Bogosity

preprocess3.0ms (0.1%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02190
12990
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re))) im))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re))) im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))))
Compiler

Compiled 19 to 14 computations (26.3% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01545
11945
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))))

eval1.0ms (0%)

Compiler

Compiled 32 to 18 computations (43.8% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
40.2b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
40.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
Compiler

Compiled 17 to 12 computations (29.4% saved)

localize16.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 re re) (*.f64 im im))
0.9b
(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
31.1b
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Compiler

Compiled 77 to 19 computations (75.3% saved)

series4.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
0.0ms
re
@0
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
0.0ms
re
@inf
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
0.0ms
im
@inf
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
0.0ms
re
@-inf
(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
0.0ms
im
@0
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))

rewrite8.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
28×rational.json-simplify-1
28×bool.json-1
24×rational.json-1
24×rational.json-2
24×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01071
14671
27871
38271
Stop Event
saturated
Counts
3 → 8
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
(+.f64 (*.f64 re re) (*.f64 im im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))))))
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))))))
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 re re) (*.f64 im im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 re re) (*.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 re re) (*.f64 im im)) (+.f64 (*.f64 re re) (*.f64 im im)))))))

simplify37.0ms (0.9%)

Algorithm
egg-herbie
Rules
382×rational.json-simplify-1
256×rational.json-simplify-33
42×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01062654
11942654
23012654
34122654
44772654
54822654
Stop Event
saturated
Counts
80 → 91
Calls
Call 1
Inputs
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(*.f64 -1 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
im
(+.f64 re im)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(*.f64 2 re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
(*.f64 2 re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
im
(+.f64 re im)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(pow.f64 im 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 re 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 re 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 re 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 im 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 im 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) 0)
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) 1)
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 1)
(*.f64 1 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))
(*.f64 (+.f64 (*.f64 re re) (*.f64 im im)) 1)
(*.f64 1 (+.f64 (*.f64 re re) (*.f64 im im)))
Outputs
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 im (*.f64 1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (+.f64 im (*.f64 1/2 (/.f64 (pow.f64 re 2) im))) (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 im (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 im (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 im (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))))))
(+.f64 (+.f64 im (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)))))
(+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)))) (+.f64 im (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 re (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) re)
(+.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)))))
(+.f64 (+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) re) (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))
(+.f64 (+.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))) (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))
(+.f64 re (+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)))))
(+.f64 re (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(*.f64 -1 re)
(*.f64 re -1)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 re -1) (*.f64 (/.f64 (pow.f64 im 2) re) -1/2))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(+.f64 (*.f64 re -1) (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
(+.f64 (+.f64 (*.f64 re -1) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))
(+.f64 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)) (+.f64 (*.f64 re -1) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))
(+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (+.f64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16) (+.f64 (*.f64 re -1) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 re (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) re)
(+.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)))))
(+.f64 (+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) re) (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))
(+.f64 (+.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))) (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))
(+.f64 re (+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)))))
(+.f64 re (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 im (*.f64 1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (+.f64 im (*.f64 1/2 (/.f64 (pow.f64 re 2) im))) (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 im (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 im (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 im (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))))))
(+.f64 (+.f64 im (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)))))
(+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)))) (+.f64 im (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))))
(*.f64 -1 im)
(*.f64 im -1)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 im -1) (*.f64 (/.f64 (pow.f64 re 2) im) -1/2))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (+.f64 (*.f64 im -1) (*.f64 (/.f64 (pow.f64 re 2) im) -1/2)) (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8))
(+.f64 (*.f64 im -1) (+.f64 (*.f64 (/.f64 (pow.f64 re 2) im) -1/2) (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8)))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(+.f64 (+.f64 (+.f64 (*.f64 im -1) (*.f64 (/.f64 (pow.f64 re 2) im) -1/2)) (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8)) (*.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16))
(+.f64 (+.f64 (*.f64 im -1) (*.f64 (/.f64 (pow.f64 re 2) im) -1/2)) (+.f64 (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8) (*.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16)))
(+.f64 (*.f64 im -1) (+.f64 (*.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16) (+.f64 (*.f64 (/.f64 (pow.f64 re 2) im) -1/2) (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8))))
(+.f64 (*.f64 im -1) (+.f64 (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8) (+.f64 (*.f64 (/.f64 (pow.f64 re 2) im) -1/2) (*.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16))))
im
(+.f64 re im)
(+.f64 im re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 im re))
(+.f64 re (+.f64 im (*.f64 1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 im re)))
(+.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 im (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 re 2))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 re 2)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 re 2))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 (/.f64 (pow.f64 im 2) re) -1/2)
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(+.f64 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8) (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))
(+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (+.f64 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8) (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
(+.f64 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8) (+.f64 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)) (*.f64 1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7)))))
(+.f64 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (+.f64 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8) (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) (*.f64 1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7))))
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 re 2))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 re 2)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 re 2))))
im
(+.f64 re im)
(+.f64 im re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 im re))
(+.f64 re (+.f64 im (*.f64 1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 im re)))
(+.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 im (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(*.f64 -1 im)
(*.f64 im -1)
(+.f64 re (*.f64 -1 im))
(+.f64 re (*.f64 im -1))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (+.f64 re (*.f64 (/.f64 (pow.f64 re 2) im) -1/2)) (*.f64 im -1))
(+.f64 (*.f64 im -1) (+.f64 re (*.f64 (/.f64 (pow.f64 re 2) im) -1/2)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(+.f64 (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8) (+.f64 (+.f64 re (*.f64 (/.f64 (pow.f64 re 2) im) -1/2)) (*.f64 im -1)))
(+.f64 (+.f64 (*.f64 im -1) (*.f64 (/.f64 (pow.f64 re 2) im) -1/2)) (+.f64 re (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8)))
(+.f64 re (+.f64 (*.f64 im -1) (+.f64 (*.f64 (/.f64 (pow.f64 re 2) im) -1/2) (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8))))
(pow.f64 im 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 re 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 re 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 re 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 im 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 im 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) 0)
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) 0)
(*.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) 1)
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) 1)
(*.f64 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 1)
(*.f64 1 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))
(*.f64 1 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))
(*.f64 (+.f64 (*.f64 re re) (*.f64 im im)) 1)
(*.f64 1 (+.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (+.f64 (*.f64 re re) (*.f64 im im)) 1)

eval37.0ms (0.9%)

Compiler

Compiled 2221 to 1709 computations (23.1% saved)

prune90.0ms (2.1%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New85691
Fresh000
Picked011
Done000
Total85792
Error
6.1b
Counts
92 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
56.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))
60.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 re -1) re))))
44.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
40.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
47.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
43.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
54.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2))))
Compiler

Compiled 181 to 148 computations (18.2% saved)

localize9.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (*.f64 2 (+.f64 re im)))
Compiler

Compiled 28 to 15 computations (46.4% saved)

series3.0ms (0.1%)

Counts
1 → 8
Calls

6 calls:

TimeVariablePointExpression
1.0ms
re
@0
(sqrt.f64 (*.f64 2 (+.f64 re im)))
1.0ms
re
@inf
(sqrt.f64 (*.f64 2 (+.f64 re im)))
0.0ms
im
@0
(sqrt.f64 (*.f64 2 (+.f64 re im)))
0.0ms
im
@inf
(sqrt.f64 (*.f64 2 (+.f64 re im)))
0.0ms
re
@-inf
(sqrt.f64 (*.f64 2 (+.f64 re im)))

rewrite5.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
26×bool.json-1
22×rational.json-simplify-2
22×rational.json-simplify-1
20×rational.json-1
20×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
14217
27017
37517
Stop Event
saturated
Counts
1 → 4
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 2 (+.f64 re im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 2 (+.f64 re im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 2 (+.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 2 (+.f64 re im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 2 (+.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 2 (+.f64 re im))) (sqrt.f64 (*.f64 2 (+.f64 re im))))))))

simplify90.0ms (2.1%)

Algorithm
egg-herbie
Rules
326×rational.json-simplify-2
206×rational.json-simplify-31
106×rational.json-simplify-1
70×rational.json-simplify-33
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
070740
1123740
2201740
3336740
4456740
5480740
Stop Event
saturated
Counts
12 → 31
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))))
(+.f64 (sqrt.f64 (*.f64 2 (+.f64 re im))) 0)
(+.f64 0 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 (sqrt.f64 (*.f64 2 (+.f64 re im))) 1)
(*.f64 1 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Outputs
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) re))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))) (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) re))) (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (+.f64 (*.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (sqrt.f64 2) (*.f64 -1/8 (pow.f64 re 2))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) re))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/16 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (pow.f64 re 3)))))))
(+.f64 (*.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (sqrt.f64 2) (*.f64 -1/8 (pow.f64 re 2))))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 1/16 (*.f64 (sqrt.f64 2) (pow.f64 re 3))))))
(+.f64 (*.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (sqrt.f64 2) (*.f64 -1/8 (pow.f64 re 2)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 1/16 (*.f64 (sqrt.f64 2) (pow.f64 re 3)))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 re)) im))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 (*.f64 (sqrt.f64 2) im) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))))))
(+.f64 (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))))) (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(+.f64 (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 re)) im)))) (*.f64 -1/8 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (sqrt.f64 2) (*.f64 -1/8 (pow.f64 im 2))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 re)) im))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/16 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (pow.f64 im 3)))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (sqrt.f64 2) (*.f64 -1/8 (pow.f64 im 2)))) (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))))
(+.f64 (sqrt.f64 (*.f64 2 (+.f64 re im))) 0)
(+.f64 (sqrt.f64 (*.f64 2 (+.f64 im re))) 0)
(+.f64 0 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(+.f64 (sqrt.f64 (*.f64 2 (+.f64 im re))) 0)
(*.f64 (sqrt.f64 (*.f64 2 (+.f64 re im))) 1)
(*.f64 1 (sqrt.f64 (*.f64 2 (+.f64 im re))))
(*.f64 1 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1 (sqrt.f64 (*.f64 2 (+.f64 im re))))

localize9.0ms (0.2%)

Compiler

Compiled 27 to 15 computations (44.4% saved)

localize15.0ms (0.3%)

Compiler

Compiled 40 to 29 computations (27.5% saved)

localize14.0ms (0.3%)

Compiler

Compiled 39 to 29 computations (25.6% saved)

localize22.0ms (0.5%)

Local error

Found 2 expressions with local error:

NewErrorProgram
6.2b
(/.f64 (pow.f64 im 2) re)
15.8b
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2)))
Compiler

Compiled 53 to 40 computations (24.5% saved)

series5.0ms (0.1%)

Counts
2 → 12
Calls

12 calls:

TimeVariablePointExpression
1.0ms
im
@0
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2)))
1.0ms
re
@0
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2)))
0.0ms
im
@inf
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2)))
0.0ms
re
@inf
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2)))
0.0ms
re
@-inf
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2)))

rewrite6.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
36×bool.json-1
34×rational.json-simplify-2
26×rational.json-1
26×rational.json-2
26×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01236
15736
29536
310936
411136
Stop Event
saturated
Counts
2 → 8
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2)))
(/.f64 (pow.f64 im 2) re)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)) (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (pow.f64 im 2) re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (pow.f64 im 2) re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 im 2) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (pow.f64 im 2) re))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 (pow.f64 im 2) re) (/.f64 (pow.f64 im 2) re))))))

simplify11.0ms (0.2%)

Algorithm
egg-herbie
Rules
60×rational.json-simplify-2
32×rational.json-simplify-31
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
027540
133540
241540
359540
475540
579540
Stop Event
saturated
Counts
20 → 16
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(+.f64 (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)) 0)
(+.f64 0 (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)))
(*.f64 (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)) 1)
(*.f64 1 (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)))
(+.f64 (/.f64 (pow.f64 im 2) re) 0)
(+.f64 0 (/.f64 (pow.f64 im 2) re))
(*.f64 (/.f64 (pow.f64 im 2) re) 1)
(*.f64 1 (/.f64 (pow.f64 im 2) re))
Outputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) im)))
(*.f64 -1 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) im)))
(*.f64 -1 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) im)))
(*.f64 -1 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) im)))
(*.f64 -1 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(+.f64 (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)) 0)
(+.f64 (sqrt.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re))) 0)
(+.f64 0 (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)))
(+.f64 (sqrt.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re))) 0)
(*.f64 (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)) 1)
(*.f64 1 (sqrt.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re))))
(*.f64 1 (sqrt.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1)))
(*.f64 1 (sqrt.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re))))
(+.f64 (/.f64 (pow.f64 im 2) re) 0)
(+.f64 0 (/.f64 (pow.f64 im 2) re))
(+.f64 (/.f64 (pow.f64 im 2) re) 0)
(*.f64 (/.f64 (pow.f64 im 2) re) 1)
(*.f64 1 (/.f64 (pow.f64 im 2) re))
(*.f64 1 (/.f64 (pow.f64 im 2) re))

eval20.0ms (0.5%)

Compiler

Compiled 1097 to 907 computations (17.3% saved)

prune9.0ms (0.2%)

Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New46147
Fresh011
Picked011
Done055
Total46854
Error
6.1b
Counts
54 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
45.4b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
56.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))
60.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 re -1) re))))
44.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
40.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
47.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
43.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
54.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2))))
Compiler

Compiled 108 to 88 computations (18.5% saved)

localize46.0ms (1.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
6.2b
(/.f64 (pow.f64 im 2) re)
16.5b
(sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))))
16.7b
(+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))
17.1b
(/.f64 (pow.f64 im 4) (pow.f64 re 3))
Compiler

Compiled 125 to 96 computations (23.2% saved)

series13.0ms (0.3%)

Counts
3 → 36
Calls

18 calls:

TimeVariablePointExpression
5.0ms
re
@inf
(sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))))
1.0ms
im
@0
(sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))))
1.0ms
im
@0
(/.f64 (pow.f64 im 4) (pow.f64 re 3))
1.0ms
im
@inf
(sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))))
1.0ms
re
@0
(/.f64 (pow.f64 im 4) (pow.f64 re 3))

rewrite7.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
48×bool.json-1
40×rational.json-simplify-2
36×rational.json-simplify-1
34×rational.json-1
34×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020127
188127
2130127
3137127
Stop Event
saturated
Counts
3 → 10
Calls
Call 1
Inputs
(/.f64 (pow.f64 im 4) (pow.f64 re 3))
(+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))
(sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))) (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))))))

simplify39.0ms (0.9%)

Algorithm
egg-herbie
Rules
198×rational.json-simplify-2
120×rational.json-simplify-1
92×rational.json-simplify-31
72×rational.json-simplify-33
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01072978
11632978
22342978
33162978
43742978
53842978
Stop Event
saturated
Counts
46 → 59
Calls
Call 1
Inputs
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))) (*.f64 1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))
(+.f64 (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9))))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))) (*.f64 1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))))))
(+.f64 (*.f64 1/8192 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 7)) (pow.f64 (sqrt.f64 -1/2) 5)) (sqrt.f64 (/.f64 1 (pow.f64 re 13))))) (+.f64 (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9))))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))) (*.f64 1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5))))))
(+.f64 (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5))))))
(+.f64 (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))))))
(+.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 0)
(+.f64 0 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))
(*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1)
(*.f64 1 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))
(*.f64 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) 1)
(*.f64 1 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))
(+.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))) 0)
(+.f64 0 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))
(*.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))) 1)
(*.f64 1 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))
Outputs
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (sqrt.f64 2))))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -1/2)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))) (*.f64 1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))
(+.f64 (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (sqrt.f64 2)))) (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))
(+.f64 (*.f64 (sqrt.f64 -1/2) (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re))))) (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))
(+.f64 (*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -1/2))) (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))
(+.f64 (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9))))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))) (*.f64 1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))))))
(+.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5)))))) (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9))))))
(+.f64 (+.f64 (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9))))) (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5)))))) (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (sqrt.f64 2)))))
(+.f64 (*.f64 (sqrt.f64 -1/2) (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re))))) (+.f64 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9)))))))
(+.f64 (*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -1/2))) (+.f64 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9)))))))
(+.f64 (*.f64 1/8192 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 7)) (pow.f64 (sqrt.f64 -1/2) 5)) (sqrt.f64 (/.f64 1 (pow.f64 re 13))))) (+.f64 (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9))))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))) (*.f64 1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))))
(+.f64 (+.f64 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 7)) (pow.f64 (sqrt.f64 -1/2) 5)) (*.f64 1/8192 (sqrt.f64 (/.f64 1 (pow.f64 re 13))))) (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9)))))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5)))))))
(+.f64 (+.f64 (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (sqrt.f64 2)))) (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5)))))) (+.f64 (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9))))) (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 7)) (pow.f64 (sqrt.f64 -1/2) 5)) (*.f64 1/8192 (sqrt.f64 (/.f64 1 (pow.f64 re 13)))))))
(+.f64 (*.f64 (sqrt.f64 -1/2) (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re))))) (+.f64 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9))))) (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 7)) (pow.f64 (sqrt.f64 -1/2) 5)) (*.f64 1/8192 (sqrt.f64 (/.f64 1 (pow.f64 re 13))))))))
(+.f64 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -1/2))) (+.f64 (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9))))) (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 7)) (pow.f64 (sqrt.f64 -1/2) 5)) (*.f64 1/8192 (sqrt.f64 (/.f64 1 (pow.f64 re 13))))))))
(+.f64 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 -1/2)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 (sqrt.f64 -1/2) (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re))))) (+.f64 (*.f64 -1/512 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 5)) (pow.f64 (sqrt.f64 -1/2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 9))))) (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 7)) (pow.f64 (sqrt.f64 -1/2) 5)) (*.f64 1/8192 (sqrt.f64 (/.f64 1 (pow.f64 re 13))))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (sqrt.f64 1/8))) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))
(*.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (pow.f64 im 2) (sqrt.f64 2))))
(*.f64 (sqrt.f64 1/8) (*.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(*.f64 (pow.f64 im 2) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (sqrt.f64 1/8)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (sqrt.f64 1/8))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))))
(+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (pow.f64 im 2) (sqrt.f64 2)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))))
(+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (sqrt.f64 1/8))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5))))))
(+.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (sqrt.f64 1/8))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re)))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))))
(+.f64 (+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (pow.f64 im 2) (sqrt.f64 2)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re)))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))))
(+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5))))))
(+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (+.f64 (*.f64 (pow.f64 im 2) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (sqrt.f64 1/8))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5))))))
(+.f64 (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))))))
(+.f64 (+.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (sqrt.f64 1/8))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re)))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5))))) (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9)))))
(+.f64 (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5))))) (+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (pow.f64 im 2) (sqrt.f64 2)))) (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9))))))
(+.f64 (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9)))))))
(+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (+.f64 (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))) (+.f64 (*.f64 (pow.f64 im 2) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (sqrt.f64 1/8))) (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9)))))))
(+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (+.f64 (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))) (+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9)))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (sqrt.f64 1/8))) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))
(*.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (pow.f64 im 2) (sqrt.f64 2))))
(*.f64 (sqrt.f64 1/8) (*.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(*.f64 (pow.f64 im 2) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (sqrt.f64 1/8)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (sqrt.f64 1/8))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))))
(+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (pow.f64 im 2) (sqrt.f64 2)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))))
(+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (sqrt.f64 1/8))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5))))))
(+.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (sqrt.f64 1/8))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re)))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))))
(+.f64 (+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (pow.f64 im 2) (sqrt.f64 2)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re)))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))))
(+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5))))))
(+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (+.f64 (*.f64 (pow.f64 im 2) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (sqrt.f64 1/8))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5))))))
(+.f64 (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/8) (pow.f64 im 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))))))
(+.f64 (+.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (sqrt.f64 1/8))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re)))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5))))) (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9)))))
(+.f64 (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5))))) (+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (pow.f64 im 2) (sqrt.f64 2)))) (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9))))))
(+.f64 (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9)))))))
(+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (+.f64 (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))) (+.f64 (*.f64 (pow.f64 im 2) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (sqrt.f64 1/8))) (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9)))))))
(+.f64 (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/8)) (sqrt.f64 re))) (+.f64 (*.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 1/8) 3))) (sqrt.f64 (pow.f64 re 5)))) (+.f64 (*.f64 (sqrt.f64 1/8) (*.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (*.f64 -1/128 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 1/8) 5))) (sqrt.f64 (pow.f64 re 9)))))))
(+.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 0)
(+.f64 0 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))
(+.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 0)
(*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1)
(*.f64 1 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))
(*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1)
(*.f64 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) 1)
(*.f64 1 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(*.f64 1 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))
(*.f64 1 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))) 0)
(+.f64 0 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
(+.f64 0 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))
(+.f64 0 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
(*.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))) 1)
(*.f64 1 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
(*.f64 1 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))
(*.f64 1 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
Compiler

Compiled 21 to 15 computations (28.6% saved)

series2.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.0ms
im
@0
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
0.0ms
im
@-inf
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
0.0ms
im
@inf
(*.f64 (sqrt.f64 2) (sqrt.f64 im))

rewrite5.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
24×bool.json-1
20×rational.json-simplify-2
18×rational.json-1
18×rational.json-2
18×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
13715
26315
36715
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))))

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01142
11242
Stop Event
saturated
Counts
2 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) 0)
(+.f64 0 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
Outputs
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) 0)
(+.f64 0 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) 0)

eval203.0ms (4.7%)

Compiler

Compiled 2330 to 2032 computations (12.8% saved)

prune13.0ms (0.3%)

Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New65065
Fresh000
Picked011
Done077
Total65873
Error
6.1b
Counts
73 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
45.4b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
56.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))
60.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 re -1) re))))
44.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
40.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
47.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
43.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
54.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2))))
Compiler

Compiled 108 to 88 computations (18.5% saved)

regimes226.0ms (5.2%)

Counts
8 → 9
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 re -1) re))))
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Calls

7 calls:

96.0ms
(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
42.0ms
im
34.0ms
re
15.0ms
(*.f64 im im)
15.0ms
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
Results
ErrorSegmentsBranch
25.2b7re
18.9b9im
25.5b3(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
25.5b3(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
25.6b3(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
25.6b3(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
27.3b5(*.f64 im im)
Compiler

Compiled 163 to 119 computations (27% saved)

bsearch180.0ms (4.1%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
2.9504234503807147e+105
1.1107312503969242e+122
7.0ms
0.18722549612844513
0.24360567087052257
22.0ms
1.7617879061895282e-60
2.7634780834322707e-58
23.0ms
8.44819938833964e-81
2.829272655690707e-77
30.0ms
3.509039957599945e-208
3.1231504087300827e-202
34.0ms
-4.7722725517755445e-147
-1.8557832195237242e-163
20.0ms
-1.1662021405051466e+52
-1.4506019583455933e+49
20.0ms
-1.9415540863029944e+64
-2.3699073667649256e+62
Results
94.0ms788×body256valid
31.0ms86×body2048valid
21.0ms47×body4096valid
16.0ms56×body1024valid
3.0ms15×body512valid
Compiler

Compiled 1946 to 1518 computations (22% saved)

regimes331.0ms (7.6%)

Counts
7 → 9
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 re -1) re))))
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Calls

7 calls:

138.0ms
im
118.0ms
(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
32.0ms
re
12.0ms
(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
10.0ms
(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
Results
ErrorSegmentsBranch
25.2b7re
19.0b9im
25.5b3(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
25.5b3(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
25.6b3(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
25.6b3(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
28.3b3(*.f64 im im)
Compiler

Compiled 141 to 101 computations (28.4% saved)

bsearch174.0ms (4%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
2.9504234503807147e+105
1.1107312503969242e+122
8.0ms
0.18722549612844513
0.24360567087052257
21.0ms
1.7617879061895282e-60
2.7634780834322707e-58
26.0ms
8.44819938833964e-81
2.829272655690707e-77
30.0ms
3.509039957599945e-208
3.1231504087300827e-202
26.0ms
-6.34722731856428e-117
-4.220395234414973e-121
20.0ms
-1.1662021405051466e+52
-1.4506019583455933e+49
20.0ms
-1.9415540863029944e+64
-2.3699073667649256e+62
Results
95.0ms787×body256valid
23.0ms65×body2048valid
21.0ms46×body4096valid
15.0ms44×body1024valid
4.0ms18×body512valid
Compiler

Compiled 1738 to 1354 computations (22.1% saved)

regimes65.0ms (1.5%)

Counts
6 → 8
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 re -1) re))))
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Calls

2 calls:

35.0ms
im
25.0ms
re
Results
ErrorSegmentsBranch
28.6b5re
20.5b8im
Compiler

Compiled 63 to 50 computations (20.6% saved)

bsearch164.0ms (3.8%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
1.8466697338960404e-39
9.526305360688859e-37
22.0ms
1.7617879061895282e-60
2.7634780834322707e-58
25.0ms
8.44819938833964e-81
2.829272655690707e-77
29.0ms
4.413482784947031e-199
3.662120945324378e-193
27.0ms
-3.681996862624609e-110
-6.34722731856428e-117
22.0ms
-1.1662021405051466e+52
-1.4506019583455933e+49
17.0ms
-1.9415540863029944e+64
-2.3699073667649256e+62
Results
82.0ms714×body256valid
29.0ms71×body2048valid
22.0ms46×body4096valid
14.0ms41×body1024valid
5.0ms24×body512valid
Compiler

Compiled 1347 to 1132 computations (16% saved)

regimes50.0ms (1.1%)

Counts
5 → 6
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 re -1) re))))
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Calls

2 calls:

25.0ms
im
23.0ms
re
Results
ErrorSegmentsBranch
32.5b5re
21.6b6im
Compiler

Compiled 51 to 40 computations (21.6% saved)

bsearch128.0ms (3%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
1.8466697338960404e-39
9.526305360688859e-37
22.0ms
1.7617879061895282e-60
2.7634780834322707e-58
24.0ms
8.44819938833964e-81
2.829272655690707e-77
31.0ms
4.413482784947031e-199
3.662120945324378e-193
29.0ms
-3.681996862624609e-110
-6.34722731856428e-117
Results
55.0ms488×body256valid
28.0ms54×body4096valid
26.0ms70×body2048valid
8.0ms28×body1024valid
3.0ms16×body512valid
Compiler

Compiled 927 to 772 computations (16.7% saved)

regimes45.0ms (1%)

Counts
4 → 3
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 re -1) re))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Calls

2 calls:

29.0ms
re
14.0ms
im
Results
ErrorSegmentsBranch
31.7b7re
22.6b3im
Compiler

Compiled 44 to 34 computations (22.7% saved)

bsearch60.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
32.0ms
4.413482784947031e-199
3.662120945324378e-193
28.0ms
-3.681996862624609e-110
-6.34722731856428e-117
Results
23.0ms200×body256valid
14.0ms31×body4096valid
9.0ms25×body2048valid
5.0ms19×body1024valid
3.0ms13×body512valid
Compiler

Compiled 436 to 358 computations (17.9% saved)

regimes18.0ms (0.4%)

Accuracy

Total -25.2b remaining (-71.8%)

Threshold costs -25.2b (-71.8%)

Counts
2 → 2
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Calls

2 calls:

8.0ms
re
8.0ms
im
Results
ErrorSegmentsBranch
36.1b2re
35.0b2im
Compiler

Compiled 24 to 18 computations (25% saved)

bsearch33.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
33.0ms
4.413482784947031e-199
3.662120945324378e-193
Results
11.0ms23×body4096valid
10.0ms87×body256valid
6.0ms17×body2048valid
2.0msbody1024valid
2.0msbody512valid
Compiler

Compiled 220 to 178 computations (19.1% saved)

simplify14.0ms (0.3%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01341383
Stop Event
done
saturated
Calls
Call 1
Inputs
(if (<=.f64 im -239999999999999999270894012945443576537562558239179508602109952) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re)))) (if (<=.f64 im -11499999999999999922040909755158721729309647082356736) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))))) (if (<=.f64 im -1038787686187039/247330401473104534060502521019647190035131349101211839914063056092897225106531867170316401061243044989597671426016139339351365034306751209967546155101893167916606772148699136) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) (if (<=.f64 im 1345819152196885/11031304526203974597457456414861827591216226218170224705794538792432397774848431640257320003887617175667569787102671861633294128382337464639166223001902133228245297232354359845986844033174623155170927185464197384241152) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 3389627864620585/130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432064) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) (if (<=.f64 im 2487720667207965/113078212145816597093331040047546785012958969400039613319782796882727665664) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 7926335344172073/36028797018963968) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))) (if (<=.f64 im 50000000000000000777970806473342151213410069846053071668488529021541689058237785163249269495752372383810314043392) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))))))
(if (<=.f64 im -239999999999999999270894012945443576537562558239179508602109952) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re)))) (if (<=.f64 im -11499999999999999922040909755158721729309647082356736) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2)))) (if (<=.f64 im -5116944619041073/11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834496) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) (if (<=.f64 im 106865762597601/344728266443874206170545512964432112225507069317819522056079337263512430464013488758041250121488036739611555846958495676040441511948045769973944468809441663382665538511073745187088876036706973599091474545756168257536) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 3650368469591399/130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432064) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) (if (<=.f64 im 5608679322432503/904625697166532776746648320380374280103671755200316906558262375061821325312) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 3422735716801577/18014398509481984) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))) (if (<=.f64 im 2800000000000000058684642172207338889213699305215970890756464731540218947836242400647554222228219234814300666013300031488) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))))))
(if (<=.f64 im -239999999999999999270894012945443576537562558239179508602109952) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re)))) (if (<=.f64 im -11499999999999999922040909755158721729309647082356736) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2)))) (if (<=.f64 im -5415370496329717/43322963970637732180912721627235682866194329302747133987038743447103457934462900359999600095377180907771737671271930809827721216) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re)))) (if (<=.f64 im 6943379390043853/21040543606193494028963959531520514662201359211292695437993123612274928617188323288454666145110353804907931875424712870852077729000735215452511259082607523399820894684513778392766655031537290869085173006943125504) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 604918203532289/2085924839766513752338888384931203236916703635113918720651407820138886450957656787131798913024) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))) (if (<=.f64 im 1764020109474739/904625697166532776746648320380374280103671755200316906558262375061821325312) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 5670233501203789/3064991081731777716716694054300618367237478244367204352) (*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))))
(if (<=.f64 im -465383402028335/169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889536) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re)))) (if (<=.f64 im 3544427511785525/10273702932711667006330058365000251299903007427389011444332579888806117488861485980690754953667164943802701111047223081470741078613640241920171513223929454785068796232672743355843093277117817807170494632296448) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 3650368469591399/130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432064) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))) (if (<=.f64 im 2352026812632985/452312848583266388373324160190187140051835877600158453279131187530910662656) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 5670233501203789/3064991081731777716716694054300618367237478244367204352) (*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))
(if (<=.f64 im -6099873327065793/1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078912) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re)))) (if (<=.f64 im 1515371182574971/5136851466355833503165029182500125649951503713694505722166289944403058744430742990345377476833582471901350555523611540735370539306820120960085756611964727392534398116336371677921546638558908903585247316148224) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))
(if (<=.f64 im 462316631972025/1284212866588958375791257295625031412487875928423626430541572486100764686107685747586344369208395617975337638880902885183842634826705030240021439152991181848133599529084092919480386659639727225896311829037056) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Outputs
(if (<=.f64 im -239999999999999999270894012945443576537562558239179508602109952) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re)))) (if (<=.f64 im -11499999999999999922040909755158721729309647082356736) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))))) (if (<=.f64 im -1038787686187039/247330401473104534060502521019647190035131349101211839914063056092897225106531867170316401061243044989597671426016139339351365034306751209967546155101893167916606772148699136) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) (if (<=.f64 im 1345819152196885/11031304526203974597457456414861827591216226218170224705794538792432397774848431640257320003887617175667569787102671861633294128382337464639166223001902133228245297232354359845986844033174623155170927185464197384241152) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 3389627864620585/130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432064) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) (if (<=.f64 im 2487720667207965/113078212145816597093331040047546785012958969400039613319782796882727665664) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 7926335344172073/36028797018963968) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))) (if (<=.f64 im 50000000000000000777970806473342151213410069846053071668488529021541689058237785163249269495752372383810314043392) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))))))
(if (<=.f64 im -239999999999999999270894012945443576537562558239179508602109952) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re)))) (if (<=.f64 im -11499999999999999922040909755158721729309647082356736) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2)))) (if (<=.f64 im -5116944619041073/11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834496) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) (if (<=.f64 im 106865762597601/344728266443874206170545512964432112225507069317819522056079337263512430464013488758041250121488036739611555846958495676040441511948045769973944468809441663382665538511073745187088876036706973599091474545756168257536) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 3650368469591399/130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432064) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) (if (<=.f64 im 5608679322432503/904625697166532776746648320380374280103671755200316906558262375061821325312) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 3422735716801577/18014398509481984) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))) (if (<=.f64 im 2800000000000000058684642172207338889213699305215970890756464731540218947836242400647554222228219234814300666013300031488) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))))))
(if (<=.f64 im -239999999999999999270894012945443576537562558239179508602109952) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re)))) (if (<=.f64 im -11499999999999999922040909755158721729309647082356736) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 im 2) re) -1/2)))) (if (<=.f64 im -5415370496329717/43322963970637732180912721627235682866194329302747133987038743447103457934462900359999600095377180907771737671271930809827721216) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re)))) (if (<=.f64 im 6943379390043853/21040543606193494028963959531520514662201359211292695437993123612274928617188323288454666145110353804907931875424712870852077729000735215452511259082607523399820894684513778392766655031537290869085173006943125504) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 604918203532289/2085924839766513752338888384931203236916703635113918720651407820138886450957656787131798913024) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))) (if (<=.f64 im 1764020109474739/904625697166532776746648320380374280103671755200316906558262375061821325312) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 5670233501203789/3064991081731777716716694054300618367237478244367204352) (*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))))
(if (<=.f64 im -465383402028335/169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889536) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re)))) (if (<=.f64 im 3544427511785525/10273702932711667006330058365000251299903007427389011444332579888806117488861485980690754953667164943802701111047223081470741078613640241920171513223929454785068796232672743355843093277117817807170494632296448) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 3650368469591399/130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432064) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))) (if (<=.f64 im 2352026812632985/452312848583266388373324160190187140051835877600158453279131187530910662656) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (if (<=.f64 im 5670233501203789/3064991081731777716716694054300618367237478244367204352) (*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))
(if (<=.f64 im -6099873327065793/1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078912) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 im -1) re)))) (if (<=.f64 im 1515371182574971/5136851466355833503165029182500125649951503713694505722166289944403058744430742990345377476833582471901350555523611540735370539306820120960085756611964727392534398116336371677921546638558908903585247316148224) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))
(if (<=.f64 im 462316631972025/1284212866588958375791257295625031412487875928423626430541572486100764686107685747586344369208395617975337638880902885183842634826705030240021439152991181848133599529084092919480386659639727225896311829037056) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Compiler

Compiled 516 to 363 computations (29.7% saved)

soundness27.0ms (0.6%)

Algorithm
egg-herbie
Rules
382×rational.json-simplify-1
382×rational.json-simplify-1
256×rational.json-simplify-33
256×rational.json-simplify-33
42×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01062654
11942654
23012654
34122654
44772654
54822654
01062654
11942654
23012654
34122654
44772654
54822654
Stop Event
saturated
saturated
Compiler

Compiled 112 to 92 computations (17.9% saved)

end528.0ms (12.2%)

Compiler

Compiled 504 to 334 computations (33.7% saved)

Profiling

Loading profile data...