math.log/2 on complex, imaginary part

Time bar (total: 2.7s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated; 0ms collecting garbage

analyze171.0ms (6.3%)

Memory
22.9MiB live, 270.6MiB allocated; 40ms collecting garbage
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 30 to 17 computations (43.3% saved)

sample1.4s (49.7%)

Memory
19.4MiB live, 1 272.3MiB allocated; 444ms collecting garbage
Samples
1.0s8 255×0valid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 810.0ms
ival-log: 314.0ms (38.8% of total)
ival-mult!: 179.0ms (22.1% of total)
ival-hypot: 130.0ms (16% of total)
ival-atan2: 93.0ms (11.5% of total)
ival-add!: 40.0ms (4.9% of total)
ival-div!: 32.0ms (3.9% of total)
ival-sub!: 20.0ms (2.5% of total)
adjust: 1.0ms (0.1% of total)
Bogosity

preprocess56.0ms (2%)

Memory
18.8MiB live, 18.8MiB allocated; 0ms collecting garbage
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
079139
1360117
2175567
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
52.4%
(/.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))))
Symmetry

(abs base)

Compiler

Compiled 44 to 36 computations (18.2% saved)

series156.0ms (5.7%)

Memory
11.8MiB live, 191.2MiB allocated; 42ms collecting garbage
Counts
18 → 66
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 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64)))
(*.f64 (atan2.f64 im re) (log.f64 base))
(atan2.f64 im re)
im
re
(log.f64 base)
base
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (*.f64 re re) (*.f64 im im))
(*.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 (log.f64 base) (log.f64 base))
(*.f64 #s(literal 0 binary64) #s(literal 0 binary64))
Outputs
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) #s(hole binary64 (/ (atan2 im re) (log base))))
#s(approx (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) #s(hole binary64 (* (log base) (atan2 im re))))
#s(approx (atan2 im re) #s(hole binary64 (atan2 im re)))
#s(approx re #s(hole binary64 re))
#s(approx (* (log (sqrt (+ (* re re) (* im im)))) 0) #s(hole binary64 0))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (log im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 im))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (+ im (* 1/2 (/ (pow re 2) im)))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (+ im (* (pow re 2) (+ (* (pow re 2) (- (* 1/16 (/ (pow re 2) (pow im 5))) (* 1/8 (/ 1 (pow im 3))))) (* 1/2 (/ 1 im)))))))
#s(approx (+ (* re re) (* im im)) #s(hole binary64 (pow im 2)))
#s(approx (+ (* re re) (* im im)) #s(hole binary64 (+ (pow im 2) (pow re 2))))
#s(approx (* re re) #s(hole binary64 (pow re 2)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (* -1 (log (/ 1 re)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2)))))))))
#s(approx (+ (* re re) (* im im)) #s(hole binary64 (* (pow re 2) (+ 1 (/ (pow im 2) (pow re 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (* -1 (log (/ -1 re)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 re)))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (log re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (+ re (* 1/2 (/ (pow im 2) re)))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (* -1 (log (/ 1 im)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))))
#s(approx (+ (* re re) (* im im)) #s(hole binary64 (* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (* -1 (log (/ -1 im)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 im)))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))))
#s(approx (log base) #s(hole binary64 (log base)))
#s(approx base #s(hole binary64 base))
#s(approx (+ (* (log base) (log base)) (* 0 0)) #s(hole binary64 (pow (log base) 2)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) #s(hole binary64 (* -1 (/ (atan2 im re) (log (/ 1 base))))))
#s(approx (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) #s(hole binary64 (* -1 (* (log (/ 1 base)) (atan2 im re)))))
#s(approx (log base) #s(hole binary64 (* -1 (log (/ 1 base)))))
#s(approx (+ (* (log base) (log base)) (* 0 0)) #s(hole binary64 (pow (log (/ 1 base)) 2)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) #s(hole binary64 (/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))))
#s(approx (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) #s(hole binary64 (* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))))
#s(approx (log base) #s(hole binary64 (+ (log -1) (* -1 (log (/ -1 base))))))
#s(approx (+ (* (log base) (log base)) (* 0 0)) #s(hole binary64 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)))
Calls

9 calls:

TimeVariablePointExpression
64.0ms
re
@0
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (* (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (log (sqrt (+ (* re re) (* im im)))) 0) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (+ (* re re) (* im im)) (* re re) (* im im) 0 (+ (* (log base) (log base)) (* 0 0)) (* (log base) (log base)) (* 0 0))
17.0ms
base
@0
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (* (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (log (sqrt (+ (* re re) (* im im)))) 0) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (+ (* re re) (* im im)) (* re re) (* im im) 0 (+ (* (log base) (log base)) (* 0 0)) (* (log base) (log base)) (* 0 0))
16.0ms
re
@-inf
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (* (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (log (sqrt (+ (* re re) (* im im)))) 0) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (+ (* re re) (* im im)) (* re re) (* im im) 0 (+ (* (log base) (log base)) (* 0 0)) (* (log base) (log base)) (* 0 0))
13.0ms
base
@-inf
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (* (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (log (sqrt (+ (* re re) (* im im)))) 0) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (+ (* re re) (* im im)) (* re re) (* im im) 0 (+ (* (log base) (log base)) (* 0 0)) (* (log base) (log base)) (* 0 0))
11.0ms
im
@-inf
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (* (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (log (sqrt (+ (* re re) (* im im)))) 0) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (+ (* re re) (* im im)) (* re re) (* im im) 0 (+ (* (log base) (log base)) (* 0 0)) (* (log base) (log base)) (* 0 0))

rewrite146.0ms (5.3%)

