math.log/2 on complex, imaginary part

Time bar (total: 12.2s)

start0.0ms (0%)

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

analyze236.0ms (1.9%)

Memory
42.8MiB live, 183.9MiB allocated; 28ms 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.1s (17.5%)

Memory
60.5MiB live, 2 441.0MiB allocated; 605ms collecting garbage
Samples
1.6s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 1.4s
ival-mult: 465.0ms (33.9% of total)
ival-log: 299.0ms (21.8% of total)
ival-hypot: 203.0ms (14.8% of total)
ival-atan2: 185.0ms (13.5% of total)
ival-sub: 84.0ms (6.1% of total)
ival-div: 77.0ms (5.6% of total)
ival-add: 39.0ms (2.8% of total)
ival-true: 6.0ms (0.4% of total)
exact: 5.0ms (0.4% of total)
adjust: 3.0ms (0.2% of total)
ival-assert: 3.0ms (0.2% of total)
Bogosity

explain299.0ms (2.5%)

Memory
-14.4MiB live, 440.5MiB allocated; 57ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1340-1(-2.7423967837834168e-161 1.2929787540619933e-169 2.567500760053439e-63)(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
10-1(3.2493107385890434e+23 -3.1695991758882502e-291 7.195360482986271e-141)(*.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-rescue1160
(+.f64 (*.f64 re re) (*.f64 im im))overflow116
(*.f64 re re)overflow62
(*.f64 im im)overflow66
Confusion
Predicted +Predicted -
+11617
-0123
Precision
1.0
Recall
0.8721804511278195
Confusion?
Predicted +Predicted MaybePredicted -
+116017
-00123
Precision?
1.0
Recall?
0.8721804511278195
Freqs
test
numberfreq
0140
1116
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
121.0ms512×0valid
Compiler

Compiled 270 to 58 computations (78.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 99.0ms
ival-mult: 39.0ms (39.4% of total)
ival-div: 25.0ms (25.3% of total)
ival-log: 11.0ms (11.1% of total)
ival-hypot: 9.0ms (9.1% of total)
ival-add: 7.0ms (7.1% of total)
ival-atan2: 4.0ms (4% of total)
ival-sub: 2.0ms (2% 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)

preprocess878.0ms (7.2%)

Memory
14.1MiB live, 841.6MiB allocated; 239ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
076139
1219121
292878
3598078
01826
03414
16912
22148
320856
466826
082476
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.1MiB live, 1.1MiB 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)

simplify1.1s (8.7%)

Memory
12.5MiB live, 556.2MiB allocated; 94ms collecting garbage
Algorithm
egg-herbie
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-diff6
(/.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
16975
221471
3208569
4668269
0824758
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)))
(*.f64 (log.f64 base) (log.f64 base))
(*.f64 (log.f64 base) (log.f64 base))
(*.f64 #s(literal 0 binary64) #s(literal 0 binary64))
#s(literal 0 binary64)

localize153.0ms (1.3%)

Memory
3.3MiB live, 165.3MiB allocated; 41ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.328125
(/.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.3421726162349391
(*.f64 (atan2.f64 im re) (log.f64 base))
accuracy0.5364837890737681
(*.f64 (log.f64 base) (log.f64 base))
accuracy31.24597167538453
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Samples
142.0ms256×0valid
Compiler

Compiled 121 to 20 computations (83.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 130.0ms
exact: 82.0ms (62.9% of total)
ival-hypot: 24.0ms (18.4% of total)
ival-mult: 11.0ms (8.4% of total)
ival-log: 5.0ms (3.8% of total)
ival-div: 2.0ms (1.5% of total)
ival-add: 2.0ms (1.5% of total)
ival-atan2: 2.0ms (1.5% of total)
ival-sub: 1.0ms (0.8% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series145.0ms (1.2%)

Memory
12.3MiB live, 235.3MiB allocated; 68ms 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
36.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)))
23.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)))
20.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)))
19.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)))
17.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)))

simplify183.0ms (1.5%)

Memory
35.5MiB live, 317.5MiB allocated; 52ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0121469
1343466
21369460
36811460
08177426
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))

rewrite562.0ms (4.6%)

Memory
-119.3MiB live, 173.1MiB allocated; 854ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

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

eval164.0ms (1.3%)

Memory
-11.7MiB live, 222.2MiB allocated; 13ms collecting garbage
Compiler

Compiled 16 239 to 2 080 computations (87.2% saved)

prune59.0ms (0.5%)

Memory
14.8MiB live, 62.5MiB allocated; 2ms collecting garbage
Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New56115576
Fresh000
Picked101
Done000
Total56215577
Accuracy
100.0%
Counts
577 → 15
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.8%
(/.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))))
85.3%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
81.9%
(/.f64 (/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64)) (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
85.3%
(/.f64 (/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
99.4%
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
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 6 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
47.6%
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))) (+.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
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 (/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (log.f64 base)) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
99.1%
(/.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))))
99.0%
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.0%
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.2%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.5%
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
Compiler

Compiled 642 to 428 computations (33.3% saved)

simplify2.3s (19.2%)

