Details

Time bar (total: 959.0ms)

analyze38.0ms (4%)

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
25%25%74.9%0.1%0%0%0%5
33.3%25%50%0.1%25%0%0%6
44.4%25%31.2%0.1%43.7%0%0%7
55.6%31.2%25%0.1%43.7%0%0%8
69.4%39%17.2%0.1%43.7%0%0%9
76.4%42.9%13.3%0.1%43.7%0%0%10
84%47.2%9%0.1%43.7%0%0%11
87.8%49.4%6.8%0.1%43.7%0%0%12
Compiler

Compiled 10 to 6 computations (40% saved)

sample727.0ms (75.8%)

Results
717.0ms8256×body256valid
0.0msbody256infinite
Bogosity

preprocess15.0ms (1.6%)

Algorithm
egg-herbie
Rules
fma-def_binary64
swap-re-im
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0716
1916
022
122
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
Outputs
(+.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 re re (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
(fma.f64 re re (*.f64 im im))
Symmetry

(sort re im)

Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify6.0ms (0.6%)

Algorithm
egg-herbie
Rules
fma-def_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
188
298
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 re re) (*.f64 im im))
Outputs
(+.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 re re (*.f64 im im))

eval0.0ms (0%)

Compiler

Compiled 15 to 6 computations (60% saved)

prune1.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 re re (*.f64 im im))
0.0b
(+.f64 (*.f64 re re) (*.f64 im im))
Compiler

Compiled 17 to 9 computations (47.1% saved)

localize5.0ms (0.6%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 5 computations (70.6% saved)

series16.0ms (1.7%)

Counts
1 → 0
Calls

6 calls:

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

Compiled 895 to 685 computations (23.5% saved)

rewrite45.0ms (4.7%)

Algorithm
batch-egg-rewrite
Rules
650×pow1_binary64
606×add-log-exp_binary64
606×log1p-expm1-u_binary64
606×expm1-log1p-u_binary64
589×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
068
11297
217517
Stop Event
node limit
Counts
1 → 33
Calls
Call 1
Inputs
(+.f64 (*.f64 re re) (*.f64 im im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 re 4) (-.f64 (*.f64 re re) (*.f64 im im))) (/.f64 (pow.f64 im 4) (-.f64 (*.f64 re re) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 re im) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (hypot.f64 re im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 2) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 re im) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (/.f64 1 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (*.f64 re re) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))) (+.f64 (pow.f64 re 6) (pow.f64 im 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6))) (neg.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (*.f64 re re) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 re im) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 re im) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re re (*.f64 im im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 im im (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 re re) (*.f64 im im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 im im) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 re) 2) (*.f64 im im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 im 4)) (pow.f64 (cbrt.f64 im) 2) (*.f64 re re))))))

simplify40.0ms (4.2%)