Memory
-30.5MiB live, 75.5MiB allocated; 18ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03011847
03221626
018401319
154421319
Stop Event
saturated
iter-limit
node-limit
iter-limit
Counts
84 → 169
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 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64)))
(*.f64 (atan2.f64 im re) (log.f64 base))
(atan2.f64 im re)
im
re
(log.f64 base)
base
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (*.f64 re re) (*.f64 im im))
(*.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 (log.f64 base) (log.f64 base))
(*.f64 #s(literal 0 binary64) #s(literal 0 binary64))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) #s(hole binary64 (/ (atan2 im re) (log base))))
#s(approx (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) #s(hole binary64 (* (log base) (atan2 im re))))
#s(approx (atan2 im re) #s(hole binary64 (atan2 im re)))
#s(approx re #s(hole binary64 re))
#s(approx (* (log (sqrt (+ (* re re) (* im im)))) 0) #s(hole binary64 0))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (log im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 im))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (+ im (* 1/2 (/ (pow re 2) im)))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (+ im (* (pow re 2) (+ (* (pow re 2) (- (* 1/16 (/ (pow re 2) (pow im 5))) (* 1/8 (/ 1 (pow im 3))))) (* 1/2 (/ 1 im)))))))
#s(approx (+ (* re re) (* im im)) #s(hole binary64 (pow im 2)))
#s(approx (+ (* re re) (* im im)) #s(hole binary64 (+ (pow im 2) (pow re 2))))
#s(approx (* re re) #s(hole binary64 (pow re 2)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (* -1 (log (/ 1 re)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2)))))))))
#s(approx (+ (* re re) (* im im)) #s(hole binary64 (* (pow re 2) (+ 1 (/ (pow im 2) (pow re 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (* -1 (log (/ -1 re)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 re)))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (log re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (+ re (* 1/2 (/ (pow im 2) re)))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (* -1 (log (/ 1 im)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))))
#s(approx (+ (* re re) (* im im)) #s(hole binary64 (* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (* -1 (log (/ -1 im)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(hole binary64 (+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 im)))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(hole binary64 (* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))))
#s(approx (log base) #s(hole binary64 (log base)))
#s(approx base #s(hole binary64 base))
#s(approx (+ (* (log base) (log base)) (* 0 0)) #s(hole binary64 (pow (log base) 2)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) #s(hole binary64 (* -1 (/ (atan2 im re) (log (/ 1 base))))))
#s(approx (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) #s(hole binary64 (* -1 (* (log (/ 1 base)) (atan2 im re)))))
#s(approx (log base) #s(hole binary64 (* -1 (log (/ 1 base)))))
#s(approx (+ (* (log base) (log base)) (* 0 0)) #s(hole binary64 (pow (log (/ 1 base)) 2)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) #s(hole binary64 (/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))))
#s(approx (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) #s(hole binary64 (* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))))
#s(approx (log base) #s(hole binary64 (+ (log -1) (* -1 (log (/ -1 base))))))
#s(approx (+ (* (log base) (log base)) (* 0 0)) #s(hole binary64 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)))
Outputs
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (neg.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64))) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (*.f64 (log.f64 base) (log.f64 base)))
(-.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (log.f64 base) (log.f64 base))) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (atan2.f64 im re))))
(fma.f64 (log.f64 base) (atan2.f64 im re) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64))
(fma.f64 (atan2.f64 im re) (log.f64 base) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(fma.f64 (atan2.f64 im re) (log.f64 base) #s(literal 0 binary64))
(-.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 0 binary64))
(+.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(+.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 0 binary64))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(log.f64 (pow.f64 base (atan2.f64 im re)))
(atan2.f64 im re)
im
re
(log.f64 (fabs.f64 base))
(log.f64 base)
base
#s(literal 0 binary64)
(log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))
(pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/2 binary64))
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
(fabs.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))
(hypot.f64 (fabs.f64 im) (fabs.f64 re))
(hypot.f64 (fabs.f64 im) (neg.f64 re))
(hypot.f64 (fabs.f64 im) re)
(hypot.f64 (fabs.f64 re) (fabs.f64 im))
(hypot.f64 (fabs.f64 re) (neg.f64 im))
(hypot.f64 (fabs.f64 re) im)
(hypot.f64 (neg.f64 re) (fabs.f64 im))
(hypot.f64 (neg.f64 re) (neg.f64 im))
(hypot.f64 (neg.f64 re) im)
(hypot.f64 (neg.f64 im) (fabs.f64 re))
(hypot.f64 (neg.f64 im) (neg.f64 re))
(hypot.f64 (neg.f64 im) re)
(hypot.f64 re (fabs.f64 im))
(hypot.f64 re (neg.f64 im))
(hypot.f64 re im)
(hypot.f64 im (fabs.f64 re))
(hypot.f64 im (neg.f64 re))
(hypot.f64 im re)
(fma.f64 (fabs.f64 im) (fabs.f64 im) (*.f64 re re))
(fma.f64 (fabs.f64 re) (fabs.f64 re) (*.f64 im im))
(fma.f64 (neg.f64 re) (neg.f64 re) (*.f64 im im))
(fma.f64 (neg.f64 im) (neg.f64 im) (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(-.f64 (*.f64 im im) (neg.f64 (*.f64 re re)))
(-.f64 (*.f64 re re) (*.f64 (neg.f64 im) im))
(-.f64 (*.f64 re re) (neg.f64 (*.f64 im im)))
(+.f64 (*.f64 im im) (*.f64 re re))
(+.f64 (*.f64 re re) (*.f64 im im))
(*.f64 (fabs.f64 re) (fabs.f64 re))
(*.f64 (neg.f64 re) (neg.f64 re))
(*.f64 re re)
(pow.f64 (fabs.f64 re) #s(literal 2 binary64))
(pow.f64 (neg.f64 re) #s(literal 2 binary64))
(pow.f64 re #s(literal 2 binary64))
(fabs.f64 (*.f64 re re))
(*.f64 (fabs.f64 im) (fabs.f64 im))
(*.f64 (neg.f64 im) (neg.f64 im))
(*.f64 im im)
(pow.f64 (fabs.f64 im) #s(literal 2 binary64))
(pow.f64 (neg.f64 im) #s(literal 2 binary64))
(pow.f64 im #s(literal 2 binary64))
(fabs.f64 (*.f64 im im))
#s(literal 0 binary64)
(*.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)))
(*.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (fabs.f64 (log.f64 base)) #s(literal 2 binary64))
(pow.f64 (fabs.f64 (neg.f64 (log.f64 base))) #s(literal 2 binary64))
(pow.f64 (neg.f64 (neg.f64 (log.f64 base))) #s(literal 2 binary64))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(fma.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (log.f64 base) (log.f64 base) #s(literal 0 binary64))
(-.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal 0 binary64))
(fabs.f64 (*.f64 (log.f64 base) (log.f64 base)))
(+.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base)))
(log.f64 (pow.f64 base (log.f64 base)))
(*.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)))
(*.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (fabs.f64 (log.f64 base)) #s(literal 2 binary64))
(pow.f64 (fabs.f64 (neg.f64 (log.f64 base))) #s(literal 2 binary64))
(pow.f64 (neg.f64 (neg.f64 (log.f64 base))) #s(literal 2 binary64))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(fma.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (log.f64 base) (log.f64 base) #s(literal 0 binary64))
(-.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal 0 binary64))
(fabs.f64 (*.f64 (log.f64 base) (log.f64 base)))
(+.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base)))
(log.f64 (pow.f64 base (log.f64 base)))
#s(literal 0 binary64)
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
#s(approx (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (*.f64 (log.f64 base) (atan2.f64 im re)))
#s(approx (atan2 im re) (atan2.f64 im re))
#s(approx re re)
#s(approx (* (log (sqrt (+ (* re re) (* im im)))) 0) #s(literal 0 binary64))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 re re) (*.f64 im im)) #s(literal 1/2 binary64) (log.f64 im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (fma.f64 (*.f64 (*.f64 re re) (pow.f64 im #s(literal -4 binary64))) #s(literal -1/4 binary64) (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (*.f64 re re) (log.f64 im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (fma.f64 (fma.f64 (/.f64 (*.f64 re re) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/6 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal -4 binary64)))) (*.f64 re re) (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (*.f64 re re) (log.f64 im)))
#s(approx (sqrt (+ (* re re) (* im im))) im)
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64) im))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (fma.f64 (/.f64 (*.f64 re re) (*.f64 (*.f64 im im) im)) #s(literal -1/8 binary64) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 re re) im))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (fma.f64 (-.f64 (/.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 re re)) (pow.f64 im #s(literal 5 binary64))) (/.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 im im) im))) (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 re re) im))
#s(approx (+ (* re re) (* im im)) (*.f64 im im))
#s(approx (+ (* re re) (* im im)) (fma.f64 re re (*.f64 im im)))
#s(approx (* re re) (*.f64 re re))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (neg.f64 (neg.f64 (log.f64 re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 im im) (*.f64 re re)) #s(literal 1/2 binary64) (neg.f64 (neg.f64 (log.f64 re)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (+.f64 (fma.f64 (*.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal -4 binary64))) #s(literal -1/4 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))) (neg.f64 (neg.f64 (log.f64 re)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (+.f64 (fma.f64 (*.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal -4 binary64))) #s(literal -1/4 binary64) (fma.f64 (/.f64 (*.f64 (pow.f64 im #s(literal 6 binary64)) #s(literal 120 binary64)) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/720 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re)))) (neg.f64 (neg.f64 (log.f64 re)))))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 (*.f64 im im) (*.f64 re re)) #s(literal 1/2 binary64) #s(literal 1 binary64)) re))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (+.f64 (fma.f64 (*.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal -4 binary64))) #s(literal -1/8 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))) #s(literal 1 binary64)) re))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (+.f64 (fma.f64 (*.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal -4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/16 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re)))) #s(literal 1 binary64)) re))
#s(approx (+ (* re re) (* im im)) (*.f64 (+.f64 (/.f64 (*.f64 im im) (*.f64 re re)) #s(literal 1 binary64)) (*.f64 re re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 im im) (*.f64 re re)) #s(literal 1/2 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re))) (fma.f64 (*.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal -4 binary64))) #s(literal -1/4 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re))) (fma.f64 (*.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal -4 binary64))) #s(literal -1/4 binary64) (fma.f64 (/.f64 (*.f64 (pow.f64 im #s(literal 6 binary64)) #s(literal 120 binary64)) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/720 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))))
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (neg.f64 re) (fma.f64 (/.f64 (*.f64 im im) (*.f64 re re)) #s(literal 1/2 binary64) #s(literal 1 binary64))))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (neg.f64 re) (+.f64 (fma.f64 (*.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal -4 binary64))) #s(literal -1/8 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))) #s(literal 1 binary64))))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (neg.f64 re) (+.f64 (fma.f64 (*.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal -4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/16 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re)))) #s(literal 1 binary64))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 re))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 im im) (*.f64 re re)) #s(literal 1/2 binary64) (log.f64 re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (fma.f64 (*.f64 (*.f64 im im) (pow.f64 re #s(literal -4 binary64))) #s(literal -1/4 binary64) (/.f64 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 im im) (log.f64 re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (fma.f64 (fma.f64 (/.f64 (*.f64 im im) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/6 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal -4 binary64)))) (*.f64 im im) (/.f64 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 im im) (log.f64 re)))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (/.f64 (*.f64 im im) re) #s(literal 1/2 binary64) re))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (fma.f64 (/.f64 (*.f64 im im) (*.f64 (*.f64 re re) re)) #s(literal -1/8 binary64) (/.f64 #s(literal 1/2 binary64) re)) (*.f64 im im) re))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (fma.f64 (-.f64 (/.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 im im)) (pow.f64 re #s(literal 5 binary64))) (/.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) re))) (*.f64 im im) (/.f64 #s(literal 1/2 binary64) re)) (*.f64 im im) re))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (neg.f64 (neg.f64 (log.f64 im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 re re) (*.f64 im im)) #s(literal 1/2 binary64) (neg.f64 (neg.f64 (log.f64 im)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (+.f64 (fma.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal -4 binary64))) #s(literal -1/4 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (neg.f64 (neg.f64 (log.f64 im)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (+.f64 (fma.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal -4 binary64))) #s(literal -1/4 binary64) (fma.f64 (/.f64 (*.f64 (pow.f64 re #s(literal 6 binary64)) #s(literal 120 binary64)) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/720 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))) (neg.f64 (neg.f64 (log.f64 im)))))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 (*.f64 re re) (*.f64 im im)) #s(literal 1/2 binary64) #s(literal 1 binary64)) im))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (+.f64 (fma.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal -4 binary64))) #s(literal -1/8 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) #s(literal 1 binary64)) im))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (+.f64 (fma.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal -4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/16 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))) #s(literal 1 binary64)) im))
#s(approx (+ (* re re) (* im im)) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 re re) (*.f64 im im))) (*.f64 im im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 re re) (*.f64 im im)) #s(literal 1/2 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) im))) (fma.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal -4 binary64))) #s(literal -1/4 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) im))) (fma.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal -4 binary64))) #s(literal -1/4 binary64) (fma.f64 (/.f64 (*.f64 (pow.f64 re #s(literal 6 binary64)) #s(literal 120 binary64)) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/720 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))))
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 im))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (neg.f64 im) (fma.f64 (/.f64 (*.f64 re re) (*.f64 im im)) #s(literal 1/2 binary64) #s(literal 1 binary64))))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (neg.f64 im) (+.f64 (fma.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal -4 binary64))) #s(literal -1/8 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) #s(literal 1 binary64))))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (neg.f64 im) (+.f64 (fma.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal -4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/16 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))) #s(literal 1 binary64))))
#s(approx (log base) (log.f64 base))
#s(approx base base)
#s(approx (+ (* (log base) (log base)) (* 0 0)) (*.f64 (log.f64 base) (log.f64 base)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (neg.f64 (/.f64 (atan2.f64 im re) (neg.f64 (log.f64 base)))))
#s(approx (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (neg.f64 (*.f64 (neg.f64 (log.f64 base)) (atan2.f64 im re))))
#s(approx (log base) (neg.f64 (neg.f64 (log.f64 base))))
#s(approx (+ (* (log base) (log base)) (* 0 0)) (*.f64 (log.f64 base) (log.f64 base)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64))))
#s(approx (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (*.f64 (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64)) (atan2.f64 im re)))
#s(approx (log base) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64)))
#s(approx (+ (* (log base) (log base)) (* 0 0)) (*.f64 (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64)) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64))))

eval13.0ms (0.5%)

Memory
19.9MiB live, 19.9MiB allocated; 0ms collecting garbage
Compiler

Compiled 1 639 to 803 computations (51% saved)

prune4.0ms (0.1%)

Memory
6.0MiB live, 6.0MiB allocated; 0ms collecting garbage
Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New1383141
Fresh000
Picked101
Done000
Total1393142
Accuracy
99.7%
Counts
142 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.3%
(/.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (*.f64 (log.f64 base) (log.f64 base)))
99.2%
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
99.4%
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
Compiler

Compiled 48 to 42 computations (12.5% saved)

series119.0ms (4.3%)

Memory
18.6MiB live, 146.7MiB allocated; 23ms collecting garbage
Counts
14 → 19
Calls
Call 1
Inputs
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
(/.f64 (atan2.f64 im re) (log.f64 base))
(atan2.f64 im re)
im
re
(log.f64 base)
base
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64))
#s(literal 0 binary64)
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
#s(literal 1 binary64)
(*.f64 (log.f64 base) (log.f64 base))
(/.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (*.f64 (log.f64 base) (log.f64 base)))
Outputs
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) #s(hole binary64 (/ (atan2 im re) (log base))))
#s(approx (atan2 im re) #s(hole binary64 (atan2 im re)))
#s(approx re #s(hole binary64 re))
#s(approx (+ (* (log base) (atan2 im re)) 0) #s(hole binary64 (* (log base) (atan2 im re))))
#s(approx im #s(hole binary64 im))
#s(approx (log base) #s(hole binary64 (log base)))
#s(approx base #s(hole binary64 base))
#s(approx (/ 1 (* (log base) (log base))) #s(hole binary64 (/ 1 (pow (log base) 2))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (log base) 2)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) #s(hole binary64 (* -1 (/ (atan2 im re) (log (/ 1 base))))))
#s(approx (log base) #s(hole binary64 (* -1 (log (/ 1 base)))))
#s(approx (+ (* (log base) (atan2 im re)) 0) #s(hole binary64 (* -1 (* (log (/ 1 base)) (atan2 im re)))))
#s(approx (/ 1 (* (log base) (log base))) #s(hole binary64 (/ 1 (pow (log (/ 1 base)) 2))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (log (/ 1 base)) 2)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) #s(hole binary64 (/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))))
#s(approx (log base) #s(hole binary64 (+ (log -1) (* -1 (log (/ -1 base))))))
#s(approx (+ (* (log base) (atan2 im re)) 0) #s(hole binary64 (* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))))
#s(approx (/ 1 (* (log base) (log base))) #s(hole binary64 (/ 1 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)))
Calls

