math.log/1 on complex, real part

Time bar (total: 3.5s)

start0.0ms (0%)

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

analyze49.0ms (1.4%)

Memory
22.9MiB live, 66.9MiB allocated; 9ms 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%99.9%0.1%0%0%0%4
18.8%18.7%81.2%0.1%0%0%0%5
34.4%34.3%65.6%0.1%0%0%0%6
54.7%54.6%45.3%0.1%0%0%0%7
64.8%64.8%35.1%0.1%0%0%0%8
76.2%76.1%23.8%0.1%0%0%0%9
81.8%81.8%18.1%0.1%0%0%0%10
87.8%87.7%12.2%0.1%0%0%0%11
90.8%90.7%9.2%0.1%0%0%0%12
Compiler

Compiled 11 to 6 computations (45.5% saved)

sample988.0ms (28.2%)

Memory
-19.6MiB live, 1 057.8MiB allocated; 275ms collecting garbage
Samples
739.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 569.0ms
ival-hypot: 416.0ms (73.1% of total)
ival-log: 141.0ms (24.8% of total)
ival-true: 6.0ms (1.1% of total)
ival-assert: 3.0ms (0.5% of total)
adjust: 2.0ms (0.4% of total)
Bogosity

explain108.0ms (3.1%)

Memory
-12.7MiB live, 224.5MiB allocated; 26ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1190-1(-4.011006252135398e-263 1.090092556485161e-156)(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
00-0-(+.f64 (*.f64 re re) (*.f64 im im))
00-0-(*.f64 re re)
00-0-re
00-0-(*.f64 im im)
00-0-(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
00-0-im
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))oflow-rescue1080
(+.f64 (*.f64 re re) (*.f64 im im))overflow108
(*.f64 re re)overflow55
(*.f64 im im)overflow64
sqrt.f64(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))uflow-rescue100
(+.f64 (*.f64 re re) (*.f64 im im))underflow10
(*.f64 re re)underflow58
(*.f64 im im)underflow48
Confusion
Predicted +Predicted -
+1180
-0138
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+11800
-00138
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0138
1118
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
43.0ms512×0valid
Compiler