Algorithm
egg-herbie
Rules
612×log-prod_binary64
486×div-sub_binary64
401×fma-neg_binary64
396×associate-*l*_binary64
364×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
085578
1214515
2749467
34364401
Stop Event
node limit
Counts
33 → 40
Calls
Call 1
Inputs
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1)
(-.f64 (/.f64 (pow.f64 re 4) (-.f64 (*.f64 re re) (*.f64 im im))) (/.f64 (pow.f64 im 4) (-.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(*.f64 1 (pow.f64 (hypot.f64 re im) 2))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 2) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)))
(*.f64 (hypot.f64 re im) (hypot.f64 re im))
(*.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (/.f64 1 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))) (+.f64 (pow.f64 re 6) (pow.f64 im 6))))
(/.f64 1 (/.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(/.f64 (neg.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6))) (neg.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(pow.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3) 1/3)
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 3)
(pow.f64 (hypot.f64 re im) 2)
(sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2))
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 2)))
(exp.f64 (log.f64 (pow.f64 (hypot.f64 re im) 2)))
(fma.f64 re re (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(fma.f64 1 (*.f64 re re) (*.f64 im im))
(fma.f64 1 (*.f64 im im) (*.f64 re re))
(fma.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 re) 2) (*.f64 im im))
(fma.f64 (cbrt.f64 (pow.f64 im 4)) (pow.f64 (cbrt.f64 im) 2) (*.f64 re re))
Outputs
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(-.f64 (/.f64 (pow.f64 re 4) (-.f64 (*.f64 re re) (*.f64 im im))) (/.f64 (pow.f64 im 4) (-.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (fma.f64 im im (*.f64 re re)) 1)
(*.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(*.f64 1 (pow.f64 (hypot.f64 re im) 2))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 2))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 2) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (hypot.f64 re im) (hypot.f64 re im))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (/.f64 1 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(/.f64 (*.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) 1) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (-.f64 (pow.f64 re 4) (-.f64 (pow.f64 (*.f64 re im) 2) (pow.f64 im 4))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (fma.f64 im im (*.f64 re re)) 1)
(/.f64 1 (/.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))) (+.f64 (pow.f64 re 6) (pow.f64 im 6))))
(/.f64 (*.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) 1) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (-.f64 (pow.f64 re 4) (-.f64 (pow.f64 (*.f64 re im) 2) (pow.f64 im 4))))
(/.f64 1 (/.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (fma.f64 im im (*.f64 re re)) 1)
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (*.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) 1) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (-.f64 (pow.f64 re 4) (-.f64 (pow.f64 (*.f64 re im) 2) (pow.f64 im 4))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (*.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) 1) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (-.f64 (pow.f64 re 4) (-.f64 (pow.f64 (*.f64 re im) 2) (pow.f64 im 4))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (fma.f64 im im (*.f64 re re)) 1)
(/.f64 (neg.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6))) (neg.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(/.f64 (*.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) 1) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (-.f64 (pow.f64 re 4) (-.f64 (pow.f64 (*.f64 re im) 2) (pow.f64 im 4))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (fma.f64 im im (*.f64 re re)) 1)
(/.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (fma.f64 im im (*.f64 re re)) 1)
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3) 1/3)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 3)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (hypot.f64 re im) 2)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(exp.f64 (log.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(fma.f64 re re (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(fma.f64 1 (*.f64 re re) (*.f64 im im))
(fma.f64 re re (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(fma.f64 1 (*.f64 im im) (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(fma.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 re) 2) (*.f64 im im))
(fma.f64 im im (*.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 re) 2)))
(fma.f64 (cbrt.f64 (pow.f64 im 4)) (pow.f64 (cbrt.f64 im) 2) (*.f64 re re))
(fma.f64 re re (*.f64 (cbrt.f64 (pow.f64 im 4)) (pow.f64 (cbrt.f64 im) 2)))

localize5.0ms (0.5%)

Compiler

Compiled 13 to 4 computations (69.2% saved)

eval9.0ms (0.9%)

Compiler

Compiled 494 to 279 computations (43.5% saved)

prune7.0ms (0.7%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New40040
Fresh000
Picked011
Done011
Total40242
Error
0b
Counts
42 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 re re (*.f64 im im))
0.0b
(+.f64 (*.f64 re re) (*.f64 im im))
Compiler

Compiled 17 to 9 computations (47.1% saved)

regimes13.0ms (1.4%)

Accuracy

Total -0.0b remaining (-∞%)

Threshold costs -0.0b (-∞%)

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

5 calls:

3.0ms
im
3.0ms
re
3.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
2.0ms
(*.f64 im im)
2.0ms
(*.f64 re re)
Results
ErrorSegmentsBranch
0b1re
0b1im
0b1(+.f64 (*.f64 re re) (*.f64 im im))
0b1(*.f64 re re)
0b1(*.f64 im im)
Compiler

Compiled 40 to 21 computations (47.5% saved)

simplify2.0ms (0.2%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0718
1818
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 re re (*.f64 im im))
(+.f64 (*.f64 re re) (*.f64 im im))
Outputs
(fma.f64 re re (*.f64 im im))
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
Compiler

Compiled 17 to 9 computations (47.1% saved)

soundness9.0ms (1%)

Algorithm
egg-herbie
Rules
fma-def_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
188
298
Stop Event
saturated
Compiler

Compiled 17 to 9 computations (47.1% saved)

end18.0ms (1.9%)

Remove

(sort re im)

Compiler

Compiled 31 to 14 computations (54.8% saved)

Profiling

Loading profile data...