math.log/1 on complex, real part

Time bar (total: 12.1s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze54.0ms (0.4%)

Memory
-23.6MiB live, 56.2MiB allocated
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)

sample657.0ms (5.4%)

Memory
-5.6MiB live, 799.4MiB allocated
Samples
451.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 270.0ms
ival-hypot: 148.0ms (54.8% of total)
ival-log: 113.0ms (41.8% of total)
ival-true: 6.0ms (2.2% of total)
ival-assert: 3.0ms (1.1% of total)
Bogosity

explain104.0ms (0.9%)

Memory
16.3MiB live, 128.0MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1330-1(-1.1990322357158845e-159 2.320050794334916e-235)(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-rescue1200
(+.f64 (*.f64 re re) (*.f64 im im))overflow120
(*.f64 re re)overflow81
(*.f64 im im)overflow54
sqrt.f64(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))uflow-rescue120
(+.f64 (*.f64 re re) (*.f64 im im))underflow12
(*.f64 re re)underflow61
(*.f64 im im)underflow61
Confusion
Predicted +Predicted -
+1321
-0123
Precision
1.0
Recall
0.9924812030075187
Confusion?
Predicted +Predicted MaybePredicted -
+13201
-00123
Precision?
1.0
Recall?
0.9924812030075187
Freqs
test
numberfreq
0124
1132
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
42.0ms512×0valid
Compiler