Memory
128.2MiB live, 1 753.7MiB allocated; 431ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 20 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-diff3
(/.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))))
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-diff0
(*.f64 (log.f64 base) (atan2.f64 im re))
cost-diff0
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
cost-diff2
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
cost-diff3
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
cost-diff0
(log.f64 base)
cost-diff0
(*.f64 (log.f64 base) (atan2.f64 im re))
cost-diff0
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
cost-diff4
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base))
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-diff3
(*.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: 0 (1.0ms)

IterNodesCost
046316
071260
1130258
2351233
33466233
08411222
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 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(/.f64 (-.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 (*.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 (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 (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 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 #s(literal 0 binary64) #s(literal 0 binary64))
Outputs
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
(/.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 (/.f64 #s(literal 1 binary64) (log.f64 base)) (atan2.f64 im re))
(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 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(*.f64 (/.f64 #s(literal 1 binary64) (log.f64 base)) (atan2.f64 im re))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base))
(*.f64 #s(literal 1 binary64) (atan2.f64 im re))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
#s(literal 0 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(/.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 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 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 (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 (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 (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)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 #s(literal 0 binary64) #s(literal 0 binary64))
#s(literal 0 binary64)

localize154.0ms (1.3%)

Memory
-11.0MiB live, 165.5MiB allocated; 24ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.48046875
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.5364837890737681
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.920641955643154
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy31.24597167538453
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
accuracy0.3421726162349391
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.34765625
(/.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)))
accuracy0.5364837890737681
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.920641955643154
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.0
(log.f64 base)
accuracy0.30306625976844204
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
accuracy0.3359375
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base))
accuracy0.3421726162349391
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.0
(log.f64 base)
accuracy0.29296875
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.3427335180069268
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
accuracy0.5364837890737681
(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.30306625976844204
(/.f64 (atan2.f64 im re) (log.f64 base))
Samples
97.0ms256×0valid
Compiler

Compiled 319 to 36 computations (88.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 52.0ms
ival-mult: 16.0ms (31.1% of total)
ival-div: 11.0ms (21.4% of total)
ival-log: 5.0ms (9.7% of total)
ival-hypot: 4.0ms (7.8% of total)
ival-pow: 4.0ms (7.8% of total)
ival-add: 3.0ms (5.8% of total)
ival-atan2: 2.0ms (3.9% of total)
ival-sub: 2.0ms (3.9% of total)
ival-pow2: 2.0ms (3.9% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series265.0ms (2.2%)

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

9 calls:

TimeVariablePointExpression
30.0ms
im
@0
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (atan2 im re) (log base)) (atan2 im re) (log base) (* (log base) (/ (atan2 im re) (pow (log base) 2))) (/ (atan2 im re) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (log base)) (/ (/ (* (log base) (atan2 im re)) (log base)) (log base)) (* (log base) (atan2 im re)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (* (log (sqrt (+ (* re re) (* im im)))) 0) (sqrt (+ (* re re) (* im im))) (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (/ (pow (log base) 4) (pow (log base) 2)) (* 0 0))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (pow (log base) 2) (pow (log base) 4) (/ (pow (log base) 4) (pow (log base) 2)))
10.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)) (log base)) (/ (/ (* (log base) (atan2 im re)) (log base)) (log base)) (* (log base) (atan2 im re)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (* (log (sqrt (+ (* re re) (* im im)))) 0) (sqrt (+ (* re re) (* im im))) (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (/ (pow (log base) 4) (pow (log base) 2)) (* 0 0))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (pow (log base) 2) (pow (log base) 4) (/ (pow (log base) 4) (pow (log base) 2)))
9.0ms
base
@-inf
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (atan2 im re) (log base)) (atan2 im re) (log base) (* (log base) (/ (atan2 im re) (pow (log base) 2))) (/ (atan2 im re) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (log base)) (/ (/ (* (log base) (atan2 im re)) (log base)) (log base)) (* (log base) (atan2 im re)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (* (log (sqrt (+ (* re re) (* im im)))) 0) (sqrt (+ (* re re) (* im im))) (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (/ (pow (log base) 4) (pow (log base) 2)) (* 0 0))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (pow (log base) 2) (pow (log base) 4) (/ (pow (log base) 4) (pow (log base) 2)))
9.0ms
base
@inf
((/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/ (atan2 im re) (log base)) (atan2 im re) (log base) (* (log base) (/ (atan2 im re) (pow (log base) 2))) (/ (atan2 im re) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (log base)) (/ (/ (* (log base) (atan2 im re)) (log base)) (log base)) (* (log base) (atan2 im re)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (* (log (sqrt (+ (* re re) (* im im)))) 0) (sqrt (+ (* re re) (* im im))) (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (/ (pow (log base) 4) (pow (log base) 2)) (* 0 0))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (pow (log base) 2) (pow (log base) 4) (/ (pow (log base) 4) (pow (log base) 2)))
8.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)) (log base)) (/ (/ (* (log base) (atan2 im re)) (log base)) (log base)) (* (log base) (atan2 im re)) (* (* (log base) (atan2 im re)) (pow (log base) 2)) (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (/ (- (* (* (log base) (atan2 im re)) (pow (log base) 2)) 0) (pow (log base) 4)) (* (log (sqrt (+ (* re re) (* im im)))) 0) (sqrt (+ (* re re) (* im im))) (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (/ (pow (log base) 4) (pow (log base) 2)) (* 0 0))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (pow (log base) 2) (pow (log base) 4) (/ (pow (log base) 4) (pow (log base) 2)))

simplify260.0ms (2.1%)

Memory
34.9MiB live, 177.7MiB allocated; 16ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0135563
1371556
21439550
37224550
08013516
Stop Event
iter limit
node limit
Counts
45 → 43
Calls
Call 1
Inputs
(/ (atan2 im re) (log base))
(atan2 im re)
(/ (atan2 im re) (pow (log base) 2))
(* (log base) (atan2 im re))
(* (pow (log base) 3) (atan2 im re))
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)))))
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))))))))
(log base)
(pow (log base) 2)
(pow (log base) 4)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(* -1 (log (/ 1 base)))
(/ (atan2 im re) (pow (log (/ 1 base)) 2))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(pow (log (/ 1 base)) 2)
(pow (log (/ 1 base)) 4)
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(+ (log -1) (* -1 (log (/ -1 base))))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
Outputs
(/ (atan2 im re) (log base))
(/.f64 (atan2.f64 im re) (log.f64 base))
(atan2 im re)
(atan2.f64 im re)
(/ (atan2 im re) (pow (log base) 2))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(* (log base) (atan2 im re))
(*.f64 (log.f64 base) (atan2.f64 im re))
(* (pow (log base) 3) (atan2 im re))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
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))
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)))))
(log base)
(log.f64 base)
(pow (log base) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow (log base) 4)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(/.f64 (atan2.f64 im re) (log.f64 base))
(* -1 (log (/ 1 base)))
(log.f64 base)
(/ (atan2 im re) (pow (log (/ 1 base)) 2))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(pow (log (/ 1 base)) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow (log (/ 1 base)) 4)
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 4 binary64))
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(/.f64 (atan2.f64 im re) (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))))
(+ (log -1) (* -1 (log (/ -1 base))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base)))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64)))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(*.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) (atan2.f64 im re))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(*.f64 (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 3 binary64)) (atan2.f64 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 4 binary64))