9 calls:

TimeVariablePointExpression
55.0ms
re
@0
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (+ (* (log base) (atan2 im re)) 0) (/ 1 (* (log base) (log base)))) (+ (* (log base) (atan2 im re)) 0) 0 (/ 1 (* (log base) (log base))) 1 (* (log base) (log base)) (/ (+ (* (log base) (atan2 im re)) 0) (* (log base) (log base))))
11.0ms
im
@0
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (+ (* (log base) (atan2 im re)) 0) (/ 1 (* (log base) (log base)))) (+ (* (log base) (atan2 im re)) 0) 0 (/ 1 (* (log base) (log base))) 1 (* (log base) (log base)) (/ (+ (* (log base) (atan2 im re)) 0) (* (log base) (log base))))
10.0ms
base
@0
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (+ (* (log base) (atan2 im re)) 0) (/ 1 (* (log base) (log base)))) (+ (* (log base) (atan2 im re)) 0) 0 (/ 1 (* (log base) (log base))) 1 (* (log base) (log base)) (/ (+ (* (log base) (atan2 im re)) 0) (* (log base) (log base))))
8.0ms
base
@-inf
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (+ (* (log base) (atan2 im re)) 0) (/ 1 (* (log base) (log base)))) (+ (* (log base) (atan2 im re)) 0) 0 (/ 1 (* (log base) (log base))) 1 (* (log base) (log base)) (/ (+ (* (log base) (atan2 im re)) 0) (* (log base) (log base))))
8.0ms
base
@inf
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (+ (* (log base) (atan2 im re)) 0) (/ 1 (* (log base) (log base)))) (+ (* (log base) (atan2 im re)) 0) 0 (/ 1 (* (log base) (log base))) 1 (* (log base) (log base)) (/ (+ (* (log base) (atan2 im re)) 0) (* (log base) (log base))))

rewrite77.0ms (2.8%)

