math.log/1 on complex, real part

Time bar (total: 4.1s)

start0.0ms (0%)

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

analyze111.0ms (2.7%)

Memory
23.1MiB live, 106.8MiB allocated; 44ms 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)

sample944.0ms (23%)

Memory
-18.5MiB live, 1 402.5MiB allocated; 402ms collecting garbage
Samples
678.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 398.0ms
ival-hypot: 263.0ms (66% of total)
ival-log: 124.0ms (31.1% of total)
ival-true: 6.0ms (1.5% of total)
ival-assert: 3.0ms (0.8% of total)
adjust: 2.0ms (0.5% of total)
Bogosity

explain666.0ms (16.2%)

Memory
-38.0MiB live, 401.4MiB allocated; 823ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1130-1(5.738578012864205e-276 -1.0682386623233778e-159)(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-rescue1030
(+.f64 (*.f64 re re) (*.f64 im im))overflow103
(*.f64 re re)overflow66
(*.f64 im im)overflow54
sqrt.f64(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))uflow-rescue90
(+.f64 (*.f64 re re) (*.f64 im im))underflow9
(*.f64 re re)underflow55
(*.f64 im im)underflow56
Confusion
Predicted +Predicted -
+1121
-0143
Precision
1.0
Recall
0.9911504424778761
Confusion?
Predicted +Predicted MaybePredicted -
+11201
-00143
Precision?
1.0
Recall?
0.9911504424778761
Freqs
test
numberfreq
0144
1112
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
409.0ms512×0valid
Compiler

Compiled 77 to 25 computations (67.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 25.0ms
ival-hypot: 9.0ms (35.6% of total)
ival-mult: 7.0ms (27.7% of total)
ival-log: 6.0ms (23.7% of total)
ival-add: 2.0ms (7.9% of total)
ival-true: 1.0ms (4% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess80.0ms (2%)

Memory
-17.2MiB live, 51.9MiB allocated; 41ms 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.1MiB live, 0.1MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 9 to 7 computations (22.2% saved)

series24.0ms (0.6%)

Memory
-12.6MiB live, 31.7MiB allocated; 17ms collecting garbage
Counts
7 → 51
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 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)))))
(pow im 2)
(+ (pow im 2) (pow re 2))
(pow re 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))))))
(* 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))))))))
(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 (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)))))))
(* (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))))))))
Calls

6 calls:

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

simplify164.0ms (4%)