rewrite32.0ms (0.3%)

Memory
6.2MiB live, 50.1MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046216
071156
0222151
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
19 → 129
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)) (log.f64 base))
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.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 (*.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 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64)))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(/.f64 (pow.f64 (log.f64 base) #s(literal 4 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 (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) (/.f64 (atan2.f64 im re) (log.f64 base)))) (neg.f64 (log.f64 base)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (log.f64 base))) (log.f64 base))
(/.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 (log.f64 base) (/.f64 (atan2.f64 im re) (log.f64 base)))
(/.f64 (neg.f64 (*.f64 (log.f64 base) (atan2.f64 im re))) (neg.f64 (log.f64 base)))
(/.f64 (*.f64 (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) (/.f64 (atan2.f64 im re) (log.f64 base)))) (neg.f64 (log.f64 base)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (log.f64 base))) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(log.f64 (pow.f64 base (atan2.f64 im re)))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(*.f64 (log.f64 base) (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))) #s(literal 0 binary64)) (*.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)))))
(fma.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)) #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))
(fma.f64 (log.f64 base) (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(+.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (*.f64 (log.f64 base) (atan2.f64 im re)))
(*.f64 (log.f64 base) (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))) #s(literal 0 binary64)) (*.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)))))
(fma.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)) #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))
(fma.f64 (log.f64 base) (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(+.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) #s(literal 0 binary64))
(/.f64 (neg.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 (/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(*.f64 (log.f64 (hypot.f64 re im)) #s(literal 0 binary64))
(*.f64 #s(literal 0 binary64) (log.f64 (hypot.f64 re im)))
(*.f64 #s(literal 0 binary64) #s(literal 0 binary64))
(pow.f64 #s(literal 0 binary64) #s(literal 3 binary64))
(pow.f64 #s(literal 0 binary64) #s(literal 2 binary64))
(sinh.f64 #s(literal 0 binary64))
(neg.f64 #s(literal 0 binary64))
(fabs.f64 #s(literal 0 binary64))
#s(literal 0 binary64)
(pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/2 binary64))
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
(hypot.f64 (neg.f64 im) (neg.f64 re))
(hypot.f64 (neg.f64 im) (fabs.f64 re))
(hypot.f64 (neg.f64 im) re)
(hypot.f64 (neg.f64 re) (neg.f64 im))
(hypot.f64 (neg.f64 re) (fabs.f64 im))
(hypot.f64 (neg.f64 re) im)
(hypot.f64 (fabs.f64 im) (neg.f64 re))
(hypot.f64 (fabs.f64 im) (fabs.f64 re))
(hypot.f64 (fabs.f64 im) re)
(hypot.f64 (fabs.f64 re) (neg.f64 im))
(hypot.f64 (fabs.f64 re) (fabs.f64 im))
(hypot.f64 (fabs.f64 re) im)
(hypot.f64 re (neg.f64 im))
(hypot.f64 re (fabs.f64 im))
(hypot.f64 re im)
(hypot.f64 im (neg.f64 re))
(hypot.f64 im (fabs.f64 re))
(hypot.f64 im re)
(/.f64 (neg.f64 (-.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 0 binary64))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(-.f64 (*.f64 (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (log.f64 base) (atan2.f64 im re))) #s(literal 0 binary64)) (fma.f64 (log.f64 base) (atan2.f64 im re) #s(literal 0 binary64)))
(/.f64 (-.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (log.f64 base) (atan2.f64 im re)) (+.f64 #s(literal 0 binary64) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 0 binary64)))))
(fma.f64 (log.f64 base) (atan2.f64 im re) (*.f64 (neg.f64 (log.f64 (hypot.f64 re im))) #s(literal 0 binary64)))
(fma.f64 (atan2.f64 im re) (log.f64 base) (*.f64 (neg.f64 (log.f64 (hypot.f64 re im))) #s(literal 0 binary64)))
(-.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 0 binary64))
(+.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (*.f64 (neg.f64 (log.f64 (hypot.f64 re im))) #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 (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)) (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 (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)))
(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 (hypot.f64 re im)) #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(fma.f64 (log.f64 base) (log.f64 base) #s(literal 0 binary64))
(fma.f64 #s(literal 0 binary64) (log.f64 (hypot.f64 re im)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(fma.f64 #s(literal 0 binary64) #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(+.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(log.f64 (pow.f64 base (log.f64 base)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 4 binary64)))
(*.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)) (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 (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)))
(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 (hypot.f64 re im)) #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(fma.f64 (log.f64 base) (log.f64 base) #s(literal 0 binary64))
(fma.f64 #s(literal 0 binary64) (log.f64 (hypot.f64 re im)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(fma.f64 #s(literal 0 binary64) #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(-.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
(+.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #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)))

eval29.0ms (0.2%)

Memory
12.8MiB live, 57.3MiB allocated; 6ms collecting garbage
Compiler

Compiled 6 120 to 802 computations (86.9% saved)

prune17.0ms (0.1%)

Memory
-1.9MiB live, 43.8MiB allocated; 3ms collecting garbage
Pruning

17 alts after pruning (14 fresh and 3 done)

PrunedKeptTotal
New2207227
Fresh3710
Picked235
Done000
Total22517242
Accuracy
100.0%
Counts
242 → 17
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.8%
(/.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))))
85.3%
(/.f64 (pow.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) #s(literal 2 binary64)) (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.4%
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
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 6 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
98.7%
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (/.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)))))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
48.0%
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.1%
(/.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.3%
(/.f64 (-.f64 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.1%
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.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))))
99.0%
(*.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))))
98.8%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.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)))))))
48.0%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))))
99.5%
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
Compiler

Compiled 632 to 441 computations (30.2% saved)

simplify491.0ms (4%)

Memory
5.0MiB live, 372.7MiB allocated; 77ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 20 expressions of interest:

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

IterNodesCost
034316
063266
1115264
2247243
31249235
45362235
08215224
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)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(/.f64 (-.f64 (*.f64 (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 (log.f64 base) (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))) #s(literal 0 binary64))
(*.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)
#s(literal 0 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#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 (pow.f64 (log.f64 base) #s(literal 6 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (*.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 (pow.f64 (log.f64 base) #s(literal 6 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64)))
(/.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(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 #s(literal 0 binary64) #s(literal 0 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)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(log.f64 base)
base
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (atan2.f64 im re) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 base)
base
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (atan2.f64 im re) (log.f64 base))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 4 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 4 binary64))
#s(literal 4 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(/.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 (atan2.f64 im re) (log.f64 base))
(-.f64 (*.f64 (log.f64 base) (*.f64 (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 (log.f64 base) (*.f64 (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))
(log.f64 base)
base
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (atan2.f64 im re))
(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 (*.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 6 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (/.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64)) (pow.f64 (log.f64 base) #s(literal 4 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 (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 (pow.f64 (log.f64 base) #s(literal 6 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64)))
(/.f64 (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 6 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(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 #s(literal 0 binary64) #s(literal 0 binary64))
#s(literal 0 binary64)

localize698.0ms (5.7%)

Memory
-82.7MiB live, 241.3MiB allocated; 77ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.3421726162349391
(*.f64 (atan2.f64 im re) (log.f64 base))
accuracy0.920641955643154
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy1.1852022206921533
(pow.f64 (log.f64 base) #s(literal 6 binary64))
accuracy31.24597167538453
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
accuracy0.31087875976844204
(*.f64 (log.f64 base) (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
accuracy0.34765625
(/.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)))
accuracy0.5364837890737681
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.920641955643154
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.3421726162349391
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.39249476186430854
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.5364837890737681
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.920641955643154
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.0
(log.f64 base)
accuracy0.328125
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.3421726162349391
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.5364837890737681
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.0
(log.f64 base)
accuracy0.3131637695368841
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
accuracy0.3756637695368841
(/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.5364837890737681
(pow.f64 (log.f64 base) #s(literal 2 binary64))
Samples
190.0ms256×0valid
Compiler

Compiled 324 to 36 computations (88.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 122.0ms
ival-add: 72.0ms (59.1% of total)
ival-mult: 13.0ms (10.7% of total)
ival-div: 12.0ms (9.8% of total)
ival-pow: 7.0ms (5.7% of total)
ival-log: 6.0ms (4.9% of total)
ival-hypot: 4.0ms (3.3% of total)
ival-pow2: 3.0ms (2.5% of total)
ival-atan2: 2.0ms (1.6% of total)
ival-sub: 2.0ms (1.6% of total)
exact: 1.0ms (0.8% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series149.0ms (1.2%)

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

9 calls:

TimeVariablePointExpression
39.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)) (pow (log base) 2)) (* (log base) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (- (* (log base) (* (atan2 im re) (pow (log base) 2))) 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 (sqrt (+ (* re re) (* im im)))) 0) (sqrt (+ (* re re) (* im im))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (/ (pow (log base) 6) (pow (log base) 4)) (* 0 0)) (pow (log base) 2) (pow (log base) 4) (pow (log base) 6) (* (atan2 im re) (log base)))
32.0ms
im
@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)) (pow (log base) 2)) (* (log base) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (- (* (log base) (* (atan2 im re) (pow (log base) 2))) 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 (sqrt (+ (* re re) (* im im)))) 0) (sqrt (+ (* re re) (* im im))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (/ (pow (log base) 6) (pow (log base) 4)) (* 0 0)) (pow (log base) 2) (pow (log base) 4) (pow (log base) 6) (* (atan2 im re) (log base)))
23.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)) (pow (log base) 2)) (* (log base) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (- (* (log base) (* (atan2 im re) (pow (log base) 2))) 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 (sqrt (+ (* re re) (* im im)))) 0) (sqrt (+ (* re re) (* im im))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (/ (pow (log base) 6) (pow (log base) 4)) (* 0 0)) (pow (log base) 2) (pow (log base) 4) (pow (log base) 6) (* (atan2 im re) (log base)))
12.0ms
re
@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)) (pow (log base) 2)) (* (log base) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (- (* (log base) (* (atan2 im re) (pow (log base) 2))) 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 (sqrt (+ (* re re) (* im im)))) 0) (sqrt (+ (* re re) (* im im))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (/ (pow (log base) 6) (pow (log base) 4)) (* 0 0)) (pow (log base) 2) (pow (log base) 4) (pow (log base) 6) (* (atan2 im re) (log base)))
9.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)) (pow (log base) 2)) (* (log base) (atan2 im re)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (- (* (log base) (* (atan2 im re) (pow (log base) 2))) 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 (sqrt (+ (* re re) (* im im)))) 0) (sqrt (+ (* re re) (* im im))) (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (/ (pow (log base) 6) (pow (log base) 4)) (* 0 0)) (pow (log base) 2) (pow (log base) 4) (pow (log base) 6) (* (atan2 im re) (log base)))

