math.log/2 on complex, imaginary part

Time bar (total: 6.8s)

start0.0ms (0%)

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

analyze302.0ms (4.4%)

Memory
-7.4MiB live, 222.5MiB allocated; 54ms 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)

sample2.0s (29.6%)

Memory
23.2MiB live, 2 643.9MiB allocated; 524ms collecting garbage
Samples
1.3s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 941.0ms
ival-log: 221.0ms (23.5% of total)
ival-mult: 189.0ms (20.1% of total)
ival-hypot: 152.0ms (16.2% of total)
ival-sub: 128.0ms (13.6% of total)
ival-div: 112.0ms (11.9% of total)
ival-atan2: 82.0ms (8.7% of total)
ival-add: 39.0ms (4.1% of total)
ival-true: 7.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

explain390.0ms (5.7%)

Memory
1.2MiB live, 415.4MiB allocated; 55ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1330-0-(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
30-2(2.4128227808034202e+176 2.709863310985432e-135 1.9020550034824062e-140)(*.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-rescue1180
(+.f64 (*.f64 re re) (*.f64 im im))overflow118
(*.f64 re re)overflow66
(*.f64 im im)overflow72
*.f64(*.f64 (atan2.f64 im re) (log.f64 base))n*u10
Confusion
Predicted +Predicted -
+11815
-0123
Precision
1.0
Recall
0.8872180451127819
Confusion?
Predicted +Predicted MaybePredicted -
+118015
-00123
Precision?
1.0
Recall?
0.8872180451127819
Freqs
test
numberfreq
0138
1117
21
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
108.0ms512×0valid
Compiler

Compiled 270 to 58 computations (78.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 66.0ms
ival-log: 26.0ms (39.1% of total)
ival-mult: 16.0ms (24.1% of total)
ival-hypot: 9.0ms (13.5% of total)
ival-add: 5.0ms (7.5% of total)
ival-atan2: 5.0ms (7.5% of total)
ival-div: 3.0ms (4.5% of total)
ival-sub: 3.0ms (4.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)

preprocess230.0ms (3.4%)

Memory
7.3MiB live, 215.6MiB allocated; 29ms 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.2MiB live, 0.2MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune1.0ms (0%)

Memory
1.9MiB live, 1.9MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
47.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)

simplify148.0ms (2.2%)

Memory
8.6MiB live, 197.4MiB allocated; 15ms 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)

localize111.0ms (1.6%)

Memory
-24.7MiB live, 123.2MiB allocated; 14ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.32650375976844204
(/.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.42408345158010885
(*.f64 (atan2.f64 im re) (log.f64 base))
accuracy0.521816259768442
(*.f64 (log.f64 base) (log.f64 base))
accuracy30.93770391496002
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Samples
81.0ms256×0valid
Compiler

Compiled 121 to 20 computations (83.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 44.0ms
ival-mult: 26.0ms (59.3% of total)
ival-log: 5.0ms (11.4% of total)
ival-hypot: 4.0ms (9.1% of total)
ival-div: 2.0ms (4.6% of total)
ival-add: 2.0ms (4.6% of total)
ival-atan2: 2.0ms (4.6% of total)
ival-sub: 1.0ms (2.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)

series142.0ms (2.1%)

Memory
-4.5MiB live, 282.0MiB allocated; 62ms 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
33.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)))
31.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)))
21.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)))
15.0ms
re
@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)))

simplify171.0ms (2.5%)

Memory
36.5MiB live, 217.6MiB allocated; 43ms 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))

rewrite65.0ms (0.9%)

Memory
4.5MiB live, 93.3MiB allocated; 17ms 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)))

eval102.0ms (1.5%)

Memory
-33.8MiB live, 66.4MiB allocated; 20ms collecting garbage
Compiler

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