Memory
23.2MiB live, 257.4MiB allocated; 32ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0186897
1569881
22226869
37530869
08145802
Stop Event
iter limit
node limit
Counts
51 → 49
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)))))
(pow im 2)
(+ (pow im 2) (pow re 2))
(pow re 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))))))
(* 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))))))))
(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 (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)))))))
(* (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))))))))
Outputs
(log im)
(log.f64 im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) 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) re) (/.f64 (/.f64 re im) 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) re) (/.f64 (/.f64 re im) 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 (/.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))
(pow re 2)
(*.f64 re 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))))
(* 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)))
(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 #s(literal 1/2 binary64) (*.f64 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 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 im im) (neg.f64 (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 (/.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)))))
(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 #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 (/.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)
(* -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) re) (/.f64 (/.f64 re im) 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) re) (/.f64 (/.f64 re im) 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 (pow.f64 re #s(literal 6 binary64)) #s(literal 1/720 binary64)) (/.f64 #s(literal 120 binary64) (pow.f64 im #s(literal 6 binary64))) (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) re) (/.f64 (/.f64 re im) im) (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)))))))
(*.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 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im) #s(literal 1 binary64)))) im)
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(*.f64 (*.f64 (fma.f64 (/.f64 (/.f64 re im) im) re #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 (/.f64 re im) im) re) #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 (/.f64 re im) im) re) #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))))))
(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) (fma.f64 (*.f64 (/.f64 (/.f64 re im) im) re) #s(literal 1/2 binary64) (neg.f64 (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 (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 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im) #s(literal 1 binary64)))))

rewrite54.0ms (1.3%)

Memory
5.4MiB live, 105.8MiB allocated; 10ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0732
01232
14132
034921
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
7 → 175
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
(*.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 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 (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)))
re
(*.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)))
im

eval29.0ms (0.7%)

Memory
-24.0MiB live, 68.3MiB allocated; 8ms collecting garbage
Compiler

Compiled 2 835 to 705 computations (75.1% saved)

prune4.0ms (0.1%)

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

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New2164220
Fresh000
Picked101
Done000
Total2174221
Accuracy
100.0%
Counts
221 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
57.5%
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
100.0%
(log.f64 (hypot.f64 re im))
99.8%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) 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)

series102.0ms (2.5%)

Memory
-1.9MiB live, 135.7MiB allocated; 29ms collecting garbage
Counts
16 → 95
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(log.f64 im)
im
#s(approx (log (sqrt (+ (* re re) (* im 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 (/.f64 re im) im) (log.f64 im))
(*.f64 #s(literal 1/2 binary64) re)
#s(literal 1/2 binary64)
re
(/.f64 (/.f64 re im) im)
(/.f64 re 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))))))
(* 1/2 re)
re
(/ re (pow im 2))
(/ re im)
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))))))
(* 1/2 (/ (pow re 2) (pow im 2)))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(* 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))))))
(/ (+ (* 1/2 (pow re 2)) (* (pow im 2) (log im))) (pow im 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))))
(+ (log -1) (+ (* -1 (log (/ -1 im))) (* 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/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
37.0ms
im
@-inf
((log (sqrt (+ (* re re) (* im im)))) (log im) im (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* 1/2 re) 1/2 re (/ (/ re im) im) (/ re 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))
35.0ms
im
@0
((log (sqrt (+ (* re re) (* im im)))) (log im) im (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* 1/2 re) 1/2 re (/ (/ re im) im) (/ re 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))
13.0ms
re
@0
((log (sqrt (+ (* re re) (* im im)))) (log im) im (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* 1/2 re) 1/2 re (/ (/ re im) im) (/ re 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))
8.0ms
im
@inf
((log (sqrt (+ (* re re) (* im im)))) (log im) im (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* 1/2 re) 1/2 re (/ (/ re im) im) (/ re 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))
4.0ms
re
@inf
((log (sqrt (+ (* re re) (* im im)))) (log im) im (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* 1/2 re) 1/2 re (/ (/ re im) im) (/ re 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))

simplify242.0ms (5.9%)

Memory
28.0MiB live, 299.5MiB allocated; 87ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02721729
18281697
231991681
082451556
Stop Event
iter limit
node limit
Counts
95 → 93
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)
re
(/ re (pow im 2))
(/ re im)
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))))))
(* 1/2 (/ (pow re 2) (pow im 2)))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(* 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))))))
(/ (+ (* 1/2 (pow re 2)) (* (pow im 2) (log im))) (pow im 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))))
(+ (log -1) (+ (* -1 (log (/ -1 im))) (* 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/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)))
(* 1/2 re)
(*.f64 #s(literal 1/2 binary64) re)
re
(/ re (pow im 2))
(/.f64 re (*.f64 im im))
(/ re im)
(/.f64 re 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 re (/.f64 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 (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)))) (*.f64 (fma.f64 (/.f64 re im) (/.f64 re im) (log.f64 (*.f64 im im))) #s(literal 1/2 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)))
(* 1/2 (/ (pow re 2) (pow im 2)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))
(* (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))
(* 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))))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -1 binary64) (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))))))
(* -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))))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -1 binary64) (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))))))
(* -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))
(/ (+ (* 1/2 (pow re 2)) (* (pow im 2) (log im))) (pow im 2))
(/.f64 (fma.f64 (*.f64 (log.f64 im) im) im (*.f64 (*.f64 #s(literal 1/2 binary64) re) re)) (*.f64 im im))
(+ 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 (/.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)) (*.f64 (fma.f64 (/.f64 im re) (/.f64 im re) (log.f64 (*.f64 re re))) #s(literal 1/2 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 re (/.f64 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 re (/.f64 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 re (/.f64 re (*.f64 im 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 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/2 binary64) (fma.f64 re (/.f64 re (*.f64 im im)) (*.f64 #s(literal 2 binary64) (log.f64 im))))
(+ (* -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)))
(+ (log -1) (+ (* -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) (-.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 re (/.f64 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 re (/.f64 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 re (/.f64 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))))))

rewrite49.0ms (1.2%)

Memory
4.1MiB live, 106.1MiB allocated; 14ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02182
03377
19877
076677
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
16 → 221
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(log.f64 im)
im
#s(approx (log (sqrt (+ (* re re) (* im 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 (/.f64 re im) im) (log.f64 im))
(*.f64 #s(literal 1/2 binary64) re)
#s(literal 1/2 binary64)
re
(/.f64 (/.f64 re im) im)
(/.f64 re 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)
im
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re (log.f64 im)))
(/.f64 (-.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (pow.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) #s(literal 2 binary64))) (-.f64 (log.f64 im) (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (pow.f64 (log.f64 im) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) (log.f64 im))))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 (/.f64 (/.f64 re im) im) re) #s(literal 3 binary64)) (pow.f64 (log.f64 im) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re)) (pow.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (pow.f64 (log.f64 im) #s(literal 2 binary64))) (-.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) (log.f64 im)))
(/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 (/.f64 (/.f64 re im) im) re) #s(literal 3 binary64)) (pow.f64 (log.f64 im) #s(literal 3 binary64))) (fma.f64 (log.f64 im) (log.f64 im) (-.f64 (pow.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) (log.f64 im)))))
(/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 (/.f64 (/.f64 re im) im) re) #s(literal 3 binary64)) (pow.f64 (log.f64 im) #s(literal 3 binary64))) (fma.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re)) (pow.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) #s(literal 2 binary64))))
(fma.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re (log.f64 im))
(fma.f64 (*.f64 (/.f64 (/.f64 re im) im) re) #s(literal 1/2 binary64) (log.f64 im))
(fma.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re) (log.f64 im))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im) (log.f64 im))
(fma.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 (/.f64 re im) im) re) (log.f64 im))
(fma.f64 re (*.f64 #s(literal 1/2 binary64) (/.f64 (/.f64 re im) im)) (log.f64 im))
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (-.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) (log.f64 im))) (/.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (-.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) (log.f64 im))))
(-.f64 (log.f64 im) (*.f64 (neg.f64 (/.f64 (/.f64 re im) im)) (*.f64 #s(literal 1/2 binary64) re)))
(-.f64 (log.f64 im) (*.f64 (neg.f64 (*.f64 #s(literal 1/2 binary64) re)) (/.f64 (/.f64 re im) im)))
(-.f64 (log.f64 im) (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 (/.f64 re im) im) re)))
(+.f64 (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 (/.f64 (/.f64 re im) im) re) #s(literal 3 binary64))) (fma.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re)) (pow.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) #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 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re)) (pow.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)))))
(+.f64 (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re) (log.f64 im))
(+.f64 (log.f64 im) (*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re))
(*.f64 #s(literal 1/2 binary64) re)
(*.f64 re #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
re
(/.f64 (/.f64 re (fabs.f64 im)) (fabs.f64 im))
(/.f64 (/.f64 (neg.f64 re) im) (neg.f64 im))
(/.f64 (neg.f64 re) (*.f64 (neg.f64 im) im))
(/.f64 (/.f64 re im) (neg.f64 (neg.f64 im)))
(/.f64 (/.f64 re im) im)
(/.f64 re (*.f64 im im))
(neg.f64 (/.f64 (/.f64 (neg.f64 re) im) im))
(neg.f64 (/.f64 (/.f64 re im) (neg.f64 im)))
(/.f64 (neg.f64 (neg.f64 re)) (neg.f64 (neg.f64 im)))
(/.f64 (neg.f64 re) (neg.f64 im))
(/.f64 re im)
(neg.f64 (/.f64 (neg.f64 re) 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 re #s(literal 3 binary64)) (pow.f64 im #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 re #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (sqrt.f64 (+.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 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 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 (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 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 (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 (neg.f64 (neg.f64 re)) re))
(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 (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)))

eval53.0ms (1.3%)

Memory
-0.9MiB live, 145.1MiB allocated; 26ms collecting garbage
Compiler

Compiled 5 687 to 1 036 computations (81.8% saved)

prune17.0ms (0.4%)

Memory
-11.7MiB live, 34.9MiB allocated; 4ms collecting garbage
Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New3172319
Fresh000
Picked044
Done000
Total3176323
Accuracy
100.0%
Counts
323 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
57.5%
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
100.0%
(log.f64 (hypot.f64 re im))
99.8%
(log.f64 #s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im)))
99.8%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im) (log.f64 im)))
99.2%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
3.6%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
Compiler

Compiled 100 to 70 computations (30% saved)

series58.0ms (1.4%)

Memory
-9.0MiB live, 82.7MiB allocated; 9ms collecting garbage
Counts
16 → 64
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re 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 #s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im)))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im)
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64))
(/.f64 #s(literal 1/2 binary64) im)
(*.f64 re (/.f64 re im))
#s(literal 1 binary64)
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 im))
(* 1/2 re)
re
(/ re im)
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
(+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))
(/ (pow re 2) im)
(* -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))))
(* 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/2 (/ (pow re 2) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ 1 (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))))))))
(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))
(+ 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 (pow re 2)) (pow im 2)) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) (pow im 2))
(/ 1/2 im)
(* -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 (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)))))
(* -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 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
Calls

6 calls:

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

simplify232.0ms (5.7%)

Memory
-6.5MiB live, 291.6MiB allocated; 130ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02081000
1619979
22395960
08424887
Stop Event
iter limit
node limit
Counts
64 → 62
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 im))
(* 1/2 re)
re
(/ re im)
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
(+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))
(/ (pow re 2) im)
(* -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))))
(* 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/2 (/ (pow re 2) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ 1 (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))))))))
(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))
(+ 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 (pow re 2)) (pow im 2)) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) (pow im 2))
(/ 1/2 im)
(* -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 (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)))))
(* -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 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
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 (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) (*.f64 im im)) re) re (log.f64 im)))
(* 1/2 (/ (pow re 2) (pow im 2)))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
(* 1/2 (/ re im))
(*.f64 (/.f64 re im) #s(literal 1/2 binary64))
(* 1/2 re)
(*.f64 #s(literal 1/2 binary64) re)
re
(/ re im)
(/.f64 re 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 re (/.f64 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
#s(literal 1 binary64)
(+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64))
(/ (pow re 2) im)
(*.f64 re (/.f64 re im))
(* -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 (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) (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) (log.f64 re)))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re (log.f64 im))
(* 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)))))))
(*.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 (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)
(* 1/2 (/ (pow re 2) im))
(*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/2 binary64))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ 1 (pow re 2))))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #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 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 (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) (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 (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 (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) (neg.f64 (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 (/.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 (+.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))) (/.f64 (*.f64 #s(literal -1/16 binary64) (pow.f64 im #s(literal 6 binary64))) (pow.f64 re #s(literal 6 binary64)))) re)
(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 (/.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)))
(+ (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))
(/ (+ (* 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))
(+ 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 (pow re 2)) (pow im 2)) im)
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) (pow im 2))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64))
(/ 1/2 im)
(/.f64 #s(literal 1/2 binary64) 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 (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))
(+ (* -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 (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))) re) re (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) (log.f64 im)))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/8 binary64)) (pow.f64 im #s(literal 4 binary64))) im (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) 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) (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/8 binary64)) (pow.f64 im #s(literal 4 binary64)))) im (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) 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))))))
(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 (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))))))
(+ (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))))
(* -1 im)
(neg.f64 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 #s(literal -1/2 binary64) (*.f64 re (/.f64 re im)) (neg.f64 im))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(neg.f64 (fma.f64 (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/8 binary64)) (pow.f64 im #s(literal 4 binary64))) im (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) 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))))))))
(neg.f64 (fma.f64 (fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/16 binary64) (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/8 binary64)) (pow.f64 im #s(literal 4 binary64)))) im (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)

rewrite59.0ms (1.4%)

Memory
12.4MiB live, 105.2MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
027151
037151
1124151
01007134
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
16 → 130
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re 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 #s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im)))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im))
(*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im)
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64))
(/.f64 #s(literal 1/2 binary64) im)
(*.f64 re (/.f64 re im))
#s(literal 1 binary64)
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re)))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re im)) re)
(*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re)
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)) (/.f64 (neg.f64 re) im))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)) (/.f64 re (fabs.f64 im)))
(*.f64 (*.f64 (/.f64 re (*.f64 im im)) re) #s(literal 1/2 binary64))
(*.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re))
(*.f64 (*.f64 (/.f64 re im) re) (*.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 1 binary64)))
(*.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1 binary64)))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) 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 (/.f64 re im) #s(literal 1 binary64)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re (*.f64 im im)))
(*.f64 (/.f64 re (*.f64 im im)) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re im) (/.f64 re im)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re (*.f64 im im)) re))
(*.f64 re (*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im)))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (/.f64 re (*.f64 im im))))
(/.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 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im)) im)
(/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) #s(literal 1 binary64)) 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 (neg.f64 re) im) (*.f64 #s(literal 1/2 binary64) re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal -1/2 binary64)) (neg.f64 im))
(/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re)) 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 (*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (neg.f64 re) im)) (neg.f64 im))
(/.f64 (neg.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64))) (neg.f64 im))
(/.f64 (neg.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (*.f64 re re) #s(literal 1/2 binary64)) (*.f64 im im))
(/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 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 re im) re) #s(literal 1/2 binary64)) im)
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) re)
(*.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))
#s(literal 1/2 binary64)
re
im
(/.f64 (neg.f64 (neg.f64 re)) (neg.f64 (neg.f64 im)))
(/.f64 (neg.f64 re) (neg.f64 im))
(/.f64 re im)
(neg.f64 (/.f64 (neg.f64 re) im))
(log.f64 #s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im) #s(literal 1 binary64)) im)))
#s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im) #s(literal 1 binary64)) im))
(*.f64 (fma.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im) #s(literal 1 binary64)) im)
(*.f64 im (fma.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im) #s(literal 1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) im) (fma.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im) #s(literal -1 binary64)))
(/.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 (/.f64 re (*.f64 im im)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) im) (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re)) (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64))))
(/.f64 (*.f64 im (-.f64 (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (fma.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im) #s(literal -1 binary64)))
(/.f64 (*.f64 im (fma.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 (/.f64 re (*.f64 im im)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re)) (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64))))
(fma.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) im (*.f64 #s(literal 1 binary64) im))
(fma.f64 #s(literal 1 binary64) im (*.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) im))
(fma.f64 im (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) (*.f64 im #s(literal 1 binary64)))
(fma.f64 im #s(literal 1 binary64) (*.f64 im (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re)))
(+.f64 (*.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) im) (*.f64 #s(literal 1 binary64) im))
(+.f64 (*.f64 #s(literal 1 binary64) im) (*.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) im))
(+.f64 (*.f64 im (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re)) (*.f64 im #s(literal 1 binary64)))
(+.f64 (*.f64 im #s(literal 1 binary64)) (*.f64 im (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re)))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im) #s(literal -1 binary64))))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 (/.f64 re (*.f64 im im)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re)) (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im) #s(literal -1 binary64)))
(/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 (/.f64 re (*.f64 im im)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re))))
(/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 (/.f64 re (*.f64 im im)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re)) (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re im)) re #s(literal 1 binary64))
(fma.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re #s(literal 1 binary64))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)) (/.f64 (neg.f64 re) im) #s(literal 1 binary64))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)) (/.f64 re (fabs.f64 im)) #s(literal 1 binary64))
(fma.f64 (*.f64 (/.f64 re (*.f64 im im)) re) #s(literal 1/2 binary64) #s(literal 1 binary64))
(fma.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 1 binary64))
(fma.f64 (*.f64 (/.f64 re im) re) (*.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im) #s(literal 1 binary64))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re) #s(literal 1 binary64))
(fma.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) #s(literal 1 binary64))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (*.f64 (/.f64 re im) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re (*.f64 im im)) #s(literal 1 binary64))
(fma.f64 (/.f64 re (*.f64 im im)) (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re im) (/.f64 re im)) #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re (*.f64 im im)) re) #s(literal 1 binary64))
(fma.f64 re (*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im)) #s(literal 1 binary64))
(fma.f64 re (*.f64 #s(literal 1/2 binary64) (/.f64 re (*.f64 im im))) #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (fma.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im) #s(literal -1 binary64))))
(-.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (*.f64 (/.f64 re im) re)) (/.f64 #s(literal 1/2 binary64) im)))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (/.f64 #s(literal 1/2 binary64) im)) (*.f64 (/.f64 re im) re)))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)) (/.f64 re im)))
(+.f64 (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 (/.f64 re (*.f64 im im)) re) #s(literal 3 binary64))) (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re)) (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re)) (pow.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 2 binary64)))))
(+.f64 (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64)) re))
(/.f64 #s(literal -1/2 binary64) (neg.f64 im))
(/.f64 #s(literal 1/2 binary64) (neg.f64 (neg.f64 im)))
(/.f64 #s(literal 1/2 binary64) im)
(neg.f64 (/.f64 #s(literal -1/2 binary64) im))
(neg.f64 (/.f64 #s(literal 1/2 binary64) (neg.f64 im)))
(*.f64 (neg.f64 re) (/.f64 (neg.f64 re) im))
(*.f64 (fabs.f64 re) (/.f64 (fabs.f64 re) im))
(*.f64 (/.f64 re im) re)
(*.f64 re (/.f64 re im))
(/.f64 (*.f64 (neg.f64 re) re) (neg.f64 im))
(/.f64 (*.f64 re (neg.f64 re)) (neg.f64 im))
(/.f64 (neg.f64 (*.f64 re re)) (neg.f64 im))
(/.f64 (*.f64 re re) im)
#s(literal 1 binary64)

eval29.0ms (0.7%)

Memory
7.7MiB live, 58.7MiB allocated; 12ms collecting garbage
Compiler

Compiled 5 716 to 792 computations (86.1% saved)

prune27.0ms (0.7%)

Memory
-7.8MiB live, 38.6MiB allocated; 4ms collecting garbage
Pruning

14 alts after pruning (8 fresh and 6 done)

PrunedKeptTotal
New1858193
Fresh000
Picked022
Done044
Total18514199
Accuracy
100.0%
Counts
199 → 14
Alt Table
Click to see full alt table
StatusAccuracyProgram
57.5%
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
100.0%
(log.f64 (hypot.f64 re im))
99.8%
(log.f64 #s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im)))
99.8%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im) (log.f64 im)))
99.2%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
3.4%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (neg.f64 im)) (neg.f64 im))))
3.4%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re)) im)))
3.6%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im)))
3.0%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 re re) #s(literal 1/2 binary64)) (*.f64 im im))))
3.6%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
3.6%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))))
3.5%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re im)) re)))
3.6%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
3.2%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))))
Compiler