simplify188.0ms (1.5%)

Memory
44.3MiB live, 169.8MiB allocated; 24ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0142600
1381591
21463585
37331585
08150551
Stop Event
iter limit
node limit
Counts
51 → 49
Calls
Call 1
Inputs
(/ (atan2 im re) (log base))
(atan2 im re)
(* (log base) (atan2 im re))
(/ (atan2 im re) (pow (log base) 3))
(* (pow (log base) 3) (atan2 im re))
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)))))
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))))))))
(/ 1 (log base))
(log base)
(pow (log base) 2)
(pow (log base) 4)
(pow (log base) 6)
(/ -1 (log (/ 1 base)))
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(* -1 (log (/ 1 base)))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 3)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(pow (log (/ 1 base)) 2)
(pow (log (/ 1 base)) 4)
(pow (log (/ 1 base)) 6)
(/ 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))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 6)
Outputs
(/ (atan2 im re) (log base))
(/.f64 (atan2.f64 im re) (log.f64 base))
(atan2 im re)
(atan2.f64 im re)
(* (log base) (atan2 im re))
(*.f64 (log.f64 base) (atan2.f64 im re))
(/ (atan2 im re) (pow (log base) 3))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(* (pow (log base) 3) (atan2 im re))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
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))
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)))))
(/ 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))
(pow (log base) 6)
(pow.f64 (log.f64 base) #s(literal 6 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))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 3)))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(pow (log (/ 1 base)) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow (log (/ 1 base)) 4)
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 4 binary64))
(pow (log (/ 1 base)) 6)
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 6 binary64))
(/ 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) (+ (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)))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(*.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) (atan2.f64 im re))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 3 binary64)))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(*.f64 (pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 3 binary64)) (atan2.f64 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 4 binary64))
(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))