prune9.0ms (0.1%)

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

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New21910229
Fresh000
Picked101
Done000
Total22010230
Accuracy
100.0%
Counts
230 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
84.1%
(/.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.9%
(/.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))))
47.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 (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.3%
(/.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.9%
(*.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.6%
#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 384 to 266 computations (30.7% saved)

simplify117.0ms (1.7%)

Memory
-5.7MiB live, 185.3MiB allocated; 17ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (log.f64 base) (atan2.f64 im re))
cost-diff0
(pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))
cost-diff3
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
cost-diff11
(/.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))))
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
(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
037218
052181
196179
2309170
32208168
47312168
08104168
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 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 (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))))
(pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
#s(literal 2 binary64)
(*.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 2 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 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 (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 (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 (atan2.f64 im re) (log.f64 base))
(pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
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 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(pow.f64 (log.f64 base) #s(literal 2 binary64))

localize176.0ms (2.6%)

Memory
-24.9MiB live, 173.9MiB allocated; 31ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.4342575195368841
(pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))
accuracy0.4507885623921103
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.521816259768442
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy7.859546211531385
(/.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))))
accuracy0.42408345158010885
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.5301627326452548
(*.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.9532131349487318
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy1.2350960074505932
(pow.f64 (log.f64 base) #s(literal 6 binary64))
accuracy0.0
(log.f64 base)
accuracy0.32650375976844204
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.42408345158010885
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.521816259768442
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.0
(log.f64 base)
accuracy0.30859375
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.3835636438065264
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
accuracy0.521816259768442
(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.27734375
(/.f64 (atan2.f64 im re) (log.f64 base))
Samples
123.0ms256×0valid
Compiler

Compiled 215 to 33 computations (84.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 94.0ms
ival-mult: 60.0ms (63.9% of total)
ival-div: 8.0ms (8.5% of total)
ival-pow: 6.0ms (6.4% of total)
ival-log: 5.0ms (5.3% of total)
ival-hypot: 4.0ms (4.3% of total)
ival-pow2: 4.0ms (4.3% of total)
ival-atan2: 2.0ms (2.1% of total)
ival-add: 1.0ms (1.1% of total)
ival-sub: 1.0ms (1.1% of total)
exact: 1.0ms (1.1% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series122.0ms (1.8%)

Memory
21.5MiB live, 162.1MiB allocated; 9ms collecting garbage
Counts
16 → 31
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 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 (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 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 6 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) 5))
(* (pow (log base) 3) (atan2 im re))
(* (pow (log base) 2) (pow (atan2 im re) 2))
(log base)
(pow (log base) 2)
(pow (log base) 6)
(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)) 5)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(* (pow (log (/ 1 base)) 2) (pow (atan2 im re) 2))
(pow (log (/ 1 base)) 2)
(pow (log (/ 1 base)) 6)
(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)))) 5))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2) (pow (atan2 im re) 2))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 6)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
Calls

9 calls:

TimeVariablePointExpression
37.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) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/ (pow (* (log base) (atan2 im re)) 2) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (pow (* (log base) (atan2 im re)) 2) (pow (log base) 2) (pow (log base) 6) (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) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/ (pow (* (log base) (atan2 im re)) 2) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (pow (* (log base) (atan2 im re)) 2) (pow (log base) 2) (pow (log base) 6) (pow (log base) 4))
12.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) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/ (pow (* (log base) (atan2 im re)) 2) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (pow (* (log base) (atan2 im re)) 2) (pow (log base) 2) (pow (log base) 6) (pow (log base) 4))
11.0ms
im
@inf
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (atan2 im re) (log base)) (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) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/ (pow (* (log base) (atan2 im re)) 2) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (pow (* (log base) (atan2 im re)) 2) (pow (log base) 2) (pow (log base) 6) (pow (log base) 4))
10.0ms
re
@0
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (atan2 im re) (log base)) (atan2 im re) (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) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/ (pow (* (log base) (atan2 im re)) 2) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (pow (* (log base) (atan2 im re)) 2) (pow (log base) 2) (pow (log base) 6) (pow (log base) 4))

simplify110.0ms (1.6%)

Memory
-3.6MiB live, 136.5MiB allocated; 15ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
058247
1103237
2240237
31008237
43555237
08676237
Stop Event
iter limit
node limit
Counts
31 → 31
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) 5))
(* (pow (log base) 3) (atan2 im re))
(* (pow (log base) 2) (pow (atan2 im re) 2))
(log base)
(pow (log base) 2)
(pow (log base) 6)
(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)) 5)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(* (pow (log (/ 1 base)) 2) (pow (atan2 im re) 2))
(pow (log (/ 1 base)) 2)
(pow (log (/ 1 base)) 6)
(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)))) 5))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2) (pow (atan2 im re) 2))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 6)
(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) 5))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))
(* (pow (log base) 3) (atan2 im re))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(* (pow (log base) 2) (pow (atan2 im re) 2))
(*.f64 (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(log base)
(log.f64 base)
(pow (log base) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow (log base) 6)
(pow.f64 (log.f64 base) #s(literal 6 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)) 5)))
(/.f64 (neg.f64 (atan2.f64 im re)) (pow.f64 (neg.f64 (log.f64 base)) #s(literal 5 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 (atan2 im re) 2))
(*.f64 (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow (log (/ 1 base)) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow (log (/ 1 base)) 6)
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 6 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)))) 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)))
(* (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 (atan2 im re) 2))
(*.f64 (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 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)))) 6)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 6 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))

rewrite27.0ms (0.4%)

Memory
12.6MiB live, 57.3MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037158
052145
0187145
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
16 → 56
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 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 (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 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 6 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 (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 (/.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 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 (log.f64 base) (atan2.f64 im re))) (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)))
(/.f64 (/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (neg.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))) (neg.f64 (*.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 2 binary64)) (*.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 (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 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 1 binary64)) (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 1 binary64)))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)))
(pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))
(exp.f64 (*.f64 (log.f64 (*.f64 (log.f64 base) (atan2.f64 im re))) #s(literal 2 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 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 (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)))

eval39.0ms (0.6%)

Memory
-10.2MiB live, 48.5MiB allocated; 4ms collecting garbage
Compiler

Compiled 3 348 to 364 computations (89.1% saved)

prune22.0ms (0.3%)

Memory
-12.4MiB live, 35.0MiB allocated; 2ms collecting garbage
Pruning

15 alts after pruning (11 fresh and 4 done)

PrunedKeptTotal
New1568164
Fresh235
Picked145
Done000
Total15915174
Accuracy
100.0%
Counts
174 → 15
Alt Table
Click to see full alt table
StatusAccuracyProgram
86.9%
(/.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))))
86.8%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (log.f64 base) (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
86.9%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 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))))
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)))
86.9%
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (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.3%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.2%
(/.f64 (*.f64 (log.f64 base) (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))))
13.7%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 (pow.f64 base (log.f64 base))))
44.2%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.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))))
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)))
98.7%
(*.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)))
99.2%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.0%
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.6%
#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 491 to 339 computations (31% saved)