Compiled 77 to 25 computations (67.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 27.0ms
ival-log: 9.0ms (33.5% of total)
ival-hypot: 8.0ms (29.8% of total)
ival-mult: 7.0ms (26.1% of total)
ival-add: 2.0ms (7.4% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess19.0ms (0.5%)

Memory
-16.2MiB live, 29.7MiB allocated; 5ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01947
14547
29547
312047
415847
079
0129
1239
2629
31199
41569
01564
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
Outputs
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(log.f64 (hypot.f64 im re))
Symmetry

(abs im)

(abs re)

(sort re im)

Compiler

Compiled 9 to 7 computations (22.2% saved)

eval0.0ms (0%)

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

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.3%
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify5.0ms (0.1%)

Memory
4.7MiB live, 4.7MiB allocated; 0ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 re re)
cost-diff0
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
cost-diff1
(+.f64 (*.f64 re re) (*.f64 im im))
cost-diff4
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0732
01232
12332
26232
311932
415632
015621
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(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)
re
(*.f64 im im)
im
Outputs
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(log.f64 (hypot.f64 im re))
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(hypot.f64 im re)
(+.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(*.f64 re re)
re
(*.f64 im im)
im

localize24.0ms (0.7%)

Memory
36.9MiB live, 36.9MiB allocated; 0ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 im im)
accuracy0.0
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
accuracy0.0078125
(+.f64 (*.f64 re re) (*.f64 im im))
accuracy27.35003335253281
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Samples
18.0ms256×0valid
Compiler

Compiled 34 to 9 computations (73.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-hypot: 4.0ms (35.2% of total)
ival-log: 3.0ms (26.4% of total)
ival-mult: 3.0ms (26.4% of total)
ival-add: 1.0ms (8.8% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series38.0ms (1.1%)

Memory
-31.8MiB live, 14.1MiB allocated; 6ms collecting garbage
Counts
5 → 51
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (*.f64 re re) (*.f64 im im))
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 re re)
(*.f64 im im)
Outputs
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)))))
(pow im 2)
(+ (pow im 2) (pow re 2))
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(pow re 2)
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)))))))
(* (pow re 2) (+ 1 (/ (pow im 2) (pow re 2))))
(* -1 (log (/ 1 re)))
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -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))))))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(+ 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)))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(* 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)))))))
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -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 (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
Calls

6 calls:

TimeVariablePointExpression
31.0ms
re
@0
((sqrt (+ (* re re) (* im im))) (+ (* re re) (* im im)) (log (sqrt (+ (* re re) (* im im)))) (* re re) (* im im))
2.0ms
re
@inf
((sqrt (+ (* re re) (* im im))) (+ (* re re) (* im im)) (log (sqrt (+ (* re re) (* im im)))) (* re re) (* im im))
1.0ms
im
@inf
((sqrt (+ (* re re) (* im im))) (+ (* re re) (* im im)) (log (sqrt (+ (* re re) (* im im)))) (* re re) (* im im))
1.0ms
im
@0
((sqrt (+ (* re re) (* im im))) (+ (* re re) (* im im)) (log (sqrt (+ (* re re) (* im im)))) (* re re) (* im im))
1.0ms
im
@-inf
((sqrt (+ (* re re) (* im im))) (+ (* re re) (* im im)) (log (sqrt (+ (* re re) (* im im)))) (* re re) (* im im))

simplify245.0ms (7%)

Memory
9.3MiB live, 143.4MiB allocated; 24ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0186897
1569881
22220869
37543869
08158802
Stop Event
iter limit
node limit
Counts
51 → 49
Calls
Call 1
Inputs
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)))))
(pow im 2)
(+ (pow im 2) (pow re 2))
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(pow re 2)
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)))))))
(* (pow re 2) (+ 1 (/ (pow im 2) (pow re 2))))
(* -1 (log (/ 1 re)))
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -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))))))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(+ 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)))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(* 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)))))))
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -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 (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
Outputs
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 #s(literal -1/8 binary64) im) im) (*.f64 re re) #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))
(pow im 2)
(*.f64 im im)
(+ (pow im 2) (pow re 2))
(fma.f64 im im (*.f64 re re))
(log im)
(log.f64 im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) (log.f64 im))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/4 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) (log.f64 im)))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/6 binary64) re) (/.f64 re (pow.f64 im #s(literal 6 binary64))) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64)))) (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) (log.f64 im)))
(pow re 2)
(*.f64 re re)
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (/.f64 re re) (*.f64 (/.f64 (*.f64 im im) re) #s(literal 1/2 binary64)) 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) im) (/.f64 (/.f64 im re) 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) im) (/.f64 (/.f64 im re) re) #s(literal 1 binary64)))) re)
(* (pow re 2) (+ 1 (/ (pow im 2) (pow re 2))))
(*.f64 (fma.f64 (/.f64 (/.f64 im re) re) im #s(literal 1 binary64)) (*.f64 re re))
(* -1 (log (/ 1 re)))
(log.f64 re)
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) im) (/.f64 (/.f64 im re) re) (log.f64 re))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) im) (/.f64 (/.f64 im re) re) (fma.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal -1/4 binary64) (log.f64 re)))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) im) (/.f64 (/.f64 im re) re) (fma.f64 (*.f64 #s(literal 1/720 binary64) (pow.f64 im #s(literal 6 binary64))) (/.f64 #s(literal 120 binary64) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal -1/4 binary64) (log.f64 re))))
(* -1 re)
(neg.f64 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (fma.f64 (/.f64 (/.f64 #s(literal -1/2 binary64) re) re) (*.f64 im im) #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 (/.f64 #s(literal -1/2 binary64) re) re) (*.f64 im im) #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) im) (/.f64 (/.f64 im re) re) #s(literal 1 binary64)))))
(* -1 (log (/ -1 re)))
(neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (*.f64 (/.f64 (/.f64 im re) re) im) #s(literal 1/2 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/4 binary64) im) (/.f64 im (pow.f64 re #s(literal 4 binary64))) (/.f64 (/.f64 #s(literal 1/2 binary64) re) re)) (*.f64 im im) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(fma.f64 (*.f64 (/.f64 #s(literal 120 binary64) (pow.f64 re #s(literal 6 binary64))) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/720 binary64) (fma.f64 (fma.f64 (*.f64 #s(literal -1/4 binary64) im) (/.f64 im (pow.f64 re #s(literal 4 binary64))) (/.f64 (/.f64 #s(literal 1/2 binary64) re) re)) (*.f64 im im) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)))))
(+ 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)
(log re)
(log.f64 re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) im) (/.f64 (/.f64 im re) re) (log.f64 re))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) im) (/.f64 (/.f64 im re) re) (fma.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal -1/4 binary64) (log.f64 re)))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (/.f64 im (pow.f64 re #s(literal 6 binary64))) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64)))) (*.f64 im im) (/.f64 (/.f64 #s(literal 1/2 binary64) re) re)) (*.f64 im im) (log.f64 re))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(*.f64 (fma.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re) #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 #s(literal 1/2 binary64) im) im) (*.f64 re re) #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 #s(literal 1/2 binary64) im) im) (*.f64 re re) #s(literal 1 binary64)))) im)
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) im im) im)
(* -1 (log (/ 1 im)))
(log.f64 im)
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) (log.f64 im))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/4 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) (log.f64 im)))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 (*.f64 #s(literal 1/720 binary64) (pow.f64 re #s(literal 6 binary64))) (/.f64 #s(literal 120 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/4 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) (log.f64 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 #s(literal 1/2 binary64) im) im) (*.f64 re re) #s(literal 1 binary64)))))
(* -1 (log (/ -1 im)))
(neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(-.f64 (*.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) im)))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/4 binary64) (-.f64 (*.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) im))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 (*.f64 (/.f64 #s(literal 120 binary64) (pow.f64 im #s(literal 6 binary64))) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/720 binary64) (fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/4 binary64) (-.f64 (*.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) im)))))

rewrite51.0ms (1.5%)

Memory
16.1MiB live, 60.0MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0730
01230
14130
034919
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
5 → 173
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (*.f64 re re) (*.f64 im im))
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 re re)
(*.f64 im im)
Outputs
(*.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)) (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)))
(pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64)))) (sqrt.f64 (*.f64 (+.f64 re im) (-.f64 re im))))
(/.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64))) (sqrt.f64 (+.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 re im) #s(literal 2 binary64))) (pow.f64 re #s(literal 4 binary64)))))
(sqrt.f64 (fma.f64 im im (*.f64 re 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 (pow.f64 im #s(literal 1 binary64)) (pow.f64 re #s(literal 1 binary64)))
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) (neg.f64 (neg.f64 re)))
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) (neg.f64 (fabs.f64 re)))
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) (fabs.f64 (fabs.f64 re)))
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) (neg.f64 re))
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) (fabs.f64 re))
(hypot.f64 (pow.f64 im #s(literal 1 binary64)) re)
(hypot.f64 (neg.f64 (neg.f64 im)) (pow.f64 re #s(literal 1 binary64)))
(hypot.f64 (neg.f64 (neg.f64 im)) (neg.f64 (neg.f64 re)))
(hypot.f64 (neg.f64 (neg.f64 im)) (neg.f64 (fabs.f64 re)))
(hypot.f64 (neg.f64 (neg.f64 im)) (fabs.f64 (fabs.f64 re)))
(hypot.f64 (neg.f64 (neg.f64 im)) (neg.f64 re))
(hypot.f64 (neg.f64 (neg.f64 im)) (fabs.f64 re))
(hypot.f64 (neg.f64 (neg.f64 im)) re)
(hypot.f64 (neg.f64 (fabs.f64 im)) (pow.f64 re #s(literal 1 binary64)))
(hypot.f64 (neg.f64 (fabs.f64 im)) (neg.f64 (neg.f64 re)))
(hypot.f64 (neg.f64 (fabs.f64 im)) (neg.f64 (fabs.f64 re)))
(hypot.f64 (neg.f64 (fabs.f64 im)) (fabs.f64 (fabs.f64 re)))
(hypot.f64 (neg.f64 (fabs.f64 im)) (neg.f64 re))
(hypot.f64 (neg.f64 (fabs.f64 im)) (fabs.f64 re))
(hypot.f64 (neg.f64 (fabs.f64 im)) re)
(hypot.f64 (neg.f64 (neg.f64 re)) (pow.f64 im #s(literal 1 binary64)))
(hypot.f64 (neg.f64 (neg.f64 re)) (neg.f64 (neg.f64 im)))
(hypot.f64 (neg.f64 (neg.f64 re)) (neg.f64 (fabs.f64 im)))
(hypot.f64 (neg.f64 (neg.f64 re)) (fabs.f64 (fabs.f64 im)))
(hypot.f64 (neg.f64 (neg.f64 re)) (neg.f64 im))
(hypot.f64 (neg.f64 (neg.f64 re)) (fabs.f64 im))
(hypot.f64 (neg.f64 (neg.f64 re)) im)
(hypot.f64 (neg.f64 (fabs.f64 re)) (pow.f64 im #s(literal 1 binary64)))
(hypot.f64 (neg.f64 (fabs.f64 re)) (neg.f64 (neg.f64 im)))
(hypot.f64 (neg.f64 (fabs.f64 re)) (neg.f64 (fabs.f64 im)))
(hypot.f64 (neg.f64 (fabs.f64 re)) (fabs.f64 (fabs.f64 im)))
(hypot.f64 (neg.f64 (fabs.f64 re)) (neg.f64 im))
(hypot.f64 (neg.f64 (fabs.f64 re)) (fabs.f64 im))
(hypot.f64 (neg.f64 (fabs.f64 re)) im)
(hypot.f64 (fabs.f64 (fabs.f64 im)) (pow.f64 re #s(literal 1 binary64)))
(hypot.f64 (fabs.f64 (fabs.f64 im)) (neg.f64 (neg.f64 re)))
(hypot.f64 (fabs.f64 (fabs.f64 im)) (neg.f64 (fabs.f64 re)))
(hypot.f64 (fabs.f64 (fabs.f64 im)) (fabs.f64 (fabs.f64 re)))
(hypot.f64 (fabs.f64 (fabs.f64 im)) (neg.f64 re))
(hypot.f64 (fabs.f64 (fabs.f64 im)) (fabs.f64 re))
(hypot.f64 (fabs.f64 (fabs.f64 im)) re)
(hypot.f64 (fabs.f64 (fabs.f64 re)) (pow.f64 im #s(literal 1 binary64)))
(hypot.f64 (fabs.f64 (fabs.f64 re)) (neg.f64 (neg.f64 im)))
(hypot.f64 (fabs.f64 (fabs.f64 re)) (neg.f64 (fabs.f64 im)))
(hypot.f64 (fabs.f64 (fabs.f64 re)) (fabs.f64 (fabs.f64 im)))
(hypot.f64 (fabs.f64 (fabs.f64 re)) (neg.f64 im))
(hypot.f64 (fabs.f64 (fabs.f64 re)) (fabs.f64 im))
(hypot.f64 (fabs.f64 (fabs.f64 re)) im)
(hypot.f64 (neg.f64 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 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)
(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)
(exp.f64 (*.f64 (log.f64 (fma.f64 im im (*.f64 re re))) #s(literal 1/2 binary64)))
(/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (*.f64 im im) (*.f64 re re)))
(/.f64 (-.f64 (pow.f64 re #s(literal 6 binary64)) (pow.f64 (*.f64 (neg.f64 im) im) #s(literal 3 binary64))) (+.f64 (pow.f64 re #s(literal 4 binary64)) (+.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (*.f64 re re) (*.f64 (neg.f64 im) im)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64)))) (neg.f64 (*.f64 (+.f64 re im) (-.f64 re im))))
(/.f64 (neg.f64 (+.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (neg.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)))))
(/.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) (*.f64 (+.f64 re im) (-.f64 re im)))
(/.f64 (+.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (+.f64 (pow.f64 im #s(literal 4 binary64)) (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 (*.f64 re im) #s(literal 2 binary64)))))
(/.f64 (+.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (+.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))))
(fma.f64 (pow.f64 re #s(literal 1 binary64)) (pow.f64 re #s(literal 1 binary64)) (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 (pow.f64 re #s(literal 1 binary64)) (pow.f64 re #s(literal 1 binary64)) (*.f64 im im))
(fma.f64 (pow.f64 im #s(literal 1 binary64)) (pow.f64 im #s(literal 1 binary64)) (*.f64 re re))
(fma.f64 (neg.f64 (neg.f64 im)) (neg.f64 (neg.f64 im)) (*.f64 re re))
(fma.f64 (neg.f64 (fabs.f64 im)) (neg.f64 (fabs.f64 im)) (*.f64 re re))
(fma.f64 (neg.f64 (neg.f64 re)) (neg.f64 (neg.f64 re)) (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 (neg.f64 (neg.f64 re)) (neg.f64 (neg.f64 re)) (*.f64 im im))
(fma.f64 (neg.f64 (fabs.f64 re)) (neg.f64 (fabs.f64 re)) (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 (neg.f64 (fabs.f64 re)) (neg.f64 (fabs.f64 re)) (*.f64 im im))
(fma.f64 (fabs.f64 (fabs.f64 im)) (fabs.f64 (fabs.f64 im)) (*.f64 re re))
(fma.f64 (fabs.f64 (fabs.f64 re)) (fabs.f64 (fabs.f64 re)) (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 (fabs.f64 (fabs.f64 re)) (fabs.f64 (fabs.f64 re)) (*.f64 im im))
(fma.f64 (neg.f64 im) (neg.f64 im) (*.f64 re re))
(fma.f64 (neg.f64 re) (neg.f64 re) (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 (neg.f64 re) (neg.f64 re) (*.f64 im im))
(fma.f64 (fabs.f64 im) (fabs.f64 im) (*.f64 re re))
(fma.f64 (fabs.f64 re) (fabs.f64 re) (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 (fabs.f64 re) (fabs.f64 re) (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 re re (*.f64 im im))
(-.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (*.f64 (+.f64 re im) (-.f64 re im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (+.f64 re im) (-.f64 re im))))
(-.f64 (*.f64 im im) (*.f64 (neg.f64 (neg.f64 re)) (neg.f64 re)))
(-.f64 (*.f64 im im) (*.f64 (neg.f64 (fabs.f64 re)) (fabs.f64 re)))
(-.f64 (*.f64 im im) (*.f64 (neg.f64 re) re))
(-.f64 (*.f64 im im) (*.f64 re (neg.f64 re)))
(-.f64 (*.f64 re re) (*.f64 (neg.f64 (neg.f64 im)) (neg.f64 im)))
(-.f64 (*.f64 re re) (*.f64 (neg.f64 (fabs.f64 im)) (fabs.f64 im)))
(-.f64 (*.f64 re re) (*.f64 (neg.f64 im) im))
(+.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (+.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)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (+.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)))))
(+.f64 (*.f64 im im) (*.f64 re re))
(+.f64 (*.f64 re re) (*.f64 (neg.f64 (neg.f64 im)) im))
(+.f64 (*.f64 re re) (*.f64 im im))
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
(log.f64 (hypot.f64 im re))
(*.f64 (pow.f64 re #s(literal 1 binary64)) (pow.f64 re #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 re)) (neg.f64 (neg.f64 re)))
(*.f64 (neg.f64 (fabs.f64 re)) (neg.f64 (fabs.f64 re)))
(*.f64 (fabs.f64 (fabs.f64 re)) (fabs.f64 (fabs.f64 re)))
(*.f64 (neg.f64 re) (neg.f64 re))
(*.f64 (fabs.f64 re) (fabs.f64 re))
(*.f64 re re)
(pow.f64 (neg.f64 re) #s(literal 2 binary64))
(pow.f64 (fabs.f64 re) #s(literal 2 binary64))
(pow.f64 re #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 re) re))
(neg.f64 (*.f64 re (neg.f64 re)))
(fabs.f64 (*.f64 re re))
(exp.f64 (*.f64 (log.f64 re) #s(literal 2 binary64)))
(*.f64 (pow.f64 im #s(literal 1 binary64)) (pow.f64 im #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 im)) (neg.f64 (neg.f64 im)))
(*.f64 (neg.f64 (fabs.f64 im)) (neg.f64 (fabs.f64 im)))
(*.f64 (fabs.f64 (fabs.f64 im)) (fabs.f64 (fabs.f64 im)))
(*.f64 (neg.f64 im) (neg.f64 im))
(*.f64 (fabs.f64 im) (fabs.f64 im))
(*.f64 im im)
(pow.f64 (neg.f64 im) #s(literal 2 binary64))
(pow.f64 (fabs.f64 im) #s(literal 2 binary64))
(pow.f64 im #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 im) im))
(fabs.f64 (*.f64 im im))
(exp.f64 (*.f64 (log.f64 im) #s(literal 2 binary64)))

eval44.0ms (1.3%)

Memory
-19.4MiB live, 41.3MiB allocated; 8ms collecting garbage
Compiler

Compiled 2 799 to 703 computations (74.9% saved)

prune5.0ms (0.1%)

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

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New2133216
Fresh000
Picked101
Done000
Total2143217
Accuracy
100.0%
Counts
217 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.3%
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
100.0%
(log.f64 (hypot.f64 re im))
99.2%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
Compiler

Compiled 25 to 20 computations (20% saved)

simplify6.0ms (0.2%)

Memory
5.9MiB live, 5.9MiB allocated; 0ms collecting garbage
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 re re)
cost-diff0
(fma.f64 im im (*.f64 re re))
cost-diff0
(log.f64 (fma.f64 im im (*.f64 re re)))
cost-diff0
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
cost-diff0
(hypot.f64 re im)
cost-diff0
(log.f64 (hypot.f64 re im))
cost-diff0
(log.f64 im)
cost-diff0
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01647
02347
13847
27847
313447
417347
017347
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(log.f64 im)
im
(log.f64 (hypot.f64 re im))
(hypot.f64 re im)
re
im
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
#s(literal 1/2 binary64)
(log.f64 (fma.f64 im im (*.f64 re re)))
(fma.f64 im im (*.f64 re re))
im
(*.f64 re re)
re
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(log.f64 im)
im
(log.f64 (hypot.f64 re im))
(log.f64 (hypot.f64 im re))
(hypot.f64 re im)
(hypot.f64 im re)
re
im
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
(*.f64 (log.f64 (fma.f64 im im (*.f64 re re))) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(log.f64 (fma.f64 im im (*.f64 re re)))
(fma.f64 im im (*.f64 re re))
im
(*.f64 re re)
re

localize58.0ms (1.7%)

Memory
5.0MiB live, 50.7MiB allocated; 4ms collecting garbage
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(fma.f64 im im (*.f64 re re))
accuracy0.0
(*.f64 re re)
accuracy0.0
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
accuracy28.577772992488068
(log.f64 (fma.f64 im im (*.f64 re re)))
accuracy0.0
(hypot.f64 re im)
accuracy0.0
(log.f64 (hypot.f64 re im))
accuracy0.0
(log.f64 im)
accuracy0.5023258424361803
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
Samples
49.0ms256×0valid
Compiler

Compiled 64 to 13 computations (79.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 41.0ms
ival-hypot: 27.0ms (66.3% of total)
ival-log: 7.0ms (17.2% of total)
ival-mult: 5.0ms (12.3% of total)
ival-add: 1.0ms (2.5% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series131.0ms (3.8%)

Memory
-25.6MiB live, 63.5MiB allocated; 10ms collecting garbage
Counts
8 → 88
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(log.f64 im)
(log.f64 (hypot.f64 re im))
(hypot.f64 re im)
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
(log.f64 (fma.f64 im im (*.f64 re re)))
(fma.f64 im im (*.f64 re re))
(*.f64 re re)
Outputs
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
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)))))
(* 1/2 (log (pow im 2)))
(+ (* 1/2 (log (pow im 2))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* 1/2 (log (pow im 2))) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (* 1/2 (log (pow im 2))) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(log (pow im 2))
(+ (log (pow im 2)) (/ (pow re 2) (pow im 2)))
(+ (log (pow im 2)) (* (pow re 2) (+ (* -1/2 (/ (pow re 2) (pow im 4))) (/ 1 (pow im 2)))))
(+ (log (pow im 2)) (* (pow re 2) (+ (* (pow re 2) (- (* 1/3 (/ (pow re 2) (pow im 6))) (* 1/2 (/ 1 (pow im 4))))) (/ 1 (pow im 2)))))
(pow im 2)
(+ (pow im 2) (pow re 2))
(pow re 2)
(* -1 (log (/ 1 re)))
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
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 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/6 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -2 (log (/ 1 re)))
(+ (* -2 (log (/ 1 re))) (/ (pow im 2) (pow re 2)))
(+ (* -2 (log (/ 1 re))) (+ (* -1/2 (/ (pow im 4) (pow re 4))) (/ (pow im 2) (pow re 2))))
(+ (* -2 (log (/ 1 re))) (+ (* -1/2 (/ (pow im 4) (pow re 4))) (+ (* 1/3 (/ (pow im 6) (pow re 6))) (/ (pow im 2) (pow re 2)))))
(* (pow re 2) (+ 1 (/ (pow im 2) (pow re 2))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -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))))))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/6 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -2 (log (/ -1 re)))
(+ (* -2 (log (/ -1 re))) (/ (pow im 2) (pow re 2)))
(+ (* -2 (log (/ -1 re))) (+ (* -1/2 (/ (pow im 4) (pow re 4))) (/ (pow im 2) (pow re 2))))
(+ (* -2 (log (/ -1 re))) (+ (* -1/2 (/ (pow im 4) (pow re 4))) (+ (* 1/3 (/ (pow im 6) (pow re 6))) (/ (pow im 2) (pow re 2)))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(+ 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)))))
(* 1/2 (log (pow re 2)))
(+ (* 1/2 (log (pow re 2))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* 1/2 (log (pow re 2))) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (* 1/2 (log (pow re 2))) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(log (pow re 2))
(+ (log (pow re 2)) (/ (pow im 2) (pow re 2)))
(+ (log (pow re 2)) (* (pow im 2) (+ (* -1/2 (/ (pow im 2) (pow re 4))) (/ 1 (pow re 2)))))
(+ (log (pow re 2)) (* (pow im 2) (+ (* (pow im 2) (- (* 1/3 (/ (pow im 2) (pow re 6))) (* 1/2 (/ 1 (pow re 4))))) (/ 1 (pow re 2)))))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* 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 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/6 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -2 (log (/ 1 im)))
(+ (* -2 (log (/ 1 im))) (/ (pow re 2) (pow im 2)))
(+ (* -2 (log (/ 1 im))) (+ (* -1/2 (/ (pow re 4) (pow im 4))) (/ (pow re 2) (pow im 2))))
(+ (* -2 (log (/ 1 im))) (+ (* -1/2 (/ (pow re 4) (pow im 4))) (+ (* 1/3 (/ (pow re 6) (pow im 6))) (/ (pow re 2) (pow im 2)))))
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(* -1 (log (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(+ (log -1) (* -1 (log (/ -1 im))))
(* -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 (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/6 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -2 (log (/ -1 im)))
(+ (* -2 (log (/ -1 im))) (/ (pow re 2) (pow im 2)))
(+ (* -2 (log (/ -1 im))) (+ (* -1/2 (/ (pow re 4) (pow im 4))) (/ (pow re 2) (pow im 2))))
(+ (* -2 (log (/ -1 im))) (+ (* -1/2 (/ (pow re 4) (pow im 4))) (+ (* 1/3 (/ (pow re 6) (pow im 6))) (/ (pow re 2) (pow im 2)))))
Calls

6 calls:

TimeVariablePointExpression
64.0ms
im
@0
((log (sqrt (+ (* re re) (* im im)))) (log im) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (* 1/2 (log (+ (* im im) (* re re)))) (log (+ (* im im) (* re re))) (+ (* im im) (* re re)) (* re re))
55.0ms
im
@-inf
((log (sqrt (+ (* re re) (* im im)))) (log im) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (* 1/2 (log (+ (* im im) (* re re)))) (log (+ (* im im) (* re re))) (+ (* im im) (* re re)) (* re re))
7.0ms
im
@inf
((log (sqrt (+ (* re re) (* im im)))) (log im) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (* 1/2 (log (+ (* im im) (* re re)))) (log (+ (* im im) (* re re))) (+ (* im im) (* re re)) (* re re))
2.0ms
re
@0
((log (sqrt (+ (* re re) (* im im)))) (log im) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (* 1/2 (log (+ (* im im) (* re re)))) (log (+ (* im im) (* re re))) (+ (* im im) (* re re)) (* re re))
1.0ms
re
@inf
((log (sqrt (+ (* re re) (* im im)))) (log im) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (* 1/2 (log (+ (* im im) (* re re)))) (log (+ (* im im) (* re re))) (+ (* im im) (* re re)) (* re re))

simplify190.0ms (5.4%)

Memory
16.7MiB live, 160.5MiB allocated; 30ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02611659
18011628
231111608
081981487
Stop Event
iter limit
node limit
Counts
88 → 86
Calls
Call 1
Inputs
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
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)))))
(* 1/2 (log (pow im 2)))
(+ (* 1/2 (log (pow im 2))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* 1/2 (log (pow im 2))) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (* 1/2 (log (pow im 2))) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(log (pow im 2))
(+ (log (pow im 2)) (/ (pow re 2) (pow im 2)))
(+ (log (pow im 2)) (* (pow re 2) (+ (* -1/2 (/ (pow re 2) (pow im 4))) (/ 1 (pow im 2)))))
(+ (log (pow im 2)) (* (pow re 2) (+ (* (pow re 2) (- (* 1/3 (/ (pow re 2) (pow im 6))) (* 1/2 (/ 1 (pow im 4))))) (/ 1 (pow im 2)))))
(pow im 2)
(+ (pow im 2) (pow re 2))
(pow re 2)
(* -1 (log (/ 1 re)))
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
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 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/6 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -2 (log (/ 1 re)))
(+ (* -2 (log (/ 1 re))) (/ (pow im 2) (pow re 2)))
(+ (* -2 (log (/ 1 re))) (+ (* -1/2 (/ (pow im 4) (pow re 4))) (/ (pow im 2) (pow re 2))))
(+ (* -2 (log (/ 1 re))) (+ (* -1/2 (/ (pow im 4) (pow re 4))) (+ (* 1/3 (/ (pow im 6) (pow re 6))) (/ (pow im 2) (pow re 2)))))
(* (pow re 2) (+ 1 (/ (pow im 2) (pow re 2))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -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))))))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/6 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -2 (log (/ -1 re)))
(+ (* -2 (log (/ -1 re))) (/ (pow im 2) (pow re 2)))
(+ (* -2 (log (/ -1 re))) (+ (* -1/2 (/ (pow im 4) (pow re 4))) (/ (pow im 2) (pow re 2))))
(+ (* -2 (log (/ -1 re))) (+ (* -1/2 (/ (pow im 4) (pow re 4))) (+ (* 1/3 (/ (pow im 6) (pow re 6))) (/ (pow im 2) (pow re 2)))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(+ 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)))))
(* 1/2 (log (pow re 2)))
(+ (* 1/2 (log (pow re 2))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* 1/2 (log (pow re 2))) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (* 1/2 (log (pow re 2))) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(log (pow re 2))
(+ (log (pow re 2)) (/ (pow im 2) (pow re 2)))
(+ (log (pow re 2)) (* (pow im 2) (+ (* -1/2 (/ (pow im 2) (pow re 4))) (/ 1 (pow re 2)))))
(+ (log (pow re 2)) (* (pow im 2) (+ (* (pow im 2) (- (* 1/3 (/ (pow im 2) (pow re 6))) (* 1/2 (/ 1 (pow re 4))))) (/ 1 (pow re 2)))))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* 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 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/6 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -2 (log (/ 1 im)))
(+ (* -2 (log (/ 1 im))) (/ (pow re 2) (pow im 2)))
(+ (* -2 (log (/ 1 im))) (+ (* -1/2 (/ (pow re 4) (pow im 4))) (/ (pow re 2) (pow im 2))))
(+ (* -2 (log (/ 1 im))) (+ (* -1/2 (/ (pow re 4) (pow im 4))) (+ (* 1/3 (/ (pow re 6) (pow im 6))) (/ (pow re 2) (pow im 2)))))
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(* -1 (log (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(+ (log -1) (* -1 (log (/ -1 im))))
(* -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 (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/6 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -2 (log (/ -1 im)))
(+ (* -2 (log (/ -1 im))) (/ (pow re 2) (pow im 2)))
(+ (* -2 (log (/ -1 im))) (+ (* -1/2 (/ (pow re 4) (pow im 4))) (/ (pow re 2) (pow im 2))))
(+ (* -2 (log (/ -1 im))) (+ (* -1/2 (/ (pow re 4) (pow im 4))) (+ (* 1/3 (/ (pow re 6) (pow im 6))) (/ (pow re 2) (pow im 2)))))
Outputs
(log im)
(log.f64 im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (fma.f64 (*.f64 re (/.f64 re (pow.f64 im #s(literal 4 binary64)))) #s(literal -1/4 binary64) (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (*.f64 re re) (log.f64 im))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (*.f64 re (/.f64 re (pow.f64 im #s(literal 6 binary64)))) #s(literal 1/6 binary64) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
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 #s(literal -1/8 binary64) im) (/.f64 (*.f64 re re) im) #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 re (/.f64 re (pow.f64 im #s(literal 5 binary64)))) #s(literal 1/16 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))
(* 1/2 (log (pow im 2)))
(*.f64 (log.f64 (*.f64 im im)) #s(literal 1/2 binary64))
(+ (* 1/2 (log (pow im 2))) (* 1/2 (/ (pow re 2) (pow im 2))))
(*.f64 (fma.f64 (/.f64 re im) (/.f64 re im) (log.f64 (*.f64 im im))) #s(literal 1/2 binary64))
(+ (* 1/2 (log (pow im 2))) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (log.f64 (*.f64 im im)) #s(literal 1/2 binary64) (*.f64 (fma.f64 (*.f64 re (/.f64 re (pow.f64 im #s(literal 4 binary64)))) #s(literal -1/4 binary64) (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (*.f64 re re)))
(+ (* 1/2 (log (pow im 2))) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (fma.f64 (/.f64 re im) (/.f64 re im) (log.f64 (*.f64 im im))) #s(literal 1/2 binary64) (*.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (*.f64 re (/.f64 re (pow.f64 im #s(literal 6 binary64)))) #s(literal 1/6 binary64) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))))))
(log (pow im 2))
(log.f64 (*.f64 im im))
(+ (log (pow im 2)) (/ (pow re 2) (pow im 2)))
(fma.f64 (/.f64 re im) (/.f64 re im) (log.f64 (*.f64 im im)))
(+ (log (pow im 2)) (* (pow re 2) (+ (* -1/2 (/ (pow re 2) (pow im 4))) (/ 1 (pow im 2)))))
(fma.f64 (fma.f64 #s(literal -1/2 binary64) (*.f64 re (/.f64 re (pow.f64 im #s(literal 4 binary64)))) (/.f64 #s(literal 1 binary64) (*.f64 im im))) (*.f64 re re) (log.f64 (*.f64 im im)))
(+ (log (pow im 2)) (* (pow re 2) (+ (* (pow re 2) (- (* 1/3 (/ (pow re 2) (pow im 6))) (* 1/2 (/ 1 (pow im 4))))) (/ 1 (pow im 2)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 #s(literal 1/3 binary64) (*.f64 re (/.f64 re (pow.f64 im #s(literal 6 binary64)))) (/.f64 #s(literal -1/2 binary64) (pow.f64 im #s(literal 4 binary64)))) (fma.f64 (/.f64 re im) (/.f64 re im) (log.f64 (*.f64 im im))))
(pow im 2)
(*.f64 im im)
(+ (pow im 2) (pow re 2))
(fma.f64 im im (*.f64 re re))
(pow re 2)
(*.f64 re re)
(* -1 (log (/ 1 re)))
(log.f64 re)
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) im) re) (/.f64 im re) (log.f64 re))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) im) re) (/.f64 im re) (fma.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal -1/4 binary64) (log.f64 re)))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(fma.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal -1/4 binary64) (+.f64 (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) im) re) (/.f64 im re) (/.f64 (*.f64 (*.f64 #s(literal 120 binary64) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/720 binary64)) (pow.f64 re #s(literal 6 binary64)))) (log.f64 re)))
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (/.f64 re re) (*.f64 (/.f64 (*.f64 im im) re) #s(literal 1/2 binary64)) re)
(* 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 (*.f64 #s(literal 1/2 binary64) 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)))))))
(fma.f64 (fma.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/16 binary64) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) im) re) (/.f64 im re) (/.f64 (*.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 4 binary64))) (pow.f64 re #s(literal 4 binary64))))) re re)
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/6 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(fma.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal -1/4 binary64) (+.f64 (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) im) re) (/.f64 im re) (/.f64 (*.f64 (pow.f64 im #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (log.f64 re)))
(* -2 (log (/ 1 re)))
(*.f64 (log.f64 re) #s(literal 2 binary64))
(+ (* -2 (log (/ 1 re))) (/ (pow im 2) (pow re 2)))
(fma.f64 (/.f64 im re) (/.f64 im re) (*.f64 (log.f64 re) #s(literal 2 binary64)))
(+ (* -2 (log (/ 1 re))) (+ (* -1/2 (/ (pow im 4) (pow re 4))) (/ (pow im 2) (pow re 2))))
(fma.f64 (log.f64 re) #s(literal 2 binary64) (fma.f64 (/.f64 im re) (/.f64 im re) (/.f64 (*.f64 #s(literal -1/2 binary64) (pow.f64 im #s(literal 4 binary64))) (pow.f64 re #s(literal 4 binary64)))))
(+ (* -2 (log (/ 1 re))) (+ (* -1/2 (/ (pow im 4) (pow re 4))) (+ (* 1/3 (/ (pow im 6) (pow re 6))) (/ (pow im 2) (pow re 2)))))
(fma.f64 (log.f64 re) #s(literal 2 binary64) (fma.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/3 binary64) (fma.f64 (/.f64 im re) (/.f64 im re) (/.f64 (*.f64 #s(literal -1/2 binary64) (pow.f64 im #s(literal 4 binary64))) (pow.f64 re #s(literal 4 binary64))))))
(* (pow re 2) (+ 1 (/ (pow im 2) (pow re 2))))
(*.f64 (fma.f64 (/.f64 im re) (/.f64 im re) #s(literal 1 binary64)) (*.f64 re re))
(* -1 (log (/ -1 re)))
(neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (*.f64 (/.f64 im re) (/.f64 im re)) #s(literal 1/2 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal -1/4 binary64) (fma.f64 (*.f64 (/.f64 im re) (/.f64 im re)) #s(literal 1/2 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(-.f64 (fma.f64 (*.f64 (pow.f64 im #s(literal 6 binary64)) (/.f64 #s(literal 120 binary64) (pow.f64 re #s(literal 6 binary64)))) #s(literal 1/720 binary64) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) im) re) (/.f64 im re) (/.f64 (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1/4 binary64)) (pow.f64 re #s(literal 4 binary64))))) (log.f64 (/.f64 #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 (+.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))) (*.f64 #s(literal -1/16 binary64) (/.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))))) re)
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/6 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(-.f64 (fma.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) im) re) (/.f64 im re) (/.f64 (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1/4 binary64)) (pow.f64 re #s(literal 4 binary64))))) (log.f64 (/.f64 #s(literal -1 binary64) re)))
(* -2 (log (/ -1 re)))
(*.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -2 binary64))
(+ (* -2 (log (/ -1 re))) (/ (pow im 2) (pow re 2)))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -2 binary64) (*.f64 (/.f64 im re) (/.f64 im re)))
(+ (* -2 (log (/ -1 re))) (+ (* -1/2 (/ (pow im 4) (pow re 4))) (/ (pow im 2) (pow re 2))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -2 binary64) (fma.f64 (/.f64 im re) (/.f64 im re) (/.f64 (*.f64 #s(literal -1/2 binary64) (pow.f64 im #s(literal 4 binary64))) (pow.f64 re #s(literal 4 binary64)))))
(+ (* -2 (log (/ -1 re))) (+ (* -1/2 (/ (pow im 4) (pow re 4))) (+ (* 1/3 (/ (pow im 6) (pow re 6))) (/ (pow im 2) (pow re 2)))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -2 binary64) (fma.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/3 binary64) (fma.f64 (/.f64 im re) (/.f64 im re) (/.f64 (*.f64 #s(literal -1/2 binary64) (pow.f64 im #s(literal 4 binary64))) (pow.f64 re #s(literal 4 binary64))))))
(log re)
(log.f64 re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) im) re) (/.f64 im re) (log.f64 re))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(fma.f64 (fma.f64 (*.f64 im (/.f64 im (pow.f64 re #s(literal 4 binary64)))) #s(literal -1/4 binary64) (/.f64 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 im im) (log.f64 re))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 im (/.f64 im (pow.f64 re #s(literal 6 binary64)))) #s(literal 1/6 binary64) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64)))) (*.f64 im im) (/.f64 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 im im) (log.f64 re))
(+ 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 #s(literal -1/8 binary64) re) (/.f64 (*.f64 im im) re) #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 im (/.f64 im (pow.f64 re #s(literal 5 binary64)))) #s(literal 1/16 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)
(* 1/2 (log (pow re 2)))
(*.f64 (log.f64 (*.f64 re re)) #s(literal 1/2 binary64))
(+ (* 1/2 (log (pow re 2))) (* 1/2 (/ (pow im 2) (pow re 2))))
(*.f64 (fma.f64 (/.f64 im re) (/.f64 im re) (log.f64 (*.f64 re re))) #s(literal 1/2 binary64))
(+ (* 1/2 (log (pow re 2))) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(fma.f64 (log.f64 (*.f64 re re)) #s(literal 1/2 binary64) (*.f64 (fma.f64 (*.f64 im (/.f64 im (pow.f64 re #s(literal 4 binary64)))) #s(literal -1/4 binary64) (/.f64 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 im im)))
(+ (* 1/2 (log (pow re 2))) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(fma.f64 (fma.f64 (/.f64 im re) (/.f64 im re) (log.f64 (*.f64 re re))) #s(literal 1/2 binary64) (*.f64 (fma.f64 (*.f64 im (/.f64 im (pow.f64 re #s(literal 6 binary64)))) #s(literal 1/6 binary64) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64)))) (pow.f64 im #s(literal 4 binary64))))
(log (pow re 2))
(log.f64 (*.f64 re re))
(+ (log (pow re 2)) (/ (pow im 2) (pow re 2)))
(fma.f64 (/.f64 im re) (/.f64 im re) (log.f64 (*.f64 re re)))
(+ (log (pow re 2)) (* (pow im 2) (+ (* -1/2 (/ (pow im 2) (pow re 4))) (/ 1 (pow re 2)))))
(fma.f64 (fma.f64 (*.f64 im (/.f64 im (pow.f64 re #s(literal 4 binary64)))) #s(literal -1/2 binary64) (/.f64 (/.f64 #s(literal 1 binary64) re) re)) (*.f64 im im) (log.f64 (*.f64 re re)))
(+ (log (pow re 2)) (* (pow im 2) (+ (* (pow im 2) (- (* 1/3 (/ (pow im 2) (pow re 6))) (* 1/2 (/ 1 (pow re 4))))) (/ 1 (pow re 2)))))
(fma.f64 (fma.f64 (*.f64 im (/.f64 im (pow.f64 re #s(literal 6 binary64)))) #s(literal 1/3 binary64) (/.f64 #s(literal -1/2 binary64) (pow.f64 re #s(literal 4 binary64)))) (pow.f64 im #s(literal 4 binary64)) (fma.f64 (/.f64 im re) (/.f64 im re) (log.f64 (*.f64 re re))))
(* -1 (log (/ 1 im)))
(log.f64 im)
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/4 binary64) (log.f64 im)))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/4 binary64) (+.f64 (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (/.f64 (*.f64 (*.f64 #s(literal 120 binary64) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/720 binary64)) (pow.f64 im #s(literal 6 binary64)))) (log.f64 im)))
(* 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)
(* 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)
(* 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)))))))
(fma.f64 (fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/16 binary64) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/8 binary64)) (pow.f64 im #s(literal 4 binary64))))) im im)
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/6 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/4 binary64) (+.f64 (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (/.f64 (*.f64 (pow.f64 re #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 im #s(literal 6 binary64)))) (log.f64 im)))
(* -2 (log (/ 1 im)))
(*.f64 #s(literal 2 binary64) (log.f64 im))
(+ (* -2 (log (/ 1 im))) (/ (pow re 2) (pow im 2)))
(fma.f64 (/.f64 re im) (/.f64 re im) (*.f64 #s(literal 2 binary64) (log.f64 im)))
(+ (* -2 (log (/ 1 im))) (+ (* -1/2 (/ (pow re 4) (pow im 4))) (/ (pow re 2) (pow im 2))))
(fma.f64 #s(literal 2 binary64) (log.f64 im) (fma.f64 (/.f64 re im) (/.f64 re im) (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/2 binary64)) (pow.f64 im #s(literal 4 binary64)))))
(+ (* -2 (log (/ 1 im))) (+ (* -1/2 (/ (pow re 4) (pow im 4))) (+ (* 1/3 (/ (pow re 6) (pow im 6))) (/ (pow re 2) (pow im 2)))))
(fma.f64 #s(literal 2 binary64) (log.f64 im) (fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/3 binary64) (fma.f64 (/.f64 re im) (/.f64 re im) (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/2 binary64)) (pow.f64 im #s(literal 4 binary64))))))
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(*.f64 (*.f64 (fma.f64 (/.f64 re im) (/.f64 re im) #s(literal 1 binary64)) im) im)
(* -1 (log (/ -1 im)))
(neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (*.f64 (/.f64 re im) (/.f64 re im)) #s(literal 1/2 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) im))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/4 binary64) (fma.f64 (*.f64 (/.f64 re im) (/.f64 re im)) #s(literal 1/2 binary64) (neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(-.f64 (fma.f64 (*.f64 (pow.f64 re #s(literal 6 binary64)) (/.f64 #s(literal 120 binary64) (pow.f64 im #s(literal 6 binary64)))) #s(literal 1/720 binary64) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/4 binary64)) (pow.f64 im #s(literal 4 binary64))))) (log.f64 (/.f64 #s(literal -1 binary64) im)))
(+ (log -1) (* -1 (log (/ -1 im))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #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 (+.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))) (*.f64 #s(literal -1/16 binary64) (/.f64 (pow.f64 re #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))))) im)
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/6 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(-.f64 (fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/4 binary64)) (pow.f64 im #s(literal 4 binary64))))) (log.f64 (/.f64 #s(literal -1 binary64) im)))
(* -2 (log (/ -1 im)))
(*.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -2 binary64))
(+ (* -2 (log (/ -1 im))) (/ (pow re 2) (pow im 2)))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -2 binary64) (*.f64 (/.f64 re im) (/.f64 re im)))
(+ (* -2 (log (/ -1 im))) (+ (* -1/2 (/ (pow re 4) (pow im 4))) (/ (pow re 2) (pow im 2))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -2 binary64) (fma.f64 (/.f64 re im) (/.f64 re im) (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/2 binary64)) (pow.f64 im #s(literal 4 binary64)))))
(+ (* -2 (log (/ -1 im))) (+ (* -1/2 (/ (pow re 4) (pow im 4))) (+ (* 1/3 (/ (pow re 6) (pow im 6))) (/ (pow re 2) (pow im 2)))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -2 binary64) (fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/3 binary64) (fma.f64 (/.f64 re im) (/.f64 re im) (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/2 binary64)) (pow.f64 im #s(literal 4 binary64))))))

rewrite65.0ms (1.9%)

Memory
-10.7MiB live, 35.4MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01641
02336
16536
052636
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
8 → 184
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(log.f64 im)
(log.f64 (hypot.f64 re im))
(hypot.f64 re im)
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
(log.f64 (fma.f64 im im (*.f64 re re)))
(fma.f64 im im (*.f64 re re))
(*.f64 re re)
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(log.f64 im)
(*.f64 (log.f64 (fma.f64 im im (*.f64 re re))) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
(log.f64 (hypot.f64 im re))
(*.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)) (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)))
(pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) (sqrt.f64 (*.f64 (+.f64 im re) (-.f64 im re))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64)))) (sqrt.f64 (*.f64 (+.f64 re im) (-.f64 re im))))
(/.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64))) (sqrt.f64 (+.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (pow.f64 im #s(literal 4 binary64)))))
(/.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64))) (sqrt.f64 (+.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (pow.f64 re #s(literal 4 binary64)))))
(sqrt.f64 (fma.f64 im im (*.f64 re re)))
(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 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 (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 (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 (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 (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 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)
(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)
(exp.f64 (log.f64 (hypot.f64 im re)))
(*.f64 (log.f64 (fma.f64 im im (*.f64 re re))) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
(log.f64 (hypot.f64 im re))
(-.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) (log.f64 (*.f64 (+.f64 im re) (-.f64 im re))))
(-.f64 (log.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64)))) (log.f64 (*.f64 (+.f64 re im) (-.f64 re im))))
(-.f64 (log.f64 (+.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (log.f64 (+.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (pow.f64 im #s(literal 4 binary64)))))
(-.f64 (log.f64 (+.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (log.f64 (+.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (pow.f64 re #s(literal 4 binary64)))))
(log.f64 (fma.f64 im im (*.f64 re re)))
(/.f64 (-.f64 (pow.f64 re #s(literal 6 binary64)) (pow.f64 (*.f64 (neg.f64 im) im) #s(literal 3 binary64))) (+.f64 (pow.f64 re #s(literal 4 binary64)) (+.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (*.f64 re re) (*.f64 (neg.f64 im) im)))))
(/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 (*.f64 (neg.f64 re) re) #s(literal 3 binary64))) (+.f64 (pow.f64 im #s(literal 4 binary64)) (+.f64 (pow.f64 re #s(literal 4 binary64)) (*.f64 (*.f64 im im) (*.f64 (neg.f64 re) re)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) (neg.f64 (*.f64 (+.f64 im re) (-.f64 im re))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64)))) (neg.f64 (*.f64 (+.f64 re im) (-.f64 re im))))
(/.f64 (neg.f64 (+.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (neg.f64 (+.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (pow.f64 im #s(literal 4 binary64)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (neg.f64 (+.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (pow.f64 re #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (*.f64 (+.f64 im re) (-.f64 im re)))
(/.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) (*.f64 (+.f64 re im) (-.f64 re im)))
(/.f64 (+.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (+.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (pow.f64 im #s(literal 4 binary64))))
(/.f64 (+.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (+.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (pow.f64 re #s(literal 4 binary64))))
(fma.f64 (pow.f64 im #s(literal 1 binary64)) (pow.f64 im #s(literal 1 binary64)) (*.f64 (neg.f64 (neg.f64 re)) re))
(fma.f64 (pow.f64 im #s(literal 1 binary64)) (pow.f64 im #s(literal 1 binary64)) (*.f64 re re))
(fma.f64 (pow.f64 re #s(literal 1 binary64)) (pow.f64 re #s(literal 1 binary64)) (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 (pow.f64 re #s(literal 1 binary64)) (pow.f64 re #s(literal 1 binary64)) (*.f64 im im))
(fma.f64 (neg.f64 (neg.f64 re)) (neg.f64 (neg.f64 re)) (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 (neg.f64 (neg.f64 re)) (neg.f64 (neg.f64 re)) (*.f64 im im))
(fma.f64 (neg.f64 (fabs.f64 re)) (neg.f64 (fabs.f64 re)) (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 (neg.f64 (fabs.f64 re)) (neg.f64 (fabs.f64 re)) (*.f64 im im))
(fma.f64 (neg.f64 (neg.f64 im)) (neg.f64 (neg.f64 im)) (*.f64 (neg.f64 (neg.f64 re)) re))
(fma.f64 (neg.f64 (neg.f64 im)) (neg.f64 (neg.f64 im)) (*.f64 re re))
(fma.f64 (neg.f64 (fabs.f64 im)) (neg.f64 (fabs.f64 im)) (*.f64 (neg.f64 (neg.f64 re)) re))
(fma.f64 (neg.f64 (fabs.f64 im)) (neg.f64 (fabs.f64 im)) (*.f64 re re))
(fma.f64 (fabs.f64 (fabs.f64 re)) (fabs.f64 (fabs.f64 re)) (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 (fabs.f64 (fabs.f64 re)) (fabs.f64 (fabs.f64 re)) (*.f64 im im))
(fma.f64 (fabs.f64 (fabs.f64 im)) (fabs.f64 (fabs.f64 im)) (*.f64 (neg.f64 (neg.f64 re)) re))
(fma.f64 (fabs.f64 (fabs.f64 im)) (fabs.f64 (fabs.f64 im)) (*.f64 re re))
(fma.f64 (neg.f64 im) (neg.f64 im) (*.f64 (neg.f64 (neg.f64 re)) re))
(fma.f64 (neg.f64 im) (neg.f64 im) (*.f64 re re))
(fma.f64 (neg.f64 re) (neg.f64 re) (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 (neg.f64 re) (neg.f64 re) (*.f64 im im))
(fma.f64 (fabs.f64 im) (fabs.f64 im) (*.f64 (neg.f64 (neg.f64 re)) re))
(fma.f64 (fabs.f64 im) (fabs.f64 im) (*.f64 re re))
(fma.f64 (fabs.f64 re) (fabs.f64 re) (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 (fabs.f64 re) (fabs.f64 re) (*.f64 im im))
(fma.f64 im im (*.f64 (neg.f64 (neg.f64 re)) re))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 (neg.f64 (neg.f64 im)) im))
(fma.f64 re re (*.f64 im im))
(-.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (+.f64 im re) (-.f64 im re))) (/.f64 (pow.f64 re #s(literal 4 binary64)) (*.f64 (+.f64 im re) (-.f64 im re))))
(-.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (*.f64 (+.f64 re im) (-.f64 re im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (+.f64 re im) (-.f64 re im))))
(-.f64 (*.f64 re re) (*.f64 (neg.f64 (neg.f64 im)) (neg.f64 im)))
(-.f64 (*.f64 re re) (*.f64 (neg.f64 (fabs.f64 im)) (fabs.f64 im)))
(-.f64 (*.f64 re re) (*.f64 (neg.f64 im) im))
(-.f64 (*.f64 im im) (*.f64 (neg.f64 (neg.f64 re)) (neg.f64 re)))
(-.f64 (*.f64 im im) (*.f64 (neg.f64 (fabs.f64 re)) (fabs.f64 re)))
(-.f64 (*.f64 im im) (*.f64 (neg.f64 re) re))
(+.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (+.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (+.f64 (-.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (pow.f64 im #s(literal 4 binary64)))))
(+.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (+.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (+.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (pow.f64 re #s(literal 4 binary64)))))
(+.f64 (*.f64 re re) (*.f64 (neg.f64 (neg.f64 im)) im))
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 (neg.f64 (neg.f64 re)) re))
(+.f64 (*.f64 im im) (*.f64 re re))
(*.f64 (pow.f64 re #s(literal 1 binary64)) (pow.f64 re #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 re)) (neg.f64 (neg.f64 re)))
(*.f64 (neg.f64 (fabs.f64 re)) (neg.f64 (fabs.f64 re)))
(*.f64 (fabs.f64 (fabs.f64 re)) (fabs.f64 (fabs.f64 re)))
(*.f64 (neg.f64 re) (neg.f64 re))
(*.f64 (fabs.f64 re) (fabs.f64 re))
(*.f64 re re)
(pow.f64 (neg.f64 re) #s(literal 2 binary64))
(pow.f64 (fabs.f64 re) #s(literal 2 binary64))
(pow.f64 re #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 re) re))
(fabs.f64 (*.f64 re re))
(exp.f64 (*.f64 (log.f64 re) #s(literal 2 binary64)))

eval29.0ms (0.8%)

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

Compiled 4 234 to 892 computations (78.9% saved)

prune52.0ms (1.5%)

Memory
-32.5MiB live, 23.2MiB allocated; 7ms collecting garbage
Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New2611262
Fresh000
Picked033
Done000
Total2614265
Accuracy
100.0%
Counts
265 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.3%
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
100.0%
(log.f64 (hypot.f64 re im))
99.7%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
99.2%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
Compiler

Compiled 46 to 34 computations (26.1% saved)

simplify47.0ms (1.4%)

Memory
1.7MiB live, 46.1MiB allocated; 4ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 #s(literal 1/2 binary64) re)
cost-diff0
(/.f64 (*.f64 #s(literal 1/2 binary64) re) im)
cost-diff0
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im))
cost-diff0
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01448
02048
13948
210148
321948
448748
5102648
6181248
7195048
0195043
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im))
(/.f64 (*.f64 #s(literal 1/2 binary64) re) im)
(*.f64 #s(literal 1/2 binary64) re)
#s(literal 1/2 binary64)
re
im
(/.f64 re im)
(log.f64 im)
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re) (log.f64 im)))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im))
(fma.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re) (log.f64 im))
(/.f64 (*.f64 #s(literal 1/2 binary64) re) im)
(*.f64 #s(literal 1/2 binary64) re)
#s(literal 1/2 binary64)
re
im
(/.f64 re im)
(log.f64 im)

localize44.0ms (1.3%)

Memory
-2.9MiB live, 44.3MiB allocated; 2ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 #s(literal 1/2 binary64) re)
accuracy0.0
(log.f64 im)
accuracy0.01171875
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im))
accuracy0.20884075422726
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
Samples
24.0ms256×0valid
Compiler

Compiled 39 to 13 computations (66.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-log: 5.0ms (30% of total)
ival-hypot: 4.0ms (24% of total)
ival-div: 3.0ms (18% of total)
ival-mult: 3.0ms (18% of total)
ival-add: 1.0ms (6% 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)

series54.0ms (1.6%)

Memory
28.2MiB live, 74.3MiB allocated; 4ms collecting garbage
Counts
5 → 31
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im))
(/.f64 (*.f64 #s(literal 1/2 binary64) re) im)
(*.f64 #s(literal 1/2 binary64) re)
(log.f64 im)
Outputs
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(* 1/2 (/ re im))
(* 1/2 re)
(* -1 (log (/ 1 re)))
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* 1/2 (/ (pow re 2) (pow im 2)))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(/ (+ (* 1/2 (pow re 2)) (* (pow im 2) (log im))) (pow im 2))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (log (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(+ (log -1) (* -1 (log (/ -1 im))))
(+ (log -1) (+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2)))))
Calls

6 calls:

TimeVariablePointExpression
29.0ms
im
@inf
((log (sqrt (+ (* re re) (* im im)))) (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/ (* 1/2 re) im) (* 1/2 re) (log im))
8.0ms
im
@-inf
((log (sqrt (+ (* re re) (* im im)))) (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/ (* 1/2 re) im) (* 1/2 re) (log im))
8.0ms
im
@0
((log (sqrt (+ (* re re) (* im im)))) (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/ (* 1/2 re) im) (* 1/2 re) (log im))
5.0ms
re
@0
((log (sqrt (+ (* re re) (* im im)))) (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/ (* 1/2 re) im) (* 1/2 re) (log im))
2.0ms
re
@inf
((log (sqrt (+ (* re re) (* im im)))) (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/ (* 1/2 re) im) (* 1/2 re) (log im))

simplify215.0ms (6.2%)

Memory
12.3MiB live, 193.4MiB allocated; 30ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0117527
1321506
21153495
35324495
08856465
Stop Event
iter limit
node limit
Counts
31 → 31
Calls
Call 1
Inputs
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(* 1/2 (/ re im))
(* 1/2 re)
(* -1 (log (/ 1 re)))
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* 1/2 (/ (pow re 2) (pow im 2)))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(/ (+ (* 1/2 (pow re 2)) (* (pow im 2) (log im))) (pow im 2))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (log (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(+ (log -1) (* -1 (log (/ -1 im))))
(+ (log -1) (+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2)))))
Outputs
(log im)
(log.f64 im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re (log.f64 im))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re (log.f64 im)))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/6 binary64) re) (/.f64 re (pow.f64 im #s(literal 6 binary64))) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64)))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re (log.f64 im)))
(* 1/2 (/ re im))
(*.f64 (/.f64 re im) #s(literal 1/2 binary64))
(* 1/2 re)
(*.f64 #s(literal 1/2 binary64) re)
(* -1 (log (/ 1 re)))
(log.f64 re)
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (log.f64 re))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (fma.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal -1/4 binary64) (log.f64 re)))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(+.f64 (log.f64 re) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (/.f64 (*.f64 (pow.f64 im #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 re #s(literal 6 binary64))))))
(* 1/2 (/ (pow re 2) (pow im 2)))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(*.f64 (-.f64 (/.f64 (/.f64 (log.f64 im) re) re) (/.f64 #s(literal -1/2 binary64) (*.f64 im im))) (*.f64 re re))
(* -1 (log (/ -1 re)))
(neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(neg.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 im re)) (/.f64 im re) (log.f64 (/.f64 #s(literal -1 binary64) re))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(neg.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/4 binary64) im) (/.f64 im (pow.f64 re #s(literal 4 binary64))) (/.f64 #s(literal -1/2 binary64) (*.f64 re re))) (*.f64 im im) (log.f64 (/.f64 #s(literal -1 binary64) re))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(-.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) (/.f64 (*.f64 (pow.f64 im #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (fma.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 im re)) (/.f64 im re) (log.f64 (/.f64 #s(literal -1 binary64) re))))
(log re)
(log.f64 re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (log.f64 re))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (fma.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal -1/4 binary64) (log.f64 re)))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (/.f64 im (pow.f64 re #s(literal 6 binary64))) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64)))) (*.f64 im im) (/.f64 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 im im) (log.f64 re))
(/ (+ (* 1/2 (pow re 2)) (* (pow im 2) (log im))) (pow im 2))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re (log.f64 im))
(* -1 (log (/ 1 im)))
(log.f64 im)
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re (log.f64 im))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re (log.f64 im)))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re (+.f64 (fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) (/.f64 (*.f64 (pow.f64 re #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 im #s(literal 6 binary64)))) (log.f64 im)))
(* -1 (log (/ -1 im)))
(neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) (*.f64 im im)) re) re (log.f64 (/.f64 #s(literal -1 binary64) im))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(neg.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/4 binary64) re) (/.f64 re (pow.f64 im #s(literal 4 binary64))) (/.f64 #s(literal -1/2 binary64) (*.f64 im im))) (*.f64 re re) (log.f64 (/.f64 #s(literal -1 binary64) im))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(-.f64 (fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) (/.f64 (*.f64 (pow.f64 re #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 im #s(literal 6 binary64)))) (fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) (*.f64 im im)) re) re (log.f64 (/.f64 #s(literal -1 binary64) im))))
(+ (log -1) (* -1 (log (/ -1 im))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) im)))
(+ (log -1) (+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (*.f64 (/.f64 (/.f64 re im) im) re) #s(literal 1/2 binary64) (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) im))))

rewrite46.0ms (1.3%)

Memory
-6.8MiB live, 55.9MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01442
02042
17342
062637
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
5 → 31
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im))
(/.f64 (*.f64 #s(literal 1/2 binary64) re) im)
(*.f64 #s(literal 1/2 binary64) re)
(log.f64 im)
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (log.f64 im)))
(/.f64 (-.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (pow.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) #s(literal 2 binary64))) (-.f64 (log.f64 im) (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) #s(literal 2 binary64)) (pow.f64 (log.f64 im) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) (log.f64 im))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) #s(literal 3 binary64)) (pow.f64 im #s(literal 6 binary64))))) (neg.f64 (fma.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im))) (pow.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) #s(literal 2 binary64)) (pow.f64 (log.f64 im) #s(literal 2 binary64))) (-.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) (log.f64 im)))
(/.f64 (+.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) #s(literal 3 binary64)) (pow.f64 im #s(literal 6 binary64)))) (fma.f64 (log.f64 im) (log.f64 im) (-.f64 (pow.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) #s(literal 2 binary64)) (*.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) (log.f64 im)))))
(/.f64 (+.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) #s(literal 3 binary64)) (pow.f64 im #s(literal 6 binary64)))) (fma.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im))) (pow.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) #s(literal 2 binary64))))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)) (/.f64 re (neg.f64 im)) (log.f64 im))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)) (/.f64 re (fabs.f64 im)) (log.f64 im))
(fma.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (log.f64 im))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im) (log.f64 im))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re (*.f64 im im)) (log.f64 im))
(fma.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re im) (/.f64 re im)) (log.f64 im))
(-.f64 (/.f64 (pow.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) #s(literal 2 binary64)) (-.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) (log.f64 im))) (/.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (-.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) (log.f64 im))))
(-.f64 (log.f64 im) (*.f64 (neg.f64 (/.f64 re im)) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)))
(-.f64 (log.f64 im) (*.f64 (neg.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) (/.f64 re im)))
(+.f64 (/.f64 (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) #s(literal 3 binary64)) (pow.f64 im #s(literal 6 binary64))) (fma.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im))) (pow.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (fma.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im))) (pow.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) #s(literal 2 binary64)))))
(+.f64 (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) (log.f64 im))
(+.f64 (log.f64 im) (*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)))
(*.f64 (/.f64 re im) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (/.f64 re im))
(*.f64 re (/.f64 #s(literal 1/2 binary64) im))
(/.f64 (neg.f64 (*.f64 #s(literal -1/2 binary64) re)) (neg.f64 (neg.f64 im)))
(/.f64 (*.f64 #s(literal -1/2 binary64) re) (neg.f64 im))
(/.f64 (*.f64 #s(literal 1/2 binary64) re) im)
(neg.f64 (/.f64 (*.f64 #s(literal -1/2 binary64) re) im))
(neg.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)))
(*.f64 #s(literal 1/2 binary64) re)
(*.f64 re #s(literal 1/2 binary64))
(log.f64 im)

eval10.0ms (0.3%)

Memory
-27.5MiB live, 17.8MiB allocated; 7ms collecting garbage
Compiler

Compiled 1 653 to 243 computations (85.3% saved)

prune3.0ms (0.1%)

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

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New55156
Fresh000
Picked011
Done033
Total55560
Accuracy
100.0%
Counts
60 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.3%
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
100.0%
(log.f64 (hypot.f64 re im))
99.7%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
99.2%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
3.3%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
Compiler

Compiled 78 to 55 computations (29.5% saved)

simplify32.0ms (0.9%)

Memory
11.2MiB live, 57.7MiB allocated; 4ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)
cost-diff0
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
cost-diff0
#s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))
cost-diff0
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02081
02481
14981
214481
342781
4123281
5198081
6206481
0206474
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
#s(literal 1/2 binary64)
(*.f64 im im)
im
re
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))
#s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re)))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
(*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
#s(literal 1/2 binary64)
(*.f64 im im)
im
re

localize52.0ms (1.5%)

Memory
7.4MiB live, 104.4MiB allocated; 20ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.5190069525540985
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
accuracy3.2693798715825357
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
accuracy4.814040170345952
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)
accuracy61.76039935865179
#s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))
Samples
41.0ms256×0valid
Compiler

Compiled 50 to 17 computations (66% saved)

Precisions
Click to see histograms. Total time spent on operations: 30.0ms
ival-div: 11.0ms (36.1% of total)
ival-mult: 7.0ms (23% of total)
ival-log: 6.0ms (19.7% of total)
ival-hypot: 4.0ms (13.1% of total)
ival-add: 1.0ms (3.3% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series21.0ms (0.6%)

Memory
-7.6MiB live, 38.5MiB allocated; 7ms collecting garbage
Counts
5 → 31
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
Outputs
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(* 1/2 (/ (pow re 2) (pow im 2)))
(* 1/2 (/ re (pow im 2)))
(* -1 (log (/ 1 re)))
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(/ (+ (* 1/2 (pow re 2)) (* (pow im 2) (log im))) (pow im 2))
(/ 1/2 (pow im 2))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (log (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(+ (log -1) (* -1 (log (/ -1 im))))
(+ (log -1) (+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2)))))
Calls

6 calls:

TimeVariablePointExpression
6.0ms
re
@inf
((log (sqrt (+ (* re re) (* im im)))) (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (* (* (/ 1/2 (* im im)) re) re) (* (/ 1/2 (* im im)) re) (/ 1/2 (* im im)))
3.0ms
im
@inf
((log (sqrt (+ (* re re) (* im im)))) (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (* (* (/ 1/2 (* im im)) re) re) (* (/ 1/2 (* im im)) re) (/ 1/2 (* im im)))
3.0ms
re
@0
((log (sqrt (+ (* re re) (* im im)))) (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (* (* (/ 1/2 (* im im)) re) re) (* (/ 1/2 (* im im)) re) (/ 1/2 (* im im)))
3.0ms
im
@-inf
((log (sqrt (+ (* re re) (* im im)))) (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (* (* (/ 1/2 (* im im)) re) re) (* (/ 1/2 (* im im)) re) (/ 1/2 (* im im)))
3.0ms
re
@-inf
((log (sqrt (+ (* re re) (* im im)))) (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (* (* (/ 1/2 (* im im)) re) re) (* (/ 1/2 (* im im)) re) (/ 1/2 (* im im)))

simplify253.0ms (7.2%)

Memory
-10.5MiB live, 222.3MiB allocated; 19ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0117531
1320510
21157499
35356499
08870469
Stop Event
iter limit
node limit
Counts
31 → 31
Calls
Call 1
Inputs
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(* 1/2 (/ (pow re 2) (pow im 2)))
(* 1/2 (/ re (pow im 2)))
(* -1 (log (/ 1 re)))
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(/ (+ (* 1/2 (pow re 2)) (* (pow im 2) (log im))) (pow im 2))
(/ 1/2 (pow im 2))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (log (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(+ (log -1) (* -1 (log (/ -1 im))))
(+ (log -1) (+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2)))))
Outputs
(log im)
(log.f64 im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/6 binary64) re) (/.f64 re (pow.f64 im #s(literal 6 binary64))) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
(* 1/2 (/ (pow re 2) (pow im 2)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im))
(* 1/2 (/ re (pow im 2)))
(*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64))
(* -1 (log (/ 1 re)))
(log.f64 re)
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (log.f64 re))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (fma.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal -1/4 binary64) (log.f64 re)))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(+.f64 (log.f64 re) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (/.f64 (*.f64 (pow.f64 im #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 re #s(literal 6 binary64))))))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(*.f64 (-.f64 (/.f64 (/.f64 (log.f64 im) re) re) (/.f64 #s(literal -1/2 binary64) (*.f64 im im))) (*.f64 re re))
(* -1 (log (/ -1 re)))
(neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(neg.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 im re)) (/.f64 im re) (log.f64 (/.f64 #s(literal -1 binary64) re))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(neg.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/4 binary64) im) (/.f64 im (pow.f64 re #s(literal 4 binary64))) (/.f64 #s(literal -1/2 binary64) (*.f64 re re))) (*.f64 im im) (log.f64 (/.f64 #s(literal -1 binary64) re))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(-.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) (/.f64 (*.f64 (pow.f64 im #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (fma.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 im re)) (/.f64 im re) (log.f64 (/.f64 #s(literal -1 binary64) re))))
(log re)
(log.f64 re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (log.f64 re))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (fma.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal -1/4 binary64) (log.f64 re)))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (/.f64 im (pow.f64 re #s(literal 6 binary64))) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64)))) (*.f64 im im) (/.f64 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 im im) (log.f64 re))
(/ (+ (* 1/2 (pow re 2)) (* (pow im 2) (log im))) (pow im 2))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im))
(/ 1/2 (pow im 2))
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
(* -1 (log (/ 1 im)))
(log.f64 im)
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (+.f64 (fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) (/.f64 (*.f64 (pow.f64 re #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 im #s(literal 6 binary64)))) (log.f64 im)))
(* -1 (log (/ -1 im)))
(neg.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(neg.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 (/.f64 #s(literal -1 binary64) im))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(neg.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/4 binary64) re) (/.f64 re (pow.f64 im #s(literal 4 binary64))) (/.f64 #s(literal -1/2 binary64) (*.f64 im im))) (*.f64 re re) (log.f64 (/.f64 #s(literal -1 binary64) im))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(-.f64 (fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) (/.f64 (*.f64 (pow.f64 re #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 im #s(literal 6 binary64)))) (fma.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 (/.f64 #s(literal -1 binary64) im))))
(+ (log -1) (* -1 (log (/ -1 im))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) im)))
(+ (log -1) (+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (*.f64 (/.f64 re im) (/.f64 re im)) #s(literal 1/2 binary64) (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) im))))

rewrite64.0ms (1.8%)

Memory
17.9MiB live, 64.7MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02075
02475
18775
068468
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
5 → 56
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (neg.f64 re)) (neg.f64 re))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (fabs.f64 re)) (fabs.f64 re))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)) (/.f64 re (neg.f64 im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)) (/.f64 re (fabs.f64 im)))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))
(*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re (*.f64 im im)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re im) (/.f64 re im)))
(*.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) (*.f64 im im)))
(*.f64 re (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re))
(/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (neg.f64 im)) (neg.f64 im))
(/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (fabs.f64 im)) (fabs.f64 im))
(/.f64 (*.f64 (neg.f64 re) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) (/.f64 re im)) (neg.f64 im))
(/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re)) im)
(/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal -1/2 binary64) re)) (neg.f64 im))
(/.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (neg.f64 re)) (neg.f64 im))
(/.f64 (neg.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) re)) (neg.f64 im))
(/.f64 (neg.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (neg.f64 re) (*.f64 #s(literal -1/2 binary64) re)) (*.f64 im im))
(/.f64 (*.f64 (neg.f64 re) (*.f64 #s(literal 1/2 binary64) re)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 re (*.f64 #s(literal -1/2 binary64) re)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) (neg.f64 re)) (*.f64 im im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) re) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 re)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) re) im)
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))
(*.f64 (/.f64 #s(literal 1/2 binary64) (neg.f64 im)) (/.f64 re (neg.f64 im)))
(*.f64 (/.f64 re (neg.f64 im)) (/.f64 #s(literal 1/2 binary64) (neg.f64 im)))
(*.f64 (/.f64 #s(literal 1/2 binary64) (fabs.f64 im)) (/.f64 re (fabs.f64 im)))
(*.f64 (/.f64 re (fabs.f64 im)) (/.f64 #s(literal 1/2 binary64) (fabs.f64 im)))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re im))
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)
(*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im))
(*.f64 #s(literal 1/2 binary64) (/.f64 re (*.f64 im im)))
(*.f64 re (/.f64 #s(literal 1/2 binary64) (*.f64 im im)))
(/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im)
(/.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)) (neg.f64 im))
(/.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)) (fabs.f64 im))
(/.f64 (*.f64 #s(literal -1/2 binary64) re) (*.f64 (neg.f64 im) im))
(/.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) im)
(/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im))
(/.f64 (/.f64 #s(literal 1/2 binary64) (neg.f64 im)) (neg.f64 im))
(/.f64 (/.f64 #s(literal 1/2 binary64) (fabs.f64 im)) (fabs.f64 im))
(/.f64 (neg.f64 (/.f64 #s(literal 1/2 binary64) im)) (neg.f64 im))
(/.f64 (/.f64 #s(literal 1/2 binary64) im) im)
(/.f64 #s(literal -1/2 binary64) (*.f64 (neg.f64 im) im))
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
(neg.f64 (/.f64 #s(literal -1/2 binary64) (*.f64 im im)))
(neg.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 (neg.f64 im) im)))

eval8.0ms (0.2%)

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

Compiled 2 620 to 366 computations (86% saved)

prune19.0ms (0.5%)

Memory
-20.6MiB live, 36.2MiB allocated; 6ms collecting garbage
Pruning

16 alts after pruning (11 fresh and 5 done)

PrunedKeptTotal
New701181
Fresh000
Picked011
Done044
Total701686
Accuracy
100.0%
Counts
86 → 16
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.3%
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
100.0%
(log.f64 (hypot.f64 re im))
99.7%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
99.2%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
3.5%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (neg.f64 im)) (neg.f64 im))))
3.5%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) re) im)))
3.5%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re)) im)))
3.1%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
3.1%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) (*.f64 (neg.f64 im) im))))
3.5%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im) re)))
3.3%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
3.5%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
3.1%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
3.3%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re) re)))
3.3%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
3.5%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))))
Compiler

Compiled 875 to 373 computations (57.4% saved)

regimes38.0ms (1.1%)

Memory
0.3MiB live, 93.2MiB allocated; 5ms collecting garbage
Counts
17 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) (*.f64 (neg.f64 im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re)) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) re) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (neg.f64 im)) (neg.f64 im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
(log.f64 (hypot.f64 re im))
Outputs
(log.f64 (hypot.f64 re im))
Calls

7 calls:

8.0ms
re
5.0ms
(*.f64 re re)
5.0ms
im
5.0ms
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
5.0ms
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
Results
AccuracySegmentsBranch
100.0%1(*.f64 im im)
100.0%1(*.f64 re re)
100.0%1(+.f64 (*.f64 re re) (*.f64 im im))
100.0%1(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
100.0%1(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
100.0%1re
100.0%1im
Compiler

Compiled 32 to 28 computations (12.5% saved)

regimes57.0ms (1.6%)

Memory
-4.8MiB live, 87.3MiB allocated; 30ms collecting garbage
Counts
16 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) (*.f64 (neg.f64 im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re)) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) re) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (neg.f64 im)) (neg.f64 im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
Calls

7 calls:

21.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
13.0ms
re
5.0ms
im
4.0ms
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
4.0ms
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Results
AccuracySegmentsBranch
99.7%1(*.f64 im im)
99.7%1(*.f64 re re)
99.7%1(+.f64 (*.f64 re re) (*.f64 im im))
99.7%1(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
99.7%1(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
99.7%1re
99.7%1im
Compiler

Compiled 32 to 28 computations (12.5% saved)

regimes34.0ms (1%)

Memory
11.0MiB live, 58.0MiB allocated; 5ms collecting garbage
Counts
15 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) (*.f64 (neg.f64 im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re)) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) re) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (neg.f64 im)) (neg.f64 im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
Calls

7 calls:

7.0ms
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
4.0ms
im
4.0ms
re
4.0ms
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
4.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
Results
AccuracySegmentsBranch
99.2%1(*.f64 im im)
99.2%1(*.f64 re re)
99.2%1(+.f64 (*.f64 re re) (*.f64 im im))
99.2%1(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
99.2%1(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
99.2%1re
99.2%1im
Compiler

Compiled 32 to 28 computations (12.5% saved)

regimes27.0ms (0.8%)

Memory
15.6MiB live, 62.7MiB allocated; 2ms collecting garbage
Counts
12 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) (*.f64 (neg.f64 im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re)) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) re) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (neg.f64 im)) (neg.f64 im))))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) re) im)))
Calls

7 calls:

5.0ms
re
4.0ms
im
4.0ms
(*.f64 im im)
4.0ms
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
3.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
Results
AccuracySegmentsBranch
3.5%1(*.f64 im im)
3.5%1(*.f64 re re)
3.5%1(+.f64 (*.f64 re re) (*.f64 im im))
3.5%1(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
3.5%1(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
3.5%1re
3.5%1im
Compiler

Compiled 32 to 28 computations (12.5% saved)

regimes26.0ms (0.7%)

Memory
6.3MiB live, 52.8MiB allocated; 5ms collecting garbage
Counts
10 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) (*.f64 (neg.f64 im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re)) im)))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
Calls

7 calls:

6.0ms
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
3.0ms
re
3.0ms
im
3.0ms
(*.f64 im im)
3.0ms
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Results
AccuracySegmentsBranch
3.5%1re
3.5%1(*.f64 re re)
3.5%1im
3.5%1(*.f64 im im)
3.5%1(+.f64 (*.f64 re re) (*.f64 im im))
3.5%1(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
3.5%1(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
Compiler

Compiled 32 to 28 computations (12.5% saved)

regimes61.0ms (1.8%)

Memory
-9.9MiB live, 44.3MiB allocated; 100ms collecting garbage
Counts
7 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) (*.f64 (neg.f64 im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re) re)))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))))
Calls

7 calls:

3.0ms
re
3.0ms
im
3.0ms
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
2.0ms
(*.f64 im im)
2.0ms
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Results
AccuracySegmentsBranch
3.5%1re
3.5%1(*.f64 re re)
3.5%1im
3.5%1(*.f64 im im)
3.5%1(+.f64 (*.f64 re re) (*.f64 im im))
3.5%1(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
3.5%1(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
Compiler

Compiled 32 to 28 computations (12.5% saved)

regimes17.0ms (0.5%)

Memory
-11.4MiB live, 37.9MiB allocated; 8ms collecting garbage
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) (*.f64 (neg.f64 im) im))))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
Calls

7 calls:

5.0ms
im
2.0ms
re
2.0ms
(*.f64 im im)
2.0ms
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
2.0ms
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Results
AccuracySegmentsBranch
3.3%1re
3.3%1(*.f64 re re)
3.3%1(*.f64 im im)
3.3%1(+.f64 (*.f64 re re) (*.f64 im im))
3.3%1(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
3.3%1(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
3.3%1im
Compiler

Compiled 32 to 28 computations (12.5% saved)

regimes11.0ms (0.3%)

Memory
-18.9MiB live, 27.9MiB allocated; 4ms collecting garbage
Accuracy

Total -0.1b remaining (-0.2%)

Threshold costs -0.1b (-0.2%)

Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
Calls

7 calls:

3.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
1.0ms
re
1.0ms
im
1.0ms
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
1.0ms
(*.f64 im im)
Results
AccuracySegmentsBranch
3.3%1(*.f64 re re)
3.3%1re
3.3%1(*.f64 im im)
3.3%1(+.f64 (*.f64 re re) (*.f64 im im))
3.3%1(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
3.3%1(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
3.3%1im
Compiler

Compiled 32 to 28 computations (12.5% saved)

simplify51.0ms (1.5%)

Memory
-10.0MiB live, 36.8MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044197
163197
2125197
3241197
4513197
51059197
61837197
71970197
Stop Event
saturated
Calls
Call 1
Inputs
(log.f64 (hypot.f64 re im))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) re) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
Outputs
(log.f64 (hypot.f64 re im))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) (log.f64 im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (/.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) re) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (/ (* 1/2 re) im) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))

derivations162.0ms (4.6%)

Memory
6.6MiB live, 147.6MiB allocated; 11ms collecting garbage
Stop Event
fuel
Compiler

Compiled 197 to 45 computations (77.2% saved)

preprocess35.0ms (1%)

Memory
28.0MiB live, 74.0MiB allocated; 4ms collecting garbage
Remove

(sort re im)

(abs re)

(abs im)

Compiler

Compiled 436 to 128 computations (70.6% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...