rewrite55.0ms (0.5%)

Memory
6.3MiB live, 68.9MiB allocated; 11ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033175
061144
0195139
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
19 → 126
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)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (log.f64 base) (atan2.f64 im re))
(*.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (-.f64 (*.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 (log.f64 base) (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
(-.f64 (*.f64 (log.f64 base) (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 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 (/.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64)))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(pow.f64 (log.f64 base) #s(literal 4 binary64))
(pow.f64 (log.f64 base) #s(literal 6 binary64))
(*.f64 (atan2.f64 im re) (log.f64 base))
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))
(log.f64 (pow.f64 base (atan2.f64 im re)))
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (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 4 binary64)))))
(/.f64 (neg.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 (/.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (neg.f64 (*.f64 (atan2.f64 im re) (log.f64 base))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 4 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (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 4 binary64)))))
(/.f64 (neg.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))) (neg.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 (/.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (/.f64 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 4 binary64))))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 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 (-.f64 (*.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))) #s(literal 0 binary64)) (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (+.f64 #s(literal 0 binary64) (*.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) #s(literal 0 binary64)))))
(fma.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(fma.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (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))
(-.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) #s(literal 0 binary64))
(+.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) #s(literal 0 binary64))
(*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (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 (-.f64 (*.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))) #s(literal 0 binary64)) (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (+.f64 #s(literal 0 binary64) (*.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) #s(literal 0 binary64)))))
(fma.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(fma.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (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))
(-.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) #s(literal 0 binary64))
(+.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) #s(literal 0 binary64))
(*.f64 (log.f64 (hypot.f64 re im)) #s(literal 0 binary64))
(*.f64 #s(literal 0 binary64) (log.f64 (hypot.f64 re im)))
(*.f64 #s(literal 0 binary64) #s(literal 0 binary64))
(pow.f64 #s(literal 0 binary64) #s(literal 3 binary64))
(pow.f64 #s(literal 0 binary64) #s(literal 2 binary64))
(sinh.f64 #s(literal 0 binary64))
(neg.f64 #s(literal 0 binary64))
(fabs.f64 #s(literal 0 binary64))
#s(literal 0 binary64)
(pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/2 binary64))
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
(hypot.f64 (neg.f64 im) (neg.f64 re))
(hypot.f64 (neg.f64 im) (fabs.f64 re))
(hypot.f64 (neg.f64 im) re)
(hypot.f64 (neg.f64 re) (neg.f64 im))
(hypot.f64 (neg.f64 re) (fabs.f64 im))
(hypot.f64 (neg.f64 re) im)
(hypot.f64 (fabs.f64 im) (neg.f64 re))
(hypot.f64 (fabs.f64 im) (fabs.f64 re))
(hypot.f64 (fabs.f64 im) re)
(hypot.f64 (fabs.f64 re) (neg.f64 im))
(hypot.f64 (fabs.f64 re) (fabs.f64 im))
(hypot.f64 (fabs.f64 re) im)
(hypot.f64 re (neg.f64 im))
(hypot.f64 re (fabs.f64 im))
(hypot.f64 re im)
(hypot.f64 im (neg.f64 re))
(hypot.f64 im (fabs.f64 re))
(hypot.f64 im re)
(/.f64 (-.f64 (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (atan2.f64 im re) (log.f64 base))) #s(literal 0 binary64)) (fma.f64 (atan2.f64 im re) (log.f64 base) #s(literal 0 binary64)))
(/.f64 (-.f64 (pow.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (atan2.f64 im re) (log.f64 base)) (+.f64 #s(literal 0 binary64) (*.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 0 binary64)))))
(fma.f64 (atan2.f64 im re) (log.f64 base) (*.f64 (neg.f64 (log.f64 (hypot.f64 re im))) #s(literal 0 binary64)))
(fma.f64 (log.f64 base) (atan2.f64 im re) (*.f64 (neg.f64 (log.f64 (hypot.f64 re im))) #s(literal 0 binary64)))
(-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(literal 0 binary64))
(+.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (neg.f64 (log.f64 (hypot.f64 re im))) #s(literal 0 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 1 binary64)) (pow.f64 (log.f64 base) #s(literal 1 binary64)))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 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 (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 6 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 (log.f64 (hypot.f64 re im)) #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(fma.f64 #s(literal 0 binary64) (log.f64 (hypot.f64 re im)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(fma.f64 #s(literal 0 binary64) #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 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 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(+.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 binary64))
(*.f64 (pow.f64 (log.f64 base) #s(literal 1 binary64)) (pow.f64 (log.f64 base) #s(literal 1 binary64)))
(*.f64 (log.f64 base) (log.f64 base))
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(/.f64 (-.f64 (pow.f64 (log.f64 base) #s(literal 4 binary64)) #s(literal 0 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 (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 6 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 (log.f64 (hypot.f64 re im)) #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(fma.f64 #s(literal 0 binary64) (log.f64 (hypot.f64 re im)) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(fma.f64 #s(literal 0 binary64) #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 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 #s(literal 0 binary64) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(+.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(literal 0 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 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 (atan2.f64 im re) (log.f64 base))
(*.f64 (log.f64 base) (atan2.f64 im re))
(log.f64 (pow.f64 base (atan2.f64 im re)))

eval48.0ms (0.4%)

Memory
-29.6MiB live, 51.0MiB allocated; 13ms collecting garbage
Compiler

Compiled 5 160 to 672 computations (87% saved)

prune14.0ms (0.1%)

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

18 alts after pruning (12 fresh and 6 done)

PrunedKeptTotal
New1846190
Fresh369
Picked235
Done033
Total18918207
Accuracy
100.0%
Counts
207 → 18
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.8%
(/.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))))
99.4%
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
47.6%
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))) (+.f64 (/.f64 (*.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 #s(literal 0 binary64) #s(literal 0 binary64))))
99.2%
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) #s(approx (* (log (sqrt (+ (* re re) (* im im)))) 0) #s(literal 0 binary64))) (+.f64 (/.f64 (pow.f64 (log.f64 base) #s(literal 6 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
98.7%
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (/.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)))))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
48.0%
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.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 #s(approx (* (* (log base) (atan2 im re)) (pow (log base) 2)) (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.1%
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (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.0%
(*.f64 (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 4 binary64)))))
99.3%
(*.f64 (atan2.f64 im re) (/.f64 (log.f64 base) (pow.f64 (log.f64 base) #s(literal 2 binary64))))
99.4%
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
99.0%
(*.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))))
98.8%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.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)))))))
99.1%
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.5%
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
Compiler

Compiled 684 to 475 computations (30.6% saved)

simplify317.0ms (2.6%)

Memory
-11.3MiB live, 113.8MiB allocated; 23ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 20 expressions of interest:

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

Useful iterations: 2 (0.0ms)

IterNodesCost
040299
064272
198272
2200263
3648263
43552263
08307263
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
(atan2.f64 im re)
im
re
#s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
#s(literal 1 binary64)
(log.f64 base)
base
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(log.f64 base)
base
#s(literal 3 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (/.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 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 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))
(log.f64 base)
base
#s(literal 2 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)) (exp.f64 (*.f64 (log.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)) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))) #s(literal 0 binary64))
(*.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)
#s(literal 0 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)) (pow.f64 (log.f64 base) #s(literal -1 binary64))) (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)))
#s(approx (/ (log base) (pow (log base) 2)) (pow.f64 (log.f64 base) #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(pow.f64 (log.f64 base) #s(literal -1 binary64))
#s(literal 1 binary64)
(log.f64 base)
base
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(log.f64 base)
base
#s(literal 3 binary64)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (/.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 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))
(*.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 2 binary64)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (atan2.f64 im re))
(atan2.f64 im re)
im
re
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(log.f64 base)
base
#s(literal 2 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)) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(/.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.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)) (exp.f64 (*.f64 (log.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
(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)
#s(literal 0 binary64)
(pow.f64 (log.f64 base) #s(literal 4 binary64))
#s(literal 4 binary64)

localize286.0ms (2.4%)

Memory
-1.4MiB live, 179.8MiB allocated; 30ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.16015625
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.17578125
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
accuracy0.4366952637479347
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.8187407023287895
(exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))
accuracy0.162441259768442
(*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))
accuracy0.17578125
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
accuracy0.23894501953688402
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.4366952637479347
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.109375
(/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 6 binary64)))
accuracy0.16015625
(*.f64 (log.f64 base) (atan2.f64 im re))
accuracy0.4366952637479347
(pow.f64 (log.f64 base) #s(literal 4 binary64))
accuracy0.5563978269892422
(pow.f64 (log.f64 base) #s(literal 6 binary64))
accuracy0.1328125
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
accuracy0.15625
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
accuracy0.23894501953688402
(pow.f64 (log.f64 base) #s(literal 2 binary64))
accuracy0.34154135745286224
(pow.f64 (log.f64 base) #s(literal 3 binary64))
accuracy0.0
(log.f64 base)
accuracy0.0
#s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base)))
accuracy0.13671875
(/.f64 #s(literal 1 binary64) (log.f64 base))
accuracy0.14681625976844204
(*.f64 (atan2.f64 im re) #s(approx (/ (log base) (pow (log base) 2)) (/.f64 #s(literal 1 binary64) (log.f64 base))))
Samples
219.0ms130×0invalid
43.0ms126×0valid
Compiler

Compiled 273 to 35 computations (87.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 239.0ms
ival-mult: 196.0ms (81.9% of total)
ival-pow: 12.0ms (5% of total)
ival-div: 10.0ms (4.2% of total)
ival-exp: 9.0ms (3.8% of total)
ival-log: 5.0ms (2.1% of total)
ival-pow2: 3.0ms (1.3% of total)
ival-atan2: 2.0ms (0.8% of total)
ival-sub: 1.0ms (0.4% of total)
exact: 1.0ms (0.4% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series125.0ms (1%)

Memory
-16.4MiB live, 218.4MiB allocated; 30ms 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) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
#s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(*.f64 (/.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)
(*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base))
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64))))
(-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.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 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.f64 (log.f64 base)) #s(literal 2 binary64)))) #s(literal 0 binary64)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
(pow.f64 (log.f64 base) #s(literal 3 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) 3))
(/ (atan2 im re) (pow (log base) 5))
(* (log base) (atan2 im re))
(* (pow (log base) 3) (atan2 im re))
(* (pow (log base) 2) (atan2 im re))
(/ 1 (log base))
(log base)
(pow (log base) 2)
(pow (log base) 3)
(pow (log base) 6)
(pow (log base) 4)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(/ -1 (log (/ 1 base)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 3)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 5)))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(* -1 (log (/ 1 base)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(* (pow (log (/ 1 base)) 2) (atan2 im re))
(pow (log (/ 1 base)) 2)
(* -1 (pow (log (/ 1 base)) 3))
(pow (log (/ 1 base)) 6)
(pow (log (/ 1 base)) 4)
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 5))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(+ (log -1) (* -1 (log (/ -1 base))))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2) (atan2 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
(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) (pow (log base) 2))) (atan2 im re) (/ (log base) (pow (log base) 2)) (/ 1 (log base)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (atan2 im re) (pow (log base) 3)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (* (log base) (atan2 im re)) (log base) (* (* (atan2 im re) (pow (log base) 2)) (log base)) (/ (* (* (atan2 im re) (pow (log base) 2)) (log base)) (pow (log base) 4)) (* (atan2 im re) (pow (log base) 2)) (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) (- (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) 0) (exp (* (log (log base)) 2)) (/ (- (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) 0) (pow (log base) 4)) (pow (log base) 3) (pow (log base) 2) (pow (log base) 6) (pow (log base) 4))
12.0ms
re
@0
((* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (/ (log base) (pow (log base) 2)) (/ 1 (log base)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (atan2 im re) (pow (log base) 3)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (* (log base) (atan2 im re)) (log base) (* (* (atan2 im re) (pow (log base) 2)) (log base)) (/ (* (* (atan2 im re) (pow (log base) 2)) (log base)) (pow (log base) 4)) (* (atan2 im re) (pow (log base) 2)) (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) (- (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) 0) (exp (* (log (log base)) 2)) (/ (- (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) 0) (pow (log base) 4)) (pow (log base) 3) (pow (log base) 2) (pow (log base) 6) (pow (log base) 4))
12.0ms
im
@-inf
((* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (/ (log base) (pow (log base) 2)) (/ 1 (log base)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (atan2 im re) (pow (log base) 3)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (* (log base) (atan2 im re)) (log base) (* (* (atan2 im re) (pow (log base) 2)) (log base)) (/ (* (* (atan2 im re) (pow (log base) 2)) (log base)) (pow (log base) 4)) (* (atan2 im re) (pow (log base) 2)) (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) (- (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) 0) (exp (* (log (log base)) 2)) (/ (- (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) 0) (pow (log base) 4)) (pow (log base) 3) (pow (log base) 2) (pow (log base) 6) (pow (log base) 4))
11.0ms
base
@inf
((* (atan2 im re) (/ (log base) (pow (log base) 2))) (atan2 im re) (/ (log base) (pow (log base) 2)) (/ 1 (log base)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (atan2 im re) (pow (log base) 3)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (* (log base) (atan2 im re)) (log base) (* (* (atan2 im re) (pow (log base) 2)) (log base)) (/ (* (* (atan2 im re) (pow (log base) 2)) (log base)) (pow (log base) 4)) (* (atan2 im re) (pow (log base) 2)) (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) (- (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) 0) (exp (* (log (log base)) 2)) (/ (- (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) 0) (pow (log base) 4)) (pow (log base) 3) (pow (log base) 2) (pow (log base) 6) (pow (log base) 4))
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) 4)) (pow (log base) 2)) (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/ (atan2 im re) (pow (log base) 3)) (* (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (pow (log base) 4)) (/ (* (log base) (atan2 im re)) (pow (log base) 6)) (* (log base) (atan2 im re)) (log base) (* (* (atan2 im re) (pow (log base) 2)) (log base)) (/ (* (* (atan2 im re) (pow (log base) 2)) (log base)) (pow (log base) 4)) (* (atan2 im re) (pow (log base) 2)) (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) (- (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) 0) (exp (* (log (log base)) 2)) (/ (- (* (* (log base) (atan2 im re)) (exp (* (log (log base)) 2))) 0) (pow (log base) 4)) (pow (log base) 3) (pow (log base) 2) (pow (log base) 6) (pow (log base) 4))

simplify377.0ms (3.1%)

Memory
37.9MiB live, 307.3MiB allocated; 39ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
062277
1110265
2250265
3871265
43384265
08215265
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) 3))
(/ (atan2 im re) (pow (log base) 5))
(* (log base) (atan2 im re))
(* (pow (log base) 3) (atan2 im re))
(* (pow (log base) 2) (atan2 im re))
(/ 1 (log base))
(log base)
(pow (log base) 2)
(pow (log base) 3)
(pow (log base) 6)
(pow (log base) 4)
(* -1 (/ (atan2 im re) (log (/ 1 base))))
(/ -1 (log (/ 1 base)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 3)))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 5)))
(* -1 (* (log (/ 1 base)) (atan2 im re)))
(* -1 (log (/ 1 base)))
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(* (pow (log (/ 1 base)) 2) (atan2 im re))
(pow (log (/ 1 base)) 2)
(* -1 (pow (log (/ 1 base)) 3))
(pow (log (/ 1 base)) 6)
(pow (log (/ 1 base)) 4)
(/ (atan2 im re) (+ (log -1) (* -1 (log (/ -1 base)))))
(/ 1 (+ (log -1) (* -1 (log (/ -1 base)))))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 5))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(+ (log -1) (* -1 (log (/ -1 base))))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 2) (atan2 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
(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) 3))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(/ (atan2 im re) (pow (log base) 5))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 5 binary64)))
(* (log base) (atan2 im re))
(*.f64 (atan2.f64 im re) (log.f64 base))
(* (pow (log base) 3) (atan2 im re))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(* (pow (log base) 2) (atan2 im re))
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(/ 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) 3)
(pow.f64 (log.f64 base) #s(literal 3 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)))
(/.f64 #s(literal 1 binary64) (log.f64 base))
(* -1 (/ (atan2 im re) (pow (log (/ 1 base)) 3)))
(/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))
(* -1 (/ (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 (* (log (/ 1 base)) (atan2 im re)))
(*.f64 (atan2.f64 im re) (log.f64 base))
(* -1 (log (/ 1 base)))
(log.f64 base)
(* -1 (* (pow (log (/ 1 base)) 3) (atan2 im re)))
(*.f64 (pow.f64 (log.f64 base) #s(literal 3 binary64)) (atan2.f64 im re))
(* (pow (log (/ 1 base)) 2) (atan2 im re))
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
(pow (log (/ 1 base)) 2)
(pow.f64 (log.f64 base) #s(literal 2 binary64))
(* -1 (pow (log (/ 1 base)) 3))
(pow.f64 (log.f64 base) #s(literal 3 binary64))
(pow (log (/ 1 base)) 6)
(pow.f64 (neg.f64 (log.f64 base)) #s(literal 6 binary64))
(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 (log1p.f64 #s(literal -2 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)) (log1p.f64 #s(literal -2 binary64))))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log1p.f64 #s(literal -2 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 3 binary64)))
(/ (atan2 im re) (pow (+ (log -1) (* -1 (log (/ -1 base)))) 5))
(/.f64 (atan2.f64 im re) (pow.f64 (-.f64 (log1p.f64 #s(literal -2 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 5 binary64)))
(* (+ (log -1) (* -1 (log (/ -1 base)))) (atan2 im re))
(*.f64 (-.f64 (log1p.f64 #s(literal -2 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) (atan2.f64 im re))
(+ (log -1) (* -1 (log (/ -1 base))))
(-.f64 (log1p.f64 #s(literal -2 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base)))
(* (pow (+ (log -1) (* -1 (log (/ -1 base)))) 3) (atan2 im re))
(*.f64 (pow.f64 (-.f64 (log1p.f64 #s(literal -2 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) (atan2 im re))
(*.f64 (pow.f64 (-.f64 (log1p.f64 #s(literal -2 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64)) (atan2.f64 im re))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 2)
(pow.f64 (-.f64 (log1p.f64 #s(literal -2 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 2 binary64))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 3)
(pow.f64 (-.f64 (log1p.f64 #s(literal -2 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 3 binary64))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 6)
(pow.f64 (-.f64 (log1p.f64 #s(literal -2 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 6 binary64))
(pow (+ (log -1) (* -1 (log (/ -1 base)))) 4)
(pow.f64 (-.f64 (log1p.f64 #s(literal -2 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) base))) #s(literal 4 binary64))

rewrite110.0ms (0.9%)

Memory
-23.5MiB live, 65.3MiB allocated; 17ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

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

eval41.0ms (0.3%)

Memory
-19.7MiB live, 25.9MiB allocated; 3ms collecting garbage
Compiler

Compiled 3 023 to 361 computations (88.1% saved)

prune18.0ms (0.1%)

Memory
-6.1MiB live, 39.5MiB allocated; 3ms collecting garbage
Pruning

17 alts after pruning (6 fresh and 11 done)

PrunedKeptTotal
New1335138
Fresh617
Picked055
Done066
Total13917156
Accuracy
100.0%
Counts
156 → 17
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.4%
(/.f64 (/.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (log.f64 base)) (log.f64 base))
48.0%
(/.f64 (-.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (exp.f64 (*.f64 (log.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 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64))) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.1%
(/.f64 (*.f64 (*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 2 binary64))) (log.f64 base)) (pow.f64 (log.f64 base) #s(literal 4 binary64)))
99.2%
(/.f64 (*.f64 (*.f64 (log.f64 base) (atan2.f64 im re)) (pow.f64 (log.f64 base) #s(literal 4 binary64))) (pow.f64 (log.f64 base) #s(literal 6 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))))
99.4%
(*.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 (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)))
98.9%
(*.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.1%
(*.f64 (*.f64 (pow.f64 (log.f64 base) #s(literal 2 binary64)) (atan2.f64 im re)) (/.f64 (log.f64 base) (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))))
98.8%
(*.f64 (log.f64 base) (/.f64 (atan2.f64 im re) (/.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)))))))
99.1%
(*.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.1%
(*.f64 #s(approx (/ (* (log base) (atan2 im re)) (pow (log base) 4)) (/.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) #s(literal 3 binary64)))) (pow.f64 (log.f64 base) #s(literal 2 binary64)))
99.5%
#s(approx (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))) (/.f64 (atan2.f64 im re) (log.f64 base)))
Compiler

Compiled 1 052 to 374 computations (64.4% saved)

regimes62.0ms (0.5%)

Memory
0.3MiB live, 104.2MiB allocated; 12ms collecting garbage
Accuracy

Total -53.2b remaining (-17568.1%)

Threshold costs -53.2b (-17568.1%)

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

5 calls:

25.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))))
11.0ms
im
8.0ms
base
8.0ms
re
8.0ms
(log.f64 base)
Results
AccuracySegmentsBranch
99.5%1(log.f64 base)
99.5%1(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 0 binary64))) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 #s(literal 0 binary64) #s(literal 0 binary64))))
99.5%1re
99.5%1im
99.5%1base
Compiler

Compiled 33 to 31 computations (6.1% saved)

simplify86.0ms (0.7%)

Memory
8.5MiB live, 54.8MiB allocated; 3ms collecting garbage
Algorithm
egg-herbie
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)))

derivations117.0ms (1%)

Memory
-18.9MiB live, 70.4MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 35 to 22 computations (37.1% saved)

preprocess16.0ms (0.1%)

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