simplify151.0ms (2.2%)

Memory
-16.1MiB live, 170.8MiB allocated; 14ms collecting garbage
Localize:

Found 20 expressions of interest:

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

Useful iterations: 3 (0.0ms)

IterNodesCost
035263
057247
195238
2208229
3726225
44123225
08578225
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.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 (log.f64 base) (atan2.f64 im re)) (log.f64 (pow.f64 base (log.f64 base))))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(log.f64 (pow.f64 base (log.f64 base)))
(pow.f64 base (log.f64 base))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.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
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))
(log.f64 (log.f64 base))
#s(literal 2 binary64)
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 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))))
(pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
#s(literal 2 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))
#s(literal 3 binary64)
(/.f64 (*.f64 (log.f64 base) (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) (atan2.f64 im re))
(log.f64 base)
base
(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 (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)))
(pow.f64 (log.f64 base) #s(literal -1 binary64))
(log.f64 base)
base
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 (pow.f64 base (log.f64 base))))
(*.f64 (/.f64 (log.f64 base) (log.f64 (pow.f64 base (log.f64 base)))) (atan2.f64 im re))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(log.f64 (pow.f64 base (log.f64 base)))
(pow.f64 base (log.f64 base))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.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
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))
(log.f64 (log.f64 base))
#s(literal 2 binary64)
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 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))))
(pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
#s(literal 2 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))
#s(literal 3 binary64)
(/.f64 (*.f64 (log.f64 base) (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 (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (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
(/.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)

localize136.0ms (2%)

Memory
1.5MiB live, 208.1MiB allocated; 50ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.20169848066473325
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.21484375
(/.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.23046875
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.4214403321270288
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.20169848066473325
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.23771470570553094
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
accuracy0.3424988281475362
(pow.f64 (log.f64 base) #s(literal 3 binary64))
accuracy3.6222117136512146
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 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))))
accuracy0.0234375
(log.f64 (log.f64 base))
accuracy0.15234375
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))))
accuracy0.20169848066473325
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.7707916548684018
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
accuracy0.10565663937054802
(pow.f64 base (log.f64 base))
accuracy0.15234375
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 (pow.f64 base (log.f64 base))))
accuracy0.20169848066473325
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy26.872779001207096
(log.f64 (pow.f64 base (log.f64 base)))
accuracy0.0
(log.f64 base)
accuracy0.1171875
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
accuracy0.1484375
(/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.23046875
(pow.f64 (log.f64 base) #s(literal 2 binary64))
Samples
56.0ms116×0valid
55.0ms140×0invalid
Compiler

Compiled 247 to 32 computations (87% saved)

Precisions
Click to see histograms. Total time spent on operations: 78.0ms
ival-exp: 25.0ms (32.2% of total)
ival-pow: 15.0ms (19.3% of total)
ival-log: 11.0ms (14.2% of total)
ival-mult: 9.0ms (11.6% of total)
ival-div: 8.0ms (10.3% of total)
ival-pow2: 5.0ms (6.4% of total)
ival-sub: 2.0ms (2.6% of total)
ival-atan2: 2.0ms (2.6% of total)
exact: 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)

series376.0ms (5.5%)

Memory
-2.0MiB live, 423.3MiB allocated; 41ms collecting garbage
Counts
21 → 34
Calls
Call 1
Inputs
(/.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)
(log.f64 base)
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 (pow.f64 base (log.f64 base))))
(*.f64 (log.f64 base) (atan2.f64 im re))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 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))))
(pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))
(/.f64 (*.f64 (log.f64 base) (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))
(log.f64 (pow.f64 base (log.f64 base)))
(pow.f64 base (log.f64 base))
(log.f64 (log.f64 base))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(*.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 (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) (log base))
(atan2 im re)
(* (log base) (atan2 im re))
(* (pow (log base) 2) (pow (atan2 im re) 2))
(* (pow (log base) 3) (atan2 im re))
(/ 1 (log base))
(log base)
(pow (log base) 2)
(pow (log base) 4)
(exp (pow (log base) 2))
(log (log base))
(pow (log base) 3)
(/ -1 (log (/ 1 base)))
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(* -1 (log (/ 1 base)))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(pow (log (/ 1 base)) 2)
(* (pow (log (/ 1 base)) 2) (pow (atan2 im re) 2))
(pow (log (/ 1 base)) 4)
(exp (pow (log (/ 1 base)) 2))
(log (* -1 (log (/ 1 base))))
(* -1 (pow (log (/ 1 base)) 3))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(+ (log -1) (* -1 (log (/ -1 base))))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2) (pow (atan2 im re) 2))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(exp (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(log (+ (log -1) (* -1 (log (/ -1 base)))))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
Calls

9 calls:

TimeVariablePointExpression
81.0ms
base
@-inf
((/ (log base) (pow (log base) 2)) (* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (log base) (/ (* (log base) (atan2 im re)) (log (pow base (log base)))) (* (log base) (atan2 im re)) (/ (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) (exp (* (log (log base)) 2)) (/ (pow (* (log base) (atan2 im re)) 2) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (pow (* (log base) (atan2 im re)) 2) (/ (* (log base) (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) (log (pow base (log base))) (pow base (log base)) (log (log base)) (pow (log base) 3) (* (pow (log base) 3) (atan2 im re)) (pow (log base) 4) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))
71.0ms
base
@0
((/ (log base) (pow (log base) 2)) (* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (log base) (/ (* (log base) (atan2 im re)) (log (pow base (log base)))) (* (log base) (atan2 im re)) (/ (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) (exp (* (log (log base)) 2)) (/ (pow (* (log base) (atan2 im re)) 2) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (pow (* (log base) (atan2 im re)) 2) (/ (* (log base) (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) (log (pow base (log base))) (pow base (log base)) (log (log base)) (pow (log base) 3) (* (pow (log base) 3) (atan2 im re)) (pow (log base) 4) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))
57.0ms
base
@inf
((/ (log base) (pow (log base) 2)) (* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (log base) (/ (* (log base) (atan2 im re)) (log (pow base (log base)))) (* (log base) (atan2 im re)) (/ (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) (exp (* (log (log base)) 2)) (/ (pow (* (log base) (atan2 im re)) 2) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (pow (* (log base) (atan2 im re)) 2) (/ (* (log base) (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) (log (pow base (log base))) (pow base (log base)) (log (log base)) (pow (log base) 3) (* (pow (log base) 3) (atan2 im re)) (pow (log base) 4) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))
53.0ms
re
@0
((/ (log base) (pow (log base) 2)) (* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (log base) (/ (* (log base) (atan2 im re)) (log (pow base (log base)))) (* (log base) (atan2 im re)) (/ (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) (exp (* (log (log base)) 2)) (/ (pow (* (log base) (atan2 im re)) 2) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (pow (* (log base) (atan2 im re)) 2) (/ (* (log base) (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) (log (pow base (log base))) (pow base (log base)) (log (log base)) (pow (log base) 3) (* (pow (log base) 3) (atan2 im re)) (pow (log base) 4) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))
39.0ms
im
@inf
((/ (log base) (pow (log base) 2)) (* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (log base) (/ (* (log base) (atan2 im re)) (log (pow base (log base)))) (* (log base) (atan2 im re)) (/ (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) (exp (* (log (log base)) 2)) (/ (pow (* (log base) (atan2 im re)) 2) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (pow (* (log base) (atan2 im re)) 2) (/ (* (log base) (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) (log (pow base (log base))) (pow base (log base)) (log (log base)) (pow (log base) 3) (* (pow (log base) 3) (atan2 im re)) (pow (log base) 4) (/ (- (pow (log base) 4) 0) (- (pow (log base) 2) 0)))

simplify703.0ms (10.3%)

Memory
31.8MiB live, 435.3MiB allocated; 79ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
053172
1105169
2276169
31143169
44221169
08624169
Stop Event
iter limit
node limit
Counts
34 → 34
Calls
Call 1
Inputs
(/ (atan2 im re) (log base))
(atan2 im re)
(* (log base) (atan2 im re))
(* (pow (log base) 2) (pow (atan2 im re) 2))
(* (pow (log base) 3) (atan2 im re))
(/ 1 (log base))
(log base)
(pow (log base) 2)
(pow (log base) 4)
(exp (pow (log base) 2))
(log (log base))
(pow (log base) 3)
(/ -1 (log (/ 1 base)))
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(* -1 (log (/ 1 base)))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(pow (log (/ 1 base)) 2)
(* (pow (log (/ 1 base)) 2) (pow (atan2 im re) 2))
(pow (log (/ 1 base)) 4)
(exp (pow (log (/ 1 base)) 2))
(log (* -1 (log (/ 1 base))))
(* -1 (pow (log (/ 1 base)) 3))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(+ (log -1) (* -1 (log (/ -1 base))))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2) (pow (atan2 im re) 2))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(exp (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(log (+ (log -1) (* -1 (log (/ -1 base)))))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
Outputs
(/ (atan2 im re) (log base))
(/.f64 (atan2.f64 im re) (log.f64 base))
(atan2 im re)
(atan2.f64 im re)
(* (log base) (atan2 im re))
(*.f64 (log.f64 base) (atan2.f64 im re))
(* (pow (log base) 2) (pow (atan2 im re) 2))
(*.f64 (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(* (pow (log base) 3) (atan2 im re))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(/ 1 (log base))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(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))
(exp (pow (log base) 2))
(pow.f64 base (log.f64 base))
(log (log base))
(log.f64 (log.f64 base))
(pow (log base) 3)
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(/ -1 (log (/ 1 base)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(/.f64 (atan2.f64 im re) (log.f64 base))
(* -1 (log (/ 1 base)))
(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))
(* (pow (log (/ 1 base)) 2) (pow (atan2 im re) 2))
(*.f64 (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)) (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))
(exp (pow (log (/ 1 base)) 2))
(pow.f64 base (log.f64 base))
(log (* -1 (log (/ 1 base))))
(log.f64 (log.f64 base))
(* -1 (pow (log (/ 1 base)) 3))
(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))
(/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(/.f64 (atan2.f64 im re) (log.f64 base))
(+ (log -1) (* -1 (log (/ -1 base))))
(log.f64 base)
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(*.f64 (log.f64 base) (atan2.f64 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2) (pow (atan2 im re) 2))
(*.f64 (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(exp (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(pow.f64 base (log.f64 base))
(log (+ (log -1) (* -1 (log (/ -1 base)))))
(log.f64 (log.f64 base))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))

rewrite66.0ms (1%)

Memory
-14.5MiB live, 41.5MiB allocated; 5ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035174
057156
0157156
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
21 → 102
Calls
Call 1
Inputs
(/.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)
(log.f64 base)
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 (pow.f64 base (log.f64 base))))
(*.f64 (log.f64 base) (atan2.f64 im re))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 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))))
(pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))
(/.f64 (*.f64 (log.f64 base) (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))
(log.f64 (pow.f64 base (log.f64 base)))
(pow.f64 base (log.f64 base))
(log.f64 (log.f64 base))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(*.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 (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 (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 (atan2.f64 im re) (/.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 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (neg.f64 (*.f64 (atan2.f64 im re) (log.f64 base))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(atan2.f64 im re)
(log.f64 base)
(*.f64 (atan2.f64 im re) (/.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 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (neg.f64 (*.f64 (atan2.f64 im re) (log.f64 base))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.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))
(*.f64 (atan2.f64 im re) (/.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 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (neg.f64 (*.f64 (atan2.f64 im re) (log.f64 base))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (pow.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 (exp.f64 (log.f64 (log.f64 base))) (exp.f64 (log.f64 (log.f64 base))))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (exp.f64 (log.f64 (log.f64 base))) #s(literal 2 binary64))
(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 (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 (neg.f64 (pow.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 2 binary64))) (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)))))
(/.f64 (pow.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 2 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 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 1 binary64)) (pow.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 1 binary64)))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (atan2.f64 im re) (log.f64 base)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)))
(pow.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 2 binary64))
(exp.f64 (*.f64 (log.f64 (*.f64 (atan2.f64 im re) (log.f64 base))) #s(literal 2 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 2 binary64)))
(*.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 (neg.f64 (*.f64 (atan2.f64 im re) (log.f64 base))) (neg.f64 (/.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 (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 (exp.f64 (log.f64 (log.f64 base))) (exp.f64 (log.f64 (log.f64 base))))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (exp.f64 (log.f64 (log.f64 base))) #s(literal 2 binary64))
(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 (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 (pow.f64 (log.f64 base) #s(literal 1 binary64)) (pow.f64 (log.f64 base) #s(literal 1 binary64)))
(*.f64 (exp.f64 (log.f64 (log.f64 base))) (exp.f64 (log.f64 (log.f64 base))))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (exp.f64 (log.f64 (log.f64 base))) #s(literal 2 binary64))
(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 (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 (pow.f64 (log.f64 base) #s(literal 1 binary64)) (pow.f64 (log.f64 base) #s(literal 1 binary64)))
(*.f64 (exp.f64 (log.f64 (log.f64 base))) (exp.f64 (log.f64 (log.f64 base))))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (exp.f64 (log.f64 (log.f64 base))) #s(literal 2 binary64))
(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 (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 (pow.f64 base (/.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 base (/.f64 (log.f64 base) #s(literal 2 binary64))))
(pow.f64 base (log.f64 base))
(exp.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(log.f64 (log.f64 base))
(*.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)) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 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 (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))))

eval10.0ms (0.1%)

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

Compiled 2 192 to 254 computations (88.4% saved)

prune30.0ms (0.4%)

Memory
-9.4MiB live, 33.9MiB allocated; 4ms collecting garbage
Pruning

17 alts after pruning (9 fresh and 8 done)

PrunedKeptTotal
New1014105
Fresh156
Picked145
Done044
Total10317120
Accuracy
100.0%
Counts
120 → 17
Alt Table
Click to see full alt table
StatusAccuracyProgram
86.9%
(/.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))))
86.8%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (log.f64 base) (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))))
86.9%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 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))))
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)))
86.9%
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (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))))
86.9%
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 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))))
99.2%
(/.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.3%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
13.7%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 (pow.f64 base (log.f64 base))))
44.2%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.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))))
99.3%
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
99.0%
(*.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 2 binary64)))
98.7%
(*.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)))
99.2%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.0%
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.6%
#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 512 to 351 computations (31.4% saved)

simplify224.0ms (3.3%)

Memory
13.8MiB live, 230.5MiB allocated; 86ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (log.f64 base) (atan2.f64 im re))
cost-diff3
(/.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))))
cost-diff5
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
cost-diff7
(*.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)))
cost-diff0
(log.f64 base)
cost-diff0
(pow.f64 (log.f64 base) #s(literal 2 binary64))
cost-diff0
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)))
cost-diff0
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 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))))
cost-diff0
(*.f64 (log.f64 base) (atan2.f64 im re))
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-diff7
(/.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-diff0
(atan2.f64 im re)
cost-diff0
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))
cost-diff0
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64))))
cost-diff0
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 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: 3 (0.0ms)