Compiled 109 to 32 computations (70.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 28.0ms
ival-mult: 10.0ms (35.9% of total)
ival-hypot: 8.0ms (28.7% of total)
ival-log: 6.0ms (21.5% of total)
ival-add: 2.0ms (7.2% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess3.0s (24.9%)

Memory
-116.2MiB live, 677.1MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01947
14547
29547
315547
424347
534747
646747
760347
875547
992347
10110747
11130747
12152347
13175547
14200347
15226747
16230347
17235347
18242547
19251347
20292147
21317747
22345747
23374947
24405347
25440947
26454547
27470547
28614547
29616147
30617747
31619347
32620947
33622547
34624147
35625747
36668147
37714147
38773347
079
0129
1239
2629
31179
41909
52869
63989
75269
86709
98309
1010069
1111989
1214069
1316309
1418709
1521269
1623989
1724239
1824489
1924739
2024989
2125239
2228319
2331339
2434559
2537899
2641359
2742719
2843199
2943559
3044039
3144639
3245359
080074
Stop Event
iter limit
node limit
iter limit
node limit
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
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
49.9%
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify2.1s (16.9%)

Memory
20.2MiB live, 777.6MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0732
01232
12332
26232
311732
419032
528632
639832
752632
867032
983032
10100632
11119832
12140632
13163032
14187032
15212632
16239832
17242332
18244832
19247332
20249832
21252332
22283132
23313332
24345532
25378932
26413532
27427132
28431932
29435532
30440332
31446332
32453532
0800721
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (*.f64 re re) (*.f64 im im))
(*.f64 re re)
re
(*.f64 im im)
im
Outputs
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(log.f64 (hypot.f64 im re))
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(hypot.f64 im re)
(+.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(*.f64 re re)
re
(*.f64 im im)
im

localize54.0ms (0.4%)

Memory
-26.6MiB live, 18.1MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 re re)
accuracy0.0
(*.f64 im im)
accuracy0.00390625
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
accuracy30.845470940798787
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Samples
48.0ms256×0valid
Compiler

Compiled 66 to 16 computations (75.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-hypot: 4.0ms (34.3% of total)
ival-log: 3.0ms (25.7% of total)
ival-mult: 3.0ms (25.7% of total)
ival-add: 1.0ms (8.6% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series9.0ms (0.1%)

Memory
21.8MiB live, 21.8MiB allocated
Counts
5 → 51
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (*.f64 re re) (*.f64 im im))
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 re re)
(*.f64 im im)
Outputs
im
(+ im (* 1/2 (/ (pow re 2) im)))
(+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))
(+ im (* (pow re 2) (+ (* (pow re 2) (- (* 1/16 (/ (pow re 2) (pow im 5))) (* 1/8 (/ 1 (pow im 3))))) (* 1/2 (/ 1 im)))))
(pow im 2)
(+ (pow im 2) (pow re 2))
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(pow re 2)
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* (pow re 2) (+ 1 (/ (pow im 2) (pow re 2))))
(* -1 (log (/ 1 re)))
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(+ re (* 1/2 (/ (pow im 2) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
(* -1 (log (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
Calls

6 calls:

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

simplify508.0ms (4.2%)

Memory
2.8MiB live, 159.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0186921
1557915
21983905
37803905
08060830
Stop Event
iter limit
node limit
Counts
51 → 49
Calls
Call 1
Inputs
im
(+ im (* 1/2 (/ (pow re 2) im)))
(+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))
(+ im (* (pow re 2) (+ (* (pow re 2) (- (* 1/16 (/ (pow re 2) (pow im 5))) (* 1/8 (/ 1 (pow im 3))))) (* 1/2 (/ 1 im)))))
(pow im 2)
(+ (pow im 2) (pow re 2))
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(pow re 2)
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* (pow re 2) (+ 1 (/ (pow im 2) (pow re 2))))
(* -1 (log (/ 1 re)))
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(+ re (* 1/2 (/ (pow im 2) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
(* -1 (log (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
Outputs
im
(+ im (* 1/2 (/ (pow re 2) im)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))
(fma.f64 (/.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) re) (/.f64 (/.f64 re im) 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 #s(literal 1/16 binary64) re) (/.f64 re (pow.f64 im #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 3 binary64)))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
(pow im 2)
(*.f64 im im)
(+ (pow im 2) (pow re 2))
(fma.f64 im im (*.f64 re re))
(log im)
(log.f64 im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) (log.f64 im))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 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)))
(+ (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 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (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)))) (log.f64 im)))
(pow re 2)
(*.f64 re re)
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(*.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) #s(literal 1 binary64)) re)
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) #s(literal 1 binary64))) re)
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) #s(literal 1 binary64)))) re)
(* (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)))
(*.f64 (log.f64 re) #s(literal 1 binary64))
(+ (* -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) (*.f64 (log.f64 re) #s(literal 1 binary64)))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (log.f64 re) #s(literal 1 binary64) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (*.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))))))
(+ (* -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 re) #s(literal 1 binary64) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (/.f64 (*.f64 (pow.f64 im #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 re #s(literal 6 binary64))))))
(* -1 re)
(*.f64 #s(literal -1 binary64) re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (*.f64 #s(literal -1 binary64) re) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) #s(literal 1 binary64)))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(*.f64 (*.f64 #s(literal -1 binary64) re) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) #s(literal 1 binary64))))
(* -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 #s(literal -1 binary64) re) (fma.f64 (pow.f64 im #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) #s(literal 1 binary64)))))
(* -1 (log (/ -1 re)))
(*.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -1 binary64))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -1 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im 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 (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) im) im (/.f64 (/.f64 #s(literal 1/2 binary64) re) re)) (*.f64 im im) (*.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -1 binary64)))
(+ (* -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 (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))))))
(+ 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) im) (/.f64 (/.f64 im re) 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 #s(literal 1/16 binary64) im) (/.f64 im (pow.f64 re #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 3 binary64)))) (*.f64 im im) (/.f64 #s(literal 1/2 binary64) re)) (*.f64 im im) re)
(log re)
(log.f64 re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.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 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (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)))) (pow.f64 im #s(literal 4 binary64)) (log.f64 re)))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(*.f64 (fma.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re) #s(literal 1 binary64)) im)
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re) #s(literal 1 binary64))) im)
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 im #s(literal 6 binary64))) (fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re) #s(literal 1 binary64)))) im)
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(*.f64 (*.f64 (fma.f64 (/.f64 (/.f64 re im) im) re #s(literal 1 binary64)) im) im)
(* -1 (log (/ 1 im)))
(*.f64 (log.f64 im) #s(literal 1 binary64))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) (*.f64 (log.f64 im) #s(literal 1 binary64)))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/4 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) (*.f64 (log.f64 im) #s(literal 1 binary64))))
(+ (* -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 (log.f64 im) #s(literal 1 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) (/.f64 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))))))
(* -1 im)
(*.f64 #s(literal -1 binary64) im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(*.f64 (*.f64 (fma.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re) #s(literal 1 binary64)) im) #s(literal -1 binary64))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(*.f64 (*.f64 #s(literal -1 binary64) im) (fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re) #s(literal 1 binary64))))
(* -1 (* 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 #s(literal -1 binary64) im) (fma.f64 (pow.f64 re #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 im #s(literal 6 binary64))) (fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) im) (*.f64 re re) #s(literal 1 binary64)))))
(* -1 (log (/ -1 im)))
(*.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64) (*.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64)))
(+ (* -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 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64) (*.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64))))
(+ (* -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 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 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) (/.f64 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))))))

rewrite134.0ms (1.1%)

Memory
-26.4MiB live, 128.5MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0730
01230
14130
234830
3591430
0927119
Stop Event
iter limit
node limit
iter limit
Counts
5 → 146
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (*.f64 re re) (*.f64 im im))
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 re re)
(*.f64 im im)
Outputs
(*.f64 (neg.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) (neg.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(*.f64 (fabs.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) (fabs.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(*.f64 (sqrt.f64 (+.f64 im re)) (sqrt.f64 (-.f64 re im)))
(*.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)) (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))
(pow.f64 (neg.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) #s(literal 2 binary64))
(pow.f64 (fabs.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) #s(literal 2 binary64))
(pow.f64 (exp.f64 (log.f64 (fma.f64 re re (*.f64 im im)))) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/2 binary64))
(pow.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal 1/4 binary64))
(/.f64 (neg.f64 (pow.f64 (hypot.f64 im re) #s(literal 2 binary64))) (neg.f64 (hypot.f64 im re)))
(/.f64 (neg.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64)))) (neg.f64 (hypot.f64 (fma.f64 re re (*.f64 im im)) (*.f64 im re))))
(/.f64 (pow.f64 (hypot.f64 im re) #s(literal 2 binary64)) (hypot.f64 im re))
(/.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64))) (hypot.f64 (fma.f64 re re (*.f64 im im)) (*.f64 im re)))
(sqrt.f64 (exp.f64 (log.f64 (fma.f64 re re (*.f64 im im)))))
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
(hypot.f64 (exp.f64 (log.f64 re)) (exp.f64 (log.f64 im)))
(hypot.f64 (exp.f64 (log.f64 re)) im)
(hypot.f64 (exp.f64 (log.f64 im)) (exp.f64 (log.f64 re)))
(hypot.f64 (exp.f64 (log.f64 im)) re)
(hypot.f64 im (exp.f64 (log.f64 re)))
(hypot.f64 im re)
(hypot.f64 re (exp.f64 (log.f64 im)))
(hypot.f64 re im)
(exp.f64 (fma.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/4 binary64) (*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/4 binary64))))
(exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/4 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (exp.f64 (log.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 1/2 binary64)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) #s(literal 1/4 binary64)))
(exp.f64 (log.f64 (hypot.f64 im re)))
(+.f64 (cosh.f64 (log.f64 (hypot.f64 im re))) (sinh.f64 (log.f64 (hypot.f64 im re))))
(*.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))
(*.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) (fma.f64 re re (*.f64 im im)))
(*.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 im re) #s(literal 4 binary64))))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))
(*.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 3 binary64)) (pow.f64 re #s(literal 12 binary64)))) (fma.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64))))
(*.f64 (-.f64 re im) (+.f64 im re))
(*.f64 (+.f64 im re) (neg.f64 (-.f64 re im)))
(*.f64 (+.f64 im re) (-.f64 im re))
(*.f64 (+.f64 im re) (-.f64 re im))
(*.f64 (fma.f64 re re (*.f64 im im)) (/.f64 (fma.f64 re re (*.f64 im im)) (fma.f64 re re (*.f64 im im))))
(*.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (/.f64 (fma.f64 re re (*.f64 im im)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(/.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (+.f64 im re)) (-.f64 re im))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64))) (fma.f64 re re (*.f64 im im)))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64))) (fma.f64 re re (*.f64 im im)))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64)) (+.f64 (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64)) (*.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im)))))))
(/.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64)) (*.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))))))
(/.f64 (-.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) (*.f64 (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))))
(/.f64 (fma.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (*.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (pow.f64 im #s(literal 6 binary64)))) (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 im re) #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 re #s(literal 8 binary64)) (pow.f64 im #s(literal 8 binary64))) (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 3 binary64)))
(/.f64 (-.f64 (pow.f64 re #s(literal 12 binary64)) (pow.f64 im #s(literal 12 binary64))) (*.f64 (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 im re) #s(literal 4 binary64)))) (fma.f64 re re (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re #s(literal 12 binary64)) (pow.f64 im #s(literal 12 binary64))) (*.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(/.f64 (+.f64 (pow.f64 im #s(literal 18 binary64)) (pow.f64 re #s(literal 18 binary64))) (*.f64 (-.f64 (-.f64 (pow.f64 re #s(literal 12 binary64)) (pow.f64 im #s(literal 12 binary64))) (pow.f64 (*.f64 im re) #s(literal 6 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (fma.f64 re re (*.f64 im im)))
(/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))
(neg.f64 (fma.f64 re re (*.f64 im im)))
(fma.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 im re) #s(literal 4 binary64))))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 3 binary64)) (pow.f64 re #s(literal 12 binary64)))) (fma.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) (fma.f64 re re (*.f64 im im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 im re) #s(literal 4 binary64))))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 3 binary64)) (pow.f64 re #s(literal 12 binary64)))) (fma.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 3 binary64)) (+.f64 im re)) (/.f64 re (-.f64 re im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (/.f64 (*.f64 re re) (+.f64 im re)) (/.f64 (*.f64 re re) (-.f64 re im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (/.f64 re (+.f64 im re)) (/.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 re im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (exp.f64 (log.f64 re)) (exp.f64 (log.f64 re)) (*.f64 im im))
(fma.f64 (exp.f64 (log.f64 im)) (exp.f64 (log.f64 im)) (*.f64 re re))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 re (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (*.f64 re re) (/.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (*.f64 re re) (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 (*.f64 im im) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 (*.f64 re re) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 im im (*.f64 re re))
(fma.f64 re (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 re re (*.f64 im im))
(fma.f64 (*.f64 im im) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(-.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(-.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(-.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(-.f64 (*.f64 re re) (*.f64 im im))
(-.f64 (*.f64 im im) (*.f64 re re))
(+.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(+.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(+.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
(*.f64 #s(literal 1/4 binary64) (log.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))))
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64))
(*.f64 #s(literal 2 binary64) (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(*.f64 #s(literal 1/2 binary64) (log.f64 (exp.f64 (log.f64 (fma.f64 re re (*.f64 im im))))))
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 re re (*.f64 im im))))
(fma.f64 #s(literal 1/4 binary64) (log.f64 (fma.f64 re re (*.f64 im im))) (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(-.f64 (log.f64 (neg.f64 (pow.f64 (hypot.f64 im re) #s(literal 2 binary64)))) (log.f64 (neg.f64 (hypot.f64 im re))))
(-.f64 (log.f64 (neg.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64))))) (log.f64 (neg.f64 (hypot.f64 (fma.f64 re re (*.f64 im im)) (*.f64 im re)))))
(-.f64 (log.f64 (pow.f64 (hypot.f64 im re) #s(literal 2 binary64))) (log.f64 (hypot.f64 im re)))
(-.f64 (log.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64)))) (log.f64 (hypot.f64 (fma.f64 re re (*.f64 im im)) (*.f64 im re))))
(+.f64 (log.f64 (neg.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))) (log.f64 (neg.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))))
(+.f64 (log.f64 (fabs.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))) (log.f64 (fabs.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 im re))) (log.f64 (sqrt.f64 (-.f64 re im))))
(+.f64 (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(log.f64 (hypot.f64 im re))
(*.f64 (exp.f64 (log.f64 re)) (exp.f64 (log.f64 re)))
(*.f64 re re)
(pow.f64 (exp.f64 (log.f64 re)) #s(literal 2 binary64))
(pow.f64 (*.f64 re re) #s(literal 1 binary64))
(pow.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal 1/2 binary64))
(pow.f64 re #s(literal 2 binary64))
(neg.f64 (*.f64 re re))
(sqrt.f64 (pow.f64 re #s(literal 4 binary64)))
(fabs.f64 (*.f64 re re))
(exp.f64 (+.f64 (/.f64 (*.f64 (log.f64 re) #s(literal 2 binary64)) #s(literal 2 binary64)) (/.f64 (*.f64 (log.f64 re) #s(literal 2 binary64)) #s(literal 2 binary64))))
(exp.f64 (+.f64 (/.f64 (*.f64 (log.f64 re) #s(literal 2 binary64)) #s(literal 2 binary64)) (*.f64 (log.f64 re) #s(literal 1 binary64))))
(exp.f64 (fma.f64 (log.f64 re) #s(literal 1 binary64) (/.f64 (*.f64 (log.f64 re) #s(literal 2 binary64)) #s(literal 2 binary64))))
(exp.f64 (fma.f64 (log.f64 re) #s(literal 1 binary64) (*.f64 (log.f64 re) #s(literal 1 binary64))))
(exp.f64 (/.f64 (*.f64 #s(literal 4 binary64) (log.f64 re)) #s(literal 2 binary64)))
(exp.f64 (/.f64 (*.f64 (*.f64 (log.f64 re) #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 2 binary64)))
(exp.f64 (/.f64 (*.f64 (log.f64 re) #s(literal 4 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (/.f64 (*.f64 (log.f64 re) #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (*.f64 (log.f64 re) #s(literal 1 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (exp.f64 (log.f64 re))) #s(literal 2 binary64)))
(exp.f64 (*.f64 (*.f64 (log.f64 re) #s(literal 2 binary64)) #s(literal 1 binary64)))
(exp.f64 (*.f64 (log.f64 re) #s(literal 2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 re) #s(literal 2 binary64))) (sinh.f64 (*.f64 (log.f64 re) #s(literal 2 binary64))))
(*.f64 (exp.f64 (log.f64 im)) (exp.f64 (log.f64 im)))
(*.f64 im im)
(pow.f64 (exp.f64 (log.f64 im)) #s(literal 2 binary64))
(pow.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/2 binary64))
(pow.f64 im #s(literal 2 binary64))
(pow.f64 (*.f64 im im) #s(literal 1 binary64))
(neg.f64 (*.f64 im im))
(sqrt.f64 (pow.f64 im #s(literal 4 binary64)))
(fabs.f64 (*.f64 im im))
(exp.f64 (+.f64 (/.f64 (*.f64 (log.f64 im) #s(literal 2 binary64)) #s(literal 2 binary64)) (/.f64 (*.f64 (log.f64 im) #s(literal 2 binary64)) #s(literal 2 binary64))))
(exp.f64 (+.f64 (/.f64 (*.f64 (log.f64 im) #s(literal 2 binary64)) #s(literal 2 binary64)) (*.f64 (log.f64 im) #s(literal 1 binary64))))
(exp.f64 (fma.f64 (log.f64 im) #s(literal 1 binary64) (/.f64 (*.f64 (log.f64 im) #s(literal 2 binary64)) #s(literal 2 binary64))))
(exp.f64 (fma.f64 (log.f64 im) #s(literal 1 binary64) (*.f64 (log.f64 im) #s(literal 1 binary64))))
(exp.f64 (/.f64 (*.f64 #s(literal 4 binary64) (log.f64 im)) #s(literal 2 binary64)))
(exp.f64 (/.f64 (*.f64 (*.f64 (log.f64 im) #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 2 binary64)))
(exp.f64 (/.f64 (*.f64 (log.f64 im) #s(literal 4 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (/.f64 (*.f64 (log.f64 im) #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (*.f64 (log.f64 im) #s(literal 1 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (exp.f64 (log.f64 im))) #s(literal 2 binary64)))
(exp.f64 (*.f64 (*.f64 (log.f64 im) #s(literal 2 binary64)) #s(literal 1 binary64)))
(exp.f64 (*.f64 (log.f64 im) #s(literal 2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 im) #s(literal 2 binary64))) (sinh.f64 (*.f64 (log.f64 im) #s(literal 2 binary64))))

eval50.0ms (0.4%)

Memory
3.6MiB live, 38.7MiB allocated
Compiler

Compiled 4 171 to 801 computations (80.8% saved)

prune4.0ms (0%)

Memory
11.8MiB live, 11.8MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 25 to 20 computations (20% saved)

simplify2.1s (17.5%)

Memory
-6.6MiB live, 898.1MiB allocated
Algorithm
egg-herbie
Localize:

Found 8 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01647
02347
13547
27447
312947
420247
529847
641047
753847
868247
984247
10101847
11121047
12141847
13164247
14188247
15213847
16241047
17243547
18246047
19248547
20251047
21253547
22284347
23314547
24346747
25380147
26414747
27428347
28433147
29436747
30441547
31447547
32454747
0801947
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(log.f64 im)
im
(log.f64 (hypot.f64 re im))
(hypot.f64 re im)
re
im
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64))
(log.f64 (fma.f64 re re (*.f64 im im)))
(fma.f64 re re (*.f64 im im))
re
(*.f64 im im)
im
#s(literal 1/2 binary64)
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(log.f64 im)
im
(log.f64 (hypot.f64 re im))
(log.f64 (hypot.f64 im re))
(hypot.f64 re im)
(hypot.f64 im re)
re
im
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 im im (*.f64 re re))))
(log.f64 (fma.f64 re re (*.f64 im im)))
(log.f64 (fma.f64 im im (*.f64 re re)))
(fma.f64 re re (*.f64 im im))
(fma.f64 im im (*.f64 re re))
re
(*.f64 im im)
im
#s(literal 1/2 binary64)

localize57.0ms (0.5%)

Memory
-1.3MiB live, 44.1MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(fma.f64 re re (*.f64 im im))
accuracy0.0
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64))
accuracy0.0
(*.f64 im im)
accuracy32.052244703212914
(log.f64 (fma.f64 re re (*.f64 im im)))
accuracy0.0
(hypot.f64 re im)
accuracy0.00390625
(log.f64 (hypot.f64 re im))
accuracy0.0
(log.f64 im)
accuracy0.3733694542063338
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
Samples
28.0ms256×0valid
Compiler

Compiled 116 to 29 computations (75% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
ival-log: 8.0ms (42.8% of total)
ival-mult: 5.0ms (26.8% of total)
ival-hypot: 4.0ms (21.4% of total)
ival-add: 1.0ms (5.4% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series112.0ms (0.9%)

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

6 calls:

TimeVariablePointExpression
49.0ms
im
@0
((log (sqrt (+ (* re re) (* im im)))) (log im) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (* (log (+ (* re re) (* im im))) 1/2) (log (+ (* re re) (* im im))) (+ (* re re) (* im im)) (* im im))
40.0ms
im
@-inf
((log (sqrt (+ (* re re) (* im im)))) (log im) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (* (log (+ (* re re) (* im im))) 1/2) (log (+ (* re re) (* im im))) (+ (* re re) (* im im)) (* im im))
17.0ms
im
@inf
((log (sqrt (+ (* re re) (* im im)))) (log im) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (* (log (+ (* re re) (* im im))) 1/2) (log (+ (* re re) (* im im))) (+ (* re re) (* im im)) (* im im))
2.0ms
re
@0
((log (sqrt (+ (* re re) (* im im)))) (log im) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (* (log (+ (* re re) (* im im))) 1/2) (log (+ (* re re) (* im im))) (+ (* re re) (* im im)) (* im im))
1.0ms
re
@inf
((log (sqrt (+ (* re re) (* im im)))) (log im) (log (sqrt (+ (* re re) (* im im)))) (sqrt (+ (* re re) (* im im))) (* (log (+ (* re re) (* im im))) 1/2) (log (+ (* re re) (* im im))) (+ (* re re) (* im im)) (* im im))

simplify203.0ms (1.7%)

Memory
1.4MiB live, 316.2MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

rewrite163.0ms (1.3%)

Memory
-10.1MiB live, 123.3MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01641
02336
15236
236136
3601536
0945836
Stop Event
iter limit
node limit
iter limit
Counts
8 → 178
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(log.f64 im)
(log.f64 (hypot.f64 re im))
(hypot.f64 re im)
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64))
(log.f64 (fma.f64 re re (*.f64 im im)))
(fma.f64 re re (*.f64 im im))
(*.f64 im im)
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(*.f64 #s(literal 1 binary64) (log.f64 im))
(*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 2 binary64) (log.f64 im)))
(+.f64 (log.f64 (sqrt.f64 im)) (log.f64 (sqrt.f64 im)))
(log.f64 im)
(*.f64 #s(literal 1/4 binary64) (log.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))))
(*.f64 #s(literal 2 binary64) (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(*.f64 #s(literal 1/2 binary64) (log.f64 (exp.f64 (log.f64 (fma.f64 re re (*.f64 im im))))))
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 re re (*.f64 im im))))
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) (log.f64 (exp.f64 #s(literal 1/2 binary64))))
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/4 binary64) (log.f64 (fma.f64 re re (*.f64 im im))) (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(-.f64 (log.f64 (neg.f64 (pow.f64 (hypot.f64 re im) #s(literal 2 binary64)))) (log.f64 (neg.f64 (hypot.f64 re im))))
(-.f64 (log.f64 (neg.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64))))) (log.f64 (neg.f64 (hypot.f64 (fma.f64 re re (*.f64 im im)) (*.f64 re im)))))
(-.f64 (log.f64 (pow.f64 (hypot.f64 re im) #s(literal 2 binary64))) (log.f64 (hypot.f64 re im)))
(-.f64 (log.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64)))) (log.f64 (hypot.f64 (fma.f64 re re (*.f64 im im)) (*.f64 re im))))
(+.f64 (log.f64 (neg.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))) (log.f64 (neg.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))))
(+.f64 (log.f64 (fabs.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))) (log.f64 (fabs.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 re im))) (log.f64 (sqrt.f64 (-.f64 re im))))
(+.f64 (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(log.f64 (hypot.f64 re im))
(*.f64 (pow.f64 (exp.f64 #s(literal 1/2 binary64)) (log.f64 (+.f64 re im))) (pow.f64 (exp.f64 #s(literal 1/2 binary64)) (log.f64 (-.f64 re im))))
(*.f64 (neg.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) (neg.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(*.f64 (fabs.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) (fabs.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(*.f64 (sqrt.f64 (+.f64 re im)) (sqrt.f64 (-.f64 re im)))
(*.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)) (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))
(pow.f64 (neg.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) #s(literal 2 binary64))
(pow.f64 (fabs.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) #s(literal 2 binary64))
(pow.f64 (exp.f64 #s(literal 1/2 binary64)) (log.f64 (fma.f64 re re (*.f64 im im))))
(pow.f64 (exp.f64 (log.f64 (fma.f64 re re (*.f64 im im)))) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/2 binary64))
(pow.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) #s(literal 1/4 binary64))
(/.f64 (pow.f64 (exp.f64 #s(literal 1/2 binary64)) (log.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))))) (pow.f64 (exp.f64 #s(literal 1/2 binary64)) (log.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))))
(/.f64 (neg.f64 (pow.f64 (hypot.f64 re im) #s(literal 2 binary64))) (neg.f64 (hypot.f64 re im)))
(/.f64 (neg.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64)))) (neg.f64 (hypot.f64 (fma.f64 re re (*.f64 im im)) (*.f64 re im))))
(/.f64 (pow.f64 (hypot.f64 re im) #s(literal 2 binary64)) (hypot.f64 re im))
(/.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64))) (hypot.f64 (fma.f64 re re (*.f64 im im)) (*.f64 re im)))
(sqrt.f64 (exp.f64 (log.f64 (fma.f64 re re (*.f64 im im)))))
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
(hypot.f64 (exp.f64 (log.f64 im)) (exp.f64 (log.f64 re)))
(hypot.f64 (exp.f64 (log.f64 im)) re)
(hypot.f64 (exp.f64 (log.f64 re)) (exp.f64 (log.f64 im)))
(hypot.f64 (exp.f64 (log.f64 re)) im)
(hypot.f64 re (exp.f64 (log.f64 im)))
(hypot.f64 re im)
(hypot.f64 im (exp.f64 (log.f64 re)))
(hypot.f64 im re)
(exp.f64 (fma.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/4 binary64) (*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/4 binary64))))
(exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/4 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (exp.f64 #s(literal 1/2 binary64))) (log.f64 (fma.f64 re re (*.f64 im im)))))
(exp.f64 (*.f64 (log.f64 (exp.f64 (log.f64 (fma.f64 re re (*.f64 im im))))) #s(literal 1/2 binary64)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) #s(literal 1/4 binary64)))
(exp.f64 (log.f64 (hypot.f64 re im)))
(+.f64 (cosh.f64 (log.f64 (hypot.f64 re im))) (sinh.f64 (log.f64 (hypot.f64 re im))))
(*.f64 #s(literal 1/4 binary64) (log.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))))
(*.f64 #s(literal 2 binary64) (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(*.f64 #s(literal 1/2 binary64) (log.f64 (exp.f64 (log.f64 (fma.f64 re re (*.f64 im im))))))
(*.f64 #s(literal 1/2 binary64) (log.f64 (fma.f64 re re (*.f64 im im))))
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) (log.f64 (exp.f64 #s(literal 1/2 binary64))))
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/4 binary64) (log.f64 (fma.f64 re re (*.f64 im im))) (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(-.f64 (log.f64 (neg.f64 (pow.f64 (hypot.f64 re im) #s(literal 2 binary64)))) (log.f64 (neg.f64 (hypot.f64 re im))))
(-.f64 (log.f64 (neg.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64))))) (log.f64 (neg.f64 (hypot.f64 (fma.f64 re re (*.f64 im im)) (*.f64 re im)))))
(-.f64 (log.f64 (pow.f64 (hypot.f64 re im) #s(literal 2 binary64))) (log.f64 (hypot.f64 re im)))
(-.f64 (log.f64 (hypot.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 re #s(literal 3 binary64)))) (log.f64 (hypot.f64 (fma.f64 re re (*.f64 im im)) (*.f64 re im))))
(+.f64 (log.f64 (neg.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))) (log.f64 (neg.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))))
(+.f64 (log.f64 (fabs.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))) (log.f64 (fabs.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64)))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 re im))) (log.f64 (sqrt.f64 (-.f64 re im))))
(+.f64 (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))) (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 1/4 binary64))))
(log.f64 (hypot.f64 re im))
(/.f64 (-.f64 (pow.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) #s(literal 2 binary64)) (pow.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64))) (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 3 binary64))))
(/.f64 (-.f64 (pow.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) #s(literal 2 binary64)) (pow.f64 (log.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64))) (log.f64 (*.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))))
(/.f64 (-.f64 (pow.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) #s(literal 3 binary64)) (pow.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 3 binary64))) (+.f64 (pow.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) #s(literal 2 binary64)) (+.f64 (pow.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64)) (*.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) (log.f64 (fma.f64 re re (*.f64 im im)))))))
(/.f64 (-.f64 (pow.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) #s(literal 3 binary64)) (pow.f64 (log.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 3 binary64))) (+.f64 (pow.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) #s(literal 2 binary64)) (+.f64 (pow.f64 (log.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64)) (*.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (log.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))))))
(-.f64 (log.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (+.f64 re im))) (log.f64 (-.f64 re im)))
(-.f64 (log.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64)))) (log.f64 (fma.f64 re re (*.f64 im im))))
(-.f64 (log.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64)))) (log.f64 (fma.f64 re re (*.f64 im im))))
(-.f64 (log.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 3 binary64)))) (log.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64)) (+.f64 (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64)) (*.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))))))
(-.f64 (log.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 3 binary64)))) (log.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64)) (*.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))))))
(-.f64 (log.f64 (-.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) (*.f64 (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))) (log.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))))
(-.f64 (log.f64 (fma.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (*.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (pow.f64 im #s(literal 6 binary64))))) (log.f64 (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 re im) #s(literal 4 binary64))))))
(-.f64 (log.f64 (-.f64 (pow.f64 re #s(literal 8 binary64)) (pow.f64 im #s(literal 8 binary64)))) (log.f64 (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 3 binary64))))
(-.f64 (log.f64 (-.f64 (pow.f64 re #s(literal 12 binary64)) (pow.f64 im #s(literal 12 binary64)))) (log.f64 (*.f64 (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 re im) #s(literal 4 binary64)))) (fma.f64 re re (*.f64 im im)))))
(-.f64 (log.f64 (-.f64 (pow.f64 re #s(literal 12 binary64)) (pow.f64 im #s(literal 12 binary64)))) (log.f64 (*.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))))
(-.f64 (log.f64 (+.f64 (pow.f64 im #s(literal 18 binary64)) (pow.f64 re #s(literal 18 binary64)))) (log.f64 (*.f64 (-.f64 (-.f64 (pow.f64 re #s(literal 12 binary64)) (pow.f64 im #s(literal 12 binary64))) (pow.f64 (*.f64 re im) #s(literal 6 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))))
(-.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) (log.f64 (fma.f64 re re (*.f64 im im))))
(-.f64 (log.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (log.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(+.f64 (log.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 re im) #s(literal 4 binary64)))))) (log.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(+.f64 (log.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 3 binary64)) (pow.f64 re #s(literal 12 binary64))))) (log.f64 (fma.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 re im) #s(literal 2 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64)))))
(+.f64 (log.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))))) (log.f64 (fma.f64 re re (*.f64 im im))))
(+.f64 (log.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))))) (log.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(+.f64 (log.f64 (-.f64 re im)) (log.f64 (+.f64 re im)))
(+.f64 (log.f64 (+.f64 re im)) (log.f64 (-.f64 im re)))
(+.f64 (log.f64 (+.f64 re im)) (log.f64 (neg.f64 (-.f64 re im))))
(+.f64 (log.f64 (+.f64 re im)) (log.f64 (-.f64 re im)))
(+.f64 (log.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (log.f64 (/.f64 (fma.f64 re re (*.f64 im im)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))))
(+.f64 (log.f64 (fma.f64 re re (*.f64 im im))) (log.f64 (/.f64 (fma.f64 re re (*.f64 im im)) (fma.f64 re re (*.f64 im im)))))
(log.f64 (fma.f64 re re (*.f64 im im)))
(*.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 re im) #s(literal 4 binary64))))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))
(*.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 3 binary64)) (pow.f64 re #s(literal 12 binary64)))) (fma.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 re im) #s(literal 2 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64))))
(*.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) (fma.f64 re re (*.f64 im im)))
(*.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))
(*.f64 (-.f64 re im) (+.f64 re im))
(*.f64 (+.f64 re im) (neg.f64 (-.f64 re im)))
(*.f64 (+.f64 re im) (-.f64 im re))
(*.f64 (+.f64 re im) (-.f64 re im))
(*.f64 (fma.f64 re re (*.f64 im im)) (/.f64 (fma.f64 re re (*.f64 im im)) (fma.f64 re re (*.f64 im im))))
(*.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (/.f64 (fma.f64 re re (*.f64 im im)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(/.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (+.f64 re im)) (-.f64 re im))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64))) (fma.f64 re re (*.f64 im im)))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64))) (fma.f64 re re (*.f64 im im)))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64)) (+.f64 (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) #s(literal 2 binary64)) (*.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im)))))))
(/.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) #s(literal 2 binary64)) (*.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))))))
(/.f64 (-.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) (*.f64 (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))))
(/.f64 (fma.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (*.f64 (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (pow.f64 im #s(literal 6 binary64)))) (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 re im) #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 re #s(literal 8 binary64)) (pow.f64 im #s(literal 8 binary64))) (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 3 binary64)))
(/.f64 (-.f64 (pow.f64 re #s(literal 12 binary64)) (pow.f64 im #s(literal 12 binary64))) (*.f64 (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 re im) #s(literal 4 binary64)))) (fma.f64 re re (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re #s(literal 12 binary64)) (pow.f64 im #s(literal 12 binary64))) (*.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(/.f64 (+.f64 (pow.f64 im #s(literal 18 binary64)) (pow.f64 re #s(literal 18 binary64))) (*.f64 (-.f64 (-.f64 (pow.f64 re #s(literal 12 binary64)) (pow.f64 im #s(literal 12 binary64))) (pow.f64 (*.f64 re im) #s(literal 6 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (fma.f64 re re (*.f64 im im)))
(/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))))
(neg.f64 (fma.f64 re re (*.f64 im im)))
(fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 re im) #s(literal 4 binary64))))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 3 binary64)) (pow.f64 re #s(literal 12 binary64)))) (fma.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 re im) #s(literal 2 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (-.f64 (pow.f64 re #s(literal 8 binary64)) (-.f64 (pow.f64 im #s(literal 8 binary64)) (pow.f64 (*.f64 re im) #s(literal 4 binary64))))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 (fma.f64 re re (*.f64 im im)) #s(literal 3 binary64)) (pow.f64 re #s(literal 12 binary64)))) (fma.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 re im) #s(literal 2 binary64))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64)))) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64)))) (fma.f64 re re (*.f64 im im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 3 binary64)) (+.f64 re im)) (/.f64 re (-.f64 re im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (/.f64 (*.f64 re re) (+.f64 re im)) (/.f64 (*.f64 re re) (-.f64 re im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (/.f64 re (+.f64 re im)) (/.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 re im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (exp.f64 (log.f64 im)) (exp.f64 (log.f64 im)) (*.f64 re re))
(fma.f64 (exp.f64 (log.f64 re)) (exp.f64 (log.f64 re)) (*.f64 im im))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 re (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (*.f64 re re) (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (*.f64 re re) (/.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 (*.f64 im im) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 (*.f64 re re) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 re (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(fma.f64 re re (*.f64 im im))
(fma.f64 (*.f64 im im) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(fma.f64 im im (*.f64 re re))
(-.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(-.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(-.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(-.f64 (*.f64 re re) (*.f64 im im))
(-.f64 (*.f64 im im) (*.f64 re re))
(+.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(+.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (*.f64 re re) (fma.f64 re re (*.f64 im im)) (pow.f64 im #s(literal 4 binary64)))))
(+.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 re re (*.f64 im im))))
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
(*.f64 (exp.f64 (log.f64 im)) (exp.f64 (log.f64 im)))
(*.f64 im im)
(pow.f64 (exp.f64 (log.f64 im)) #s(literal 2 binary64))
(pow.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal 1/2 binary64))
(pow.f64 (*.f64 im im) #s(literal 1 binary64))
(pow.f64 im #s(literal 2 binary64))
(neg.f64 (*.f64 im im))
(sqrt.f64 (pow.f64 im #s(literal 4 binary64)))
(fabs.f64 (*.f64 im im))
(exp.f64 (+.f64 (/.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)) #s(literal 2 binary64)) (/.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)) #s(literal 2 binary64))))
(exp.f64 (+.f64 (/.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)) #s(literal 2 binary64)) (*.f64 (log.f64 im) #s(literal 1 binary64))))
(exp.f64 (fma.f64 (log.f64 im) #s(literal 1 binary64) (/.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)) #s(literal 2 binary64))))
(exp.f64 (fma.f64 (log.f64 im) #s(literal 1 binary64) (*.f64 (log.f64 im) #s(literal 1 binary64))))
(exp.f64 (/.f64 (*.f64 #s(literal 4 binary64) (log.f64 im)) #s(literal 2 binary64)))
(exp.f64 (/.f64 (*.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)) #s(literal 2 binary64)) #s(literal 2 binary64)))
(exp.f64 (/.f64 (*.f64 (log.f64 im) #s(literal 4 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)) #s(literal 2 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (*.f64 (log.f64 im) #s(literal 1 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (exp.f64 (log.f64 im))) #s(literal 2 binary64)))
(exp.f64 (*.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)) #s(literal 1 binary64)))
(exp.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)))
(+.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) (log.f64 im))) (sinh.f64 (*.f64 #s(literal 2 binary64) (log.f64 im))))

eval29.0ms (0.2%)

Memory
33.2MiB live, 67.1MiB allocated
Compiler

Compiled 6 228 to 956 computations (84.6% saved)

prune29.0ms (0.2%)

Memory
-36.4MiB live, 14.9MiB allocated
Pruning

4 alts after pruning (1 fresh and 3 done)

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

Compiled 46 to 33 computations (28.3% saved)

simplify186.0ms (1.5%)

Memory
7.7MiB live, 232.7MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01345
01845
13845
210545
322945
459645
5256845
6496445
7697245
8770345
0816840
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im))
(*.f64 #s(literal 1/2 binary64) (/.f64 re im))
#s(literal 1/2 binary64)
(/.f64 re im)
re
im
(log.f64 im)
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re) (log.f64 im)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re) (log.f64 im))
(*.f64 #s(literal 1/2 binary64) (/.f64 re im))
(*.f64 (/.f64 re im) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(/.f64 re im)
re
im
(log.f64 im)

localize50.0ms (0.4%)

Memory
18.5MiB live, 55.7MiB allocated
Localize:

Found 4 expressions of interest:

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

Compiled 81 to 25 computations (69.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-log: 6.0ms (36% of total)
ival-hypot: 4.0ms (24% of total)
ival-mult: 3.0ms (18% of total)
ival-div: 2.0ms (12% of total)
ival-add: 1.0ms (6% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series70.0ms (0.6%)

Memory
-10.1MiB live, 68.3MiB allocated
Counts
5 → 31
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im))
(*.f64 #s(literal 1/2 binary64) (/.f64 re im))
(/.f64 re im)
(log.f64 im)
Outputs
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(* 1/2 (/ re im))
(/ re 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))))))
(* 1/2 (/ (pow re 2) (pow im 2)))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(/ (+ (* 1/2 (pow re 2)) (* (pow im 2) (log im))) (pow im 2))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (log (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(+ (log -1) (* -1 (log (/ -1 im))))
(+ (log -1) (+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2)))))
Calls

6 calls:

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

simplify239.0ms (2%)

Memory
19.0MiB live, 248.2MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0116549
1316543
21039533
34585533
08504493
Stop Event
iter limit
node limit
Counts
31 → 31
Calls
Call 1
Inputs
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(* 1/2 (/ re im))
(/ re 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))))))
(* 1/2 (/ (pow re 2) (pow im 2)))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(/ (+ (* 1/2 (pow re 2)) (* (pow im 2) (log im))) (pow im 2))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (log (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(+ (log -1) (* -1 (log (/ -1 im))))
(+ (log -1) (+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2)))))
Outputs
(log im)
(log.f64 im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re (log.f64 im))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) re) re (/.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 (fma.f64 (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)))) (*.f64 re re) (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (*.f64 re re) (log.f64 im))
(* 1/2 (/ re im))
(*.f64 (/.f64 re im) #s(literal 1/2 binary64))
(/ re im)
(/.f64 re im)
(* -1 (log (/ 1 re)))
(*.f64 (log.f64 re) #s(literal 1 binary64))
(+ (* -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) (*.f64 (log.f64 re) #s(literal 1 binary64)))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (log.f64 re) #s(literal 1 binary64) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (*.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))))))
(+ (* -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 re) #s(literal 1 binary64) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (/.f64 (*.f64 (pow.f64 im #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 re #s(literal 6 binary64))))))
(* 1/2 (/ (pow re 2) (pow im 2)))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(*.f64 (-.f64 (/.f64 (/.f64 (log.f64 im) re) re) (/.f64 #s(literal -1/2 binary64) (*.f64 im im))) (*.f64 re re))
(* -1 (log (/ -1 re)))
(*.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -1 binary64))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -1 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im 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 (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) im) im (/.f64 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 im im) (*.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -1 binary64)))
(+ (* -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)) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/6 binary64) (fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) im) im (/.f64 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 im im) (*.f64 (log.f64 (/.f64 #s(literal -1 binary64) 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) (/.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 (fma.f64 (*.f64 (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) im) im (/.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 #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))
(/.f64 (fma.f64 (*.f64 (log.f64 im) im) im (*.f64 (*.f64 re re) #s(literal 1/2 binary64))) (*.f64 im im))
(* -1 (log (/ 1 im)))
(*.f64 #s(literal 1 binary64) (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 (*.f64 #s(literal 1 binary64) (log.f64 im)))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re (*.f64 #s(literal 1 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 #s(literal 1 binary64) (log.f64 im) (fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re (/.f64 (*.f64 (pow.f64 re #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 im #s(literal 6 binary64))))))
(* -1 (log (/ -1 im)))
(*.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64) (*.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) re) re (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (*.f64 re re)))
(+ (* -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)) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/6 binary64) (fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64) (*.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) re) re (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (*.f64 re re))))
(+ (log -1) (* -1 (log (/ -1 im))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64) (log.f64 #s(literal -1 binary64)))
(+ (log -1) (+ (* -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 (fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64) (log.f64 #s(literal -1 binary64))))

rewrite115.0ms (0.9%)

Memory
-5.0MiB live, 233.0MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01342
01842
16840
258440
0891133
Stop Event
iter limit
node limit
iter limit
Counts
5 → 61
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im))
(*.f64 #s(literal 1/2 binary64) (/.f64 re im))
(/.f64 re im)
(log.f64 im)
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64) (log.f64 im)))
(/.f64 (-.f64 (*.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im)))) (*.f64 (/.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) (/.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))))) (+.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) (/.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im)))))
(/.f64 (-.f64 (*.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))) (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))))))) (*.f64 (/.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))) (/.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))))) (-.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))) (/.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))))))))
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) #s(literal 3 binary64))) (fma.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) (fma.f64 (/.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) (/.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) (*.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) (/.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im)))))))
(/.f64 (-.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal -1/2 binary64) (pow.f64 (/.f64 re im) #s(literal 2 binary64))) #s(literal 3 binary64))) (fma.f64 (log.f64 im) (log.f64 im) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (*.f64 #s(literal -1/2 binary64) (pow.f64 (/.f64 re im) #s(literal 2 binary64)))))))
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))) #s(literal 3 binary64))) (fma.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))) (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))) (-.f64 (*.f64 (/.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))) (/.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))))))) (*.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))) (/.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))))))))))
(/.f64 (neg.f64 (fma.f64 (log.f64 im) (log.f64 im) (*.f64 #s(literal -1/4 binary64) (pow.f64 (/.f64 re im) #s(literal 4 binary64))))) (neg.f64 (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))
(/.f64 (neg.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (pow.f64 (log.f64 im) #s(literal 2 binary64))))) (neg.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im)))))
(/.f64 (neg.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64) (pow.f64 (log.f64 im) #s(literal 3 binary64))))) (neg.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))))))))
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) (*.f64 (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im)) (pow.f64 (log.f64 im) #s(literal 2 binary64)))) (*.f64 (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))))
(/.f64 (fma.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (*.f64 (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (pow.f64 (log.f64 im) #s(literal 3 binary64)))) (*.f64 (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))))
(/.f64 (fma.f64 (log.f64 im) (log.f64 im) (*.f64 #s(literal -1/4 binary64) (pow.f64 (/.f64 re im) #s(literal 4 binary64)))) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))))
(/.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (pow.f64 (log.f64 im) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64) (pow.f64 (log.f64 im) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (log.f64 im) (log.f64 im) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal -1/2 binary64) (pow.f64 (/.f64 re im) #s(literal 2 binary64))) (log.f64 im))))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64) (pow.f64 (log.f64 im) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))))
(/.f64 (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (pow.f64 (log.f64 im) #s(literal 2 binary64))) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im)))
(/.f64 (fma.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64) (pow.f64 (log.f64 im) #s(literal 3 binary64))) (fma.f64 (log.f64 im) (log.f64 im) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal -1/2 binary64) (pow.f64 (/.f64 re im) #s(literal 2 binary64))) (log.f64 im)))))
(/.f64 (fma.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64) (pow.f64 (log.f64 im) #s(literal 3 binary64))) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))))))
(neg.f64 (/.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (pow.f64 (log.f64 im) #s(literal 2 binary64)))) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))))
(neg.f64 (/.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64) (pow.f64 (log.f64 im) #s(literal 3 binary64)))) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))))
(neg.f64 (/.f64 (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (pow.f64 (log.f64 im) #s(literal 2 binary64))) (neg.f64 (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im)))))
(neg.f64 (/.f64 (fma.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64) (pow.f64 (log.f64 im) #s(literal 3 binary64))) (neg.f64 (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))))))))
(fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 (neg.f64 im))) (/.f64 re im) (log.f64 im))
(fma.f64 (fabs.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64))) (/.f64 re im) (log.f64 im))
(fma.f64 (/.f64 (neg.f64 re) im) (*.f64 #s(literal -1/2 binary64) (/.f64 re im)) (log.f64 im))
(fma.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 re im)) (/.f64 (neg.f64 re) im) (log.f64 im))
(fma.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64) (log.f64 im))
(fma.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (/.f64 re im) (log.f64 im))
(fma.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 (neg.f64 im))) (log.f64 im))
(fma.f64 (/.f64 re im) (fabs.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64))) (log.f64 im))
(fma.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (log.f64 im))
(fma.f64 #s(literal 1/2 binary64) (pow.f64 (/.f64 re im) #s(literal 2 binary64)) (log.f64 im))
(-.f64 (/.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))
(-.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) (/.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))))
(-.f64 (log.f64 im) (*.f64 #s(literal -1/2 binary64) (pow.f64 (/.f64 re im) #s(literal 2 binary64))))
(+.f64 (/.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (fma.f64 (log.f64 im) (log.f64 im) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal -1/2 binary64) (pow.f64 (/.f64 re im) #s(literal 2 binary64))) (log.f64 im))))) (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64)) (fma.f64 (log.f64 im) (log.f64 im) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal -1/2 binary64) (pow.f64 (/.f64 re im) #s(literal 2 binary64))) (log.f64 im))))))
(+.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64)) (fma.f64 (log.f64 im) (log.f64 im) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal -1/2 binary64) (pow.f64 (/.f64 re im) #s(literal 2 binary64))) (log.f64 im))))) (/.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (fma.f64 (log.f64 im) (log.f64 im) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal -1/2 binary64) (pow.f64 (/.f64 re im) #s(literal 2 binary64))) (log.f64 im))))))
(+.f64 (/.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))) (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))))
(+.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 6 binary64)) #s(literal 1/8 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))) (/.f64 (pow.f64 (log.f64 im) #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64) (*.f64 (log.f64 im) (-.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))))))
(+.f64 (/.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))) (/.f64 (neg.f64 (pow.f64 (log.f64 im) #s(literal 2 binary64))) (-.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))))
(+.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (log.f64 im))
(+.f64 (log.f64 im) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))
(*.f64 (/.f64 re im) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (/.f64 re im))
(/.f64 (*.f64 (neg.f64 (neg.f64 re)) #s(literal 1/2 binary64)) (neg.f64 (neg.f64 im)))
(/.f64 (*.f64 #s(literal 1/2 binary64) (neg.f64 (neg.f64 re))) (neg.f64 (neg.f64 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 #s(literal -1/2 binary64) (/.f64 re im)))
(/.f64 (neg.f64 (neg.f64 (neg.f64 re))) (neg.f64 (neg.f64 (neg.f64 im))))
(/.f64 (neg.f64 (neg.f64 re)) (neg.f64 (neg.f64 im)))
(/.f64 (neg.f64 (neg.f64 re)) im)
(/.f64 (neg.f64 re) (neg.f64 im))
(/.f64 re (neg.f64 (neg.f64 im)))
(/.f64 re im)
(neg.f64 (/.f64 (neg.f64 re) im))
(sqrt.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)))
(fabs.f64 (/.f64 (neg.f64 re) im))
(fabs.f64 (/.f64 re im))
(log.f64 im)

eval14.0ms (0.1%)

Memory
8.7MiB live, 47.0MiB allocated
Compiler

Compiled 3 719 to 399 computations (89.3% saved)

prune3.0ms (0%)

Memory
11.0MiB live, 11.0MiB allocated
Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New1021103
Fresh000
Picked011
Done033
Total1025107
Accuracy
100.0%
Counts
107 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
49.9%
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64))
100.0%
(log.f64 (hypot.f64 re im))
99.7%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
99.4%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
3.0%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
Compiler

Compiled 78 to 53 computations (32.1% saved)

simplify119.0ms (1%)

Memory
-18.5MiB live, 143.1MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01981
02381
14981
214981
343381
4175481
5404381
6497181
7529081
8575281
9630581
10696981
11750581
0806274
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
#s(literal 1/2 binary64)
(*.f64 im im)
im
re
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))))
#s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))
#s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re)))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
#s(literal 1/2 binary64)
(*.f64 im im)
im
re

localize72.0ms (0.6%)

Memory
24.6MiB live, 62.0MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.4119717190895212
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
accuracy3.5341100054784484
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
accuracy6.902765698151296
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)
accuracy61.86703076891041
#s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))
Samples
64.0ms256×0valid
Compiler

Compiled 131 to 36 computations (72.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 22.0ms
ival-mult: 7.0ms (32% of total)
ival-log: 6.0ms (27.4% of total)
ival-hypot: 4.0ms (18.3% of total)
ival-div: 3.0ms (13.7% of total)
ival-add: 1.0ms (4.6% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series111.0ms (0.9%)

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

6 calls:

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

simplify201.0ms (1.7%)

Memory
10.0MiB live, 241.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0117553
1316547
21043537
34617537
08527497
Stop Event
iter limit
node limit
Counts
31 → 31
Calls
Call 1
Inputs
(log im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(+ (log im) (* (pow re 2) (+ (* (pow re 2) (- (* 1/6 (/ (pow re 2) (pow im 6))) (* 1/4 (/ 1 (pow im 4))))) (* 1/2 (/ 1 (pow im 2))))))
(* 1/2 (/ (pow re 2) (pow im 2)))
(* 1/2 (/ re (pow im 2)))
(* -1 (log (/ 1 re)))
(+ (* -1 (log (/ 1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* (pow re 2) (+ (* 1/2 (/ 1 (pow im 2))) (/ (log im) (pow re 2))))
(* -1 (log (/ -1 re)))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(+ (* -1 (log (/ -1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (+ (* 1/720 (/ (+ (* 30 (pow im 6)) (* 90 (pow im 6))) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(log re)
(+ (log re) (* 1/2 (/ (pow im 2) (pow re 2))))
(+ (log re) (* (pow im 2) (+ (* -1/4 (/ (pow im 2) (pow re 4))) (* 1/2 (/ 1 (pow re 2))))))
(+ (log re) (* (pow im 2) (+ (* (pow im 2) (- (* 1/6 (/ (pow im 2) (pow re 6))) (* 1/4 (/ 1 (pow re 4))))) (* 1/2 (/ 1 (pow re 2))))))
(/ (+ (* 1/2 (pow re 2)) (* (pow im 2) (log im))) (pow im 2))
(/ 1/2 (pow im 2))
(* -1 (log (/ 1 im)))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (log (/ -1 im)))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (+ (* 1/720 (/ (+ (* 30 (pow re 6)) (* 90 (pow re 6))) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(+ (log -1) (* -1 (log (/ -1 im))))
(+ (log -1) (+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2)))))
Outputs
(log im)
(log.f64 im)
(+ (log im) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im))
(+ (log im) (* (pow re 2) (+ (* -1/4 (/ (pow re 2) (pow im 4))) (* 1/2 (/ 1 (pow im 2))))))
(fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) re) re (/.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 (fma.f64 (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)))) (*.f64 re re) (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (*.f64 re re) (log.f64 im))
(* 1/2 (/ (pow re 2) (pow im 2)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im))
(* 1/2 (/ re (pow im 2)))
(*.f64 (/.f64 re (*.f64 im im)) #s(literal 1/2 binary64))
(* -1 (log (/ 1 re)))
(*.f64 (log.f64 re) #s(literal 1 binary64))
(+ (* -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) (*.f64 (log.f64 re) #s(literal 1 binary64)))
(+ (* -1 (log (/ 1 re))) (+ (* -1/4 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (log.f64 re) #s(literal 1 binary64) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) (*.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))))))
(+ (* -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 re) #s(literal 1 binary64) (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)))
(*.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -1 binary64))
(+ (* -1 (log (/ -1 re))) (* 1/2 (/ (pow im 2) (pow re 2))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -1 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im 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 (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) im) im (/.f64 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 im im) (*.f64 (log.f64 (/.f64 #s(literal -1 binary64) re)) #s(literal -1 binary64)))
(+ (* -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)) (pow.f64 re #s(literal 6 binary64))) #s(literal 1/6 binary64) (fma.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) im) im (/.f64 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 im im) (*.f64 (log.f64 (/.f64 #s(literal -1 binary64) 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) (/.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 (fma.f64 (*.f64 (/.f64 #s(literal -1/4 binary64) (pow.f64 re #s(literal 4 binary64))) im) im (/.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 #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))
(/.f64 (fma.f64 (*.f64 (log.f64 im) im) im (*.f64 (*.f64 re re) #s(literal 1/2 binary64))) (*.f64 im im))
(/ 1/2 (pow im 2))
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
(* -1 (log (/ 1 im)))
(*.f64 #s(literal 1 binary64) (log.f64 im))
(+ (* -1 (log (/ 1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (*.f64 #s(literal 1 binary64) (log.f64 im)))
(+ (* -1 (log (/ 1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (*.f64 #s(literal 1 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 #s(literal 1 binary64) (log.f64 im) (fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (/.f64 (*.f64 (pow.f64 re #s(literal 6 binary64)) #s(literal 1/6 binary64)) (pow.f64 im #s(literal 6 binary64))))))
(* -1 (log (/ -1 im)))
(*.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64))
(+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im)))
(+ (* -1 (log (/ -1 im))) (+ (* -1/4 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64) (*.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) re) re (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (*.f64 re re)))
(+ (* -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)) (pow.f64 im #s(literal 6 binary64))) #s(literal 1/6 binary64) (fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64) (*.f64 (fma.f64 (*.f64 (/.f64 #s(literal -1/4 binary64) (pow.f64 im #s(literal 4 binary64))) re) re (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (*.f64 re re))))
(+ (log -1) (* -1 (log (/ -1 im))))
(fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64) (log.f64 #s(literal -1 binary64)))
(+ (log -1) (+ (* -1 (log (/ -1 im))) (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (fma.f64 (log.f64 (/.f64 #s(literal -1 binary64) im)) #s(literal -1 binary64) (log.f64 #s(literal -1 binary64))))

rewrite119.0ms (1%)

Memory
10.5MiB live, 132.0MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01975
02375
18365
264765
0941858
Stop Event
iter limit
node limit
iter limit
Counts
5 → 89
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))))
#s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (neg.f64 (neg.f64 re))) (neg.f64 (neg.f64 re)))
(*.f64 (*.f64 re (/.f64 #s(literal -1/2 binary64) im)) (/.f64 (neg.f64 re) im))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 (neg.f64 im))) (/.f64 re im))
(*.f64 (fabs.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (neg.f64 re))) re)
(*.f64 (fabs.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64))) (/.f64 re im))
(*.f64 (fabs.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im))) (*.f64 re re))
(*.f64 (fabs.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)) re)
(*.f64 (*.f64 re (/.f64 #s(literal 1/2 binary64) im)) (/.f64 re im))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (neg.f64 re)) (neg.f64 re))
(*.f64 (/.f64 (neg.f64 re) im) (*.f64 #s(literal -1/2 binary64) (/.f64 re im)))
(*.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 re im)) (/.f64 (neg.f64 re) im))
(*.f64 (/.f64 #s(literal -1/2 binary64) im) (*.f64 (/.f64 (neg.f64 re) im) re))
(*.f64 (/.f64 #s(literal -1/2 binary64) im) (/.f64 (*.f64 re re) (neg.f64 im)))
(*.f64 (neg.f64 (neg.f64 re)) (*.f64 (neg.f64 (neg.f64 re)) (/.f64 #s(literal 1/2 binary64) (*.f64 im im))))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) (neg.f64 (neg.f64 im))))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (/.f64 re im) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re (*.f64 im im)))
(*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64))
(*.f64 (neg.f64 re) (*.f64 (neg.f64 re) (/.f64 #s(literal 1/2 binary64) (*.f64 im im))))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))
(*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (/.f64 re im))
(*.f64 (/.f64 re im) (/.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 (neg.f64 im))))
(*.f64 (/.f64 re im) (fabs.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64))))
(*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re (*.f64 im im)) re))
(*.f64 #s(literal 1/2 binary64) (pow.f64 (/.f64 re im) #s(literal 2 binary64)))
(*.f64 (*.f64 re re) (fabs.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im))))
(*.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) (*.f64 im im)))
(*.f64 re (fabs.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)))
(*.f64 re (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re))
(/.f64 (neg.f64 (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) (neg.f64 (neg.f64 re))) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) (neg.f64 (neg.f64 re))) (*.f64 im im))
(/.f64 (*.f64 (neg.f64 (neg.f64 re)) (*.f64 #s(literal -1/2 binary64) re)) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 (neg.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 im im))
(/.f64 (fabs.f64 (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re)) im)
(/.f64 (fabs.f64 (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) im)) im)
(/.f64 (fabs.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re))) (*.f64 im im))
(/.f64 (fabs.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re)) (*.f64 im im))
(/.f64 (fabs.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) re)) im)
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re) im)
(/.f64 (/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) im) (neg.f64 im))
(/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) (*.f64 (neg.f64 im) 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) (neg.f64 (neg.f64 im)))
(/.f64 (*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) re) im)
(neg.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal -1/2 binary64)))
(sqrt.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 4 binary64)) #s(literal 1/4 binary64)))
(fabs.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal -1/2 binary64)))
(fabs.f64 (*.f64 (pow.f64 (/.f64 re im) #s(literal 2 binary64)) #s(literal 1/2 binary64)))
(*.f64 (/.f64 (neg.f64 re) im) (/.f64 #s(literal -1/2 binary64) im))
(*.f64 (/.f64 #s(literal -1/2 binary64) im) (/.f64 (neg.f64 re) im))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re im))
(*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re)
(*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im))
(*.f64 #s(literal 1/2 binary64) (/.f64 re (*.f64 im im)))
(*.f64 re (/.f64 #s(literal 1/2 binary64) (*.f64 im im)))
(/.f64 (neg.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re)) (neg.f64 im))
(/.f64 (neg.f64 (*.f64 re (/.f64 #s(literal 1/2 binary64) im))) (neg.f64 im))
(/.f64 (neg.f64 (*.f64 #s(literal -1/2 binary64) re)) (*.f64 im im))
(/.f64 (*.f64 #s(literal -1/2 binary64) (neg.f64 (neg.f64 re))) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 #s(literal -1/2 binary64) (neg.f64 re)) (*.f64 im im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (neg.f64 (neg.f64 re))) (*.f64 im im))
(/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im)
(/.f64 (*.f64 re (/.f64 #s(literal 1/2 binary64) im)) im)
(/.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 re im)) (neg.f64 im))
(/.f64 (*.f64 #s(literal -1/2 binary64) re) (*.f64 (neg.f64 im) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im))
(/.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) (neg.f64 (neg.f64 im)))
(/.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) im)
(neg.f64 (/.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 re im)) im))
(neg.f64 (/.f64 (*.f64 #s(literal -1/2 binary64) re) (*.f64 im im)))
(neg.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 (neg.f64 im) im)))
(neg.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (neg.f64 re) im)))
(neg.f64 (*.f64 re (/.f64 #s(literal -1/2 binary64) (*.f64 im im))))
(neg.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) (*.f64 im im)) re))
(/.f64 (/.f64 #s(literal -1/2 binary64) im) (neg.f64 im))
(/.f64 (/.f64 #s(literal 1/2 binary64) im) (neg.f64 (neg.f64 im)))
(/.f64 (/.f64 #s(literal 1/2 binary64) im) im)
(/.f64 #s(literal -1/2 binary64) (*.f64 (neg.f64 im) im))
(/.f64 #s(literal 1/2 binary64) (*.f64 im im))
(neg.f64 (/.f64 (/.f64 #s(literal -1/2 binary64) im) im))
(neg.f64 (/.f64 (/.f64 #s(literal 1/2 binary64) im) (neg.f64 im)))
(neg.f64 (/.f64 #s(literal -1/2 binary64) (*.f64 im im)))

eval38.0ms (0.3%)

Memory
-4.5MiB live, 32.5MiB allocated
Compiler

Compiled 3 850 to 512 computations (86.7% saved)

prune31.0ms (0.3%)

Memory
-24.4MiB live, 58.2MiB allocated
Pruning

13 alts after pruning (8 fresh and 5 done)

PrunedKeptTotal
New1128120
Fresh000
Picked011
Done044
Total11213125
Accuracy
100.0%
Counts
125 → 13
Alt Table
Click to see full alt table
StatusAccuracyProgram
49.9%
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64))
100.0%
(log.f64 (hypot.f64 re im))
99.7%
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
99.4%
#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 im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re) im)))
2.9%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
3.3%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im) re)))
3.0%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
3.3%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))))
2.9%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
3.2%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
3.3%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im)) re)))
3.0%
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
Compiler

Compiled 677 to 281 computations (58.5% saved)

regimes48.0ms (0.4%)

Memory
20.9MiB live, 56.6MiB allocated
Counts
14 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64))
(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) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
(log.f64 (hypot.f64 re im))
Outputs
(log.f64 (hypot.f64 re im))
Calls

7 calls:

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

Compiled 32 to 28 computations (12.5% saved)

regimes78.0ms (0.6%)

Memory
-22.1MiB live, 75.8MiB allocated
Counts
13 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64))
(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) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
Calls

7 calls:

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

Compiled 32 to 28 computations (12.5% saved)

regimes32.0ms (0.3%)

Memory
22.8MiB live, 59.1MiB allocated
Counts
12 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
(*.f64 (log.f64 (fma.f64 re re (*.f64 im im))) #s(literal 1/2 binary64))
(log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
Calls

7 calls:

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

Compiled 32 to 28 computations (12.5% saved)

regimes48.0ms (0.4%)

Memory
-32.3MiB live, 44.1MiB allocated
Counts
9 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re) im)))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re) im)))
Calls

7 calls:

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

Compiled 32 to 28 computations (12.5% saved)

regimes27.0ms (0.2%)

Memory
27.3MiB live, 71.7MiB allocated
Counts
8 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im) re)))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))))
Calls

7 calls:

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

Compiled 32 to 28 computations (12.5% saved)

regimes21.0ms (0.2%)

Memory
-25.3MiB live, 51.8MiB allocated
Counts
6 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 re re) im))))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im)) re)))
Calls

7 calls:

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

Compiled 32 to 28 computations (12.5% saved)

regimes15.0ms (0.1%)

Memory
3.5MiB live, 41.9MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) (*.f64 re re))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 im im))))
Outputs
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
Calls

7 calls:

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

Compiled 32 to 28 computations (12.5% saved)

regimes10.0ms (0.1%)

Memory
30.2MiB live, 30.2MiB allocated
Accuracy

Total -0.1b remaining (-0.2%)

Threshold costs -0.1b (-0.2%)

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

7 calls:

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

Compiled 32 to 28 computations (12.5% saved)

simplify54.0ms (0.4%)

Memory
-11.8MiB live, 72.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046197
166197
2132197
3258197
4654197
52805197
65692197
77111197
Stop Event
node limit
Calls
Call 1
Inputs
(log.f64 (hypot.f64 re im))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))
Outputs
(log.f64 (hypot.f64 re im))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 re im) (log.f64 im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) (log.f64 im))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (/.f64 (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re) im)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 re im) (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im)) re)))
#s(approx (log (sqrt (+ (* re re) (* im im)))) #s(approx (+ (* (* 1/2 (/ re im)) (/ re im)) (log im)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 im im)) re) re)))

soundness949.0ms (7.8%)

Memory
-0.8MiB live, 705.5MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01975
02375
18365
264765
0941858
0116549
1316543
21039533
34585533
08504493
0186921
1557915
21983905
37803905
08060830
0730
01230
14130
234830
3591430
0927119
02611696
17891682
227981654
085701518
Stop Event
fuel
iter limit
node limit
iter limit
node limit
iter limit
iter limit
node limit
iter limit
node limit
iter limit
node limit
iter limit
Compiler

Compiled 418 to 209 computations (50% saved)

preprocess111.0ms (0.9%)

Memory
15.4MiB live, 99.1MiB allocated
Remove

(sort re im)

(abs re)

(abs im)

Compiler

Compiled 436 to 132 computations (69.7% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...