Compiled 636 to 414 computations (34.9% saved)

series56.0ms (1.4%)

Memory
21.7MiB live, 67.2MiB allocated; 7ms collecting garbage
Counts
31 → 43
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re)))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))
(/.f64 #s(literal 1/2 binary64) im)
#s(literal 1/2 binary64)
im
(*.f64 (/.f64 re im) re)
(/.f64 re im)
re
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (* (/ (* 1/2 re) im) (/ re 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))
(*.f64 im im)
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im)))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) re)
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im)))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im)
(*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (neg.f64 im)) (neg.f64 im))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.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) (neg.f64 im)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (neg.f64 im))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) re)
(*.f64 #s(literal 1/2 binary64) re)
(neg.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 (/ (pow re 2) (pow im 2)))
(/ (pow re 2) im)
(/ re im)
re
(* 1/2 (/ re (pow im 2)))
(* 1/2 (/ re im))
(* 1/2 (/ (pow re 2) im))
(* -1/2 (/ (pow re 2) im))
(* 1/2 (pow re 2))
(* 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))))))
(* (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 im)
im
(/ 1/2 (pow im 2))
(pow im 2)
(* -1 im)
(* -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
32.0ms
re
@-inf
((log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (/ 1/2 im) (* (/ re im) re)) (/ 1/2 im) 1/2 im (* (/ re im) re) (/ re im) re (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (/ (* 1/2 re) im) (/ re im)) (* (* (/ 1/2 (* im im)) re) re) (* (/ 1/2 (* im im)) re) (/ 1/2 (* im im)) (* im im) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (* (/ 1/2 im) re) (/ re im)) (* (/ 1/2 im) re) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/ (* (* (/ re im) re) 1/2) im) (* (* (/ re im) re) 1/2) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/ (/ (* (* 1/2 re) re) (neg im)) (neg im)) (/ (* (* 1/2 re) re) (neg im)) (* (* 1/2 re) re) (* 1/2 re) (neg im))
5.0ms
im
@-inf
((log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (/ 1/2 im) (* (/ re im) re)) (/ 1/2 im) 1/2 im (* (/ re im) re) (/ re im) re (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (/ (* 1/2 re) im) (/ re im)) (* (* (/ 1/2 (* im im)) re) re) (* (/ 1/2 (* im im)) re) (/ 1/2 (* im im)) (* im im) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (* (/ 1/2 im) re) (/ re im)) (* (/ 1/2 im) re) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/ (* (* (/ re im) re) 1/2) im) (* (* (/ re im) re) 1/2) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/ (/ (* (* 1/2 re) re) (neg im)) (neg im)) (/ (* (* 1/2 re) re) (neg im)) (* (* 1/2 re) re) (* 1/2 re) (neg im))
5.0ms
im
@inf
((log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (/ 1/2 im) (* (/ re im) re)) (/ 1/2 im) 1/2 im (* (/ re im) re) (/ re im) re (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (/ (* 1/2 re) im) (/ re im)) (* (* (/ 1/2 (* im im)) re) re) (* (/ 1/2 (* im im)) re) (/ 1/2 (* im im)) (* im im) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (* (/ 1/2 im) re) (/ re im)) (* (/ 1/2 im) re) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/ (* (* (/ re im) re) 1/2) im) (* (* (/ re im) re) 1/2) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/ (/ (* (* 1/2 re) re) (neg im)) (neg im)) (/ (* (* 1/2 re) re) (neg im)) (* (* 1/2 re) re) (* 1/2 re) (neg im))
5.0ms
re
@inf
((log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (/ 1/2 im) (* (/ re im) re)) (/ 1/2 im) 1/2 im (* (/ re im) re) (/ re im) re (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (/ (* 1/2 re) im) (/ re im)) (* (* (/ 1/2 (* im im)) re) re) (* (/ 1/2 (* im im)) re) (/ 1/2 (* im im)) (* im im) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (* (/ 1/2 im) re) (/ re im)) (* (/ 1/2 im) re) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/ (* (* (/ re im) re) 1/2) im) (* (* (/ re im) re) 1/2) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/ (/ (* (* 1/2 re) re) (neg im)) (neg im)) (/ (* (* 1/2 re) re) (neg im)) (* (* 1/2 re) re) (* 1/2 re) (neg im))
4.0ms
re
@0
((log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (/ 1/2 im) (* (/ re im) re)) (/ 1/2 im) 1/2 im (* (/ re im) re) (/ re im) re (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (/ (* 1/2 re) im) (/ re im)) (* (* (/ 1/2 (* im im)) re) re) (* (/ 1/2 (* im im)) re) (/ 1/2 (* im im)) (* im im) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (* (* (/ 1/2 im) re) (/ re im)) (* (/ 1/2 im) re) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/ (* (* (/ re im) re) 1/2) im) (* (* (/ re im) re) 1/2) (log (sqrt (+ (* re re) (* im im)))) (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/ (/ (* (* 1/2 re) re) (neg im)) (neg im)) (/ (* (* 1/2 re) re) (neg im)) (* (* 1/2 re) re) (* 1/2 re) (neg im))