IterNodesCost
042341
067322
1104301
2264293
31291275
45268275
08699275
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) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 5 binary64))
(log.f64 base)
base
#s(literal 5 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#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 (*.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)
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 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 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(log.f64 base)
base
#s(literal 2 binary64)
(pow.f64 (atan2.f64 im re) #s(literal 2 binary64))
(atan2.f64 im re)
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))
#s(literal 3 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 (*.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))))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
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 3 binary64))
#s(literal 3 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 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) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 5 binary64))
(log.f64 base)
base
#s(literal 5 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#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 (atan2.f64 im re) (log.f64 base))
(-.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)
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 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 (pow.f64 (log.f64 base) #s(literal 2 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)))) (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)))
(*.f64 (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(log.f64 base)
base
#s(literal 2 binary64)
(pow.f64 (atan2.f64 im re) #s(literal 2 binary64))
(atan2.f64 im re)
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))
#s(literal 3 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 (atan2.f64 im re) (log.f64 base))
(/.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))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
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 6 binary64))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
#s(literal 3 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)

localize262.0ms (3.8%)

Memory
-22.7MiB live, 336.0MiB allocated; 151ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.5270500488422101
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
accuracy0.5301627326452548
(*.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)))
accuracy0.7420465332848188
(pow.f64 (log.f64 base) #s(literal 3 binary64))
accuracy0.9532131349487318
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.521816259768442
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.5458407075924239
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
accuracy0.7420465332848188
(pow.f64 (log.f64 base) #s(literal 3 binary64))
accuracy7.859546211531385
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 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))))
accuracy0.42408345158010885
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.4507885623921103
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.521816259768442
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.9532131349487318
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.265625
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))
accuracy0.5301627326452548
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
accuracy0.9532131349487318
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy1.0935835442090338
(pow.f64 (log.f64 base) #s(literal 5 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.26953125
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
accuracy0.296875
(/.f64 #s(literal 1 binary64) (log.f64 base))
Samples
130.0ms256×0valid
Compiler

Compiled 297 to 36 computations (87.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 107.0ms
ival-pow: 72.0ms (67.3% of total)
ival-mult: 12.0ms (11.2% of total)
ival-div: 10.0ms (9.3% of total)
ival-pow2: 6.0ms (5.6% of total)
ival-log: 3.0ms (2.8% of total)
ival-atan2: 2.0ms (1.9% of total)
ival-sub: 1.0ms (0.9% of total)
exact: 1.0ms (0.9% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series115.0ms (1.7%)

Memory
27.2MiB live, 251.3MiB allocated; 46ms collecting garbage
Counts
22 → 37
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) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 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 (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 (log.f64 base) (atan2.f64 im re))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 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 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(log.f64 base)
(*.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 (log.f64 base) #s(literal 3 binary64)) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(/.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 5 binary64))
(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 3 binary64)) (atan2.f64 im re))
Outputs
(/ (atan2 im re) (log base))
(atan2 im re)
(/ (atan2 im re) (pow (log base) 5))
(* (pow (log base) 3) (atan2 im re))
(* (log base) (atan2 im re))
(* (pow (log base) 2) (pow (atan2 im re) 2))
(/ 1 (log base))
(pow (log base) 2)
(log base)
(pow (log base) 6)
(pow (log base) 5)
(pow (log base) 4)
(pow (log base) 3)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(/ -1 (log (/ 1 base)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 5)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(* (pow (log (/ 1 base)) 2) (pow (atan2 im re) 2))
(pow (log (/ 1 base)) 2)
(* -1 (log (/ 1 base)))
(pow (log (/ 1 base)) 6)
(* -1 (pow (log (/ 1 base)) 5))
(pow (log (/ 1 base)) 4)
(* -1 (pow (log (/ 1 base)) 3))
(/ (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)))) 5))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2) (pow (atan2 im re) 2))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(+ (log -1) (* -1 (log (/ -1 base))))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 6)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 5)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
Calls

