math.log/2 on complex, imaginary part

Time bar (total: 5.5s)

start0.0ms (0%)

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

analyze238.0ms (4.3%)

Memory
18.2MiB live, 350.2MiB allocated; 59ms 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.8s (32.8%)

Memory
53.2MiB live, 2 637.3MiB allocated; 448ms collecting garbage
Samples
1.3s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 913.0ms
ival-log: 235.0ms (25.7% of total)
ival-mult: 207.0ms (22.7% of total)
ival-hypot: 174.0ms (19.1% of total)
ival-atan2: 144.0ms (15.8% of total)
ival-div: 50.0ms (5.5% of total)
ival-sub: 47.0ms (5.1% of total)
ival-add: 41.0ms (4.5% of total)
ival-true: 6.0ms (0.7% of total)
exact: 5.0ms (0.5% of total)
adjust: 3.0ms (0.3% of total)
ival-assert: 3.0ms (0.3% of total)
Bogosity

explain387.0ms (7.1%)

Memory
-67.3MiB live, 402.5MiB allocated; 162ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1230-8(-1.4040554995544315e-157 4.811209933061886e-275 1.265996054579324e+236)(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
20-2(3.4658994283709246e+25 8.525053106350331e-288 1.4217786023404487e+163)(*.f64 (atan2.f64 im re) (log.f64 base))
00-0-(log.f64 base)
00-0-(/.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))))
00-0-(*.f64 re re)
00-0-(atan2.f64 im re)
00-0-im
00-0-(+.f64 (*.f64 re re) (*.f64 im im))
00-0-re
00-0-(-.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)))
00-0-(+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64)))
00-0-(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))
00-0-#s(literal 0 binary64)
00-0-(*.f64 #s(literal 0 binary64) #s(literal 0 binary64))
00-0-(*.f64 (log.f64 base) (log.f64 base))
00-0-(*.f64 im im)
00-0-base
00-0-(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))oflow-rescue1050
(+.f64 (*.f64 re re) (*.f64 im im))overflow105
(*.f64 re re)overflow56
(*.f64 im im)overflow66
Confusion
Predicted +Predicted -
+10510
-0141
Precision
1.0
Recall
0.9130434782608695
Confusion?
Predicted +Predicted MaybePredicted -
+105010
-00141
Precision?
1.0
Recall?
0.9130434782608695
Freqs
test
numberfreq
0151
1105
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
80.0ms512×0valid
Compiler

Compiled 270 to 58 computations (78.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 57.0ms
ival-mult: 19.0ms (33.1% of total)
ival-log: 15.0ms (26.2% of total)
ival-hypot: 8.0ms (14% of total)
ival-add: 4.0ms (7% of total)
ival-atan2: 4.0ms (7% of total)
ival-div: 3.0ms (5.2% of total)
ival-sub: 2.0ms (3.5% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

preprocess214.0ms (3.9%)

Memory
19.5MiB live, 210.6MiB allocated; 15ms collecting garbage
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
076139
1219121
292878
3599578
01826
03414
16312
21808
39216
424776
551416
082916
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
Outputs
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (atan2.f64 im re) (log.f64 base))
Compiler

Compiled 28 to 18 computations (35.7% saved)

eval0.0ms (0%)

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

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.7%
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
Compiler

Compiled 28 to 18 computations (35.7% saved)

simplify97.0ms (1.8%)

Memory
19.6MiB live, 110.7MiB allocated; 7ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff2
(-.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)))
cost-diff4
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
cost-diff5
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))
cost-diff5
(/.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))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
018113
03477
16375
218071
392169
4247769
5514167
0829156
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(-.f64 (*.f64 (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
(/.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 (atan2.f64 im re) (log.f64 base))
(-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(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))
#s(literal 0 binary64)
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(log.f64 (hypot.f64 re im))
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(hypot.f64 re im)
(+.f64 (*.f64 re re) (*.f64 im im))
(fma.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)))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(*.f64 #s(literal 0 binary64) #s(literal 0 binary64))
#s(literal 0 binary64)

localize81.0ms (1.5%)

Memory
-37.7MiB live, 107.7MiB allocated; 26ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.3359375
(/.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))))
accuracy0.4233484786343303
(*.f64 (atan2.f64 im re) (log.f64 base))
accuracy0.5661125488422102
(*.f64 (log.f64 base) (log.f64 base))
accuracy27.40594866967448
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Samples
64.0ms256×0valid
Compiler

Compiled 121 to 20 computations (83.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 35.0ms
ival-mult: 18.0ms (52% of total)
ival-log: 5.0ms (14.4% of total)
ival-hypot: 4.0ms (11.6% of total)
ival-add: 2.0ms (5.8% of total)
ival-atan2: 2.0ms (5.8% of total)
ival-div: 1.0ms (2.9% of total)
ival-sub: 1.0ms (2.9% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series110.0ms (2%)

Memory
44.5MiB live, 236.1MiB allocated; 20ms collecting garbage
Counts
6 → 32
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 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64)))
(*.f64 (log.f64 base) (log.f64 base))
(*.f64 (atan2.f64 im re) (log.f64 base))
Outputs
(/ (atan2 im re) (log base))
0
im
(+ im (* 1/2 (/ (pow re 2) im)))
(+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))
(+ 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)))))
(* (log base) (atan2 im re))
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* 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)))))))
(* -1 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -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))))))))
(+ re (* 1/2 (/ (pow im 2) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+ 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)))))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* 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)))))))
(* -1 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -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))))))))
(pow (log base) 2)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(pow (log (/ 1 base)) 2)
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
Calls

9 calls:

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

simplify195.0ms (3.6%)