simplify281.0ms (6.9%)

Memory
1.8MiB live, 319.8MiB allocated; 78ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0126576
1337555
21183544
35379544
08889514
Stop Event
iter limit
node limit
Counts
43 → 41
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)))
(/ (pow re 2) im)
(/ re im)
re
(* 1/2 (/ re (pow im 2)))
(* 1/2 (/ re im))
(* 1/2 (/ (pow re 2) im))
(* -1/2 (/ (pow re 2) im))
(* 1/2 (pow re 2))
(* 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))))))
(* (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 im)
im
(/ 1/2 (pow im 2))
(pow im 2)
(* -1 im)
(* -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) im) (*.f64 (/.f64 re im) 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 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) 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 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re) (log.f64 im)))
(* 1/2 (/ (pow re 2) (pow im 2)))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))
(/ (pow re 2) im)
(*.f64 (/.f64 re im) re)
(/ re im)
(/.f64 re im)
re
(* 1/2 (/ re (pow im 2)))
(*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64))
(* 1/2 (/ re im))
(*.f64 (/.f64 re im) #s(literal 1/2 binary64))
(* 1/2 (/ (pow re 2) im))
(*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64))
(* -1/2 (/ (pow re 2) im))
(*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re))
(* 1/2 (pow re 2))
(*.f64 (*.f64 re re) #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))))))
(* (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 (/.f64 #s(literal -1/2 binary64) (*.f64 re re)) im) im (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 (/.f64 #s(literal -1/2 binary64) (*.f64 re re)) im) im (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) im) (*.f64 (/.f64 re im) re) (log.f64 im))
(/ 1/2 im)
(/.f64 #s(literal 1/2 binary64) im)
im
(/ 1/2 (pow im 2))
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
(pow im 2)
(*.f64 im im)
(* -1 im)
(neg.f64 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) im) (*.f64 (/.f64 re im) 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 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) 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 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) 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))))