9 calls:

TimeVariablePointExpression
20.0ms
base
@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) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/ (atan2 im re) (pow (log base) 5)) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (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) (pow (atan2 im re) 2)) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (* (pow (log base) 2) (pow (atan2 im re) 2)) (pow (log base) 2) (log base) (* (/ (* (log base) (atan2 im re)) (* (pow (log base) 3) (pow (log base) 3))) (pow (log base) 4)) (* (pow (log base) 3) (pow (log base) 3)) (/ (* (log base) (atan2 im re)) (* (pow (log base) 3) (pow (log base) 3))) (pow (log base) 5) (pow (log base) 4) (pow (log base) 3) (* (pow (log base) 3) (atan2 im re)))
19.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) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/ (atan2 im re) (pow (log base) 5)) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (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) (pow (atan2 im re) 2)) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (* (pow (log base) 2) (pow (atan2 im re) 2)) (pow (log base) 2) (log base) (* (/ (* (log base) (atan2 im re)) (* (pow (log base) 3) (pow (log base) 3))) (pow (log base) 4)) (* (pow (log base) 3) (pow (log base) 3)) (/ (* (log base) (atan2 im re)) (* (pow (log base) 3) (pow (log base) 3))) (pow (log base) 5) (pow (log base) 4) (pow (log base) 3) (* (pow (log base) 3) (atan2 im re)))
17.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) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/ (atan2 im re) (pow (log base) 5)) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (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) (pow (atan2 im re) 2)) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (* (pow (log base) 2) (pow (atan2 im re) 2)) (pow (log base) 2) (log base) (* (/ (* (log base) (atan2 im re)) (* (pow (log base) 3) (pow (log base) 3))) (pow (log base) 4)) (* (pow (log base) 3) (pow (log base) 3)) (/ (* (log base) (atan2 im re)) (* (pow (log base) 3) (pow (log base) 3))) (pow (log base) 5) (pow (log base) 4) (pow (log base) 3) (* (pow (log base) 3) (atan2 im re)))
11.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) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/ (atan2 im re) (pow (log base) 5)) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (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) (pow (atan2 im re) 2)) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (* (pow (log base) 2) (pow (atan2 im re) 2)) (pow (log base) 2) (log base) (* (/ (* (log base) (atan2 im re)) (* (pow (log base) 3) (pow (log base) 3))) (pow (log base) 4)) (* (pow (log base) 3) (pow (log base) 3)) (/ (* (log base) (atan2 im re)) (* (pow (log base) 3) (pow (log base) 3))) (pow (log base) 5) (pow (log base) 4) (pow (log base) 3) (* (pow (log base) 3) (atan2 im re)))
11.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) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/ (atan2 im re) (pow (log base) 5)) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (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) (pow (atan2 im re) 2)) (* (* (log base) (atan2 im re)) (pow (log base) 2))) (* (pow (log base) 2) (pow (atan2 im re) 2)) (pow (log base) 2) (log base) (* (/ (* (log base) (atan2 im re)) (* (pow (log base) 3) (pow (log base) 3))) (pow (log base) 4)) (* (pow (log base) 3) (pow (log base) 3)) (/ (* (log base) (atan2 im re)) (* (pow (log base) 3) (pow (log base) 3))) (pow (log base) 5) (pow (log base) 4) (pow (log base) 3) (* (pow (log base) 3) (atan2 im re)))