Memory
-59.1MiB live, 58.8MiB allocated; 34ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
073391
092279
0353279
1825279
Stop Event
saturated
iter-limit
iter-limit
unsound
iter-limit
Counts
33 → 86
Calls
Call 1
Inputs
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
(/.f64 (atan2.f64 im re) (log.f64 base))
(atan2.f64 im re)
im
re
(log.f64 base)
base
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64))
#s(literal 0 binary64)
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
#s(literal 1 binary64)
(*.f64 (log.f64 base) (log.f64 base))
(/.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (*.f64 (log.f64 base) (log.f64 base)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) #s(hole binary64 (/ (atan2 im re) (log base))))
#s(approx (atan2 im re) #s(hole binary64 (atan2 im re)))
#s(approx re #s(hole binary64 re))
#s(approx (+ (* (log base) (atan2 im re)) 0) #s(hole binary64 (* (log base) (atan2 im re))))
#s(approx im #s(hole binary64 im))
#s(approx (log base) #s(hole binary64 (log base)))
#s(approx base #s(hole binary64 base))
#s(approx (/ 1 (* (log base) (log base))) #s(hole binary64 (/ 1 (pow (log base) 2))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (log base) 2)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) #s(hole binary64 (* -1 (/ (atan2 im re) (log (/ 1 base))))))
#s(approx (log base) #s(hole binary64 (* -1 (log (/ 1 base)))))
#s(approx (+ (* (log base) (atan2 im re)) 0) #s(hole binary64 (* -1 (* (log (/ 1 base)) (atan2 im re)))))
#s(approx (/ 1 (* (log base) (log base))) #s(hole binary64 (/ 1 (pow (log (/ 1 base)) 2))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (log (/ 1 base)) 2)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) #s(hole binary64 (/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))))
#s(approx (log base) #s(hole binary64 (+ (log -1) (* -1 (log (/ -1 base))))))
#s(approx (+ (* (log base) (atan2 im re)) 0) #s(hole binary64 (* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))))
#s(approx (/ 1 (* (log base) (log base))) #s(hole binary64 (/ 1 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)))
Outputs
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (atan2.f64 im re) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (log.f64 base)))
(/.f64 (atan2.f64 im re) (log.f64 base))
(atan2.f64 im re)
im
re
(log.f64 (fabs.f64 base))
(log.f64 base)
base
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (log.f64 base) (atan2.f64 im re)))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 1 binary64)) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(/.f64 (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im re))) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (log.f64 base) (log.f64 base)))
(fma.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (log.f64 base) (atan2.f64 im re)) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(fma.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(-.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (log.f64 base) (log.f64 base))) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(+.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (log.f64 base) (log.f64 base))) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (atan2.f64 im re))))
(fma.f64 (log.f64 base) (atan2.f64 im re) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64))
(fma.f64 (atan2.f64 im re) (log.f64 base) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(fma.f64 (atan2.f64 im re) (log.f64 base) #s(literal 0 binary64))
(-.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 0 binary64))
(+.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(+.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (atan2.f64 im re)))
(log.f64 (pow.f64 base (atan2.f64 im re)))
#s(literal 0 binary64)
(*.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal -2 binary64))
(pow.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal -1 binary64))
(pow.f64 (log.f64 base) #s(literal -2 binary64))
(/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base))
(/.f64 #s(literal -1 binary64) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
#s(literal 1 binary64)
(*.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)))
(*.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (fabs.f64 (neg.f64 (log.f64 base))) #s(literal 2 binary64))
(pow.f64 (fabs.f64 (log.f64 base)) #s(literal 2 binary64))
(pow.f64 (neg.f64 (neg.f64 (log.f64 base))) #s(literal 2 binary64))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(fma.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (log.f64 base) (log.f64 base) #s(literal 0 binary64))
(-.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal 0 binary64))
(fabs.f64 (*.f64 (log.f64 base) (log.f64 base)))
(+.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base)))
(log.f64 (pow.f64 base (log.f64 base)))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (log.f64 base) (atan2.f64 im re)))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 1 binary64)) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(/.f64 (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im re))) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (log.f64 base) (log.f64 base)))
(fma.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (log.f64 base) (atan2.f64 im re)) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(fma.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(-.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (log.f64 base) (log.f64 base))) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(+.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (log.f64 base) (log.f64 base))) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
#s(approx (atan2 im re) (atan2.f64 im re))
#s(approx re re)
#s(approx (+ (* (log base) (atan2 im re)) 0) (*.f64 (log.f64 base) (atan2.f64 im re)))
#s(approx im im)
#s(approx (log base) (log.f64 base))
#s(approx base base)
#s(approx (/ 1 (* (log base) (log base))) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
#s(approx (* (log base) (log base)) (*.f64 (log.f64 base) (log.f64 base)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (neg.f64 (/.f64 (atan2.f64 im re) (neg.f64 (log.f64 base)))))
#s(approx (log base) (neg.f64 (neg.f64 (log.f64 base))))
#s(approx (+ (* (log base) (atan2 im re)) 0) (neg.f64 (*.f64 (neg.f64 (log.f64 base)) (atan2.f64 im re))))
#s(approx (/ 1 (* (log base) (log base))) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
#s(approx (* (log base) (log base)) (*.f64 (log.f64 base) (log.f64 base)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64))))
#s(approx (log base) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64)))
#s(approx (+ (* (log base) (atan2 im re)) 0) (*.f64 (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64)) (atan2.f64 im re)))
#s(approx (/ 1 (* (log base) (log base))) (pow.f64 (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64)) #s(literal -2 binary64)))
#s(approx (* (log base) (log base)) (*.f64 (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64)) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64))))

eval9.0ms (0.3%)

Memory
15.8MiB live, 15.8MiB allocated; 0ms collecting garbage
Compiler

Compiled 859 to 266 computations (69% saved)

prune6.0ms (0.2%)

