math.log/2 on complex, imaginary part

Time bar (total: 3.7min)

analyze411.0ms (0.2%)

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 19 computations (40.6% saved)

sample3.7min (99.5%)

Results
1.9s8256×0valid-rival
1.6s8243×0valid-sollya
65.0ms13×0exit-sollya
Bogosity

preprocess222.0ms (0.1%)

Algorithm
egg-herbie
Rules
915×fma-neg
460×div-sub
403×neg-mul-1
323×associate-/r*
317×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 31 to 18 computations (41.9% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune2.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
46.5%
(/.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))))
Compiler

Compiled 62 to 36 computations (41.9% saved)

simplify8.0ms (0%)

Algorithm
egg-herbie
Rules
10×distribute-lft-neg-in
cancel-sign-sub-inv
sub-neg
distribute-rgt-neg-in
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025102
135102
246102
352102
462102
572102
686102
794102
897102
998102
Stop Event
saturated
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))))
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 (-.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 (log.f64 base) (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 (log.f64 base) (log.f64 base)))

soundness1.0ms (0%)

Stop Event
fuel
Compiler

Compiled 27 to 16 computations (40.7% saved)

preprocess365.0ms (0.2%)

Compiler

Compiled 116 to 68 computations (41.4% saved)

end0.0ms (0%)

Profiling

Loading profile data...