rewrite56.0ms (1.4%)

Memory
-10.2MiB live, 82.4MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044419
062413
1160412
01032377
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
31 → 282
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re)))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))
(/.f64 #s(literal 1/2 binary64) im)
#s(literal 1/2 binary64)
im
(*.f64 (/.f64 re im) re)
(/.f64 re im)
re
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (* (/ (* 1/2 re) im) (/ re 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))
(*.f64 im im)
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im)))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) re)
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im)))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im)
(*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (neg.f64 im)) (neg.f64 im))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.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) (neg.f64 im)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (neg.f64 im))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) re)
(*.f64 #s(literal 1/2 binary64) re)
(neg.f64 im)
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (neg.f64 re)) (neg.f64 re))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (fabs.f64 re)) (fabs.f64 re))
(*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) (fabs.f64 im)) (/.f64 (*.f64 re re) (fabs.f64 im)))
(*.f64 (/.f64 #s(literal 1/2 binary64) (neg.f64 im)) (/.f64 (*.f64 re re) (neg.f64 im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)) (/.f64 re (fabs.f64 im)))
(*.f64 (/.f64 re (fabs.f64 im)) (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)) (/.f64 (neg.f64 re) im))
(*.f64 (/.f64 (neg.f64 re) im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)))
(*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64))
(*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (/.f64 re im))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re) re)
(*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re))
(*.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im))
(*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))
(*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))
(*.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re im) (/.f64 re im)))
(*.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 (/.f64 re im) re) im))
(*.f64 (*.f64 re re) (/.f64 (/.f64 #s(literal 1/2 binary64) im) im))
(*.f64 re (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re))
(/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (fabs.f64 im)) (fabs.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) (/.f64 re im)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im)) im)
(/.f64 (*.f64 (neg.f64 re) (*.f64 (/.f64 re im) #s(literal 1/2 binary64))) (neg.f64 im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (neg.f64 re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (neg.f64 re) (*.f64 #s(literal -1/2 binary64) re)) (*.f64 im im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) re) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) re) im)
(neg.f64 (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re)) im))
(/.f64 #s(literal -1/2 binary64) (neg.f64 im))
(/.f64 #s(literal 1/2 binary64) im)
(neg.f64 (/.f64 #s(literal -1/2 binary64) im))
(neg.f64 (/.f64 #s(literal 1/2 binary64) (neg.f64 im)))
#s(literal 1/2 binary64)
im
(*.f64 (neg.f64 re) (/.f64 (neg.f64 re) im))
(*.f64 (fabs.f64 re) (/.f64 (fabs.f64 re) im))
(*.f64 (/.f64 re im) re)
(*.f64 re (/.f64 re im))
(/.f64 (*.f64 (neg.f64 re) re) (neg.f64 im))
(/.f64 (*.f64 re (neg.f64 re)) (neg.f64 im))
(/.f64 (neg.f64 (*.f64 re re)) (neg.f64 im))
(/.f64 (*.f64 re re) im)
(/.f64 (neg.f64 (neg.f64 re)) im)
(/.f64 (neg.f64 re) (neg.f64 im))
(/.f64 re im)
(neg.f64 (/.f64 (neg.f64 re) im))
re
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64)))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64))))
#s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (neg.f64 re)) (neg.f64 re))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (fabs.f64 re)) (fabs.f64 re))
(*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) (fabs.f64 im)) (/.f64 (*.f64 re re) (fabs.f64 im)))
(*.f64 (/.f64 #s(literal 1/2 binary64) (neg.f64 im)) (/.f64 (*.f64 re re) (neg.f64 im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)) (/.f64 re (fabs.f64 im)))
(*.f64 (/.f64 re (fabs.f64 im)) (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)) (/.f64 (neg.f64 re) im))
(*.f64 (/.f64 (neg.f64 re) im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)))
(*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64))
(*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (/.f64 re im))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re) re)
(*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re))
(*.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im))
(*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))
(*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))
(*.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re im) (/.f64 re im)))
(*.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 (/.f64 re im) re) im))
(*.f64 (*.f64 re re) (/.f64 (/.f64 #s(literal 1/2 binary64) im) im))
(*.f64 re (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re))
(/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (fabs.f64 im)) (fabs.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) (/.f64 re im)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im)) im)
(/.f64 (*.f64 (neg.f64 re) (*.f64 (/.f64 re im) #s(literal 1/2 binary64))) (neg.f64 im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (neg.f64 re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (neg.f64 re) (*.f64 #s(literal -1/2 binary64) re)) (*.f64 im im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) re) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) re) im)
(neg.f64 (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re)) im))
(*.f64 (/.f64 #s(literal 1/2 binary64) (fabs.f64 im)) (/.f64 re (fabs.f64 im)))
(*.f64 (/.f64 #s(literal 1/2 binary64) (neg.f64 im)) (/.f64 (neg.f64 re) im))
(*.f64 (/.f64 re (fabs.f64 im)) (/.f64 #s(literal 1/2 binary64) (fabs.f64 im)))
(*.f64 (/.f64 (neg.f64 re) im) (/.f64 #s(literal 1/2 binary64) (neg.f64 im)))
(*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re)
(*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re im))
(*.f64 #s(literal 1/2 binary64) (/.f64 (/.f64 re im) im))
(*.f64 re (/.f64 (/.f64 #s(literal 1/2 binary64) im) im))
(/.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 re im)) (neg.f64 im))
(/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (neg.f64 re)) (neg.f64 im))
(/.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)) (fabs.f64 im))
(/.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)) (neg.f64 im))
(/.f64 (*.f64 #s(literal -1/2 binary64) (neg.f64 re)) (*.f64 im im))
(/.f64 (*.f64 #s(literal -1/2 binary64) re) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) im)
(/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im))
(/.f64 (/.f64 #s(literal 1/2 binary64) (fabs.f64 im)) (fabs.f64 im))
(/.f64 (/.f64 #s(literal 1/2 binary64) (neg.f64 im)) (neg.f64 im))
(/.f64 (neg.f64 (/.f64 #s(literal 1/2 binary64) im)) (neg.f64 im))
(/.f64 #s(literal -1/2 binary64) (*.f64 (neg.f64 im) im))
(/.f64 (/.f64 #s(literal 1/2 binary64) 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)))
(*.f64 (pow.f64 im #s(literal 1 binary64)) (pow.f64 im #s(literal 1 binary64)))
(*.f64 (neg.f64 (fabs.f64 im)) (neg.f64 (fabs.f64 im)))
(*.f64 (fabs.f64 (fabs.f64 im)) (fabs.f64 (fabs.f64 im)))
(*.f64 (fabs.f64 im) (fabs.f64 im))
(*.f64 (neg.f64 im) (neg.f64 im))
(*.f64 im im)
(pow.f64 (fabs.f64 im) #s(literal 2 binary64))
(pow.f64 (neg.f64 im) #s(literal 2 binary64))
(pow.f64 im #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 im) im))
(fabs.f64 (*.f64 im im))
(exp.f64 (*.f64 (log.f64 im) #s(literal 2 binary64)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (neg.f64 re)) (neg.f64 re))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (fabs.f64 re)) (fabs.f64 re))
(*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) (fabs.f64 im)) (/.f64 (*.f64 re re) (fabs.f64 im)))
(*.f64 (/.f64 #s(literal 1/2 binary64) (neg.f64 im)) (/.f64 (*.f64 re re) (neg.f64 im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)) (/.f64 re (fabs.f64 im)))
(*.f64 (/.f64 re (fabs.f64 im)) (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)) (/.f64 (neg.f64 re) im))
(*.f64 (/.f64 (neg.f64 re) im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)))
(*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64))
(*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (/.f64 re im))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re) re)
(*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re))
(*.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im))
(*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))
(*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))
(*.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re im) (/.f64 re im)))
(*.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 (/.f64 re im) re) im))
(*.f64 (*.f64 re re) (/.f64 (/.f64 #s(literal 1/2 binary64) im) im))
(*.f64 re (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re))
(/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (fabs.f64 im)) (fabs.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) (/.f64 re im)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im)) im)
(/.f64 (*.f64 (neg.f64 re) (*.f64 (/.f64 re im) #s(literal 1/2 binary64))) (neg.f64 im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (neg.f64 re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (neg.f64 re) (*.f64 #s(literal -1/2 binary64) re)) (*.f64 im im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) re) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) re) im)
(neg.f64 (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re)) im))
(*.f64 (/.f64 re im) #s(literal 1/2 binary64))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) re)
(*.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)) 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)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (neg.f64 re)) (neg.f64 re))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (fabs.f64 re)) (fabs.f64 re))
(*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) (fabs.f64 im)) (/.f64 (*.f64 re re) (fabs.f64 im)))
(*.f64 (/.f64 #s(literal 1/2 binary64) (neg.f64 im)) (/.f64 (*.f64 re re) (neg.f64 im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)) (/.f64 re (fabs.f64 im)))
(*.f64 (/.f64 re (fabs.f64 im)) (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)) (/.f64 (neg.f64 re) im))
(*.f64 (/.f64 (neg.f64 re) im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)))
(*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64))
(*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (/.f64 re im))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re) re)
(*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re))
(*.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im))
(*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))
(*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))
(*.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re im) (/.f64 re im)))
(*.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 (/.f64 re im) re) im))
(*.f64 (*.f64 re re) (/.f64 (/.f64 #s(literal 1/2 binary64) im) im))
(*.f64 re (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re))
(/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (fabs.f64 im)) (fabs.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) (/.f64 re im)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im)) im)
(/.f64 (*.f64 (neg.f64 re) (*.f64 (/.f64 re im) #s(literal 1/2 binary64))) (neg.f64 im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (neg.f64 re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (neg.f64 re) (*.f64 #s(literal -1/2 binary64) re)) (*.f64 im im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) re) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) re) im)
(neg.f64 (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re)) im))
(*.f64 (*.f64 #s(literal -1/2 binary64) re) (/.f64 (neg.f64 re) im))
(*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) re)
(*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64))
(*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im))
(*.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re im) re))
(*.f64 re (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))
(/.f64 (neg.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) re)) im)
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) re) (neg.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) im)
(neg.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64))))
#s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (neg.f64 re)) (neg.f64 re))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (fabs.f64 re)) (fabs.f64 re))
(*.f64 (*.f64 (/.f64 (/.f64 re im) im) #s(literal 1/2 binary64)) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) (fabs.f64 im)) (/.f64 (*.f64 re re) (fabs.f64 im)))
(*.f64 (/.f64 #s(literal 1/2 binary64) (neg.f64 im)) (/.f64 (*.f64 re re) (neg.f64 im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)) (/.f64 re (fabs.f64 im)))
(*.f64 (/.f64 re (fabs.f64 im)) (/.f64 (*.f64 #s(literal 1/2 binary64) re) (fabs.f64 im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)) (/.f64 (neg.f64 re) im))
(*.f64 (/.f64 (neg.f64 re) im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)))
(*.f64 (/.f64 (*.f64 (/.f64 re im) re) im) #s(literal 1/2 binary64))
(*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (/.f64 re im))
(*.f64 (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re) re)
(*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re))
(*.f64 (*.f64 (/.f64 re im) re) (/.f64 #s(literal 1/2 binary64) im))
(*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))
(*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im))
(*.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re im) (/.f64 re im)))
(*.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 (/.f64 re im) re) im))
(*.f64 (*.f64 re re) (/.f64 (/.f64 #s(literal 1/2 binary64) im) im))
(*.f64 re (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) re))
(/.f64 (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (fabs.f64 im)) (fabs.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) (/.f64 re im)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im)) im)
(/.f64 (*.f64 (neg.f64 re) (*.f64 (/.f64 re im) #s(literal 1/2 binary64))) (neg.f64 im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (neg.f64 re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (neg.f64 re) (*.f64 #s(literal -1/2 binary64) re)) (*.f64 im im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) re) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))
(/.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) re) im)
(neg.f64 (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re)) im))
(*.f64 (neg.f64 (*.f64 (/.f64 re im) re)) #s(literal 1/2 binary64))
(*.f64 (/.f64 (neg.f64 re) im) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 #s(literal -1/2 binary64) (*.f64 (/.f64 re im) re))
(*.f64 (*.f64 (/.f64 re im) re) #s(literal -1/2 binary64))
(*.f64 (/.f64 re im) (*.f64 #s(literal -1/2 binary64) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (neg.f64 re) im))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 (neg.f64 re) im)))
(*.f64 #s(literal 1/2 binary64) (neg.f64 (*.f64 (/.f64 re im) re)))
(*.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 re re) (neg.f64 im)))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (/.f64 (neg.f64 re) im)))
(*.f64 re (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 im)))
(/.f64 (neg.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) re) im)
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (neg.f64 im))
(neg.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) (fabs.f64 re)) (fabs.f64 re))
(*.f64 (*.f64 #s(literal -1/2 binary64) re) (neg.f64 re))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) re)
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(*.f64 (*.f64 re re) #s(literal 1/2 binary64))
(*.f64 re (*.f64 #s(literal 1/2 binary64) re))
(*.f64 #s(literal 1/2 binary64) re)
(*.f64 re #s(literal 1/2 binary64))
(neg.f64 im)

eval43.0ms (1.1%)

Memory
-3.1MiB live, 110.5MiB allocated; 30ms collecting garbage
Compiler

Compiled 7 867 to 862 computations (89% saved)

prune30.0ms (0.7%)

Memory
-7.9MiB live, 138.4MiB allocated; 8ms collecting garbage
Pruning

15 alts after pruning (6 fresh and 9 done)

PrunedKeptTotal
New2194223
Fresh123
Picked235
Done066
Total22215237
Accuracy
100.0%
Counts
237 → 15
Alt Table
Click to see full alt table
StatusAccuracyProgram
57.5%
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
100.0%
(log.f64 (hypot.f64 re im))
99.8%
(log.f64 #s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im)))
99.8%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im) (log.f64 im)))
99.2%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
3.4%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re)) im)))
3.6%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im)))
3.0%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 re re) #s(literal 1/2 binary64)) (*.f64 im im))))
3.5%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))))
3.0%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re))))
3.6%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 re im))))
3.4%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
3.6%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
3.5%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (neg.f64 re)) (neg.f64 im)) re))))
3.2%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))))
Compiler