simplify105.0ms (1.5%)

Memory
-7.4MiB live, 138.9MiB allocated; 28ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
060273
1108261
2250261
3990261
43517261
08114261
Stop Event
iter limit
node limit
Counts
37 → 37
Calls
Call 1
Inputs
(/ (atan2 im re) (log base))
(atan2 im re)
(/ (atan2 im re) (pow (log base) 5))
(* (pow (log base) 3) (atan2 im re))
(* (log base) (atan2 im re))
(* (pow (log base) 2) (pow (atan2 im re) 2))
(/ 1 (log base))
(pow (log base) 2)
(log base)
(pow (log base) 6)
(pow (log base) 5)
(pow (log base) 4)
(pow (log base) 3)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(/ -1 (log (/ 1 base)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 5)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(* (pow (log (/ 1 base)) 2) (pow (atan2 im re) 2))
(pow (log (/ 1 base)) 2)
(* -1 (log (/ 1 base)))
(pow (log (/ 1 base)) 6)
(* -1 (pow (log (/ 1 base)) 5))
(pow (log (/ 1 base)) 4)
(* -1 (pow (log (/ 1 base)) 3))
(/ (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)))) 5))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2) (pow (atan2 im re) 2))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(+ (log -1) (* -1 (log (/ -1 base))))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 6)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 5)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
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) 5))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))
(* (pow (log base) 3) (atan2 im re))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(* (log base) (atan2 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(* (pow (log base) 2) (pow (atan2 im re) 2))
(*.f64 (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/ 1 (log base))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(pow (log base) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(log base)
(log.f64 base)
(pow (log base) 6)
(pow.f64 (log.f64 base) #s(literal 6 binary64))
(pow (log base) 5)
(pow.f64 (log.f64 base) #s(literal 5 binary64))
(pow (log base) 4)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(pow (log base) 3)
(pow.f64 (log.f64 base) #s(literal 3 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)) 5)))
(/.f64 (neg.f64 (atan2.f64 im re)) (pow.f64 (neg.f64 (log.f64 base)) #s(literal 5 binary64)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(*.f64 (atan2.f64 im re) (log.f64 base))
(* (pow (log (/ 1 base)) 2) (pow (atan2 im re) 2))
(*.f64 (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow (log (/ 1 base)) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(* -1 (log (/ 1 base)))
(log.f64 base)
(pow (log (/ 1 base)) 6)
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 6 binary64))
(* -1 (pow (log (/ 1 base)) 5))
(neg.f64 (pow.f64 (neg.f64 (log.f64 base)) #s(literal 5 binary64)))
(pow (log (/ 1 base)) 4)
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 4 binary64))
(* -1 (pow (log (/ 1 base)) 3))
(pow.f64 (log.f64 base) #s(literal 3 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)))) 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)))
(* (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))
(* (+ (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 (atan2 im re) 2))
(*.f64 (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 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))
(+ (log -1) (* -1 (log (/ -1 base))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base)))
(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))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 5)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 5 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)))) 3)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 3 binary64))

rewrite28.0ms (0.4%)

Memory
1.9MiB live, 48.5MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042249
067226
0172226
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
22 → 68
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) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 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 (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 (log.f64 base) (atan2.f64 im re))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 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 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(log.f64 base)
(*.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 (log.f64 base) #s(literal 3 binary64)) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(/.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 5 binary64))
(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 3 binary64)) (atan2.f64 im re))
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)))
(pow.f64 (log.f64 base) #s(literal -1 binary64))
(/.f64 #s(literal -1 binary64) (neg.f64 (log.f64 base)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(*.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))))
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64))))
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (pow.f64 (log.f64 base) #s(literal 5 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))
(/.f64 (neg.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 (/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 4 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)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(*.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) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))) #s(literal 0 binary64)) (fma.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 0 binary64)))
(/.f64 (-.f64 (pow.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (+.f64 #s(literal 0 binary64) (*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) #s(literal 0 binary64)))))
(-.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) #s(literal 0 binary64))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(*.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) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))) #s(literal 0 binary64)) (fma.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 0 binary64)))
(/.f64 (-.f64 (pow.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (+.f64 #s(literal 0 binary64) (*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) #s(literal 0 binary64)))))
(-.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) #s(literal 0 binary64))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (/.f64 (pow.f64 (atan2.f64 im re) #s(literal 2 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 (neg.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))) (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)))))
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 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 (atan2.f64 im re) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (atan2.f64 im re) #s(literal 2 binary64)))
(pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #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))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(log.f64 base)
(*.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 (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 (*.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 (neg.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(*.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 binary64)) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(pow.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) #s(literal 2 binary64))
(pow.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #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 (/.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 (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)) (pow.f64 (log.f64 base) #s(literal 3 binary64))) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(/.f64 (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im re))) (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)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 5/2 binary64)) (pow.f64 (log.f64 base) #s(literal 5/2 binary64)))
(pow.f64 (log.f64 base) #s(literal 5 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 5 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))
(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)) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))

eval18.0ms (0.3%)

Memory
-10.1MiB live, 35.9MiB allocated; 4ms collecting garbage
Compiler

Compiled 4 363 to 439 computations (89.9% saved)

prune14.0ms (0.2%)

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

17 alts after pruning (8 fresh and 9 done)

PrunedKeptTotal
New1636169
Fresh224
Picked325
Done178
Total16917186
Accuracy
100.0%
Counts
186 → 17
Alt Table
Click to see full alt table
StatusAccuracyProgram
86.9%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 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))))
99.2%
(/.f64 (-.f64 (*.f64 (log.f64 base) (*.f64 (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.2%
(/.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)))
86.9%
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (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.2%
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.2%
(/.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.3%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
13.7%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 (pow.f64 base (log.f64 base))))
44.2%
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.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))))
99.3%
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
98.7%
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
98.5%
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 3 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.2%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.0%
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
43.7%
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 4 binary64))))
99.6%
#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 910 to 360 computations (60.4% saved)

regimes47.0ms (0.7%)

Memory
-10.7MiB live, 86.5MiB allocated; 8ms collecting garbage
Accuracy

Total -62.8b remaining (-22651.9%)

Threshold costs -62.8b (-22651.9%)

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

17.0ms
base
8.0ms
re
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.6%1(log.f64 base)
99.6%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.6%1re
99.6%1im
99.6%1base
Compiler

Compiled 33 to 31 computations (6.1% saved)

simplify65.0ms (0.9%)

Memory
-16.5MiB live, 76.5MiB allocated; 7ms 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)))

derivations155.0ms (2.3%)

Memory
-5.3MiB live, 131.4MiB allocated; 60ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0121469
1343466
21369460
36811460
08171426
Stop Event
fuel
iter limit
node limit
Compiler

Compiled 35 to 22 computations (37.1% saved)

preprocess11.0ms (0.2%)

Memory
22.5MiB live, 22.5MiB 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...