Memory
14.6MiB live, 14.6MiB allocated; 0ms collecting garbage
Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1035108
Fresh000
Picked213
Done000
Total1056111
Accuracy
99.8%
Counts
111 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.3%
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
99.3%
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal -2 binary64)))
99.2%
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base)))
99.2%
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (log.f64 base) (atan2.f64 im re)))
99.4%
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
99.3%
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (*.f64 (atan2.f64 im re) (/.f64 #s(literal 1 binary64) (log.f64 base))))
Compiler

Compiled 168 to 148 computations (11.9% saved)

series190.0ms (7%)

Memory
-1.8MiB live, 137.2MiB allocated; 43ms collecting garbage
Counts
22 → 22
Calls
Call 1
Inputs
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (atan2.f64 im re) (log.f64 base))
(atan2.f64 im re)
im
re
(log.f64 base)
base
(*.f64 (log.f64 base) (log.f64 base))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (*.f64 (atan2.f64 im re) (/.f64 #s(literal 1 binary64) (log.f64 base))))
(*.f64 (atan2.f64 im re) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
#s(literal 1 binary64)
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (log.f64 base) (atan2.f64 im re)))
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base)))
(fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64))
#s(literal 0 binary64)
(/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base))
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal -2 binary64)))
(pow.f64 (log.f64 base) #s(literal -2 binary64))
#s(literal -2 binary64)
Outputs
#s(approx (/ (* (atan2 im re) (log base)) (* (log base) (log base))) #s(hole binary64 (/ (atan2 im re) (log base))))
#s(approx (* (atan2 im re) (log base)) #s(hole binary64 (* (log base) (atan2 im re))))
#s(approx (atan2 im re) #s(hole binary64 (atan2 im re)))
#s(approx re #s(hole binary64 re))
#s(approx im #s(hole binary64 im))
#s(approx (log base) #s(hole binary64 (log base)))
#s(approx base #s(hole binary64 base))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (log base) 2)))
#s(approx (/ 1 (log base)) #s(hole binary64 (/ 1 (log base))))
#s(approx (/ 1 (* (log base) (log base))) #s(hole binary64 (/ 1 (pow (log base) 2))))
#s(approx (/ (* (atan2 im re) (log base)) (* (log base) (log base))) #s(hole binary64 (* -1 (/ (atan2 im re) (log (/ 1 base))))))
#s(approx (* (atan2 im re) (log base)) #s(hole binary64 (* -1 (* (log (/ 1 base)) (atan2 im re)))))
#s(approx (log base) #s(hole binary64 (* -1 (log (/ 1 base)))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (log (/ 1 base)) 2)))
#s(approx (/ 1 (log base)) #s(hole binary64 (/ -1 (log (/ 1 base)))))
#s(approx (/ 1 (* (log base) (log base))) #s(hole binary64 (/ 1 (pow (log (/ 1 base)) 2))))
#s(approx (/ (* (atan2 im re) (log base)) (* (log base) (log base))) #s(hole binary64 (/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))))
#s(approx (* (atan2 im re) (log base)) #s(hole binary64 (* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))))
#s(approx (log base) #s(hole binary64 (+ (log -1) (* -1 (log (/ -1 base))))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)))
#s(approx (/ 1 (log base)) #s(hole binary64 (/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))))
#s(approx (/ 1 (* (log base) (log base))) #s(hole binary64 (/ 1 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))))
Calls

9 calls:

TimeVariablePointExpression
73.0ms
re
@0
((/ (* (atan2 im re) (log base)) (* (log base) (log base))) (* (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (log base) (log base)) (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (* (atan2 im re) (/ 1 (log base))) (/ 1 (log base)) 1 (* (/ 1 (* (log base) (log base))) (* (log base) (atan2 im re))) (/ 1 (* (log base) (log base))) (* (log base) (atan2 im re)) (* (+ (* (log base) (atan2 im re)) 0) (/ (/ 1 (log base)) (log base))) (+ (* (log base) (atan2 im re)) 0) 0 (/ (/ 1 (log base)) (log base)) (* (+ (* (log base) (atan2 im re)) 0) (pow (log base) -2)) (pow (log base) -2) -2)
59.0ms
base
@0
((/ (* (atan2 im re) (log base)) (* (log base) (log base))) (* (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (log base) (log base)) (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (* (atan2 im re) (/ 1 (log base))) (/ 1 (log base)) 1 (* (/ 1 (* (log base) (log base))) (* (log base) (atan2 im re))) (/ 1 (* (log base) (log base))) (* (log base) (atan2 im re)) (* (+ (* (log base) (atan2 im re)) 0) (/ (/ 1 (log base)) (log base))) (+ (* (log base) (atan2 im re)) 0) 0 (/ (/ 1 (log base)) (log base)) (* (+ (* (log base) (atan2 im re)) 0) (pow (log base) -2)) (pow (log base) -2) -2)
13.0ms
im
@0
((/ (* (atan2 im re) (log base)) (* (log base) (log base))) (* (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (log base) (log base)) (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (* (atan2 im re) (/ 1 (log base))) (/ 1 (log base)) 1 (* (/ 1 (* (log base) (log base))) (* (log base) (atan2 im re))) (/ 1 (* (log base) (log base))) (* (log base) (atan2 im re)) (* (+ (* (log base) (atan2 im re)) 0) (/ (/ 1 (log base)) (log base))) (+ (* (log base) (atan2 im re)) 0) 0 (/ (/ 1 (log base)) (log base)) (* (+ (* (log base) (atan2 im re)) 0) (pow (log base) -2)) (pow (log base) -2) -2)
8.0ms
base
@-inf
((/ (* (atan2 im re) (log base)) (* (log base) (log base))) (* (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (log base) (log base)) (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (* (atan2 im re) (/ 1 (log base))) (/ 1 (log base)) 1 (* (/ 1 (* (log base) (log base))) (* (log base) (atan2 im re))) (/ 1 (* (log base) (log base))) (* (log base) (atan2 im re)) (* (+ (* (log base) (atan2 im re)) 0) (/ (/ 1 (log base)) (log base))) (+ (* (log base) (atan2 im re)) 0) 0 (/ (/ 1 (log base)) (log base)) (* (+ (* (log base) (atan2 im re)) 0) (pow (log base) -2)) (pow (log base) -2) -2)
8.0ms
base
@inf
((/ (* (atan2 im re) (log base)) (* (log base) (log base))) (* (atan2 im re) (log base)) (atan2 im re) im re (log base) base (* (log base) (log base)) (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (* (atan2 im re) (/ 1 (log base))) (/ 1 (log base)) 1 (* (/ 1 (* (log base) (log base))) (* (log base) (atan2 im re))) (/ 1 (* (log base) (log base))) (* (log base) (atan2 im re)) (* (+ (* (log base) (atan2 im re)) 0) (/ (/ 1 (log base)) (log base))) (+ (* (log base) (atan2 im re)) 0) 0 (/ (/ 1 (log base)) (log base)) (* (+ (* (log base) (atan2 im re)) 0) (pow (log base) -2)) (pow (log base) -2) -2)

rewrite95.0ms (3.5%)

Memory
-18.7MiB live, 71.1MiB allocated; 16ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087439
0124358
0416358
1932358
Stop Event
saturated
iter-limit
iter-limit
unsound
iter-limit
Counts
44 → 166
Calls
Call 1
Inputs
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (atan2.f64 im re) (log.f64 base))
(atan2.f64 im re)
im
re
(log.f64 base)
base
(*.f64 (log.f64 base) (log.f64 base))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (*.f64 (atan2.f64 im re) (/.f64 #s(literal 1 binary64) (log.f64 base))))
(*.f64 (atan2.f64 im re) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
#s(literal 1 binary64)
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (log.f64 base) (atan2.f64 im re)))
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base)))
(fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64))
#s(literal 0 binary64)
(/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base))
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal -2 binary64)))
(pow.f64 (log.f64 base) #s(literal -2 binary64))
#s(literal -2 binary64)
#s(approx (/ (* (atan2 im re) (log base)) (* (log base) (log base))) #s(hole binary64 (/ (atan2 im re) (log base))))
#s(approx (* (atan2 im re) (log base)) #s(hole binary64 (* (log base) (atan2 im re))))
#s(approx (atan2 im re) #s(hole binary64 (atan2 im re)))
#s(approx re #s(hole binary64 re))
#s(approx im #s(hole binary64 im))
#s(approx (log base) #s(hole binary64 (log base)))
#s(approx base #s(hole binary64 base))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (log base) 2)))
#s(approx (/ 1 (log base)) #s(hole binary64 (/ 1 (log base))))
#s(approx (/ 1 (* (log base) (log base))) #s(hole binary64 (/ 1 (pow (log base) 2))))
#s(approx (/ (* (atan2 im re) (log base)) (* (log base) (log base))) #s(hole binary64 (* -1 (/ (atan2 im re) (log (/ 1 base))))))
#s(approx (* (atan2 im re) (log base)) #s(hole binary64 (* -1 (* (log (/ 1 base)) (atan2 im re)))))
#s(approx (log base) #s(hole binary64 (* -1 (log (/ 1 base)))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (log (/ 1 base)) 2)))
#s(approx (/ 1 (log base)) #s(hole binary64 (/ -1 (log (/ 1 base)))))
#s(approx (/ 1 (* (log base) (log base))) #s(hole binary64 (/ 1 (pow (log (/ 1 base)) 2))))
#s(approx (/ (* (atan2 im re) (log base)) (* (log base) (log base))) #s(hole binary64 (/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))))
#s(approx (* (atan2 im re) (log base)) #s(hole binary64 (* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))))
#s(approx (log base) #s(hole binary64 (+ (log -1) (* -1 (log (/ -1 base))))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)))
#s(approx (/ 1 (log base)) #s(hole binary64 (/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))))
#s(approx (/ 1 (* (log base) (log base))) #s(hole binary64 (/ 1 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))))
Outputs
(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base)) (atan2.f64 im re))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (/.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (log.f64 base) (log.f64 base)))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 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 (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base))) (log.f64 base))
(/.f64 (*.f64 #s(literal 1 binary64) (*.f64 (atan2.f64 im re) (log.f64 base))) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (log.f64 base))
(/.f64 (neg.f64 (*.f64 (atan2.f64 im re) (log.f64 base))) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(-.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base))) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 (atan2.f64 im re) (log.f64 base))))
(fma.f64 (atan2.f64 im re) (log.f64 base) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(fma.f64 (atan2.f64 im re) (log.f64 base) #s(literal 0 binary64))
(fma.f64 (log.f64 base) (atan2.f64 im re) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64))
(-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 (atan2.f64 im re) (log.f64 base)))
(+.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(+.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 0 binary64))
(log.f64 (pow.f64 base (atan2.f64 im re)))
(atan2.f64 im re)
im
re
(log.f64 (fabs.f64 base))
(log.f64 base)
base
(*.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)))
(*.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (fabs.f64 (neg.f64 (log.f64 base))) #s(literal 2 binary64))
(pow.f64 (fabs.f64 (log.f64 base)) #s(literal 2 binary64))
(pow.f64 (neg.f64 (neg.f64 (log.f64 base))) #s(literal 2 binary64))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(fma.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (log.f64 base) (log.f64 base) #s(literal 0 binary64))
(-.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal 0 binary64))
(fabs.f64 (*.f64 (log.f64 base) (log.f64 base)))
(+.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base)))
(log.f64 (pow.f64 base (log.f64 base)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(/.f64 (*.f64 (atan2.f64 im re) #s(literal 1 binary64)) (log.f64 base))
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (log.f64 base)))
(/.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 #s(literal -1 binary64) (/.f64 #s(literal 1 binary64) (neg.f64 (log.f64 base))))
(*.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(pow.f64 (log.f64 base) #s(literal -1 binary64))
(/.f64 #s(literal -1 binary64) (neg.f64 (log.f64 base)))
(/.f64 #s(literal 1 binary64) (neg.f64 (neg.f64 (log.f64 base))))
(/.f64 #s(literal 1 binary64) (log.f64 base))
#s(literal 1 binary64)
(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base)) (atan2.f64 im re))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (/.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (log.f64 base) (log.f64 base)))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 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 (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base))) (log.f64 base))
(/.f64 (*.f64 #s(literal 1 binary64) (*.f64 (atan2.f64 im re) (log.f64 base))) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (log.f64 base))
(/.f64 (neg.f64 (*.f64 (atan2.f64 im re) (log.f64 base))) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(-.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base))) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal -2 binary64))
(pow.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal -1 binary64))
(pow.f64 (log.f64 base) #s(literal -2 binary64))
(/.f64 (neg.f64 (/.f64 #s(literal 1 binary64) (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 #s(literal -1 binary64) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base))
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 (atan2.f64 im re) (log.f64 base))))
(fma.f64 (atan2.f64 im re) (log.f64 base) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(fma.f64 (atan2.f64 im re) (log.f64 base) #s(literal 0 binary64))
(fma.f64 (log.f64 base) (atan2.f64 im re) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64))
(-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 (atan2.f64 im re) (log.f64 base)))
(+.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(+.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 0 binary64))
(log.f64 (pow.f64 base (atan2.f64 im re)))
(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base)) (atan2.f64 im re))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (/.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (log.f64 base) (log.f64 base)))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 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 (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base))) (log.f64 base))
(/.f64 (*.f64 #s(literal 1 binary64) (*.f64 (atan2.f64 im re) (log.f64 base))) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (log.f64 base))
(/.f64 (neg.f64 (*.f64 (atan2.f64 im re) (log.f64 base))) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(-.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base))) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 (atan2.f64 im re) (log.f64 base))))
(fma.f64 (atan2.f64 im re) (log.f64 base) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(fma.f64 (atan2.f64 im re) (log.f64 base) #s(literal 0 binary64))
(fma.f64 (log.f64 base) (atan2.f64 im re) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64))
(-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 (atan2.f64 im re) (log.f64 base)))
(+.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (neg.f64 (log.f64 (sqrt.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 0 binary64)))
(+.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 0 binary64))
(log.f64 (pow.f64 base (atan2.f64 im re)))
#s(literal 0 binary64)
(*.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal -2 binary64))
(pow.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal -1 binary64))
(pow.f64 (log.f64 base) #s(literal -2 binary64))
(/.f64 (neg.f64 (/.f64 #s(literal 1 binary64) (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 #s(literal -1 binary64) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base))
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base)) (atan2.f64 im re))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (/.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (log.f64 base) (log.f64 base)))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 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 (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base))) (log.f64 base))
(/.f64 (*.f64 #s(literal 1 binary64) (*.f64 (atan2.f64 im re) (log.f64 base))) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (log.f64 base))
(/.f64 (neg.f64 (*.f64 (atan2.f64 im re) (log.f64 base))) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(-.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base))) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal -2 binary64))
(pow.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal -1 binary64))
(pow.f64 (log.f64 base) #s(literal -2 binary64))
(/.f64 (neg.f64 (/.f64 #s(literal 1 binary64) (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 #s(literal -1 binary64) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base))
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
#s(literal -2 binary64)
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
#s(approx (* (atan2 im re) (log base)) (*.f64 (atan2.f64 im re) (log.f64 base)))
#s(approx (atan2 im re) (atan2.f64 im re))
#s(approx re re)
#s(approx im im)
#s(approx (log base) (log.f64 base))
#s(approx base base)
#s(approx (* (log base) (log base)) (*.f64 (log.f64 base) (log.f64 base)))
#s(approx (/ 1 (log base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
#s(approx (/ 1 (* (log base) (log base))) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (neg.f64 (/.f64 (atan2.f64 im re) (neg.f64 (log.f64 base)))))
#s(approx (* (atan2 im re) (log base)) (neg.f64 (*.f64 (neg.f64 (log.f64 base)) (atan2.f64 im re))))
#s(approx (log base) (neg.f64 (neg.f64 (log.f64 base))))
#s(approx (* (log base) (log base)) (*.f64 (log.f64 base) (log.f64 base)))
#s(approx (/ 1 (log base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
#s(approx (/ 1 (* (log base) (log base))) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64))))
#s(approx (* (atan2 im re) (log base)) (*.f64 (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64)) (atan2.f64 im re)))
#s(approx (log base) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64)))
#s(approx (* (log base) (log base)) (*.f64 (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64)) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64))))
#s(approx (/ 1 (log base)) (/.f64 #s(literal 1 binary64) (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64))))
#s(approx (/ 1 (* (log base) (log base))) (pow.f64 (+.f64 (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 0 binary64)) #s(literal -2 binary64)))

eval10.0ms (0.4%)

Memory
24.7MiB live, 24.7MiB allocated; 0ms collecting garbage
Compiler

Compiled 1 013 to 351 computations (65.4% saved)

prune7.0ms (0.2%)

Memory
12.4MiB live, 12.4MiB allocated; 0ms collecting garbage
Pruning

9 alts after pruning (5 fresh and 4 done)

PrunedKeptTotal
New1225127
Fresh000
Picked235
Done011
Total1249133
Accuracy
99.8%
Counts
133 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.3%
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
99.3%
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base))) (log.f64 base))
99.3%
(*.f64 (pow.f64 (log.f64 base) #s(literal -2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))
99.3%
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))))
99.2%
(*.f64 (/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base)) (*.f64 (log.f64 base) (atan2.f64 im re)))
99.2%
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (log.f64 base) (atan2.f64 im re)))
99.2%
(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base)) (atan2.f64 im re))
99.4%
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
99.3%
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (*.f64 (atan2.f64 im re) (/.f64 #s(literal 1 binary64) (log.f64 base))))
Compiler

Compiled 184 to 158 computations (14.1% saved)

series199.0ms (7.3%)

Memory
-17.7MiB live, 131.6MiB allocated; 19ms collecting garbage
Counts
22 → 22
Calls
Call 1
Inputs
(*.f64 (pow.f64 (log.f64 base) #s(literal -2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(pow.f64 (log.f64 base) #s(literal -2 binary64))
(log.f64 base)
base
#s(literal -2 binary64)
(*.f64 (log.f64 base) (atan2.f64 im re))
(atan2.f64 im re)
im
re
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (log.f64 base) (log.f64 base))
(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base)) (atan2.f64 im re))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base))
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
#s(literal 1 binary64)
(*.f64 (/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base))) (log.f64 base))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 (atan2.f64 im re) (log.f64 base))
Outputs
#s(approx (* (pow (log base) -2) (* (log base) (atan2 im re))) #s(hole binary64 (/ (atan2 im re) (log base))))
#s(approx (* (log base) (atan2 im re)) #s(hole binary64 (* (log base) (atan2 im re))))
#s(approx (atan2 im re) #s(hole binary64 (atan2 im re)))
#s(approx re #s(hole binary64 re))
#s(approx im #s(hole binary64 im))
#s(approx (pow (log base) -2) #s(hole binary64 (/ 1 (pow (log base) 2))))
#s(approx (log base) #s(hole binary64 (log base)))
#s(approx base #s(hole binary64 base))
#s(approx (/ (log base) (* (log base) (log base))) #s(hole binary64 (/ 1 (log base))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (log base) 2)))
#s(approx (* (pow (log base) -2) (* (log base) (atan2 im re))) #s(hole binary64 (* -1 (/ (atan2 im re) (log (/ 1 base))))))
#s(approx (pow (log base) -2) #s(hole binary64 (/ 1 (pow (log (/ 1 base)) 2))))
#s(approx (log base) #s(hole binary64 (* -1 (log (/ 1 base)))))
#s(approx (* (log base) (atan2 im re)) #s(hole binary64 (* -1 (* (log (/ 1 base)) (atan2 im re)))))
#s(approx (/ (log base) (* (log base) (log base))) #s(hole binary64 (/ -1 (log (/ 1 base)))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (log (/ 1 base)) 2)))
#s(approx (* (pow (log base) -2) (* (log base) (atan2 im re))) #s(hole binary64 (/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))))
#s(approx (pow (log base) -2) #s(hole binary64 (/ 1 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))))
#s(approx (log base) #s(hole binary64 (+ (log -1) (* -1 (log (/ -1 base))))))
#s(approx (* (log base) (atan2 im re)) #s(hole binary64 (* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))))
#s(approx (/ (log base) (* (log base) (log base))) #s(hole binary64 (/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)))
Calls