Compiled 927 to 366 computations (60.5% saved)

regimes45.0ms (1.1%)

Memory
6.9MiB live, 143.4MiB allocated; 9ms collecting garbage
Counts
19 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re 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) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 re re) #s(literal 1/2 binary64)) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (neg.f64 re)) (neg.f64 im)) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im) (log.f64 im)))
(log.f64 #s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im)))
(log.f64 (hypot.f64 re im))
Outputs
(log.f64 (hypot.f64 re im))
Calls

7 calls:

8.0ms
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
7.0ms
re
7.0ms
(*.f64 im im)
6.0ms
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)

regimes43.0ms (1%)

Memory
-19.1MiB live, 127.8MiB allocated; 9ms collecting garbage
Counts
18 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re 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) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 re re) #s(literal 1/2 binary64)) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (neg.f64 re)) (neg.f64 im)) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im) (log.f64 im)))
(log.f64 #s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im)))
Outputs
(log.f64 #s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im)))
Calls

7 calls:

9.0ms
re
7.0ms
(*.f64 im im)
6.0ms
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
5.0ms
im
5.0ms
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
Results
AccuracySegmentsBranch
99.8%1(*.f64 im im)
99.8%1(*.f64 re re)
99.8%1(+.f64 (*.f64 re re) (*.f64 im im))
99.8%1(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
99.8%1(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
99.8%1re
99.8%1im
Compiler

Compiled 32 to 28 computations (12.5% saved)

regimes81.0ms (2%)

Memory
41.3MiB live, 87.9MiB allocated; 3ms collecting garbage
Counts
17 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re 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) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 re re) #s(literal 1/2 binary64)) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (neg.f64 re)) (neg.f64 im)) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im) (log.f64 im)))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) im) (log.f64 im)))
Calls

7 calls:

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

Compiled 32 to 28 computations (12.5% saved)

regimes86.0ms (2.1%)

Memory
-21.3MiB live, 74.7MiB allocated; 8ms collecting garbage
Counts
16 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re 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) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 re re) #s(literal 1/2 binary64)) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (neg.f64 re)) (neg.f64 im)) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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:

35.0ms
im
27.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
5.0ms
re
5.0ms
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
5.0ms
(sqrt.f64 (+.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)

regimes32.0ms (0.8%)

Memory
-10.6MiB live, 81.9MiB allocated; 6ms collecting garbage
Counts
13 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re 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) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 re re) #s(literal 1/2 binary64)) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 (/.f64 re im) im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (neg.f64 re)) (neg.f64 im)) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) 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) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))))
Calls

7 calls:

6.0ms
re
5.0ms
(*.f64 re re)
4.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
3.6%1(*.f64 im im)
3.6%1(*.f64 re re)
3.6%1(+.f64 (*.f64 re re) (*.f64 im im))
3.6%1(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
3.6%1(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
3.6%1re
3.6%1im
Compiler

Compiled 32 to 28 computations (12.5% saved)

regimes13.0ms (0.3%)

Memory
34.7MiB live, 34.7MiB allocated; 0ms collecting garbage
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re 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) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 re re) #s(literal 1/2 binary64)) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re im)) re)))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
Calls

7 calls:

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

Compiled 32 to 28 computations (12.5% saved)

regimes20.0ms (0.5%)

Memory
-19.0MiB live, 33.2MiB allocated; 16ms 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) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re 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) (/ (/ re im) im)) (log im)) (/.f64 (*.f64 (*.f64 re re) #s(literal 1/2 binary64)) (*.f64 im im))))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))))
Calls

7 calls:

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

Compiled 32 to 28 computations (12.5% saved)

simplify81.0ms (2%)

Memory
-2.2MiB live, 80.9MiB allocated; 23ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
047165
173165
2161165
3442165
41231165
52180165
64257165
77455165
Stop Event
node limit
Calls
Call 1
Inputs
(log.f64 (hypot.f64 re im))
(log.f64 #s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) 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) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))))
Outputs
(log.f64 (hypot.f64 re im))
(log.f64 #s(approx (sqrt (+ (* re re) (* im im))) (*.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re (/.f64 re im)) #s(literal 1 binary64)) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (/.f64 re im) 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) (/ (/ re im) im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 re im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 re) (/ (/ re im) im)) (log im)) #s(approx (* (/ (* 1/2 re) im) (/ re im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))))

derivations249.0ms (6.1%)

Memory
2.0MiB live, 236.4MiB allocated; 60ms collecting garbage
Stop Event
fuel
Compiler

Compiled 165 to 48 computations (70.9% saved)

preprocess44.0ms (1.1%)

Memory
21.2MiB live, 72.0MiB allocated; 9ms collecting garbage
Remove

(sort re im)

(abs re)

(abs im)

Compiler

Compiled 372 to 134 computations (64% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...