math.log/2 on complex, imaginary part

Time bar (total: 2.9s)

analyze230.0ms (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)

Precisions
Click to see histograms. Total time spent on operations: 139.0ms
Operation ival-mult, time spent: 48.0ms, 35.0% of total-time
Operation ival-log, time spent: 32.0ms, 23.0% of total-time
Operation ival-atan2, time spent: 14.0ms, 10.0% of total-time
Operation ival-sqrt, time spent: 14.0ms, 10.0% of total-time
Operation ival-add, time spent: 12.0ms, 9.0% of total-time
Operation ival-div, time spent: 8.0ms, 6.0% of total-time
Operation ival-sub, time spent: 7.0ms, 5.0% of total-time
Operation const, time spent: 3.0ms, 2.0% of total-time

sample2.4s (82.9%)

Results
2.2s8255×256valid
0.0ms256valid
Precisions
Click to see histograms. Total time spent on operations: 1.1s
Operation ival-mult, time spent: 409.0ms, 36.0% of total-time
Operation ival-log, time spent: 306.0ms, 27.0% of total-time
Operation ival-atan2, time spent: 113.0ms, 10.0% of total-time
Operation ival-add, time spent: 92.0ms, 8.0% of total-time
Operation ival-div, time spent: 72.0ms, 6.0% of total-time
Operation ival-sqrt, time spent: 67.0ms, 6.0% of total-time
Operation ival-sub, time spent: 49.0ms, 4.0% of total-time
Operation const, time spent: 23.0ms, 2.0% of total-time
Bogosity

preprocess264.0ms (9.1%)

Algorithm
egg-herbie
Rules
1830×fma-neg
920×div-sub
806×neg-mul-1
646×associate-/r*
634×distribute-rgt-neg-in
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
086646
1262624
2543376
31056322
41841322
53535322
65223322
76553322
87761322
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)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.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)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.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))))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 (neg.f64 base))) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(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)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64)))))
(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))))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64)))))
(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)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64)))))
(/.f64 (-.f64 (*.f64 (atan2.f64 re im) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (-.f64 (*.f64 (atan2.f64 im base) (log.f64 re)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 base base) (*.f64 im im)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 re) (log.f64 re)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (-.f64 (*.f64 (atan2.f64 base re) (log.f64 im)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 base base)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 im) (log.f64 im)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
Outputs
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (fma.f64 (atan2.f64 im re) (log.f64 base) #s(literal 0 binary64)) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (atan2.f64 im re) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(/.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)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (fma.f64 (atan2.f64 im re) (log.f64 base) #s(literal 0 binary64)) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (atan2.f64 im re) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(/.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)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (fma.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base) #s(literal 0 binary64)) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im (neg.f64 re)) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (atan2.f64 im (neg.f64 re)) (/.f64 #s(literal 1 binary64) (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))))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (fma.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base) #s(literal 0 binary64)) (*.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 (atan2.f64 (neg.f64 im) re) (/.f64 #s(literal 1 binary64) (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)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (fma.f64 (atan2.f64 im re) (log.f64 (neg.f64 base)) #s(literal 0 binary64)) (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))))
(*.f64 (log.f64 (neg.f64 base)) (/.f64 (atan2.f64 im re) (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base)))))
(*.f64 (/.f64 (atan2.f64 im re) (log.f64 (neg.f64 base))) #s(literal 1 binary64))
(/.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)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64)))))
(/.f64 (fma.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base) #s(literal 0 binary64)) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im (neg.f64 re))) (*.f64 (log.f64 base) (neg.f64 (log.f64 base))))
(*.f64 #s(literal -1 binary64) (/.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base)))
(neg.f64 (/.f64 (atan2.f64 im (neg.f64 re)) (log.f64 base)))
(/.f64 (atan2.f64 im (neg.f64 re)) (neg.f64 (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))))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64)))))
(/.f64 (neg.f64 (fma.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base) #s(literal 0 binary64))) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 (neg.f64 im) re)) (*.f64 (log.f64 base) (neg.f64 (log.f64 base))))
(*.f64 #s(literal -1 binary64) (/.f64 (atan2.f64 (neg.f64 im) re) (log.f64 base)))
(neg.f64 (/.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)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 (neg.f64 base)) (log.f64 (neg.f64 base))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64)))))
(/.f64 (fma.f64 (atan2.f64 im re) (log.f64 (neg.f64 base)) #s(literal 0 binary64)) (neg.f64 (*.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)) (neg.f64 (log.f64 (neg.f64 base)))))
(*.f64 #s(literal -1 binary64) (/.f64 (atan2.f64 im re) (log.f64 (neg.f64 base))))
(/.f64 (atan2.f64 im re) (neg.f64 (log.f64 (neg.f64 base))))
(/.f64 (neg.f64 (atan2.f64 im re)) (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)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (fma.f64 (atan2.f64 re im) (log.f64 base) #s(literal 0 binary64)) (*.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 #s(literal 1 binary64) (log.f64 base)))
(/.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)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 re) (log.f64 re)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (fma.f64 (atan2.f64 im base) (log.f64 re) #s(literal 0 binary64)) (*.f64 (log.f64 re) (log.f64 re)))
(*.f64 (atan2.f64 im base) (/.f64 (log.f64 re) (*.f64 (log.f64 re) (log.f64 re))))
(/.f64 (*.f64 (atan2.f64 im base) #s(literal 1 binary64)) (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)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 im) (log.f64 im)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (fma.f64 (atan2.f64 base re) (log.f64 im) #s(literal 0 binary64)) (*.f64 (log.f64 im) (log.f64 im)))
(*.f64 (log.f64 im) (/.f64 (atan2.f64 base re) (*.f64 (log.f64 im) (log.f64 im))))
(*.f64 #s(literal 1 binary64) (/.f64 (atan2.f64 base re) (log.f64 im)))
(/.f64 (atan2.f64 base re) (log.f64 im))
Compiler

Compiled 135 to 36 computations (73.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 37.0ms
Operation ival-mult, time spent: 12.0ms, 33.0% of total-time
Operation ival-log, time spent: 9.0ms, 25.0% of total-time
Operation ival-add, time spent: 4.0ms, 11.0% of total-time
Operation ival-sub, time spent: 3.0ms, 8.0% of total-time
Operation ival-atan2, time spent: 3.0ms, 8.0% of total-time
Operation const, time spent: 2.0ms, 5.0% of total-time
Operation ival-div, time spent: 2.0ms, 5.0% of total-time
Operation ival-sqrt, time spent: 2.0ms, 5.0% of total-time

end0.0ms (0%)

Profiling

Loading profile data...