math.log/2 on complex, imaginary part

Time bar (total: 2.1s)

analyze163.0ms (7.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%49.9%0.1%0%49.9%0%4
0%0%49.9%0.1%0%49.9%0%5
0%0%49.9%0.1%0%49.9%0%6
9.4%4.7%45.2%0.1%0%49.9%0%7
17.2%8.6%41.3%0.1%0%49.9%0%8
27.3%13.7%36.3%0.1%0%49.9%0%9
41%20.5%29.4%0.1%0%49.9%0%10
48.6%24.3%25.6%0.1%0%49.9%0%11
57.1%28.5%21.4%0.1%0%49.9%0%12
Compiler

Compiled 32 to 21 computations (34.4% saved)

sample1.7s (83.7%)

Results
1.7s8256×body256valid
Bogosity

preprocess177.0ms (8.5%)

Algorithm
egg-herbie
Rules
404×associate-*r/
378×associate--l+
346×associate-*r*
314×fma-neg
308×associate-+l-
Problems
144×No Errors
110×(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 (log.f64 base) (log.f64 base))
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
086646
1225624
2466376
3952322
41804322
54954322
Stop Event
node limit
Calls
Call 1
Inputs
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
(/.f64 (-.f64 (*.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
(/.f64 (-.f64 (*.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 (neg.f64 im) (neg.f64 im))))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 (neg.f64 base))) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))) (*.f64 0 0)))
(neg.f64 (/.f64 (-.f64 (*.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0))))
(neg.f64 (/.f64 (-.f64 (*.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 (neg.f64 im) (neg.f64 im))))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0))))
(neg.f64 (/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 (neg.f64 base))) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))) (*.f64 0 0))))
(/.f64 (-.f64 (*.f64 (atan2.f64 re im) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
(/.f64 (-.f64 (*.f64 (atan2.f64 im base) (log.f64 re)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 base base) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 re) (log.f64 re)) (*.f64 0 0)))
(/.f64 (-.f64 (*.f64 (atan2.f64 base re) (log.f64 im)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 base base)))) 0)) (+.f64 (*.f64 (log.f64 im) (log.f64 im)) (*.f64 0 0)))
Outputs
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
(/.f64 (fma.f64 (atan2.f64 im re) (log.f64 base) 0) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (/.f64 (log.f64 base) (log.f64 base)) (/.f64 (atan2.f64 im re) (log.f64 base)))
(/.f64 (atan2.f64 im re) (/.f64 (log.f64 base) 1))
(/.f64 (atan2.f64 im re) (log.f64 base))
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
(/.f64 (fma.f64 (atan2.f64 im re) (log.f64 base) 0) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (/.f64 (log.f64 base) (log.f64 base)) (/.f64 (atan2.f64 im re) (log.f64 base)))
(/.f64 (atan2.f64 im re) (/.f64 (log.f64 base) 1))
(/.f64 (atan2.f64 im re) (log.f64 base))
(/.f64 (-.f64 (*.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
(/.f64 (fma.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base) 0) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (log.f64 base) (/.f64 (*.f64 (log.f64 base) (log.f64 base)) (atan2.f64 im (neg.f64 re))))
(*.f64 1 (/.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base)))
(/.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base))
(/.f64 (-.f64 (*.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 (neg.f64 im) (neg.f64 im))))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
(/.f64 (fma.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base) 0) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (/.f64 (log.f64 base) (log.f64 base)) (/.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base)))
(*.f64 1 (/.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base)))
(/.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base))
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 (neg.f64 base))) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))) (*.f64 0 0)))
(/.f64 (fma.f64 (atan2.f64 im re) (log.f64 (neg.f64 base)) 0) (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))))
(*.f64 (/.f64 (atan2.f64 im re) (log.f64 (neg.f64 base))) (/.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))))
(*.f64 1 (/.f64 (atan2.f64 im re) (log.f64 (neg.f64 base))))
(/.f64 (atan2.f64 im re) (log.f64 (neg.f64 base)))
(neg.f64 (/.f64 (-.f64 (*.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0))))
(/.f64 (neg.f64 (fma.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base) 0)) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im (neg.f64 re)))) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 -1 (/.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base)))
(/.f64 (neg.f64 (atan2.f64 im (neg.f64 re))) (log.f64 base))
(neg.f64 (/.f64 (-.f64 (*.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 (neg.f64 im) (neg.f64 im))))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0))))
(/.f64 (neg.f64 (fma.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base) 0)) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (neg.f64 (*.f64 (log.f64 base) (atan2.f64 (neg.f64 im) re))) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 -1 (/.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base)))
(/.f64 (neg.f64 (atan2.f64 (neg.f64 im) re)) (log.f64 base))
(neg.f64 (/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 (neg.f64 base))) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))) (*.f64 0 0))))
(/.f64 (neg.f64 (fma.f64 (atan2.f64 im re) (log.f64 (neg.f64 base)) 0)) (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))))
(/.f64 (neg.f64 (*.f64 (atan2.f64 im re) (log.f64 (neg.f64 base)))) (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))))
(*.f64 -1 (/.f64 (atan2.f64 im re) (log.f64 (neg.f64 base))))
(neg.f64 (/.f64 (atan2.f64 im re) (log.f64 (neg.f64 base))))
(/.f64 (atan2.f64 im re) (neg.f64 (log.f64 (neg.f64 base))))
(/.f64 (-.f64 (*.f64 (atan2.f64 re im) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
(/.f64 (fma.f64 (atan2.f64 re im) (log.f64 base) 0) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (/.f64 (log.f64 base) (log.f64 base)) (/.f64 (atan2.f64 re im) (log.f64 base)))
(/.f64 (atan2.f64 re im) (/.f64 (log.f64 base) 1))
(/.f64 (atan2.f64 re im) (log.f64 base))
(/.f64 (-.f64 (*.f64 (atan2.f64 im base) (log.f64 re)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 base base) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 re) (log.f64 re)) (*.f64 0 0)))
(/.f64 (fma.f64 (atan2.f64 im base) (log.f64 re) 0) (*.f64 (log.f64 re) (log.f64 re)))
(*.f64 (/.f64 (atan2.f64 im base) (log.f64 re)) (/.f64 (log.f64 re) (log.f64 re)))
(/.f64 (*.f64 (atan2.f64 im base) 1) (log.f64 re))
(/.f64 (atan2.f64 im base) (log.f64 re))
(/.f64 (-.f64 (*.f64 (atan2.f64 base re) (log.f64 im)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 base base)))) 0)) (+.f64 (*.f64 (log.f64 im) (log.f64 im)) (*.f64 0 0)))
(/.f64 (fma.f64 (atan2.f64 base re) (log.f64 im) 0) (*.f64 (log.f64 im) (log.f64 im)))
(*.f64 (/.f64 (atan2.f64 base re) (log.f64 im)) (/.f64 (log.f64 im) (log.f64 im)))
(/.f64 (/.f64 (atan2.f64 base re) 1) (log.f64 im))
(/.f64 (atan2.f64 base re) (log.f64 im))
Compiler

Compiled 123 to 34 computations (72.4% saved)

end0.0ms (0%)

Profiling

Loading profile data...