Details

Time bar (total: 1.5s)

analyze41.0ms (2.7%)

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)

sample911.0ms (60.9%)

Results
901.0ms8256×body256valid
0.0msbody256infinite
Bogosity

preprocess15.0ms (1%)

Algorithm
egg-herbie
Rules
fma-def
swap-re-im
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0830
11130
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)

simplify44.0ms (3%)

Algorithm
egg-herbie
Rules
fma-def
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0715
11015
21115
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

2 alts after pruning (2 fresh and 0 done)

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

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0.4%)

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)

series1.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
re
@0
(+.f64 (*.f64 re re) (*.f64 im im))
0.0ms
im
@0
(+.f64 (*.f64 re re) (*.f64 im im))
0.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))

rewrite56.0ms (3.7%)

Algorithm
batch-egg-rewrite
Rules
1534×add-sqr-sqrt
1514×*-un-lft-identity
1414×add-cube-cbrt
1402×add-cbrt-cube
1392×add-exp-log
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0715
115013
2202013
Stop Event
node limit
Counts
1 → 34
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 (hypot.f64 re im) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.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 (-.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 (+.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 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 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 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))))) (#(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 im 4) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))))) (#(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 (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 pow.f64 (pow.f64 (hypot.f64 re im) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 re im) 2)))) (#(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 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3) 1/3)))) (#(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 exp.f64 (log.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(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 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 im 4)) (pow.f64 (cbrt.f64 im) 2) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 re 4)) (cbrt.f64 (*.f64 re re)) (*.f64 im im))))))

simplify60.0ms (4%)

Algorithm
egg-herbie
Rules
1282×distribute-lft-in
1084×associate-*r*
952×associate-+r+
878×associate-*r/
784×associate-*l*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0921500
12231368
28851278
341911278
Stop Event
node limit
Counts
58 → 47
Calls
Call 1
Inputs
(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 (+.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 (hypot.f64 re im) (hypot.f64 re im))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2)))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2)) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (*.f64 re re) (*.f64 im 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 1 (/.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))))
(/.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 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(/.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 im 4) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.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)))))
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 3)
(pow.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3) 1/3)
(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)))
(exp.f64 (log.f64 (pow.f64 (hypot.f64 re im) 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 re im) 2)) 1))
(log1p.f64 (expm1.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 im 4)) (pow.f64 (cbrt.f64 im) 2) (*.f64 re re))
(fma.f64 (cbrt.f64 (pow.f64 re 4)) (cbrt.f64 (*.f64 re re)) (*.f64 im im))
Outputs
(pow.f64 im 2)
(*.f64 im im)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(pow.f64 re 2)
(*.f64 re re)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(pow.f64 re 2)
(*.f64 re re)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(pow.f64 re 2)
(*.f64 re re)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(pow.f64 im 2)
(*.f64 im im)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(pow.f64 im 2)
(*.f64 im im)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(-.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 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 im (neg.f64 im) (*.f64 re re)))
(*.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 (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 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2)))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2)) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2)))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (pow.f64 (hypot.f64 re 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 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 im (neg.f64 im) (*.f64 re re)))
(*.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 6) (pow.f64 im 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 im re) 2))))
(/.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 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 im (neg.f64 im) (*.f64 re re)))
(/.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 (pow.f64 re 6) (pow.f64 im 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 im (neg.f64 im) (*.f64 re re)))
(/.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 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 im re) 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 6) (pow.f64 im 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 im re) 2))))
(/.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 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 im (neg.f64 im) (*.f64 re re)))
(/.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 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 im (neg.f64 im) (*.f64 re re)))
(/.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 (pow.f64 re 6) (pow.f64 im 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 im re) 2))))
(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 (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 (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 (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)
(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)
(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)
(exp.f64 (*.f64 (log.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)
(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)
(fma.f64 re re (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(fma.f64 im im (*.f64 re re))
(fma.f64 1 (*.f64 re re) (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(fma.f64 1 (*.f64 im im) (*.f64 re re))
(fma.f64 im im (*.f64 re re))
(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)))
(fma.f64 (cbrt.f64 (pow.f64 re 4)) (cbrt.f64 (*.f64 re re)) (*.f64 im im))

eval10.0ms (0.7%)

Compiler

Compiled 551 to 313 computations (43.2% saved)

prune7.0ms (0.5%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New44347
Fresh000
Picked011
Done000
Total44448
Error
0b
Counts
48 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 im im (*.f64 re re))
0.0b
(+.f64 (*.f64 re re) (*.f64 im im))
26.9b
(*.f64 re re)
30.4b
(*.f64 im im)
Compiler

Compiled 27 to 15 computations (44.4% saved)

localize3.0ms (0.2%)

Compiler

Compiled 6 to 3 computations (50% saved)

localize3.0ms (0.2%)

Compiler

Compiled 6 to 3 computations (50% saved)

localize5.0ms (0.3%)

Compiler

Compiled 13 to 4 computations (69.2% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0.1%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done033
Total044
Error
0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 im im (*.f64 re re))
0.0b
(+.f64 (*.f64 re re) (*.f64 im im))
26.9b
(*.f64 re re)
30.4b
(*.f64 im im)
Compiler

Compiled 27 to 15 computations (44.4% saved)

regimes60.0ms (4%)

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

5 calls:

45.0ms
(*.f64 im im)
4.0ms
re
3.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
3.0ms
im
3.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 46 to 21 computations (54.3% saved)

regimes17.0ms (1.2%)

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

5 calls:

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

Compiled 40 to 20 computations (50% saved)

regimes87.0ms (5.8%)

Accuracy

Total -52.0b remaining (-1159%)

Threshold costs -52.0b (-1159%)

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

4 calls:

65.0ms
re
9.0ms
(*.f64 im im)
6.0ms
(*.f64 re re)
6.0ms
im
Results
ErrorSegmentsBranch
7.3b4re
4.5b2im
13.3b2(*.f64 re re)
5.7b4(*.f64 im im)
Compiler

Compiled 24 to 14 computations (41.7% saved)

bsearch37.0ms (2.5%)

Algorithm
binary-search
Steps
TimeLeftRight
37.0ms
6.857285666807401e-90
2.89866015792514e-84
Results
36.0ms144×body256valid
Compiler

Compiled 122 to 81 computations (33.6% saved)

simplify5.0ms (0.3%)

Algorithm
egg-herbie
Rules
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01564
11664
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 im im (*.f64 re re))
(+.f64 (*.f64 re re) (*.f64 im im))
(if (<=.f64 im 5249401739479229/17498005798264095394980017816940970922825355447145699491406164851279623993595007385788105416184430592) (*.f64 re re) (*.f64 im im))
(*.f64 im im)
Outputs
(fma.f64 im im (*.f64 re re))
(+.f64 (*.f64 re re) (*.f64 im im))
(if (<=.f64 im 5249401739479229/17498005798264095394980017816940970922825355447145699491406164851279623993595007385788105416184430592) (*.f64 re re) (*.f64 im im))
(*.f64 im im)
Compiler

Compiled 34 to 19 computations (44.1% saved)

soundness89.0ms (6%)

Algorithm
egg-herbie
Rules
1282×distribute-lft-in
1084×associate-*r*
952×associate-+r+
878×associate-*r/
784×associate-*l*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0921500
12231368
28851278
341911278
Stop Event
node limit
Compiler

Compiled 36 to 19 computations (47.2% saved)

end37.0ms (2.5%)

Compiler

Compiled 44 to 17 computations (61.4% saved)

Profiling

Loading profile data...