Memory
3.7MiB live, 144.3MiB allocated; 21ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0121469
1343466
21369460
36811460
08171426
Stop Event
iter limit
node limit
Counts
32 → 30
Calls
Call 1
Inputs
(/ (atan2 im re) (log base))
0
im
(+ im (* 1/2 (/ (pow re 2) im)))
(+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))
(+ 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)))))
(* (log base) (atan2 im re))
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* 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)))))))
(* -1 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -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))))))))
(+ re (* 1/2 (/ (pow im 2) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+ 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)))))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* 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)))))))
(* -1 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -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))))))))
(pow (log base) 2)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(pow (log (/ 1 base)) 2)
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
Outputs
(/ (atan2 im re) (log base))
(/.f64 (atan2.f64 im re) (log.f64 base))
0
#s(literal 0 binary64)
im
(+ im (* 1/2 (/ (pow re 2) im)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))
(fma.f64 (/.f64 (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal -1/8 binary64) #s(literal 1/2 binary64)) im) (*.f64 re re) im)
(+ 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)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/16 binary64) re) (/.f64 re (pow.f64 im #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 3 binary64)))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
(* (log base) (atan2 im re))
(*.f64 (log.f64 base) (atan2.f64 im re))
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 (/.f64 im re) re) re)
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) #s(literal 1 binary64))) re)
(* 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)))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) #s(literal 1 binary64)))) re)
(* -1 re)
(neg.f64 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/2 binary64) re) (/.f64 (*.f64 im im) re) #s(literal -1 binary64)) re)
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(*.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 #s(literal -1/2 binary64) re) (/.f64 (*.f64 im im) re) #s(literal -1 binary64))) re)
(* -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))))))))
(*.f64 (neg.f64 re) (fma.f64 (pow.f64 im #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) #s(literal 1 binary64)))))
(+ re (* 1/2 (/ (pow im 2) re)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) re) (*.f64 im im) re)
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(fma.f64 (/.f64 (fma.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) re) re) (*.f64 im im) #s(literal 1/2 binary64)) re) (*.f64 im im) re)
(+ 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)))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/16 binary64) im) (/.f64 im (pow.f64 re #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 3 binary64)))) (*.f64 im im) (/.f64 #s(literal 1/2 binary64) re)) (*.f64 im im) re)
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) #s(literal 1 binary64)) im)
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(*.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 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) #s(literal 1 binary64))) im)
(* 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)))))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 im #s(literal 6 binary64))) (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 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) #s(literal 1 binary64)))) im)
(* -1 im)
(neg.f64 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/2 binary64) im) (/.f64 (*.f64 re re) im) #s(literal -1 binary64)) im)
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(*.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 #s(literal -1/2 binary64) im) (/.f64 (*.f64 re re) im) #s(literal -1 binary64))) im)
(* -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))))))))
(*.f64 (neg.f64 im) (fma.f64 (pow.f64 re #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 im #s(literal 6 binary64))) (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 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) #s(literal 1 binary64)))))
(pow (log base) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(/.f64 (atan2.f64 im re) (log.f64 base))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(pow (log (/ 1 base)) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(/.f64 (atan2.f64 im re) (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(*.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) (atan2.f64 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64))

rewrite135.0ms (2.5%)

Memory
-6.1MiB live, 79.3MiB allocated; 14ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01874
03438
112036
096531
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
6 → 217
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 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64)))
(*.f64 (log.f64 base) (log.f64 base))
(*.f64 (atan2.f64 im re) (log.f64 base))
Outputs
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (/.f64 (log.f64 base) (neg.f64 (log.f64 base))) (/.f64 (atan2.f64 im re) (neg.f64 (log.f64 base))))
(*.f64 (/.f64 (atan2.f64 im re) (neg.f64 (log.f64 base))) (/.f64 (log.f64 base) (neg.f64 (log.f64 base))))
(*.f64 (/.f64 (log.f64 base) (fabs.f64 (log.f64 base))) (/.f64 (atan2.f64 im re) (fabs.f64 (log.f64 base))))
(*.f64 (/.f64 (atan2.f64 im re) (fabs.f64 (log.f64 base))) (/.f64 (log.f64 base) (fabs.f64 (log.f64 base))))
(*.f64 (/.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 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (neg.f64 (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (fabs.f64 (log.f64 base))) (fabs.f64 (log.f64 base)))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(/.f64 (-.f64 (*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))) #s(literal 0 binary64)) (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (+.f64 #s(literal 0 binary64) (*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)))))
(/.f64 (neg.f64 (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im re)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im re))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64)) (*.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(neg.f64 (/.f64 (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(neg.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(fma.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(fma.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64))
(fma.f64 (/.f64 (log.f64 base) (neg.f64 (log.f64 base))) (/.f64 (atan2.f64 im re) (neg.f64 (log.f64 base))) #s(literal 0 binary64))
(fma.f64 (/.f64 (atan2.f64 im re) (neg.f64 (log.f64 base))) (/.f64 (log.f64 base) (neg.f64 (log.f64 base))) #s(literal 0 binary64))
(fma.f64 (/.f64 (log.f64 base) (fabs.f64 (log.f64 base))) (/.f64 (atan2.f64 im re) (fabs.f64 (log.f64 base))) #s(literal 0 binary64))
(fma.f64 (/.f64 (atan2.f64 im re) (fabs.f64 (log.f64 base))) (/.f64 (log.f64 base) (fabs.f64 (log.f64 base))) #s(literal 0 binary64))
(fma.f64 (/.f64 (log.f64 base) (log.f64 base)) (/.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (/.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (log.f64 base) (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(fma.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(-.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(+.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
#s(literal 0 binary64)
(*.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)) (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))
(pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64)))) (sqrt.f64 (*.f64 (+.f64 re im) (-.f64 re im))))
(/.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64))) (sqrt.f64 (+.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 re im) #s(literal 2 binary64))) (pow.f64 re #s(literal 4 binary64)))))
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
(hypot.f64 (pow.f64 re #s(literal 1 binary64)) (pow.f64 im #s(literal 1 binary64)))
(hypot.f64 (pow.f64 re #s(literal 1 binary64)) (neg.f64 (neg.f64 im)))
(hypot.f64 (pow.f64 re #s(literal 1 binary64)) (neg.f64 (fabs.f64 im)))
(hypot.f64 (pow.f64 re #s(literal 1 binary64)) (fabs.f64 (fabs.f64 im)))
(hypot.f64 (pow.f64 re #s(literal 1 binary64)) (neg.f64 im))
(hypot.f64 (pow.f64 re #s(literal 1 binary64)) (fabs.f64 im))
(hypot.f64 (pow.f64 re #s(literal 1 binary64)) im)
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) (pow.f64 re #s(literal 1 binary64)))
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) (neg.f64 (neg.f64 re)))
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) (neg.f64 (fabs.f64 re)))
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) (fabs.f64 (fabs.f64 re)))
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) (neg.f64 re))
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) (fabs.f64 re))
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) re)
(hypot.f64 (neg.f64 (neg.f64 im)) (pow.f64 re #s(literal 1 binary64)))
(hypot.f64 (neg.f64 (neg.f64 im)) (neg.f64 (neg.f64 re)))
(hypot.f64 (neg.f64 (neg.f64 im)) (neg.f64 (fabs.f64 re)))
(hypot.f64 (neg.f64 (neg.f64 im)) (fabs.f64 (fabs.f64 re)))
(hypot.f64 (neg.f64 (neg.f64 im)) (neg.f64 re))
(hypot.f64 (neg.f64 (neg.f64 im)) (fabs.f64 re))
(hypot.f64 (neg.f64 (neg.f64 im)) re)
(hypot.f64 (neg.f64 (fabs.f64 im)) (pow.f64 re #s(literal 1 binary64)))
(hypot.f64 (neg.f64 (fabs.f64 im)) (neg.f64 (neg.f64 re)))
(hypot.f64 (neg.f64 (fabs.f64 im)) (neg.f64 (fabs.f64 re)))
(hypot.f64 (neg.f64 (fabs.f64 im)) (fabs.f64 (fabs.f64 re)))
(hypot.f64 (neg.f64 (fabs.f64 im)) (neg.f64 re))
(hypot.f64 (neg.f64 (fabs.f64 im)) (fabs.f64 re))
(hypot.f64 (neg.f64 (fabs.f64 im)) re)
(hypot.f64 (neg.f64 (neg.f64 re)) (pow.f64 im #s(literal 1 binary64)))
(hypot.f64 (neg.f64 (neg.f64 re)) (neg.f64 (neg.f64 im)))
(hypot.f64 (neg.f64 (neg.f64 re)) (neg.f64 (fabs.f64 im)))
(hypot.f64 (neg.f64 (neg.f64 re)) (fabs.f64 (fabs.f64 im)))
(hypot.f64 (neg.f64 (neg.f64 re)) (neg.f64 im))
(hypot.f64 (neg.f64 (neg.f64 re)) (fabs.f64 im))
(hypot.f64 (neg.f64 (neg.f64 re)) im)
(hypot.f64 (neg.f64 (fabs.f64 re)) (pow.f64 im #s(literal 1 binary64)))
(hypot.f64 (neg.f64 (fabs.f64 re)) (neg.f64 (neg.f64 im)))
(hypot.f64 (neg.f64 (fabs.f64 re)) (neg.f64 (fabs.f64 im)))
(hypot.f64 (neg.f64 (fabs.f64 re)) (fabs.f64 (fabs.f64 im)))
(hypot.f64 (neg.f64 (fabs.f64 re)) (neg.f64 im))
(hypot.f64 (neg.f64 (fabs.f64 re)) (fabs.f64 im))
(hypot.f64 (neg.f64 (fabs.f64 re)) im)
(hypot.f64 (fabs.f64 (fabs.f64 im)) (pow.f64 re #s(literal 1 binary64)))
(hypot.f64 (fabs.f64 (fabs.f64 im)) (neg.f64 (neg.f64 re)))
(hypot.f64 (fabs.f64 (fabs.f64 im)) (neg.f64 (fabs.f64 re)))
(hypot.f64 (fabs.f64 (fabs.f64 im)) (fabs.f64 (fabs.f64 re)))
(hypot.f64 (fabs.f64 (fabs.f64 im)) (neg.f64 re))
(hypot.f64 (fabs.f64 (fabs.f64 im)) (fabs.f64 re))
(hypot.f64 (fabs.f64 (fabs.f64 im)) re)
(hypot.f64 (fabs.f64 (fabs.f64 re)) (pow.f64 im #s(literal 1 binary64)))
(hypot.f64 (fabs.f64 (fabs.f64 re)) (neg.f64 (neg.f64 im)))
(hypot.f64 (fabs.f64 (fabs.f64 re)) (neg.f64 (fabs.f64 im)))
(hypot.f64 (fabs.f64 (fabs.f64 re)) (fabs.f64 (fabs.f64 im)))
(hypot.f64 (fabs.f64 (fabs.f64 re)) (neg.f64 im))
(hypot.f64 (fabs.f64 (fabs.f64 re)) (fabs.f64 im))
(hypot.f64 (fabs.f64 (fabs.f64 re)) im)
(hypot.f64 (neg.f64 re) (pow.f64 im #s(literal 1 binary64)))
(hypot.f64 (neg.f64 re) (neg.f64 (neg.f64 im)))
(hypot.f64 (neg.f64 re) (neg.f64 (fabs.f64 im)))
(hypot.f64 (neg.f64 re) (fabs.f64 (fabs.f64 im)))
(hypot.f64 (neg.f64 re) (neg.f64 im))
(hypot.f64 (neg.f64 re) (fabs.f64 im))
(hypot.f64 (neg.f64 re) im)
(hypot.f64 (neg.f64 im) (pow.f64 re #s(literal 1 binary64)))
(hypot.f64 (neg.f64 im) (neg.f64 (neg.f64 re)))
(hypot.f64 (neg.f64 im) (neg.f64 (fabs.f64 re)))
(hypot.f64 (neg.f64 im) (fabs.f64 (fabs.f64 re)))
(hypot.f64 (neg.f64 im) (neg.f64 re))
(hypot.f64 (neg.f64 im) (fabs.f64 re))
(hypot.f64 (neg.f64 im) re)
(hypot.f64 (fabs.f64 re) (pow.f64 im #s(literal 1 binary64)))
(hypot.f64 (fabs.f64 re) (neg.f64 (neg.f64 im)))
(hypot.f64 (fabs.f64 re) (neg.f64 (fabs.f64 im)))
(hypot.f64 (fabs.f64 re) (fabs.f64 (fabs.f64 im)))
(hypot.f64 (fabs.f64 re) (neg.f64 im))
(hypot.f64 (fabs.f64 re) (fabs.f64 im))
(hypot.f64 (fabs.f64 re) im)
(hypot.f64 (fabs.f64 im) (pow.f64 re #s(literal 1 binary64)))
(hypot.f64 (fabs.f64 im) (neg.f64 (neg.f64 re)))
(hypot.f64 (fabs.f64 im) (neg.f64 (fabs.f64 re)))
(hypot.f64 (fabs.f64 im) (fabs.f64 (fabs.f64 re)))
(hypot.f64 (fabs.f64 im) (neg.f64 re))
(hypot.f64 (fabs.f64 im) (fabs.f64 re))
(hypot.f64 (fabs.f64 im) re)
(hypot.f64 re (pow.f64 im #s(literal 1 binary64)))
(hypot.f64 re (neg.f64 (neg.f64 im)))
(hypot.f64 re (neg.f64 (fabs.f64 im)))
(hypot.f64 re (fabs.f64 (fabs.f64 im)))
(hypot.f64 re (neg.f64 im))
(hypot.f64 re (fabs.f64 im))
(hypot.f64 re im)
(hypot.f64 im (pow.f64 re #s(literal 1 binary64)))
(hypot.f64 im (neg.f64 (neg.f64 re)))
(hypot.f64 im (neg.f64 (fabs.f64 re)))
(hypot.f64 im (fabs.f64 (fabs.f64 re)))
(hypot.f64 im (neg.f64 re))
(hypot.f64 im (fabs.f64 re))
(hypot.f64 im re)
(exp.f64 (*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(/.f64 (neg.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))) (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im re))))
(/.f64 (neg.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64))) (neg.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))))
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64)) (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)))
(fma.f64 (log.f64 base) (atan2.f64 im re) #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)) (*.f64 (neg.f64 (neg.f64 (log.f64 (hypot.f64 re im)))) #s(literal 0 binary64)))
(-.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (atan2.f64 im re))))
(-.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (/.f64 #s(literal 0 binary64) (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 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)))
(+.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 0 binary64))
(log.f64 (pow.f64 base (atan2.f64 im re)))
(*.f64 (+.f64 (neg.f64 (log.f64 base)) #s(literal 0 binary64)) (-.f64 (neg.f64 (log.f64 base)) #s(literal 0 binary64)))
(*.f64 (+.f64 (fabs.f64 (log.f64 base)) #s(literal 0 binary64)) (-.f64 (fabs.f64 (log.f64 base)) #s(literal 0 binary64)))
(*.f64 (+.f64 (log.f64 base) #s(literal 0 binary64)) (-.f64 (log.f64 base) #s(literal 0 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 1 binary64)) (pow.f64 (log.f64 base) #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 (log.f64 base))) (neg.f64 (neg.f64 (log.f64 base))))
(*.f64 (neg.f64 (fabs.f64 (log.f64 base))) (neg.f64 (fabs.f64 (log.f64 base))))
(*.f64 (fabs.f64 (fabs.f64 (log.f64 base))) (fabs.f64 (fabs.f64 (log.f64 base))))
(*.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)))
(*.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 2 binary64))
(pow.f64 (fabs.f64 (log.f64 base)) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(/.f64 (-.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (-.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(neg.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(fma.f64 (+.f64 (neg.f64 (log.f64 base)) #s(literal 0 binary64)) (-.f64 (neg.f64 (log.f64 base)) #s(literal 0 binary64)) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(fma.f64 (+.f64 (neg.f64 (log.f64 base)) #s(literal 0 binary64)) (-.f64 (neg.f64 (log.f64 base)) #s(literal 0 binary64)) #s(literal 0 binary64))
(fma.f64 (+.f64 (fabs.f64 (log.f64 base)) #s(literal 0 binary64)) (-.f64 (fabs.f64 (log.f64 base)) #s(literal 0 binary64)) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(fma.f64 (+.f64 (fabs.f64 (log.f64 base)) #s(literal 0 binary64)) (-.f64 (fabs.f64 (log.f64 base)) #s(literal 0 binary64)) #s(literal 0 binary64))
(fma.f64 (+.f64 (log.f64 base) #s(literal 0 binary64)) (-.f64 (log.f64 base) #s(literal 0 binary64)) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(fma.f64 (+.f64 (log.f64 base) #s(literal 0 binary64)) (-.f64 (log.f64 base) #s(literal 0 binary64)) #s(literal 0 binary64))
(fma.f64 (pow.f64 (log.f64 base) #s(literal 1 binary64)) (pow.f64 (log.f64 base) #s(literal 1 binary64)) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(fma.f64 (pow.f64 (log.f64 base) #s(literal 1 binary64)) (pow.f64 (log.f64 base) #s(literal 1 binary64)) #s(literal 0 binary64))
(fma.f64 (neg.f64 (neg.f64 (log.f64 base))) (neg.f64 (neg.f64 (log.f64 base))) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(fma.f64 (neg.f64 (neg.f64 (log.f64 base))) (neg.f64 (neg.f64 (log.f64 base))) #s(literal 0 binary64))
(fma.f64 (neg.f64 (fabs.f64 (log.f64 base))) (neg.f64 (fabs.f64 (log.f64 base))) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(fma.f64 (neg.f64 (fabs.f64 (log.f64 base))) (neg.f64 (fabs.f64 (log.f64 base))) #s(literal 0 binary64))
(fma.f64 (fabs.f64 (fabs.f64 (log.f64 base))) (fabs.f64 (fabs.f64 (log.f64 base))) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(fma.f64 (fabs.f64 (fabs.f64 (log.f64 base))) (fabs.f64 (fabs.f64 (log.f64 base))) #s(literal 0 binary64))
(fma.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(fma.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(fma.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (log.f64 base) (log.f64 base) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(fma.f64 (log.f64 base) (log.f64 base) #s(literal 0 binary64))
(-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(fabs.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(+.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(+.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(log.f64 (pow.f64 base (log.f64 base)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(/.f64 (neg.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))) (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im re))))
(/.f64 (neg.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64))) (neg.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))))
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64)) (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)))
(fma.f64 (log.f64 base) (atan2.f64 im re) #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)) (*.f64 (neg.f64 (neg.f64 (log.f64 (hypot.f64 re im)))) #s(literal 0 binary64)))
(-.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (/.f64 #s(literal 0 binary64) (*.f64 (log.f64 base) (atan2.f64 im re))))
(-.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (/.f64 #s(literal 0 binary64) (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 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)))
(+.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 0 binary64))
(log.f64 (pow.f64 base (atan2.f64 im re)))

eval42.0ms (0.8%)

Memory
1.1MiB live, 44.9MiB allocated; 4ms collecting garbage
Compiler

Compiled 6 357 to 1 048 computations (83.5% saved)

prune27.0ms (0.5%)

Memory
-40.0MiB live, 20.8MiB allocated; 8ms collecting garbage
Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New21712229
Fresh000
Picked101
Done000
Total21812230
Accuracy
100.0%
Counts
230 → 12
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.2%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64)) (*.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
86.1%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
81.2%
(/.f64 (/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64)) (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
99.4%
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
54.6%
(/.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 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
99.2%
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.4%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.3%
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
98.7%
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.0%
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.2%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.5%
#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 462 to 314 computations (32% saved)

simplify146.0ms (2.7%)

Memory
19.1MiB live, 110.6MiB allocated; 8ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (log.f64 base) (atan2.f64 im re))
cost-diff0
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
cost-diff2
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
cost-diff3
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
cost-diff0
(log.f64 base)
cost-diff0
(*.f64 (log.f64 base) (atan2.f64 im re))
cost-diff0
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
cost-diff3
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
cost-diff0
(atan2.f64 im re)
cost-diff0
(log.f64 base)
cost-diff0
(*.f64 (log.f64 base) (atan2.f64 im re))
cost-diff5
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
cost-diff0
(atan2.f64 im re)
cost-diff0
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
cost-diff0
(log.f64 base)
cost-diff5
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
cost-diff0
(log.f64 base)
cost-diff0
(atan2.f64 im re)
cost-diff0
(/.f64 (atan2.f64 im re) (log.f64 base))
cost-diff0
#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)))
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035227
049200
192198
2284183
31755181
45200181
08106181
Stop Event
iter limit
node limit
iter limit
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 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(log.f64 base)
base
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
#s(literal 0 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 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)))
(/.f64 (atan2.f64 im re) (log.f64 base))
(atan2.f64 im re)
im
re
(log.f64 base)
base
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (atan2.f64 im re) (log.f64 base))
(log.f64 base)
base
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
#s(literal 0 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)

localize173.0ms (3.2%)

Memory
-10.1MiB live, 88.9MiB allocated; 26ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.38576127930532605
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.4233484786343303
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.5661125488422102
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.9623531740225001
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.4233484786343303
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.4373932611194129
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.5661125488422102
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.9623531740225001
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.0
(log.f64 base)
accuracy0.3359375
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.4233484786343303
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.5661125488422102
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.0
(log.f64 base)
accuracy0.33203125
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.352850219568436
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
accuracy0.5661125488422102
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.0
(atan2.f64 im re)
accuracy0.0
(log.f64 base)
accuracy0.0
#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)))
accuracy0.31640625
(/.f64 (atan2.f64 im re) (log.f64 base))
Samples
94.0ms256×0valid
Compiler

Compiled 224 to 31 computations (86.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 75.0ms
ival-div: 45.0ms (59.9% of total)
ival-mult: 9.0ms (12% of total)
ival-log: 5.0ms (6.7% of total)
ival-hypot: 4.0ms (5.3% of total)
ival-pow: 3.0ms (4% of total)
ival-atan2: 2.0ms (2.7% of total)
ival-sub: 2.0ms (2.7% of total)
ival-pow2: 2.0ms (2.7% of total)
ival-add: 1.0ms (1.3% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series100.0ms (1.8%)

Memory
44.5MiB live, 132.6MiB allocated; 10ms collecting garbage
Counts
15 → 25
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)
(log.f64 base)
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
Outputs
(/ (atan2 im re) (log base))
(atan2 im re)
(/ (atan2 im re) (pow (log base) 2))
(* (log base) (atan2 im re))
(/ (atan2 im re) (pow (log base) 3))
(* (pow (log base) 3) (atan2 im re))
(log base)
(pow (log base) 2)
(pow (log base) 4)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(* -1 (log (/ 1 base)))
(/ (atan2 im re) (pow (log (/ 1 base)) 2))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 3)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(pow (log (/ 1 base)) 2)
(pow (log (/ 1 base)) 4)
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(+ (log -1) (* -1 (log (/ -1 base))))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
Calls

9 calls:

TimeVariablePointExpression
22.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) (log base) (* (log base) (/ (atan2 im re) (pow (log base) 2))) (/ (atan2 im re) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 2)) (* (log base) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (pow (log base) 2) (pow (log base) 4))
17.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)) (atan2 im re) (log base) (* (log base) (/ (atan2 im re) (pow (log base) 2))) (/ (atan2 im re) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 2)) (* (log base) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (pow (log base) 2) (pow (log base) 4))
10.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) (log base) (* (log base) (/ (atan2 im re) (pow (log base) 2))) (/ (atan2 im re) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 2)) (* (log base) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (pow (log base) 2) (pow (log base) 4))
9.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) (log base) (* (log base) (/ (atan2 im re) (pow (log base) 2))) (/ (atan2 im re) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 2)) (* (log base) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (pow (log base) 2) (pow (log base) 4))
8.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)) (atan2 im re) (log base) (* (log base) (/ (atan2 im re) (pow (log base) 2))) (/ (atan2 im re) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 2)) (* (log base) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (pow (log base) 2) (pow (log base) 4))

simplify183.0ms (3.3%)

Memory
-30.1MiB live, 116.1MiB allocated; 17ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
046190
187182
2214182
3776182
43538182
08275182
Stop Event
iter limit
node limit
Counts
25 → 25
Calls
Call 1
Inputs
(/ (atan2 im re) (log base))
(atan2 im re)
(/ (atan2 im re) (pow (log base) 2))
(* (log base) (atan2 im re))
(/ (atan2 im re) (pow (log base) 3))
(* (pow (log base) 3) (atan2 im re))
(log base)
(pow (log base) 2)
(pow (log base) 4)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(* -1 (log (/ 1 base)))
(/ (atan2 im re) (pow (log (/ 1 base)) 2))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 3)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(pow (log (/ 1 base)) 2)
(pow (log (/ 1 base)) 4)
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(+ (log -1) (* -1 (log (/ -1 base))))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
Outputs
(/ (atan2 im re) (log base))
(/.f64 (atan2.f64 im re) (log.f64 base))
(atan2 im re)
(atan2.f64 im re)
(/ (atan2 im re) (pow (log base) 2))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(* (log base) (atan2 im re))
(*.f64 (log.f64 base) (atan2.f64 im re))
(/ (atan2 im re) (pow (log base) 3))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(* (pow (log base) 3) (atan2 im re))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(log base)
(log.f64 base)
(pow (log base) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow (log base) 4)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(/.f64 (atan2.f64 im re) (log.f64 base))
(* -1 (log (/ 1 base)))
(log.f64 base)
(/ (atan2 im re) (pow (log (/ 1 base)) 2))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 3)))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(pow (log (/ 1 base)) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow (log (/ 1 base)) 4)
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 4 binary64))
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(/.f64 (atan2.f64 im re) (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))))
(+ (log -1) (* -1 (log (/ -1 base))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base)))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64)))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(*.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) (atan2.f64 im re))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 3 binary64)))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(*.f64 (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 3 binary64)) (atan2.f64 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 4 binary64))

rewrite43.0ms (0.8%)

Memory
-6.3MiB live, 40.8MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035157
049140
0180140
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
15 → 61
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)
(log.f64 base)
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 4 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)))
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (log.f64 base)))
(/.f64 (atan2.f64 im re) (log.f64 base))
(atan2.f64 im re)
(log.f64 base)
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im re))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im re))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 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)))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (neg.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 (*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im re))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(*.f64 (log.f64 base) (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))) #s(literal 0 binary64)) (fma.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (+.f64 #s(literal 0 binary64) (*.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)))))
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(*.f64 (log.f64 base) (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))) #s(literal 0 binary64)) (fma.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (+.f64 #s(literal 0 binary64) (*.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)))))
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (neg.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 (*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(*.f64 (pow.f64 (log.f64 base) #s(literal 1 binary64)) (pow.f64 (log.f64 base) #s(literal 1 binary64)))
(*.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)))
(*.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))
(/.f64 (+.f64 (pow.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 3 binary64)) #s(literal 0 binary64)) (+.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (-.f64 #s(literal 0 binary64) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))))
(fma.f64 (pow.f64 (log.f64 base) #s(literal 1 binary64)) (pow.f64 (log.f64 base) #s(literal 1 binary64)) #s(literal 0 binary64))
(fma.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)) #s(literal 0 binary64))
(fma.f64 (log.f64 base) (log.f64 base) #s(literal 0 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(+.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(log.f64 (pow.f64 base (log.f64 base)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 4 binary64)))

eval15.0ms (0.3%)

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

Compiled 3 363 to 371 computations (89% saved)

prune33.0ms (0.6%)

Memory
-15.7MiB live, 30.3MiB allocated; 4ms collecting garbage
Pruning

14 alts after pruning (11 fresh and 3 done)

PrunedKeptTotal
New1635168
Fresh167
Picked235
Done000
Total16614180
Accuracy
100.0%
Counts
180 → 14
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.2%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64)) (*.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
86.1%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
81.2%
(/.f64 (/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64)) (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
99.4%
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
99.3%
(/.f64 (-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.2%
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.4%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.3%
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
98.7%
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
98.9%
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.2%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.1%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))))
99.0%
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.5%
#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 481 to 332 computations (31% saved)

simplify160.0ms (2.9%)

Memory
2.0MiB live, 97.0MiB allocated; 16ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff2
(-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
cost-diff2
(-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64))
cost-diff5
(/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))))
cost-diff5
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))))
cost-diff0
(log.f64 base)
cost-diff0
(*.f64 (log.f64 base) (atan2.f64 im re))
cost-diff0
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
cost-diff3
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
cost-diff0
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
cost-diff0
#s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)))
cost-diff0
(/.f64 (-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
cost-diff2
(-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64))
cost-diff0
(log.f64 base)
cost-diff0
(atan2.f64 im re)
cost-diff2
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
cost-diff3
(/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
cost-diff0
(log.f64 base)
cost-diff0
(*.f64 (log.f64 base) (atan2.f64 im re))
cost-diff0
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
cost-diff6
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base))
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
035294
056262
193253
2156238
3318232
4966227
54750227
08253227
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(atan2.f64 im re)
im
re
(/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(log.f64 base)
base
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(/.f64 (-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64))
#s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(log.f64 base)
base
#s(literal 3 binary64)
(atan2.f64 im re)
im
re
#s(literal 0 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 6 binary64))
#s(literal 6 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))))
(log.f64 base)
base
(/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))))
(atan2.f64 im re)
im
re
(/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))
(-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
#s(literal 0 binary64)
(-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
Outputs
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(/.f64 (atan2.f64 im re) (log.f64 base))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base))
(atan2.f64 im re)
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (atan2.f64 im re) (log.f64 base))
(atan2.f64 im re)
im
re
(/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(log.f64 base)
base
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(/.f64 (-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64))
#s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)))
#s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(log.f64 base)
base
#s(literal 3 binary64)
(atan2.f64 im re)
im
re
#s(literal 0 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 5 binary64)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (atan2.f64 im re))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 6 binary64))
#s(literal 6 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))))
(/.f64 (atan2.f64 im re) (log.f64 base))
(log.f64 base)
base
(/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(atan2.f64 im re)
im
re
(/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
#s(literal 0 binary64)
(-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #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)

localize112.0ms (2%)

Memory
-25.2MiB live, 169.1MiB allocated; 28ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.352850219568436
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))))
accuracy0.510097509768442
(/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))
accuracy0.5661125488422102
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.9623531740225001
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.4233484786343303
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.5854733797380658
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
accuracy0.9623531740225001
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy1.2699649160609932
(pow.f64 (log.f64 base) #s(literal 6 binary64))
accuracy0.37337875976844204
(/.f64 (-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
accuracy0.43031270141929207
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
accuracy0.7866365235163768
(pow.f64 (log.f64 base) #s(literal 3 binary64))
accuracy0.9623531740225001
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.0
(log.f64 base)
accuracy0.30078125
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
accuracy0.366230029305326
(/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.5661125488422102
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.0
(log.f64 base)
accuracy0.31640625
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
accuracy0.40234375
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base))
accuracy0.4233484786343303
(*.f64 (log.f64 base) (atan2.f64 im re))
Samples
71.0ms256×0valid
Compiler

Compiled 269 to 32 computations (88.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 50.0ms
ival-pow: 21.0ms (41.8% of total)
ival-div: 9.0ms (17.9% of total)
ival-mult: 8.0ms (15.9% of total)
ival-sub: 3.0ms (6% of total)
ival-log: 3.0ms (6% of total)
ival-atan2: 2.0ms (4% of total)
ival-pow2: 2.0ms (4% of total)
exact: 1.0ms (2% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series105.0ms (1.9%)

Memory
15.7MiB live, 205.3MiB allocated; 31ms collecting garbage
Counts
22 → 34
Calls
Call 1
Inputs
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
(/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(atan2.f64 im re)
(-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64))
(/.f64 (-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
#s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))))
(/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))))
(-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64))
(-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(pow.f64 (log.f64 base) #s(literal 6 binary64))
(/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))
Outputs
(atan2 im re)
(/ (atan2 im re) (log base))
(* (log base) (atan2 im re))
(* (pow (log base) 3) (atan2 im re))
(/ (atan2 im re) (pow (log base) 5))
(/ (atan2 im re) (pow (log base) 2))
(log base)
(/ 1 (log base))
(pow (log base) 4)
(pow (log base) 2)
(pow (log base) 3)
(pow (log base) 6)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(* -1 (log (/ 1 base)))
(/ -1 (log (/ 1 base)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 5)))
(/ (atan2 im re) (pow (log (/ 1 base)) 2))
(pow (log (/ 1 base)) 4)
(pow (log (/ 1 base)) 2)
(* -1 (pow (log (/ 1 base)) 3))
(pow (log (/ 1 base)) 6)
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(+ (log -1) (* -1 (log (/ -1 base))))
(/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 5))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 6)
Calls

9 calls:

TimeVariablePointExpression
18.0ms
re
@-inf
((/ (* (log base) (atan2 im re)) (log base)) (/ (/ (* (log base) (atan2 im re)) (log base)) (log base)) (* (log base) (atan2 im re)) (log base) (/ (log base) (pow (log base) 2)) (* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (* (pow (log base) 3) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (* (log base) (/ (atan2 im re) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))) (/ (atan2 im re) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0))) (- (pow (log base) 4) 0) (- (pow (log base) 2) 0) (pow (log base) 2) (pow (log base) 4) (pow (log base) 3) (pow (log base) 6) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))
16.0ms
base
@0
((/ (* (log base) (atan2 im re)) (log base)) (/ (/ (* (log base) (atan2 im re)) (log base)) (log base)) (* (log base) (atan2 im re)) (log base) (/ (log base) (pow (log base) 2)) (* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (* (pow (log base) 3) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (* (log base) (/ (atan2 im re) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))) (/ (atan2 im re) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0))) (- (pow (log base) 4) 0) (- (pow (log base) 2) 0) (pow (log base) 2) (pow (log base) 4) (pow (log base) 3) (pow (log base) 6) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))
15.0ms
base
@-inf
((/ (* (log base) (atan2 im re)) (log base)) (/ (/ (* (log base) (atan2 im re)) (log base)) (log base)) (* (log base) (atan2 im re)) (log base) (/ (log base) (pow (log base) 2)) (* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (* (pow (log base) 3) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (* (log base) (/ (atan2 im re) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))) (/ (atan2 im re) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0))) (- (pow (log base) 4) 0) (- (pow (log base) 2) 0) (pow (log base) 2) (pow (log base) 4) (pow (log base) 3) (pow (log base) 6) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))
11.0ms
base
@inf
((/ (* (log base) (atan2 im re)) (log base)) (/ (/ (* (log base) (atan2 im re)) (log base)) (log base)) (* (log base) (atan2 im re)) (log base) (/ (log base) (pow (log base) 2)) (* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (* (pow (log base) 3) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (* (log base) (/ (atan2 im re) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))) (/ (atan2 im re) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0))) (- (pow (log base) 4) 0) (- (pow (log base) 2) 0) (pow (log base) 2) (pow (log base) 4) (pow (log base) 3) (pow (log base) 6) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))
10.0ms
im
@inf
((/ (* (log base) (atan2 im re)) (log base)) (/ (/ (* (log base) (atan2 im re)) (log base)) (log base)) (* (log base) (atan2 im re)) (log base) (/ (log base) (pow (log base) 2)) (* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (* (pow (log base) 3) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (* (log base) (/ (atan2 im re) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))) (/ (atan2 im re) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0))) (- (pow (log base) 4) 0) (- (pow (log base) 2) 0) (pow (log base) 2) (pow (log base) 4) (pow (log base) 3) (pow (log base) 6) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))