9 calls:

TimeVariablePointExpression
77.0ms
base
@inf
((* (pow (log base) -2) (* (log base) (atan2 im re))) (pow (log base) -2) (log base) base -2 (* (log base) (atan2 im re)) (atan2 im re) im re (* (atan2 im re) (/ (log base) (* (log base) (log base)))) (/ (log base) (* (log base) (log base))) (* (log base) (log base)) (* (* (/ 1 (* (log base) (log base))) (log base)) (atan2 im re)) (* (/ 1 (* (log base) (log base))) (log base)) (/ 1 (* (log base) (log base))) 1 (* (/ (/ 1 (log base)) (log base)) (* (log base) (atan2 im re))) (/ (/ 1 (log base)) (log base)) (/ 1 (log base)) (/ (* (* (atan2 im re) (log base)) (/ 1 (log base))) (log base)) (* (* (atan2 im re) (log base)) (/ 1 (log base))) (* (atan2 im re) (log base)))
40.0ms
re
@0
((* (pow (log base) -2) (* (log base) (atan2 im re))) (pow (log base) -2) (log base) base -2 (* (log base) (atan2 im re)) (atan2 im re) im re (* (atan2 im re) (/ (log base) (* (log base) (log base)))) (/ (log base) (* (log base) (log base))) (* (log base) (log base)) (* (* (/ 1 (* (log base) (log base))) (log base)) (atan2 im re)) (* (/ 1 (* (log base) (log base))) (log base)) (/ 1 (* (log base) (log base))) 1 (* (/ (/ 1 (log base)) (log base)) (* (log base) (atan2 im re))) (/ (/ 1 (log base)) (log base)) (/ 1 (log base)) (/ (* (* (atan2 im re) (log base)) (/ 1 (log base))) (log base)) (* (* (atan2 im re) (log base)) (/ 1 (log base))) (* (atan2 im re) (log base)))
36.0ms
im
@0
((* (pow (log base) -2) (* (log base) (atan2 im re))) (pow (log base) -2) (log base) base -2 (* (log base) (atan2 im re)) (atan2 im re) im re (* (atan2 im re) (/ (log base) (* (log base) (log base)))) (/ (log base) (* (log base) (log base))) (* (log base) (log base)) (* (* (/ 1 (* (log base) (log base))) (log base)) (atan2 im re)) (* (/ 1 (* (log base) (log base))) (log base)) (/ 1 (* (log base) (log base))) 1 (* (/ (/ 1 (log base)) (log base)) (* (log base) (atan2 im re))) (/ (/ 1 (log base)) (log base)) (/ 1 (log base)) (/ (* (* (atan2 im re) (log base)) (/ 1 (log base))) (log base)) (* (* (atan2 im re) (log base)) (/ 1 (log base))) (* (atan2 im re) (log base)))
8.0ms
base
@-inf
((* (pow (log base) -2) (* (log base) (atan2 im re))) (pow (log base) -2) (log base) base -2 (* (log base) (atan2 im re)) (atan2 im re) im re (* (atan2 im re) (/ (log base) (* (log base) (log base)))) (/ (log base) (* (log base) (log base))) (* (log base) (log base)) (* (* (/ 1 (* (log base) (log base))) (log base)) (atan2 im re)) (* (/ 1 (* (log base) (log base))) (log base)) (/ 1 (* (log base) (log base))) 1 (* (/ (/ 1 (log base)) (log base)) (* (log base) (atan2 im re))) (/ (/ 1 (log base)) (log base)) (/ 1 (log base)) (/ (* (* (atan2 im re) (log base)) (/ 1 (log base))) (log base)) (* (* (atan2 im re) (log base)) (/ 1 (log base))) (* (atan2 im re) (log base)))
8.0ms
base
@0
((* (pow (log base) -2) (* (log base) (atan2 im re))) (pow (log base) -2) (log base) base -2 (* (log base) (atan2 im re)) (atan2 im re) im re (* (atan2 im re) (/ (log base) (* (log base) (log base)))) (/ (log base) (* (log base) (log base))) (* (log base) (log base)) (* (* (/ 1 (* (log base) (log base))) (log base)) (atan2 im re)) (* (/ 1 (* (log base) (log base))) (log base)) (/ 1 (* (log base) (log base))) 1 (* (/ (/ 1 (log base)) (log base)) (* (log base) (atan2 im re))) (/ (/ 1 (log base)) (log base)) (/ 1 (log base)) (/ (* (* (atan2 im re) (log base)) (/ 1 (log base))) (log base)) (* (* (atan2 im re) (log base)) (/ 1 (log base))) (* (atan2 im re) (log base)))