simplify181.0ms (3.3%)

Memory
15.1MiB live, 157.2MiB allocated; 12ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
058247
1100236
2222236
3748236
43076236
08104236
Stop Event
iter limit
node limit
Counts
34 → 34
Calls
Call 1
Inputs
(atan2 im re)
(/ (atan2 im re) (log base))
(* (log base) (atan2 im re))
(* (pow (log base) 3) (atan2 im re))
(/ (atan2 im re) (pow (log base) 5))
(/ (atan2 im re) (pow (log base) 2))
(log base)
(/ 1 (log base))
(pow (log base) 4)
(pow (log base) 2)
(pow (log base) 3)
(pow (log base) 6)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(* -1 (log (/ 1 base)))
(/ -1 (log (/ 1 base)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 5)))
(/ (atan2 im re) (pow (log (/ 1 base)) 2))
(pow (log (/ 1 base)) 4)
(pow (log (/ 1 base)) 2)
(* -1 (pow (log (/ 1 base)) 3))
(pow (log (/ 1 base)) 6)
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(+ (log -1) (* -1 (log (/ -1 base))))
(/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 5))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 6)
Outputs
(atan2 im re)
(atan2.f64 im re)
(/ (atan2 im re) (log base))
(/.f64 (atan2.f64 im re) (log.f64 base))
(* (log base) (atan2 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(* (pow (log base) 3) (atan2 im re))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(/ (atan2 im re) (pow (log base) 5))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))
(/ (atan2 im re) (pow (log base) 2))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(log base)
(log.f64 base)
(/ 1 (log base))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(pow (log base) 4)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(pow (log base) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow (log base) 3)
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(pow (log base) 6)
(pow.f64 (log.f64 base) #s(literal 6 binary64))
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(/.f64 (atan2.f64 im re) (log.f64 base))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(*.f64 (atan2.f64 im re) (log.f64 base))
(* -1 (log (/ 1 base)))
(log.f64 base)
(/ -1 (log (/ 1 base)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 5)))
(/.f64 (neg.f64 (atan2.f64 im re)) (pow.f64 (neg.f64 (log.f64 base)) #s(literal 5 binary64)))
(/ (atan2 im re) (pow (log (/ 1 base)) 2))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow (log (/ 1 base)) 4)
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 4 binary64))
(pow (log (/ 1 base)) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(* -1 (pow (log (/ 1 base)) 3))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(pow (log (/ 1 base)) 6)
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 6 binary64))
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(/.f64 (atan2.f64 im re) (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(*.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) (atan2.f64 im re))
(+ (log -1) (* -1 (log (/ -1 base))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base)))
(/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))
(/.f64 #s(literal -1 binary64) (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) base)) (log.f64 #s(literal -1 binary64))))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(*.f64 (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 3 binary64)) (atan2.f64 im re))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 5))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 5 binary64)))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64)))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 4 binary64))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 3 binary64))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 6)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 6 binary64))

rewrite42.0ms (0.8%)

Memory
-11.0MiB live, 34.9MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035232
056211
0168211
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
22 → 81
Calls
Call 1
Inputs
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
(/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(atan2.f64 im re)
(-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64))
(/.f64 (-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
#s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))))
(/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))))
(-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64))
(-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(pow.f64 (log.f64 base) #s(literal 6 binary64))
(/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))
Outputs
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (log.f64 base)))
(/.f64 (neg.f64 (*.f64 (atan2.f64 im re) (log.f64 base))) (neg.f64 (log.f64 base)))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base))
(*.f64 (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (neg.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base))) (neg.f64 (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)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
(/.f64 (neg.f64 (log.f64 base)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (neg.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (log.f64 base))) (neg.f64 (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)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(atan2.f64 im re)
#s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)))
(/.f64 (-.f64 (*.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)))) #s(literal 0 binary64)) (+.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)))
(/.f64 (-.f64 (pow.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) (+.f64 #s(literal 0 binary64) (*.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)))))
(-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64))
(/.f64 (neg.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 (/.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
#s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)))
(/.f64 (-.f64 (*.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)))) #s(literal 0 binary64)) (+.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)))
(/.f64 (-.f64 (pow.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) (+.f64 #s(literal 0 binary64) (*.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)))))
(-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(*.f64 (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(/.f64 (neg.f64 (*.f64 (atan2.f64 im re) (log.f64 base))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(*.f64 (/.f64 (atan2.f64 im re) (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))) (log.f64 base))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(/.f64 (atan2.f64 im re) (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(/.f64 (-.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) #s(literal 0 binary64)) (+.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)))
(/.f64 (-.f64 (pow.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)) (+.f64 #s(literal 0 binary64) (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)))))
(-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 4 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 1 binary64)) (pow.f64 (log.f64 base) #s(literal 1 binary64)))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(/.f64 (-.f64 (pow.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 3 binary64)) #s(literal 0 binary64)) (+.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (+.f64 #s(literal 0 binary64) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))))
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (fma.f64 (log.f64 base) (log.f64 base) #s(literal 0 binary64)))
(-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 1 binary64)) (pow.f64 (log.f64 base) #s(literal 1 binary64)))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(/.f64 (-.f64 (pow.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 3 binary64)) #s(literal 0 binary64)) (+.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (+.f64 #s(literal 0 binary64) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))))
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (fma.f64 (log.f64 base) (log.f64 base) #s(literal 0 binary64)))
(-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(/.f64 (-.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) #s(literal 0 binary64)) (+.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)))
(/.f64 (-.f64 (pow.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)) (+.f64 #s(literal 0 binary64) (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)))))
(-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 4 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3/2 binary64)) (pow.f64 (log.f64 base) #s(literal 3/2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (log.f64 base))
(*.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 3 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(pow.f64 (log.f64 base) #s(literal 6 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 6 binary64)))
(/.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(-.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64))))

eval11.0ms (0.2%)

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

Compiled 2 860 to 377 computations (86.8% saved)

prune30.0ms (0.6%)

Memory
-15.1MiB live, 29.8MiB allocated; 3ms collecting garbage
Pruning

16 alts after pruning (11 fresh and 5 done)

PrunedKeptTotal
New1227129
Fresh246
Picked325
Done033
Total12716143
Accuracy
100.0%
Counts
143 → 16
Alt Table
Click to see full alt table
StatusAccuracyProgram
86.1%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.4%
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
99.1%
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.2%
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.4%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.3%
(/.f64 #s(approx (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.3%
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.4%
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
98.5%
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
98.6%
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
98.9%
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.2%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
52.5%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))))))
98.9%
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.0%
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.5%
#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 498 to 359 computations (27.9% saved)

simplify113.0ms (2.1%)

Memory
22.7MiB live, 172.1MiB allocated; 12ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(log.f64 base)
cost-diff0
(atan2.f64 im re)
cost-diff0
(*.f64 (atan2.f64 im re) (log.f64 base))
cost-diff3
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
cost-diff0
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
cost-diff0
(log.f64 base)
cost-diff0
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
cost-diff3
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
cost-diff0
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
cost-diff0
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
cost-diff0
(log.f64 base)
cost-diff3
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
cost-diff0
(atan2.f64 im re)
cost-diff0
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
cost-diff0
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
cost-diff0
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
cost-diff0
(/.f64 #s(literal 1 binary64) (log.f64 base))
cost-diff0
#s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
cost-diff0
(atan2.f64 im re)
cost-diff0
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
036269
057269
182263
2146254
3293254
4708254
52116254
08262254
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
(atan2.f64 im re)
im
re
#s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
#s(literal 1 binary64)
(log.f64 base)
base
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(log.f64 base)
base
#s(literal 3 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(log.f64 base)
base
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(log.f64 base)
base
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 6 binary64))
#s(literal 6 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (atan2.f64 im re) (log.f64 base))
(atan2.f64 im re)
im
re
(log.f64 base)
base
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
Outputs
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
(*.f64 #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))) (atan2.f64 im re))
(atan2.f64 im re)
im
re
#s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
#s(literal 1 binary64)
(log.f64 base)
base
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(log.f64 base)
base
#s(literal 3 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (atan2.f64 im re))
(log.f64 base)
base
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 5 binary64)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base))
(log.f64 base)
base
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 6 binary64))
#s(literal 6 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(atan2.f64 im re)
im
re
(log.f64 base)
base
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)

localize118.0ms (2.2%)

Memory
-21.8MiB live, 211.4MiB allocated; 39ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.4233484786343303
(*.f64 (atan2.f64 im re) (log.f64 base))
accuracy0.510097509768442
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.5661125488422102
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.9623531740225001
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.4154663642707082
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
accuracy0.5854733797380658
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
accuracy0.9623531740225001
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy1.2699649160609932
(pow.f64 (log.f64 base) #s(literal 6 binary64))
accuracy0.352850219568436
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
accuracy0.4173644223441667
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.5661125488422102
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.9623531740225001
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.27734375
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
accuracy0.4373932611194129
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.5661125488422102
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.7866365235163768
(pow.f64 (log.f64 base) #s(literal 3 binary64))
accuracy0.0
(log.f64 base)
accuracy0.0
#s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
accuracy0.30078125
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
accuracy0.33203125
(/.f64 #s(literal 1 binary64) (log.f64 base))
Samples
69.0ms256×0valid
Compiler

Compiled 243 to 32 computations (86.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 49.0ms
ival-div: 17.0ms (34.7% of total)
ival-mult: 11.0ms (22.5% of total)
ival-pow: 9.0ms (18.4% of total)
ival-atan2: 5.0ms (10.2% of total)
ival-log: 3.0ms (6.1% of total)
ival-pow2: 2.0ms (4.1% of total)
exact: 1.0ms (2% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series142.0ms (2.6%)

Memory
18.9MiB live, 215.7MiB allocated; 117ms collecting garbage
Counts
21 → 40
Calls
Call 1
Inputs
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
(atan2.f64 im re)
#s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(log.f64 base)
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (atan2.f64 im re) (log.f64 base))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(pow.f64 (log.f64 base) #s(literal 6 binary64))
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
Outputs
(/ (atan2 im re) (log base))
(atan2 im re)
(/ (atan2 im re) (pow (log base) 3))
(/ (atan2 im re) (pow (log base) 2))
(/ (atan2 im re) (pow (log base) 4))
(/ (atan2 im re) (pow (log base) 5))
(/ (atan2 im re) (pow (log base) 6))
(* (log base) (atan2 im re))
(/ 1 (log base))
(log base)
(pow (log base) 3)
(pow (log base) 2)
(pow (log base) 4)
(pow (log base) 6)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(/ -1 (log (/ 1 base)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 3)))
(* -1 (log (/ 1 base)))
(/ (atan2 im re) (pow (log (/ 1 base)) 2))
(/ (atan2 im re) (pow (log (/ 1 base)) 4))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 5)))
(/ (atan2 im re) (pow (log (/ 1 base)) 6))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(* -1 (pow (log (/ 1 base)) 3))
(pow (log (/ 1 base)) 2)
(pow (log (/ 1 base)) 4)
(pow (log (/ 1 base)) 6)
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3))
(+ (log -1) (* -1 (log (/ -1 base))))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 4))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 5))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 6))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 6)
Calls

9 calls:

TimeVariablePointExpression
52.0ms
im
@0
((* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (/ (log base) (pow (log base) 2)) (/ 1 (log base)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (atan2 im re) (pow (log base) 3)) (* (log base) (* (/ (atan2 im re) (pow (log base) 4)) (pow (log base) 2))) (log base) (* (/ (atan2 im re) (pow (log base) 4)) (pow (log base) 2)) (/ (atan2 im re) (pow (log base) 4)) (* (* (log base) (/ (atan2 im re) (pow (log base) 6))) (pow (log base) 4)) (* (log base) (/ (atan2 im re) (pow (log base) 6))) (/ (atan2 im re) (pow (log base) 6)) (/ (* (atan2 im re) (log base)) (/ (pow (log base) 4) (pow (log base) 2))) (* (atan2 im re) (log base)) (pow (log base) 3) (pow (log base) 2) (pow (log base) 4) (pow (log base) 6) (/ (pow (log base) 4) (pow (log base) 2)))
13.0ms
base
@inf
((* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (/ (log base) (pow (log base) 2)) (/ 1 (log base)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (atan2 im re) (pow (log base) 3)) (* (log base) (* (/ (atan2 im re) (pow (log base) 4)) (pow (log base) 2))) (log base) (* (/ (atan2 im re) (pow (log base) 4)) (pow (log base) 2)) (/ (atan2 im re) (pow (log base) 4)) (* (* (log base) (/ (atan2 im re) (pow (log base) 6))) (pow (log base) 4)) (* (log base) (/ (atan2 im re) (pow (log base) 6))) (/ (atan2 im re) (pow (log base) 6)) (/ (* (atan2 im re) (log base)) (/ (pow (log base) 4) (pow (log base) 2))) (* (atan2 im re) (log base)) (pow (log base) 3) (pow (log base) 2) (pow (log base) 4) (pow (log base) 6) (/ (pow (log base) 4) (pow (log base) 2)))
13.0ms
im
@-inf
((* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (/ (log base) (pow (log base) 2)) (/ 1 (log base)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (atan2 im re) (pow (log base) 3)) (* (log base) (* (/ (atan2 im re) (pow (log base) 4)) (pow (log base) 2))) (log base) (* (/ (atan2 im re) (pow (log base) 4)) (pow (log base) 2)) (/ (atan2 im re) (pow (log base) 4)) (* (* (log base) (/ (atan2 im re) (pow (log base) 6))) (pow (log base) 4)) (* (log base) (/ (atan2 im re) (pow (log base) 6))) (/ (atan2 im re) (pow (log base) 6)) (/ (* (atan2 im re) (log base)) (/ (pow (log base) 4) (pow (log base) 2))) (* (atan2 im re) (log base)) (pow (log base) 3) (pow (log base) 2) (pow (log base) 4) (pow (log base) 6) (/ (pow (log base) 4) (pow (log base) 2)))
12.0ms
re
@inf
((* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (/ (log base) (pow (log base) 2)) (/ 1 (log base)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (atan2 im re) (pow (log base) 3)) (* (log base) (* (/ (atan2 im re) (pow (log base) 4)) (pow (log base) 2))) (log base) (* (/ (atan2 im re) (pow (log base) 4)) (pow (log base) 2)) (/ (atan2 im re) (pow (log base) 4)) (* (* (log base) (/ (atan2 im re) (pow (log base) 6))) (pow (log base) 4)) (* (log base) (/ (atan2 im re) (pow (log base) 6))) (/ (atan2 im re) (pow (log base) 6)) (/ (* (atan2 im re) (log base)) (/ (pow (log base) 4) (pow (log base) 2))) (* (atan2 im re) (log base)) (pow (log base) 3) (pow (log base) 2) (pow (log base) 4) (pow (log base) 6) (/ (pow (log base) 4) (pow (log base) 2)))
11.0ms
base
@-inf
((* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (/ (log base) (pow (log base) 2)) (/ 1 (log base)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (atan2 im re) (pow (log base) 3)) (* (log base) (* (/ (atan2 im re) (pow (log base) 4)) (pow (log base) 2))) (log base) (* (/ (atan2 im re) (pow (log base) 4)) (pow (log base) 2)) (/ (atan2 im re) (pow (log base) 4)) (* (* (log base) (/ (atan2 im re) (pow (log base) 6))) (pow (log base) 4)) (* (log base) (/ (atan2 im re) (pow (log base) 6))) (/ (atan2 im re) (pow (log base) 6)) (/ (* (atan2 im re) (log base)) (/ (pow (log base) 4) (pow (log base) 2))) (* (atan2 im re) (log base)) (pow (log base) 3) (pow (log base) 2) (pow (log base) 4) (pow (log base) 6) (/ (pow (log base) 4) (pow (log base) 2)))

simplify144.0ms (2.6%)

Memory
-29.6MiB live, 111.3MiB allocated; 12ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
064309
1103296
2223296
3640296
42765296
08111296
Stop Event
iter limit
node limit
Counts
40 → 40
Calls
Call 1
Inputs
(/ (atan2 im re) (log base))
(atan2 im re)
(/ (atan2 im re) (pow (log base) 3))
(/ (atan2 im re) (pow (log base) 2))
(/ (atan2 im re) (pow (log base) 4))
(/ (atan2 im re) (pow (log base) 5))
(/ (atan2 im re) (pow (log base) 6))
(* (log base) (atan2 im re))
(/ 1 (log base))
(log base)
(pow (log base) 3)
(pow (log base) 2)
(pow (log base) 4)
(pow (log base) 6)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(/ -1 (log (/ 1 base)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 3)))
(* -1 (log (/ 1 base)))
(/ (atan2 im re) (pow (log (/ 1 base)) 2))
(/ (atan2 im re) (pow (log (/ 1 base)) 4))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 5)))
(/ (atan2 im re) (pow (log (/ 1 base)) 6))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(* -1 (pow (log (/ 1 base)) 3))
(pow (log (/ 1 base)) 2)
(pow (log (/ 1 base)) 4)
(pow (log (/ 1 base)) 6)
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3))
(+ (log -1) (* -1 (log (/ -1 base))))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 4))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 5))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 6))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 6)
Outputs
(/ (atan2 im re) (log base))
(/.f64 (atan2.f64 im re) (log.f64 base))
(atan2 im re)
(atan2.f64 im re)
(/ (atan2 im re) (pow (log base) 3))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(/ (atan2 im re) (pow (log base) 2))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/ (atan2 im re) (pow (log base) 4))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/ (atan2 im re) (pow (log base) 5))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))
(/ (atan2 im re) (pow (log base) 6))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(* (log base) (atan2 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(/ 1 (log base))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(log base)
(log.f64 base)
(pow (log base) 3)
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(pow (log base) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow (log base) 4)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(pow (log base) 6)
(pow.f64 (log.f64 base) #s(literal 6 binary64))
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(/.f64 (atan2.f64 im re) (log.f64 base))
(/ -1 (log (/ 1 base)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 3)))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(* -1 (log (/ 1 base)))
(log.f64 base)
(/ (atan2 im re) (pow (log (/ 1 base)) 2))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/ (atan2 im re) (pow (log (/ 1 base)) 4))
(/.f64 (atan2.f64 im re) (pow.f64 (neg.f64 (log.f64 base)) #s(literal 4 binary64)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 5)))
(/.f64 (neg.f64 (atan2.f64 im re)) (pow.f64 (neg.f64 (log.f64 base)) #s(literal 5 binary64)))
(/ (atan2 im re) (pow (log (/ 1 base)) 6))
(/.f64 (atan2.f64 im re) (pow.f64 (neg.f64 (log.f64 base)) #s(literal 6 binary64)))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(*.f64 (atan2.f64 im re) (log.f64 base))
(* -1 (pow (log (/ 1 base)) 3))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(pow (log (/ 1 base)) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow (log (/ 1 base)) 4)
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 4 binary64))
(pow (log (/ 1 base)) 6)
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 6 binary64))
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(/.f64 (atan2.f64 im re) (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))))
(/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))
(/.f64 #s(literal -1 binary64) (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) base)) (log.f64 #s(literal -1 binary64))))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 3 binary64)))
(+ (log -1) (* -1 (log (/ -1 base))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base)))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64)))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 4))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 4 binary64)))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 5))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 5 binary64)))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 6))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 6 binary64)))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(*.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) (atan2.f64 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 3 binary64))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 4 binary64))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 6)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 6 binary64))

rewrite71.0ms (1.3%)

Memory
33.2MiB live, 80.2MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036209
057189
1127189
0540189
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
21 → 285
Calls
Call 1
Inputs
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
(atan2.f64 im re)
#s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(log.f64 base)
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (atan2.f64 im re) (log.f64 base))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(pow.f64 (log.f64 base) #s(literal 6 binary64))
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
Outputs
(*.f64 #s(approx (/ (log base) (pow (log base) 2)) (pow.f64 (log.f64 base) #s(literal -1 binary64))) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (pow.f64 (log.f64 base) #s(literal -1 binary64))))
(atan2.f64 im re)
#s(approx (/ (log base) (pow (log base) 2)) (pow.f64 (log.f64 base) #s(literal -1 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal -1/2 binary64)) (pow.f64 (log.f64 base) #s(literal -1/2 binary64)))
(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 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (log.f64 base)))
(neg.f64 (/.f64 #s(literal -1 binary64) (log.f64 base)))
(neg.f64 (/.f64 #s(literal 1 binary64) (neg.f64 (log.f64 base))))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal -1 binary64)))
(*.f64 (*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (log.f64 base)) (log.f64 base))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))))
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (log.f64 base) (*.f64 (log.f64 base) #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))))
(/.f64 (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(/.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3/2 binary64))) (pow.f64 (log.f64 base) #s(literal 3/2 binary64)))
(/.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))
(/.f64 (/.f64 (atan2.f64 im re) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (neg.f64 (neg.f64 (atan2.f64 im re))) (neg.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)))))
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(neg.f64 (/.f64 (neg.f64 (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(neg.f64 (/.f64 (atan2.f64 im re) (neg.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)))))
(*.f64 (*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (log.f64 base)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.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 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (*.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base))))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(/.f64 (*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (atan2.f64 im re)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (log.f64 base) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(/.f64 (neg.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(/.f64 (*.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(/.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(neg.f64 (/.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(neg.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(log.f64 (pow.f64 base (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(*.f64 (pow.f64 (log.f64 base) #s(literal 1/2 binary64)) (pow.f64 (log.f64 base) #s(literal 1/2 binary64)))
(pow.f64 (log.f64 base) #s(literal 1 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 1 binary64)))
(log.f64 base)
(*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (/.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)) (log.f64 base))
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)))
(*.f64 (atan2.f64 im re) (/.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (neg.f64 (atan2.f64 im re))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (neg.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (atan2.f64 im re))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(/.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(/.f64 (*.f64 (atan2.f64 im re) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(/.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(/.f64 (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (atan2.f64 im re))) (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))))
(/.f64 (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (atan2.f64 im re)) (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (neg.f64 (atan2.f64 im re))) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (neg.f64 (neg.f64 (atan2.f64 im re))) (neg.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))))
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(neg.f64 (/.f64 (neg.f64 (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(neg.f64 (/.f64 (atan2.f64 im re) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))))
(*.f64 (*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (log.f64 base)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.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 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (*.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base))))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(/.f64 (*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (atan2.f64 im re)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (log.f64 base) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(/.f64 (neg.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(/.f64 (*.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(/.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(neg.f64 (/.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(neg.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(log.f64 (pow.f64 base (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(*.f64 (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 3 binary64))) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 3 binary64))) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(/.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(log.f64 (pow.f64 base (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))))
(/.f64 (neg.f64 (neg.f64 (atan2.f64 im re))) (neg.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64)))))
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(/.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(neg.f64 (/.f64 (neg.f64 (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(neg.f64 (/.f64 (atan2.f64 im re) (neg.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64)))))
(*.f64 (*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (log.f64 base)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.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 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (*.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))
(*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (log.f64 base))))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(/.f64 (*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (atan2.f64 im re)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (log.f64 base) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(/.f64 (neg.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(/.f64 (*.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
(/.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(neg.f64 (/.f64 (*.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(neg.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
(log.f64 (pow.f64 base (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 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)))
(*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 3/2 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 3/2 binary64))))
(*.f64 (fabs.f64 (pow.f64 (log.f64 base) #s(literal 3/2 binary64))) (fabs.f64 (pow.f64 (log.f64 base) #s(literal 3/2 binary64))))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3/2 binary64)) (pow.f64 (log.f64 base) #s(literal 3/2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (log.f64 base))
(*.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (exp.f64 (log.f64 (log.f64 base))) #s(literal 3 binary64))
(pow.f64 (pow.f64 (log.f64 base) #s(literal 3/2 binary64)) #s(literal 2 binary64))
(pow.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 3/2 binary64))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(/.f64 (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (log.f64 base)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (log.f64 base) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 3 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 3 binary64))) (sinh.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 3 binary64))))
(log.f64 (pow.f64 base (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (log.f64 base)) (/.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (log.f64 base)))
(*.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)))
(*.f64 (exp.f64 (log.f64 (log.f64 base))) (exp.f64 (log.f64 (log.f64 base))))
(*.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (/.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (exp.f64 (log.f64 (log.f64 base))) #s(literal 2 binary64))
(pow.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 1 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(/.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (log.f64 base)) (log.f64 base))
(/.f64 (neg.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(neg.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(exp.f64 (-.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 4 binary64)) (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))) (sinh.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))))
(log.f64 (pow.f64 base (log.f64 base)))
(*.f64 (fabs.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))) (fabs.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (log.f64 base))
(*.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(pow.f64 (exp.f64 (log.f64 (log.f64 base))) #s(literal 4 binary64))
(pow.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(/.f64 (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(exp.f64 (fma.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64) (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))))
(exp.f64 (*.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 4 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 4 binary64))) (sinh.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 4 binary64))))
(*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (pow.f64 (log.f64 base) #s(literal 3/2 binary64))) (pow.f64 (log.f64 base) #s(literal 3/2 binary64)))
(*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))
(*.f64 (fabs.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64))) (fabs.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3/2 binary64)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3/2 binary64)) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(*.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(*.f64 (log.f64 base) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(pow.f64 (exp.f64 (log.f64 (log.f64 base))) #s(literal 6 binary64))
(pow.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 3 binary64))
(pow.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 6 binary64))
(exp.f64 (fma.f64 (log.f64 (log.f64 base)) #s(literal 3 binary64) (*.f64 (log.f64 (log.f64 base)) #s(literal 3 binary64))))
(exp.f64 (*.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 3 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 6 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 6 binary64))) (sinh.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 6 binary64))))
(*.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (log.f64 base)) (/.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (log.f64 base)))
(*.f64 (fabs.f64 (log.f64 base)) (fabs.f64 (log.f64 base)))
(*.f64 (exp.f64 (log.f64 (log.f64 base))) (exp.f64 (log.f64 (log.f64 base))))
(*.f64 (neg.f64 (log.f64 base)) (neg.f64 (log.f64 base)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (/.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (exp.f64 (log.f64 (log.f64 base))) #s(literal 2 binary64))
(pow.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 1 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(/.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (log.f64 base)) (log.f64 base))
(/.f64 (neg.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(neg.f64 (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(exp.f64 (-.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 4 binary64)) (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))) (sinh.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))))
(log.f64 (pow.f64 base (log.f64 base)))

eval44.0ms (0.8%)

Memory
-2.1MiB live, 93.3MiB allocated; 13ms collecting garbage
Compiler

Compiled 8 510 to 1 015 computations (88.1% saved)

prune19.0ms (0.4%)

Memory
8.7MiB live, 55.7MiB allocated; 3ms collecting garbage
Pruning

18 alts after pruning (9 fresh and 9 done)

PrunedKeptTotal
New3806386
Fresh336
Picked145
Done055
Total38418402
Accuracy
100.0%
Counts
402 → 18
Alt Table
Click to see full alt table
StatusAccuracyProgram
86.1%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.4%
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
99.1%
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.2%
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.4%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.3%
(/.f64 #s(approx (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.3%
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
53.4%
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (log.f64 base) #s(literal 1/2 binary64)) (pow.f64 (log.f64 base) #s(literal 1/2 binary64))))))
99.4%
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
53.4%
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal -1/2 binary64)) (pow.f64 (log.f64 base) #s(literal -1/2 binary64)))))
53.1%
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal -1 binary64)))))
98.5%
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (log.f64 base)))
99.2%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.1%
(*.f64 (log.f64 base) (/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
98.9%
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
52.3%
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))))
99.0%
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.5%
#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 941 to 376 computations (60% saved)

regimes42.0ms (0.8%)

Memory
-1.7MiB live, 91.4MiB allocated; 6ms collecting garbage
Accuracy

Total -48.9b remaining (-15439.9%)

Threshold costs -48.9b (-15439.9%)

Counts
31 → 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)))
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal -1 binary64)))))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal -1/2 binary64)) (pow.f64 (log.f64 base) #s(literal -1/2 binary64)))))
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 #s(approx (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (log.f64 base) #s(literal 1/2 binary64)) (pow.f64 (log.f64 base) #s(literal 1/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))))
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (log.f64 base) (/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))))
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64)))))
(*.f64 (log.f64 base) (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))))
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 6 binary64)))) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (log.f64 base)))
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 binary64)) (exp.f64 (*.f64 (log.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 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64)) (*.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64)) (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 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:

10.0ms
re
7.0ms
base
7.0ms
im
7.0ms
(log.f64 base)
7.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.5%1(log.f64 base)
99.5%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.5%1re
99.5%1im
99.5%1base
Compiler

Compiled 33 to 31 computations (6.1% saved)

simplify72.0ms (1.3%)

Memory
-27.0MiB live, 71.7MiB allocated; 11ms collecting garbage
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02221
15819
222915
3179713
4632113
Stop Event
node limit
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)))
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)))

derivations37.0ms (0.7%)

Memory
-16.4MiB live, 31.0MiB allocated; 2ms collecting garbage
Stop Event
fuel
Compiler

Compiled 35 to 22 computations (37.1% saved)

preprocess12.0ms (0.2%)

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

Compiled 126 to 80 computations (36.5% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...