rewrite39.0ms (1.4%)

Memory
8.5MiB live, 51.0MiB allocated; 10ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
077429
0114370
0315370
1645370
Stop Event
saturated
iter-limit
iter-limit
unsound
iter-limit
Counts
44 → 138
Calls
Call 1
Inputs
(*.f64 (pow.f64 (log.f64 base) #s(literal -2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(pow.f64 (log.f64 base) #s(literal -2 binary64))
(log.f64 base)
base
#s(literal -2 binary64)
(*.f64 (log.f64 base) (atan2.f64 im re))
(atan2.f64 im re)
im
re
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (log.f64 base) (log.f64 base))
(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base)) (atan2.f64 im re))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base))
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
#s(literal 1 binary64)
(*.f64 (/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base))) (log.f64 base))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 (atan2.f64 im re) (log.f64 base))
#s(approx (* (pow (log base) -2) (* (log base) (atan2 im re))) #s(hole binary64 (/ (atan2 im re) (log base))))
#s(approx (* (log base) (atan2 im re)) #s(hole binary64 (* (log base) (atan2 im re))))
#s(approx (atan2 im re) #s(hole binary64 (atan2 im re)))
#s(approx re #s(hole binary64 re))
#s(approx im #s(hole binary64 im))
#s(approx (pow (log base) -2) #s(hole binary64 (/ 1 (pow (log base) 2))))
#s(approx (log base) #s(hole binary64 (log base)))
#s(approx base #s(hole binary64 base))
#s(approx (/ (log base) (* (log base) (log base))) #s(hole binary64 (/ 1 (log base))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (log base) 2)))
#s(approx (* (pow (log base) -2) (* (log base) (atan2 im re))) #s(hole binary64 (* -1 (/ (atan2 im re) (log (/ 1 base))))))
#s(approx (pow (log base) -2) #s(hole binary64 (/ 1 (pow (log (/ 1 base)) 2))))
#s(approx (log base) #s(hole binary64 (* -1 (log (/ 1 base)))))
#s(approx (* (log base) (atan2 im re)) #s(hole binary64 (* -1 (* (log (/ 1 base)) (atan2 im re)))))
#s(approx (/ (log base) (* (log base) (log base))) #s(hole binary64 (/ -1 (log (/ 1 base)))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (log (/ 1 base)) 2)))
#s(approx (* (pow (log base) -2) (* (log base) (atan2 im re))) #s(hole binary64 (/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))))
#s(approx (pow (log base) -2) #s(hole binary64 (/ 1 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))))
#s(approx (log base) #s(hole binary64 (+ (log -1) (* -1 (log (/ -1 base))))))
#s(approx (* (log base) (atan2 im re)) #s(hole binary64 (* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))))
#s(approx (/ (log base) (* (log base) (log base))) #s(hole binary64 (/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))))
#s(approx (* (log base) (log base)) #s(hole binary64 (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)))
Outputs
(*.f64 (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))) (atan2.f64 im re))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (neg.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (log.f64 base))
(*.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal -2 binary64))
(pow.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal -1 binary64))
(pow.f64 (log.f64 base) #s(literal -2 binary64))
(/.f64 (neg.f64 (/.f64 #s(literal 1 binary64) (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 #s(literal -1 binary64) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base))
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
(log.f64 (fabs.f64 base))
(log.f64 base)
base
#s(literal -2 binary64)
(*.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 (pow.f64 base (atan2.f64 im re)))
(atan2.f64 im re)
im
re
(*.f64 (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))) (atan2.f64 im re))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (neg.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (log.f64 base))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base))
(*.f64 (log.f64 base) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (*.f64 #s(literal 1 binary64) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (log.f64 base) (log.f64 base)) (log.f64 base))
(/.f64 (neg.f64 (log.f64 base)) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base)))
(log.f64 (pow.f64 base (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))))
(*.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)))
(*.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (fabs.f64 (neg.f64 (log.f64 base))) #s(literal 2 binary64))
(pow.f64 (fabs.f64 (log.f64 base)) #s(literal 2 binary64))
(pow.f64 (neg.f64 (neg.f64 (log.f64 base))) #s(literal 2 binary64))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(fabs.f64 (*.f64 (log.f64 base) (log.f64 base)))
(log.f64 (pow.f64 base (log.f64 base)))
(*.f64 (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))) (atan2.f64 im re))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (neg.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (log.f64 base))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base))
(*.f64 (log.f64 base) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (*.f64 #s(literal 1 binary64) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (log.f64 base) (log.f64 base)) (log.f64 base))
(/.f64 (neg.f64 (log.f64 base)) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base)))
(log.f64 (pow.f64 base (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))))
(*.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal -2 binary64))
(pow.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal -1 binary64))
(pow.f64 (log.f64 base) #s(literal -2 binary64))
(/.f64 (neg.f64 (/.f64 #s(literal 1 binary64) (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 #s(literal -1 binary64) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base))
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
#s(literal 1 binary64)
(*.f64 (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))) (atan2.f64 im re))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (neg.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (log.f64 base))
(*.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal -2 binary64))
(pow.f64 (*.f64 (log.f64 base) (log.f64 base)) #s(literal -1 binary64))
(pow.f64 (log.f64 base) #s(literal -2 binary64))
(/.f64 (neg.f64 (/.f64 #s(literal 1 binary64) (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 #s(literal -1 binary64) (neg.f64 (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base))
(/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 #s(literal -1 binary64) (/.f64 #s(literal 1 binary64) (neg.f64 (log.f64 base))))
(*.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(pow.f64 (log.f64 base) #s(literal -1 binary64))
(/.f64 #s(literal -1 binary64) (neg.f64 (log.f64 base)))
(/.f64 #s(literal 1 binary64) (neg.f64 (neg.f64 (log.f64 base))))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(*.f64 (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))) (atan2.f64 im re))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (neg.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base)) (log.f64 base))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(*.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (*.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (atan2.f64 im re) (*.f64 (log.f64 base) (/.f64 #s(literal 1 binary64) (log.f64 base))))
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 1 binary64)) (log.f64 base))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base))
(*.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 (pow.f64 base (atan2.f64 im re)))
#s(approx (* (pow (log base) -2) (* (log base) (atan2 im re))) (/.f64 (atan2.f64 im re) (log.f64 base)))
#s(approx (* (log base) (atan2 im re)) (*.f64 (atan2.f64 im re) (log.f64 base)))
#s(approx (atan2 im re) (atan2.f64 im re))
#s(approx re re)
#s(approx im im)
#s(approx (pow (log base) -2) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
#s(approx (log base) (log.f64 base))
#s(approx base base)
#s(approx (/ (log base) (* (log base) (log base))) (/.f64 #s(literal 1 binary64) (log.f64 base)))
#s(approx (* (log base) (log base)) (*.f64 (log.f64 base) (log.f64 base)))
#s(approx (* (pow (log base) -2) (* (log base) (atan2 im re))) (neg.f64 (/.f64 (atan2.f64 im re) (neg.f64 (log.f64 base)))))
#s(approx (pow (log base) -2) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
#s(approx (log base) (neg.f64 (neg.f64 (log.f64 base))))
#s(approx (* (log base) (atan2 im re)) (neg.f64 (*.f64 (neg.f64 (log.f64 base)) (atan2.f64 im re))))
#s(approx (/ (log base) (* (log base) (log base))) (/.f64 #s(literal 1 binary64) (log.f64 base)))
#s(approx (* (log base) (log base)) (*.f64 (log.f64 base) (log.f64 base)))
#s(approx (* (pow (log base) -2) (* (log base) (atan2 im re))) (/.f64 (atan2.f64 im re) (+.f64 #s(literal 0 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))))))
#s(approx (pow (log base) -2) (pow.f64 (+.f64 #s(literal 0 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base)))) #s(literal -2 binary64)))
#s(approx (log base) (+.f64 #s(literal 0 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base)))))
#s(approx (* (log base) (atan2 im re)) (*.f64 (+.f64 #s(literal 0 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base)))) (atan2.f64 im re)))
#s(approx (/ (log base) (* (log base) (log base))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 0 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))))))
#s(approx (* (log base) (log base)) (*.f64 (+.f64 #s(literal 0 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base)))) (+.f64 #s(literal 0 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) base))))))

eval14.0ms (0.5%)

Memory
-13.4MiB live, 27.5MiB allocated; 8ms collecting garbage
Compiler

Compiled 951 to 319 computations (66.5% saved)

prune7.0ms (0.2%)

Memory
17.0MiB live, 17.0MiB allocated; 0ms collecting garbage
Pruning

9 alts after pruning (0 fresh and 9 done)

PrunedKeptTotal
New1110111
Fresh000
Picked055
Done044
Total1119120
Accuracy
99.8%
Counts
120 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.3%
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
99.3%
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base))) (log.f64 base))
99.3%
(*.f64 (pow.f64 (log.f64 base) #s(literal -2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))
99.3%
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))))
99.2%
(*.f64 (/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base)) (*.f64 (log.f64 base) (atan2.f64 im re)))
99.2%
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (log.f64 base) (atan2.f64 im re)))
99.2%
(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base)) (atan2.f64 im re))
99.4%
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
99.3%
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (*.f64 (atan2.f64 im re) (/.f64 #s(literal 1 binary64) (log.f64 base))))
Compiler

Compiled 244 to 170 computations (30.3% saved)

regimes37.0ms (1.3%)

Memory
-17.9MiB live, 41.9MiB allocated; 7ms collecting garbage
Accuracy

Total -30.3b remaining (-8090.6%)

Threshold costs -30.3b (-8090.6%)

Counts
14 → 1
Calls
Call 1
Inputs
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (*.f64 (atan2.f64 im re) (/.f64 #s(literal 1 binary64) (log.f64 base))))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (*.f64 (log.f64 base) (log.f64 base))))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 base) (log.f64 base)))
(/.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (*.f64 (log.f64 base) (log.f64 base)))
(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (log.f64 base)) (atan2.f64 im re))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))) (*.f64 (log.f64 base) (atan2.f64 im re)))
(*.f64 (/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 #s(literal 1 binary64) (log.f64 base))) (log.f64 base))
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 (log.f64 base) (log.f64 base))))
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (/.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (log.f64 base)))
(*.f64 (pow.f64 (log.f64 base) #s(literal -2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(*.f64 (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal -2 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))))
Outputs
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
Calls

5 calls:

20.0ms
im
4.0ms
re
4.0ms
base
4.0ms
(log.f64 base)
4.0ms
(/.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))))
Results
AccuracySegmentsBranch
99.4%1(log.f64 base)
99.4%1(/.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))))
99.4%1re
99.4%1im
99.4%1base
Compiler

Compiled 27 to 31 computations (-14.8% saved)

derivations4.0ms (0.2%)

Memory
6.0MiB live, 6.0MiB allocated; 0ms collecting garbage
Stop Event
done
Compiler

Compiled 24 to 22 computations (8.3% saved)

preprocess14.0ms (0.5%)

Memory
-25.3MiB live, 19.9MiB allocated; 5ms collecting garbage
Remove

(abs base)

Compiler

Compiled 94 to 84 computations (10.6% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...