math.abs on complex

Time bar (total: 4.0s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

Memory
1.3MiB live, 1.3MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 10 to 5 computations (50% saved)

sample732.0ms (18.4%)

Memory
-12.6MiB live, 1 140.1MiB allocated
Samples
522.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 235.0ms
ival-hypot: 223.0ms (95.1% of total)
ival-true: 6.0ms (2.6% of total)
ival-assert: 3.0ms (1.3% of total)
adjust: 2.0ms (0.9% of total)
Bogosity

explain111.0ms (2.8%)

Memory
0.3MiB live, 191.6MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1440-2(1.464696163138851e-156 -1.917221687119308e-232)(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-im
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))oflow-rescue1280
(+.f64 (*.f64 re re) (*.f64 im im))overflow128
(*.f64 re re)overflow70
(*.f64 im im)overflow76
sqrt.f64(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))uflow-rescue140
(+.f64 (*.f64 re re) (*.f64 im im))underflow14
(*.f64 re re)underflow58
(*.f64 im im)underflow63
Confusion
Predicted +Predicted -
+1422
-0112
Precision
1.0
Recall
0.9861111111111112
Confusion?
Predicted +Predicted MaybePredicted -
+14202
-00112
Precision?
1.0
Recall?
0.9861111111111112
Freqs
test
numberfreq
0114
1142
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
44.0ms512×0valid
Compiler

Compiled 58 to 22 computations (62.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 30.0ms
ival-mult: 19.0ms (62.5% of total)
ival-hypot: 9.0ms (29.6% of total)
ival-add: 2.0ms (6.6% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess16.0ms (0.4%)

Memory
31.5MiB live, 31.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01642
14242
29242
311742
415542
068
0108
1218
2608
31178
41548
01543
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Outputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(hypot.f64 im re)
Symmetry

(abs im)

(abs re)

(sort re im)

Compiler

Compiled 8 to 6 computations (25% 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
48.2%
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Compiler

Compiled 8 to 6 computations (25% saved)

simplify5.0ms (0.1%)

Memory
5.2MiB live, 5.2MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 im im)
cost-diff0
(*.f64 re re)
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
0623
01023
12123
26023
311723
415423
015417
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(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
(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

localize49.0ms (1.2%)

Memory
-7.2MiB live, 36.6MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 re re)
accuracy0.0
(*.f64 im im)
accuracy0.00390625
(+.f64 (*.f64 re re) (*.f64 im im))
accuracy33.1822465372579
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Samples
43.0ms256×0valid
Compiler

Compiled 25 to 8 computations (68% saved)

Precisions
Click to see histograms. Total time spent on operations: 37.0ms
ival-mult: 31.0ms (83.8% of total)
ival-hypot: 5.0ms (13.5% of total)
ival-add: 1.0ms (2.7% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series5.0ms (0.1%)

Memory
7.9MiB live, 7.9MiB allocated
Counts
4 → 27
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(+.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))
(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 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
(+ re (* 1/2 (/ (pow im 2) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(* -1 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
Calls

6 calls:

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

simplify245.0ms (6.2%)

Memory
-1.7MiB live, 186.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0104441
1323441
21251437
36235435
08273400
Stop Event
iter limit
node limit
Counts
27 → 25
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))
(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 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
(+ re (* 1/2 (/ (pow im 2) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(* -1 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
Outputs
im
(+ im (* 1/2 (/ (pow re 2) im)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))
(fma.f64 (/.f64 (fma.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) im) im) (*.f64 re re) #s(literal 1/2 binary64)) im) (*.f64 re re) im)
(+ im (* (pow re 2) (+ (* (pow re 2) (- (* 1/16 (/ (pow re 2) (pow im 5))) (* 1/8 (/ 1 (pow im 3))))) (* 1/2 (/ 1 im)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/16 binary64) re) (/.f64 re (pow.f64 im #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 3 binary64)))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
(pow im 2)
(*.f64 im im)
(+ (pow im 2) (pow re 2))
(fma.f64 im im (*.f64 re re))
(pow re 2)
(*.f64 re re)
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 (/.f64 im re) re) re)
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) #s(literal 1 binary64))) re)
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) #s(literal 1 binary64)))) re)
(* (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 re)
(neg.f64 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/2 binary64) re) (/.f64 (*.f64 im im) re) #s(literal -1 binary64)) re)
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(*.f64 (neg.f64 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 (neg.f64 re) (fma.f64 (pow.f64 im #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 im re)) (/.f64 im re) #s(literal 1 binary64)))))
(+ re (* 1/2 (/ (pow im 2) re)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) re) (*.f64 im im) re)
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(fma.f64 (/.f64 (fma.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) re) re) (*.f64 im im) #s(literal 1/2 binary64)) re) (*.f64 im im) re)
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/16 binary64) im) (/.f64 im (pow.f64 re #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 3 binary64)))) (*.f64 im im) (/.f64 #s(literal 1/2 binary64) re)) (*.f64 im im) re)
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) #s(literal 1 binary64)) im)
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(*.f64 (fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) #s(literal 1 binary64))) im)
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 im #s(literal 6 binary64))) (fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) #s(literal 1 binary64)))) im)
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(*.f64 (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) im im) im)
(* -1 im)
(neg.f64 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/2 binary64) im) (/.f64 (*.f64 re re) im) #s(literal -1 binary64)) im)
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(*.f64 (neg.f64 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 (*.f64 re re) im) im) #s(literal 1/2 binary64) #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 (neg.f64 im) (fma.f64 (pow.f64 re #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 im #s(literal 6 binary64))) (fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) #s(literal -1/8 binary64) (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal 1/2 binary64) #s(literal 1 binary64)))))

rewrite236.0ms (5.9%)

Memory
-16.2MiB live, 364.5MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0621
01021
13921
234621
3588921
0819715
Stop Event
iter limit
node limit
iter limit
Counts
4 → 218
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (*.f64 re re) (*.f64 im im))
(*.f64 re re)
(*.f64 im im)
Outputs
(*.f64 (pow.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)))) #s(literal 1/2 binary64)) (hypot.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im re)))
(*.f64 (pow.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)))) #s(literal 1/2 binary64)) (hypot.f64 im re))
(*.f64 (pow.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))))) #s(literal 1/2 binary64)) (hypot.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im re)))
(*.f64 (pow.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 3 binary64)) (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 12 binary64)))) #s(literal 1/2 binary64)) (sqrt.f64 (fma.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64)))))
(*.f64 (pow.f64 (neg.f64 (neg.f64 (+.f64 im re))) #s(literal 1/2 binary64)) (sqrt.f64 (-.f64 (neg.f64 re) (neg.f64 im))))
(*.f64 (pow.f64 (neg.f64 (+.f64 (neg.f64 im) re)) #s(literal 1/2 binary64)) (sqrt.f64 (-.f64 (neg.f64 re) im)))
(*.f64 (sqrt.f64 (neg.f64 (+.f64 im re))) (pow.f64 (neg.f64 (-.f64 (neg.f64 re) (neg.f64 im))) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 (neg.f64 (+.f64 im re))) (pow.f64 (-.f64 (neg.f64 im) (neg.f64 re)) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 (neg.f64 (+.f64 im re))) (sqrt.f64 (-.f64 (neg.f64 re) (neg.f64 im))))
(*.f64 (sqrt.f64 (neg.f64 (+.f64 im re))) (sqrt.f64 (-.f64 re im)))
(*.f64 (sqrt.f64 (+.f64 (neg.f64 im) re)) (pow.f64 (neg.f64 (-.f64 (neg.f64 re) im)) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 (+.f64 (neg.f64 im) re)) (pow.f64 (-.f64 (neg.f64 im) re) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 (+.f64 (neg.f64 im) re)) (pow.f64 (-.f64 im (neg.f64 re)) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 (+.f64 (neg.f64 im) re)) (sqrt.f64 (-.f64 (neg.f64 re) im)))
(*.f64 (pow.f64 (*.f64 (fma.f64 im im (*.f64 re re)) (neg.f64 (+.f64 im re))) #s(literal 1/4 binary64)) (pow.f64 (-.f64 (neg.f64 re) (neg.f64 im)) #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (*.f64 (fma.f64 im im (*.f64 re re)) (+.f64 (neg.f64 im) re)) #s(literal 1/4 binary64)) (pow.f64 (-.f64 (neg.f64 re) im) #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (*.f64 (fma.f64 im im (*.f64 re re)) (+.f64 im re)) #s(literal 1/4 binary64)) (pow.f64 (-.f64 re im) #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (fma.f64 (neg.f64 re) re (*.f64 (neg.f64 im) im)) #s(literal 1/4 binary64)) (pow.f64 (-.f64 (*.f64 (neg.f64 re) re) (*.f64 (neg.f64 im) im)) #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (fma.f64 (neg.f64 im) im (*.f64 (neg.f64 re) re)) #s(literal 1/4 binary64)) (pow.f64 (-.f64 (*.f64 (neg.f64 im) im) (*.f64 (neg.f64 re) re)) #s(literal 1/4 binary64)))
(*.f64 (sqrt.f64 (-.f64 (neg.f64 re) (neg.f64 im))) (sqrt.f64 (neg.f64 (+.f64 im re))))
(*.f64 (neg.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))) (neg.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))))
(*.f64 (fabs.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))) (fabs.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))))
(*.f64 (sqrt.f64 (-.f64 (neg.f64 re) im)) (sqrt.f64 (+.f64 (neg.f64 im) re)))
(*.f64 (sqrt.f64 (-.f64 re im)) (sqrt.f64 (+.f64 im re)))
(*.f64 (sqrt.f64 (+.f64 im re)) (pow.f64 (neg.f64 (-.f64 re im)) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 (+.f64 im re)) (pow.f64 (-.f64 im re) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 (+.f64 im re)) (sqrt.f64 (-.f64 re im)))
(*.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)) (pow.f64 (-.f64 (*.f64 (neg.f64 re) re) (*.f64 im im)) #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)) (pow.f64 (-.f64 (*.f64 (neg.f64 im) im) (*.f64 re re)) #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)) (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)))
(*.f64 (hypot.f64 im re) (pow.f64 (/.f64 (fma.f64 im im (*.f64 re re)) (fma.f64 im im (*.f64 re re))) #s(literal 1/2 binary64)))
(*.f64 (hypot.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im re)) (pow.f64 (/.f64 (fma.f64 im im (*.f64 re re)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) #s(literal 1/2 binary64)))
(pow.f64 (neg.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))) #s(literal 2 binary64))
(pow.f64 (fabs.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))) #s(literal 2 binary64))
(pow.f64 (exp.f64 (log.f64 (fma.f64 im im (*.f64 re re)))) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 (fma.f64 im im (*.f64 re re)) #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 im im (*.f64 re re)) (*.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 im im (*.f64 re re)) (*.f64 im re)))
(sqrt.f64 (fma.f64 im im (*.f64 re re)))
(hypot.f64 (exp.f64 (log.f64 im)) (exp.f64 (log.f64 re)))
(hypot.f64 (exp.f64 (log.f64 im)) (neg.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)) (neg.f64 im))
(hypot.f64 (exp.f64 (log.f64 re)) im)
(hypot.f64 (neg.f64 im) (exp.f64 (log.f64 re)))
(hypot.f64 (neg.f64 im) (neg.f64 re))
(hypot.f64 (neg.f64 im) re)
(hypot.f64 (neg.f64 re) (exp.f64 (log.f64 im)))
(hypot.f64 (neg.f64 re) (neg.f64 im))
(hypot.f64 (neg.f64 re) im)
(hypot.f64 im (exp.f64 (log.f64 re)))
(hypot.f64 im (neg.f64 re))
(hypot.f64 im re)
(hypot.f64 re (exp.f64 (log.f64 im)))
(hypot.f64 re (neg.f64 im))
(hypot.f64 re im)
(exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 im im (*.f64 re re))) #s(literal 1/4 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (exp.f64 (log.f64 (fma.f64 im im (*.f64 re re))))) #s(literal 1/2 binary64)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #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 im im (*.f64 re re)))
(*.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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #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 (fma.f64 im im (*.f64 re re)) #s(literal 3 binary64)) (pow.f64 im #s(literal 6 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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64))))
(*.f64 (neg.f64 (neg.f64 (+.f64 im re))) (-.f64 (neg.f64 re) (neg.f64 im)))
(*.f64 (neg.f64 (+.f64 (neg.f64 im) re)) (-.f64 (neg.f64 re) im))
(*.f64 (-.f64 (neg.f64 re) (neg.f64 im)) (neg.f64 (+.f64 im re)))
(*.f64 (neg.f64 (+.f64 im re)) (neg.f64 (-.f64 (neg.f64 re) (neg.f64 im))))
(*.f64 (neg.f64 (+.f64 im re)) (-.f64 (neg.f64 im) (neg.f64 re)))
(*.f64 (neg.f64 (+.f64 im re)) (-.f64 (neg.f64 re) (neg.f64 im)))
(*.f64 (neg.f64 (+.f64 im re)) (-.f64 re im))
(*.f64 (-.f64 (neg.f64 re) im) (+.f64 (neg.f64 im) re))
(*.f64 (+.f64 (neg.f64 im) re) (neg.f64 (-.f64 (neg.f64 re) im)))
(*.f64 (+.f64 (neg.f64 im) re) (-.f64 (neg.f64 im) re))
(*.f64 (+.f64 (neg.f64 im) re) (-.f64 im (neg.f64 re)))
(*.f64 (+.f64 (neg.f64 im) re) (-.f64 (neg.f64 re) im))
(*.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 im im (*.f64 re re)) (/.f64 (fma.f64 im im (*.f64 re re)) (fma.f64 im im (*.f64 re re))))
(*.f64 (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (/.f64 (fma.f64 im im (*.f64 re re)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(/.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (neg.f64 (+.f64 im re))) (-.f64 (neg.f64 re) (neg.f64 im)))
(/.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (+.f64 (neg.f64 im) re)) (-.f64 (neg.f64 re) im))
(/.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 im im (*.f64 re re))) #s(literal 2 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) #s(literal 2 binary64))) (fma.f64 im im (*.f64 re re)))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) #s(literal 2 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) #s(literal 2 binary64))) (fma.f64 im im (*.f64 re re)))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) #s(literal 2 binary64)) (+.f64 (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) #s(literal 2 binary64)) (*.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re)))))))
(/.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) #s(literal 2 binary64)) (*.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))))))))
(/.f64 (-.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (*.f64 (fma.f64 im im (*.f64 re re)) (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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (*.f64 (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #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 im im (*.f64 re re)) #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 im im (*.f64 re re))))
(/.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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (fma.f64 im im (*.f64 re re)))
(/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (+.f64 (pow.f64 im #s(literal 4 binary64)) (+.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))))
(neg.f64 (fma.f64 (neg.f64 re) re (*.f64 (neg.f64 im) im)))
(neg.f64 (fma.f64 (neg.f64 im) im (*.f64 (neg.f64 re) re)))
(neg.f64 (fma.f64 im im (*.f64 re re)))
(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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 3 binary64)) (pow.f64 im #s(literal 6 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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(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 im im (*.f64 re re)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 3 binary64)) (pow.f64 im #s(literal 6 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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 3 binary64)) (neg.f64 (+.f64 im re))) (/.f64 (neg.f64 re) (-.f64 (neg.f64 re) (neg.f64 im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 3 binary64)) (neg.f64 (+.f64 im re))) (/.f64 re (-.f64 (neg.f64 re) (neg.f64 im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 3 binary64)) (+.f64 (neg.f64 im) re)) (/.f64 (neg.f64 re) (-.f64 (neg.f64 re) im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 3 binary64)) (+.f64 (neg.f64 im) re)) (/.f64 re (-.f64 (neg.f64 re) im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 3 binary64)) (+.f64 im re)) (/.f64 (neg.f64 re) (-.f64 re im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(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 im im (*.f64 re re))))
(fma.f64 (/.f64 (*.f64 (neg.f64 re) re) (neg.f64 (+.f64 im re))) (/.f64 (*.f64 (neg.f64 re) re) (-.f64 (neg.f64 re) (neg.f64 im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (*.f64 (neg.f64 re) re) (+.f64 (neg.f64 im) re)) (/.f64 (*.f64 (neg.f64 re) re) (-.f64 (neg.f64 re) im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (*.f64 (neg.f64 re) re) (+.f64 im re)) (/.f64 (*.f64 (neg.f64 re) re) (-.f64 re im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (neg.f64 re) (neg.f64 (+.f64 im re))) (/.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (neg.f64 re) (neg.f64 im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (neg.f64 re) (+.f64 (neg.f64 im) re)) (/.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (neg.f64 re) im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (neg.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 im im (*.f64 re re))))
(fma.f64 (/.f64 (*.f64 re re) (neg.f64 (+.f64 im re))) (/.f64 (*.f64 re re) (-.f64 (neg.f64 re) (neg.f64 im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (*.f64 re re) (+.f64 (neg.f64 im) re)) (/.f64 (*.f64 re re) (-.f64 (neg.f64 re) im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(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 im im (*.f64 re re))))
(fma.f64 (/.f64 re (neg.f64 (+.f64 im re))) (/.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (neg.f64 re) (neg.f64 im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 re (+.f64 (neg.f64 im) re)) (/.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (neg.f64 re) im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(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 im im (*.f64 re re))))
(fma.f64 (exp.f64 (log.f64 im)) (exp.f64 (log.f64 im)) (*.f64 (neg.f64 re) re))
(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 (neg.f64 im) im))
(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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 (neg.f64 re) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 re (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (*.f64 (neg.f64 re) re) (/.f64 (*.f64 (neg.f64 re) re) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 (*.f64 im im) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 (*.f64 re re) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (neg.f64 im) (neg.f64 im) (*.f64 (neg.f64 re) re))
(fma.f64 (neg.f64 im) (neg.f64 im) (*.f64 re re))
(fma.f64 (neg.f64 im) im (*.f64 re re))
(fma.f64 (neg.f64 re) (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (neg.f64 re) (neg.f64 re) (*.f64 (neg.f64 im) im))
(fma.f64 (neg.f64 re) (neg.f64 re) (*.f64 im im))
(fma.f64 (neg.f64 re) re (*.f64 im im))
(fma.f64 (*.f64 im im) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 im (neg.f64 im) (*.f64 re re))
(fma.f64 im im (*.f64 (neg.f64 re) re))
(fma.f64 im im (*.f64 re re))
(fma.f64 (*.f64 re re) (/.f64 (*.f64 re re) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (*.f64 re re) (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 re (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 re (neg.f64 re) (*.f64 im im))
(fma.f64 re re (*.f64 (neg.f64 im) im))
(fma.f64 re re (*.f64 im im))
(-.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(-.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(-.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(-.f64 (*.f64 im im) (*.f64 (neg.f64 re) re))
(-.f64 (*.f64 im im) (*.f64 re re))
(-.f64 (*.f64 re re) (*.f64 (neg.f64 im) im))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(+.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(+.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(+.f64 (*.f64 (neg.f64 re) re) (*.f64 im im))
(+.f64 (*.f64 (neg.f64 im) im) (*.f64 re re))
(+.f64 (*.f64 im im) (*.f64 (neg.f64 re) re))
(+.f64 (*.f64 im im) (*.f64 re re))
(+.f64 (*.f64 re re) (*.f64 (neg.f64 im) im))
(+.f64 (*.f64 re re) (*.f64 im im))
(*.f64 (exp.f64 (log.f64 re)) (exp.f64 (log.f64 re)))
(*.f64 (neg.f64 re) (neg.f64 re))
(*.f64 re re)
(pow.f64 (exp.f64 (log.f64 re)) #s(literal 2 binary64))
(pow.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal 1/2 binary64))
(pow.f64 (neg.f64 re) #s(literal 2 binary64))
(pow.f64 (*.f64 re re) #s(literal 1 binary64))
(pow.f64 re #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 re) re))
(sqrt.f64 (pow.f64 re #s(literal 4 binary64)))
(fabs.f64 (*.f64 (neg.f64 re) re))
(fabs.f64 (*.f64 re re))
(exp.f64 (*.f64 (*.f64 (log.f64 (neg.f64 re)) #s(literal 2 binary64)) #s(literal 1 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 (neg.f64 re)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 re) #s(literal 2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 (neg.f64 re)) #s(literal 2 binary64))) (sinh.f64 (*.f64 (log.f64 (neg.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 (neg.f64 im) (neg.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 (neg.f64 im) #s(literal 2 binary64))
(pow.f64 (*.f64 im im) #s(literal 1 binary64))
(pow.f64 im #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 im) im))
(sqrt.f64 (pow.f64 im #s(literal 4 binary64)))
(fabs.f64 (*.f64 (neg.f64 im) im))
(fabs.f64 (*.f64 im im))
(exp.f64 (*.f64 (*.f64 (log.f64 (neg.f64 im)) #s(literal 2 binary64)) #s(literal 1 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 (neg.f64 im)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 im) #s(literal 2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 (neg.f64 im)) #s(literal 2 binary64))) (sinh.f64 (*.f64 (log.f64 (neg.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))))

eval62.0ms (1.6%)

Memory
10.7MiB live, 100.5MiB allocated
Compiler

Compiled 4 457 to 759 computations (83% saved)

prune540.0ms (13.6%)

Memory
-94.6MiB live, 33.0MiB allocated
Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New2385243
Fresh000
Picked101
Done000
Total2395244
Accuracy
100.0%
Counts
244 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 re im)
48.2%
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
47.6%
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
92.9%
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
1.7%
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
Compiler

Compiled 100 to 70 computations (30% saved)

simplify27.0ms (0.7%)

Memory
32.3MiB live, 32.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 13 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01982
02882
14482
211482
327682
449382
565982
667682
067682
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(hypot.f64 re im)
re
im
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
(neg.f64 re)
re
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
#s(approx (+ (* re re) (* im im)) (*.f64 im im))
(*.f64 im im)
im
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
(fma.f64 re re (*.f64 im im))
re
(*.f64 im im)
im
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(/.f64 #s(literal 1/2 binary64) im)
#s(literal 1/2 binary64)
im
(*.f64 re re)
re
Outputs
(hypot.f64 re im)
(hypot.f64 im re)
re
im
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
(neg.f64 re)
re
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
#s(approx (+ (* re re) (* im im)) (*.f64 im im))
(*.f64 im im)
im
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
(hypot.f64 im re)
(fma.f64 re re (*.f64 im im))
re
(*.f64 im im)
im
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im) im))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(fma.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im) im)
(/.f64 #s(literal 1/2 binary64) im)
#s(literal 1/2 binary64)
im
(*.f64 re re)
re

localize80.0ms (2%)

Memory
-66.5MiB live, 164.5MiB allocated
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 #s(literal 1/2 binary64) im)
accuracy0.0
(*.f64 re re)
accuracy0.28384230975563396
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
accuracy4.44518017306238
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
accuracy0.0
(*.f64 im im)
accuracy0.00390625
(fma.f64 re re (*.f64 im im))
accuracy33.1822465372579
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
accuracy0.0
(*.f64 im im)
accuracy0.3821940081422561
#s(approx (+ (* re re) (* im im)) (*.f64 im im))
accuracy33.1822465372579
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
accuracy0.0
(neg.f64 re)
accuracy62.884416719348984
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
accuracy0.0
(hypot.f64 re im)
Samples
60.0ms256×0valid
Compiler

Compiled 88 to 13 computations (85.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 30.0ms
ival-hypot: 11.0ms (36.5% of total)
ival-mult: 9.0ms (29.9% of total)
ival-add: 4.0ms (13.3% of total)
ival-div: 3.0ms (10% of total)
ival-neg: 2.0ms (6.6% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series13.0ms (0.3%)

Memory
23.5MiB live, 23.5MiB allocated
Counts
12 → 32
Calls
Call 1
Inputs
(hypot.f64 re im)
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
(neg.f64 re)
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
#s(approx (+ (* re re) (* im im)) (*.f64 im im))
(*.f64 im im)
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
(fma.f64 re re (*.f64 im im))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(/.f64 #s(literal 1/2 binary64) im)
(*.f64 re re)
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)))))
(* -1 re)
(pow im 2)
(+ (pow im 2) (pow re 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/2 (/ (pow re 2) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
(+ re (* 1/2 (/ (pow im 2) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/ 1/2 im)
(* 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 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
Calls

6 calls:

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

simplify229.0ms (5.8%)

Memory
6.7MiB live, 275.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0116483
1349483
21327466
36699466
08417428
Stop Event
iter limit
node limit
Counts
32 → 30
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)))))
(* -1 re)
(pow im 2)
(+ (pow im 2) (pow re 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/2 (/ (pow re 2) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
(+ re (* 1/2 (/ (pow im 2) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/ 1/2 im)
(* 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 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
Outputs
im
(+ im (* 1/2 (/ (pow re 2) im)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))
(fma.f64 (/.f64 (fma.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) im) im) (*.f64 re re) #s(literal 1/2 binary64)) im) (*.f64 re re) im)
(+ im (* (pow re 2) (+ (* (pow re 2) (- (* 1/16 (/ (pow re 2) (pow im 5))) (* 1/8 (/ 1 (pow im 3))))) (* 1/2 (/ 1 im)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/16 binary64) re) (/.f64 re (pow.f64 im #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 3 binary64)))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
(* -1 re)
(neg.f64 re)
(pow im 2)
(*.f64 im im)
(+ (pow im 2) (pow re 2))
(fma.f64 im im (*.f64 re re))
(pow re 2)
(*.f64 re re)
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 im (*.f64 re re)) re)
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (/.f64 (*.f64 (/.f64 im re) #s(literal 1/2 binary64)) re) im #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 (*.f64 (/.f64 im re) #s(literal 1/2 binary64)) re) im #s(literal 1 binary64)))) 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/2 (/ (pow re 2) im))
(*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(*.f64 (*.f64 (-.f64 (/.f64 im (*.f64 re re)) (/.f64 #s(literal -1/2 binary64) im)) re) re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/2 binary64) re) (/.f64 (*.f64 im im) re) #s(literal -1 binary64)) re)
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (/.f64 (*.f64 (/.f64 im re) #s(literal 1/2 binary64)) re) im #s(literal 1 binary64))) (neg.f64 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 (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 (*.f64 (/.f64 im re) #s(literal 1/2 binary64)) re) im #s(literal 1 binary64)))) (neg.f64 re))
(+ re (* 1/2 (/ (pow im 2) re)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) re) (*.f64 im im) re)
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(fma.f64 (/.f64 (fma.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) re) re) (*.f64 im im) #s(literal 1/2 binary64)) re) (*.f64 im im) re)
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/16 binary64) im) (/.f64 im (pow.f64 re #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 3 binary64)))) (*.f64 im im) (/.f64 #s(literal 1/2 binary64) re)) (*.f64 im im) re)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(/ 1/2 im)
(/.f64 #s(literal 1/2 binary64) im)
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) im) (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(fma.f64 (fma.f64 (pow.f64 re #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 im #s(literal 6 binary64))) (fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 4 binary64))) #s(literal 1 binary64))) im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))
(* (pow im 2) (+ 1 (/ (pow re 2) (pow im 2))))
(fma.f64 (/.f64 (*.f64 re re) im) im (*.f64 im im))
(* -1 im)
(neg.f64 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im) (neg.f64 im))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(neg.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) im) (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
(fma.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 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 4 binary64))) #s(literal 1 binary64))) (neg.f64 im) (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im)))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(*.f64 (-.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 (/.f64 (*.f64 re re) im) im)) #s(literal 1 binary64)) (neg.f64 im))

rewrite137.0ms (3.4%)

Memory
1.1MiB live, 195.0MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01970
02870
17670
256470
0882570
Stop Event
iter limit
node limit
iter limit
Counts
12 → 303
Calls
Call 1
Inputs
(hypot.f64 re im)
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
(neg.f64 re)
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
#s(approx (+ (* re re) (* im im)) (*.f64 im im))
(*.f64 im im)
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
(fma.f64 re re (*.f64 im im))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(/.f64 #s(literal 1/2 binary64) im)
(*.f64 re re)
Outputs
(*.f64 (neg.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))) (neg.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))))
(*.f64 (fabs.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))) (fabs.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))))
(*.f64 (sqrt.f64 (neg.f64 (+.f64 im re))) (sqrt.f64 (-.f64 (neg.f64 re) (neg.f64 im))))
(*.f64 (sqrt.f64 (+.f64 (neg.f64 im) re)) (sqrt.f64 (-.f64 (neg.f64 re) im)))
(*.f64 (sqrt.f64 (+.f64 im re)) (sqrt.f64 (-.f64 re im)))
(*.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)) (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)))
(pow.f64 (exp.f64 (log.f64 (fma.f64 im im (*.f64 re re)))) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 (fma.f64 im im (*.f64 re re)) #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 (*.f64 (hypot.f64 im re) (hypot.f64 im re))) (neg.f64 (hypot.f64 im re)))
(/.f64 (neg.f64 (hypot.f64 (pow.f64 re #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64)))) (neg.f64 (hypot.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im re))))
(/.f64 (*.f64 (hypot.f64 im re) (hypot.f64 im re)) (hypot.f64 im re))
(/.f64 (hypot.f64 (pow.f64 re #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (hypot.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im re)))
(sqrt.f64 (fma.f64 im im (*.f64 re re)))
(hypot.f64 (exp.f64 (log.f64 re)) (exp.f64 (log.f64 im)))
(hypot.f64 (exp.f64 (log.f64 re)) (neg.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)) (neg.f64 re))
(hypot.f64 (exp.f64 (log.f64 im)) re)
(hypot.f64 (neg.f64 im) (exp.f64 (log.f64 re)))
(hypot.f64 (neg.f64 im) (neg.f64 re))
(hypot.f64 (neg.f64 im) re)
(hypot.f64 (neg.f64 re) (exp.f64 (log.f64 im)))
(hypot.f64 (neg.f64 re) (neg.f64 im))
(hypot.f64 (neg.f64 re) im)
(hypot.f64 im (exp.f64 (log.f64 re)))
(hypot.f64 im (neg.f64 re))
(hypot.f64 im re)
(hypot.f64 re (exp.f64 (log.f64 im)))
(hypot.f64 re (neg.f64 im))
(hypot.f64 re im)
(exp.f64 (*.f64 (log.f64 (fma.f64 im im (*.f64 re re))) #s(literal 1/2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 (fma.f64 im im (*.f64 re re))) #s(literal 1/2 binary64))) (sinh.f64 (*.f64 (log.f64 (fma.f64 im im (*.f64 re re))) #s(literal 1/2 binary64))))
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
(neg.f64 re)
(*.f64 (neg.f64 (pow.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)) #s(literal 1/4 binary64))) (neg.f64 (pow.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)) #s(literal 1/4 binary64))))
(*.f64 (fabs.f64 (pow.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)) #s(literal 1/4 binary64))) (fabs.f64 (pow.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)) #s(literal 1/4 binary64))))
(*.f64 (pow.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)) #s(literal 1/4 binary64)) (pow.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)) #s(literal 1/4 binary64)))
(pow.f64 (exp.f64 (log.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))) #s(literal 1/2 binary64))
(pow.f64 (*.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)) #s(approx (+ (* re re) (* im im)) (*.f64 im im))) #s(literal 1/4 binary64))
(pow.f64 (pow.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)) #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)) #s(literal 1/2 binary64))
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
(exp.f64 (*.f64 (log.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im))) #s(literal 1/2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im))) #s(literal 1/2 binary64))) (sinh.f64 (*.f64 (log.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im))) #s(literal 1/2 binary64))))
#s(approx (+ (* re re) (* im im)) (*.f64 im im))
(*.f64 (exp.f64 (log.f64 im)) (exp.f64 (log.f64 im)))
(*.f64 (neg.f64 im) (neg.f64 im))
(*.f64 im im)
(pow.f64 (exp.f64 (log.f64 im)) #s(literal 2 binary64))
(pow.f64 (neg.f64 im) #s(literal 2 binary64))
(pow.f64 (*.f64 im im) #s(literal 1 binary64))
(pow.f64 im #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 im) im))
(sqrt.f64 (pow.f64 im #s(literal 4 binary64)))
(fabs.f64 (*.f64 (neg.f64 im) im))
(fabs.f64 (*.f64 im im))
(exp.f64 (*.f64 (log.f64 (neg.f64 im)) #s(literal 2 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))))
(*.f64 (neg.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))) (neg.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))))
(*.f64 (fabs.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))) (fabs.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64))))
(*.f64 (sqrt.f64 (neg.f64 (+.f64 im re))) (sqrt.f64 (-.f64 (neg.f64 re) (neg.f64 im))))
(*.f64 (sqrt.f64 (+.f64 (neg.f64 im) re)) (sqrt.f64 (-.f64 (neg.f64 re) im)))
(*.f64 (sqrt.f64 (+.f64 im re)) (sqrt.f64 (-.f64 re im)))
(*.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)) (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)))
(pow.f64 (exp.f64 (log.f64 (fma.f64 im im (*.f64 re re)))) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (fma.f64 im im (*.f64 re re)) #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 (fma.f64 im im (*.f64 re re)) #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 (*.f64 (hypot.f64 im re) (hypot.f64 im re))) (neg.f64 (hypot.f64 im re)))
(/.f64 (neg.f64 (hypot.f64 (pow.f64 re #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64)))) (neg.f64 (hypot.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im re))))
(/.f64 (*.f64 (hypot.f64 im re) (hypot.f64 im re)) (hypot.f64 im re))
(/.f64 (hypot.f64 (pow.f64 re #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (hypot.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im re)))
(sqrt.f64 (fma.f64 im im (*.f64 re re)))
(hypot.f64 (exp.f64 (log.f64 re)) (exp.f64 (log.f64 im)))
(hypot.f64 (exp.f64 (log.f64 re)) (neg.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)) (neg.f64 re))
(hypot.f64 (exp.f64 (log.f64 im)) re)
(hypot.f64 (neg.f64 im) (exp.f64 (log.f64 re)))
(hypot.f64 (neg.f64 im) (neg.f64 re))
(hypot.f64 (neg.f64 im) re)
(hypot.f64 (neg.f64 re) (exp.f64 (log.f64 im)))
(hypot.f64 (neg.f64 re) (neg.f64 im))
(hypot.f64 (neg.f64 re) im)
(hypot.f64 im (exp.f64 (log.f64 re)))
(hypot.f64 im (neg.f64 re))
(hypot.f64 im re)
(hypot.f64 re (exp.f64 (log.f64 im)))
(hypot.f64 re (neg.f64 im))
(hypot.f64 re im)
(exp.f64 (*.f64 (log.f64 (fma.f64 im im (*.f64 re re))) #s(literal 1/2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 (fma.f64 im im (*.f64 re re))) #s(literal 1/2 binary64))) (sinh.f64 (*.f64 (log.f64 (fma.f64 im im (*.f64 re re))) #s(literal 1/2 binary64))))
(*.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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #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 im im (*.f64 re re)) #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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #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 im im (*.f64 re 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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))))
(*.f64 (neg.f64 (neg.f64 (+.f64 im re))) (-.f64 (neg.f64 re) (neg.f64 im)))
(*.f64 (neg.f64 (+.f64 (neg.f64 im) re)) (-.f64 (neg.f64 re) im))
(*.f64 (-.f64 (neg.f64 re) (neg.f64 im)) (neg.f64 (+.f64 im re)))
(*.f64 (neg.f64 (+.f64 im re)) (neg.f64 (-.f64 (neg.f64 re) (neg.f64 im))))
(*.f64 (neg.f64 (+.f64 im re)) (-.f64 (neg.f64 im) (neg.f64 re)))
(*.f64 (neg.f64 (+.f64 im re)) (-.f64 (neg.f64 re) (neg.f64 im)))
(*.f64 (neg.f64 (+.f64 im re)) (-.f64 re im))
(*.f64 (-.f64 (neg.f64 re) im) (+.f64 (neg.f64 im) re))
(*.f64 (+.f64 (neg.f64 im) re) (neg.f64 (-.f64 (neg.f64 re) im)))
(*.f64 (+.f64 (neg.f64 im) re) (-.f64 (neg.f64 im) re))
(*.f64 (+.f64 (neg.f64 im) re) (-.f64 im (neg.f64 re)))
(*.f64 (+.f64 (neg.f64 im) re) (-.f64 (neg.f64 re) im))
(*.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 im im (*.f64 re re)) (/.f64 (fma.f64 im im (*.f64 re re)) (fma.f64 im im (*.f64 re re))))
(*.f64 (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (/.f64 (fma.f64 im im (*.f64 re re)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(/.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (neg.f64 (+.f64 im re))) (-.f64 (neg.f64 re) (neg.f64 im)))
(/.f64 (/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (+.f64 (neg.f64 im) re)) (-.f64 (neg.f64 re) im))
(/.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 (*.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re)))) (*.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))) (fma.f64 im im (*.f64 re re)))
(/.f64 (-.f64 (*.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))))) (*.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))) (fma.f64 im im (*.f64 re re)))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) #s(literal 3 binary64))) (fma.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (fma.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (*.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re)))))))
(/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 (*.f64 (neg.f64 re) re) #s(literal 3 binary64))) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))))
(/.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) #s(literal 3 binary64))) (fma.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (-.f64 (*.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))))) (*.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))))))))
(/.f64 (-.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (*.f64 (fma.f64 im im (*.f64 re re)) (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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (*.f64 (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #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))) (*.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (fma.f64 im im (*.f64 re re))))
(/.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 im im (*.f64 re re))))
(/.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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 im #s(literal 4 binary64)) (pow.f64 re #s(literal 4 binary64))) (fma.f64 im im (*.f64 re re)))
(/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (+.f64 (pow.f64 im #s(literal 4 binary64)) (+.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 (*.f64 im re) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 im #s(literal 6 binary64)) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))))
(neg.f64 (fma.f64 (neg.f64 im) im (*.f64 (neg.f64 re) re)))
(neg.f64 (fma.f64 (neg.f64 re) re (*.f64 (neg.f64 im) im)))
(neg.f64 (fma.f64 im im (*.f64 re re)))
(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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(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 im im (*.f64 re re)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #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 im im (*.f64 re re)) #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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #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 im im (*.f64 re re)) #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 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64))) (pow.f64 re #s(literal 8 binary64))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 3 binary64)) (neg.f64 (+.f64 im re))) (/.f64 (neg.f64 re) (-.f64 (neg.f64 re) (neg.f64 im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 3 binary64)) (neg.f64 (+.f64 im re))) (/.f64 re (-.f64 (neg.f64 re) (neg.f64 im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 3 binary64)) (+.f64 (neg.f64 im) re)) (/.f64 (neg.f64 re) (-.f64 (neg.f64 re) im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 3 binary64)) (+.f64 (neg.f64 im) re)) (/.f64 re (-.f64 (neg.f64 re) im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (pow.f64 re #s(literal 3 binary64)) (+.f64 im re)) (/.f64 (neg.f64 re) (-.f64 re im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(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 im im (*.f64 re re))))
(fma.f64 (/.f64 (*.f64 (neg.f64 re) re) (neg.f64 (+.f64 im re))) (/.f64 (*.f64 (neg.f64 re) re) (-.f64 (neg.f64 re) (neg.f64 im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (*.f64 (neg.f64 re) re) (+.f64 (neg.f64 im) re)) (/.f64 (*.f64 (neg.f64 re) re) (-.f64 (neg.f64 re) im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (*.f64 (neg.f64 re) re) (+.f64 im re)) (/.f64 (*.f64 (neg.f64 re) re) (-.f64 re im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (*.f64 re re) (neg.f64 (+.f64 im re))) (/.f64 (*.f64 re re) (-.f64 (neg.f64 re) (neg.f64 im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (*.f64 re re) (+.f64 (neg.f64 im) re)) (/.f64 (*.f64 re re) (-.f64 (neg.f64 re) im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(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 im im (*.f64 re re))))
(fma.f64 (/.f64 (neg.f64 re) (neg.f64 (+.f64 im re))) (/.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (neg.f64 re) (neg.f64 im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (neg.f64 re) (+.f64 (neg.f64 im) re)) (/.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (neg.f64 re) im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 (neg.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 im im (*.f64 re re))))
(fma.f64 (/.f64 re (neg.f64 (+.f64 im re))) (/.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (neg.f64 re) (neg.f64 im))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (/.f64 re (+.f64 (neg.f64 im) re)) (/.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (neg.f64 re) im)) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(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 im im (*.f64 re re))))
(fma.f64 (exp.f64 (log.f64 re)) (exp.f64 (log.f64 re)) (*.f64 (neg.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 (neg.f64 re) re))
(fma.f64 (exp.f64 (log.f64 im)) (exp.f64 (log.f64 im)) (*.f64 re re))
(fma.f64 (*.f64 (neg.f64 re) re) (/.f64 (*.f64 (neg.f64 re) re) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 (neg.f64 re) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 re (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 (*.f64 im im) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 (*.f64 re re) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (neg.f64 im) (neg.f64 im) (*.f64 (neg.f64 re) re))
(fma.f64 (neg.f64 im) (neg.f64 im) (*.f64 re re))
(fma.f64 (neg.f64 im) im (*.f64 re re))
(fma.f64 (*.f64 re re) (/.f64 (*.f64 re re) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (*.f64 re re) (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (*.f64 im im) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(fma.f64 (neg.f64 re) (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 (neg.f64 re) (neg.f64 re) (*.f64 (neg.f64 im) im))
(fma.f64 (neg.f64 re) (neg.f64 re) (*.f64 im im))
(fma.f64 (neg.f64 re) re (*.f64 im im))
(fma.f64 im (neg.f64 im) (*.f64 re re))
(fma.f64 im im (*.f64 (neg.f64 re) re))
(fma.f64 im im (*.f64 re re))
(fma.f64 re (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(fma.f64 re (neg.f64 re) (*.f64 im im))
(fma.f64 re re (*.f64 (neg.f64 im) im))
(fma.f64 re re (*.f64 im im))
(-.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(-.f64 (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(-.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(-.f64 (*.f64 re re) (*.f64 (neg.f64 im) im))
(-.f64 (*.f64 re re) (*.f64 im im))
(-.f64 (*.f64 im im) (*.f64 (neg.f64 re) re))
(-.f64 (*.f64 im im) (*.f64 re re))
(+.f64 (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(+.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))) (/.f64 (pow.f64 im #s(literal 6 binary64)) (fma.f64 (fma.f64 im im (*.f64 re re)) (*.f64 im im) (pow.f64 re #s(literal 4 binary64)))))
(+.f64 (/.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))) (/.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 im im (*.f64 re re))))
(+.f64 (*.f64 (neg.f64 re) re) (*.f64 im im))
(+.f64 (*.f64 (neg.f64 im) im) (*.f64 re re))
(+.f64 (*.f64 re re) (*.f64 (neg.f64 im) im))
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 (neg.f64 re) re))
(+.f64 (*.f64 im im) (*.f64 re re))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im) im))
(*.f64 (/.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 (neg.f64 im) im)) (fma.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64)))) (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 im (fma.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im) im))))
(*.f64 (/.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 (neg.f64 im) im)) (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 (neg.f64 im) im))) (fma.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im) im))
(*.f64 (/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (-.f64 (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 4 binary64)) (pow.f64 (*.f64 (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))) im) #s(literal 2 binary64)))) (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 (neg.f64 im) (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))))
(*.f64 (/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))) im) #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 6 binary64)))) (fma.f64 (*.f64 (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))) im) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)) (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 4 binary64))))
(*.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re (neg.f64 im)) (/.f64 (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) (neg.f64 im)) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(*.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)) (/.f64 (fma.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im) im) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(*.f64 (fma.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im) im) (/.f64 (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(/.f64 (-.f64 (*.f64 (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im))) (*.f64 (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))) (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (/.f64 (pow.f64 re #s(literal 4 binary64)) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im))))
(/.f64 (-.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)))) (*.f64 (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))) (-.f64 (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)))))
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) #s(literal 3 binary64))) (fma.f64 (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (fma.f64 (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (*.f64 (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im))))))
(/.f64 (-.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) im) re) re) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)))
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) #s(literal 3 binary64))) (fma.f64 (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (-.f64 (*.f64 (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)))) (*.f64 (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)))))))
(/.f64 (neg.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 (neg.f64 im) im)))) (neg.f64 (neg.f64 (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im))))
(/.f64 (neg.f64 (neg.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))))) (neg.f64 (neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 im im))) (neg.f64 (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))))
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (*.f64 (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im) (*.f64 im im))) (*.f64 (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(/.f64 (fma.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)) (*.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)) (pow.f64 im #s(literal 3 binary64)))) (*.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(/.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 im im)) (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) (*.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 im im)) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) (*.f64 (fma.f64 (*.f64 im im) (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 im im)) (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 4 binary64))) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) (*.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(/.f64 (+.f64 (pow.f64 im #s(literal 9 binary64)) (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 9 binary64))) (*.f64 (-.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) (*.f64 (pow.f64 re #s(literal 6 binary64)) (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) im) #s(literal 3 binary64)))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 (neg.f64 im) im))) (neg.f64 (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(/.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 (neg.f64 im) im)) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im))
(/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)))
(neg.f64 (/.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 (neg.f64 im) im))) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(neg.f64 (/.f64 (neg.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64)))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(neg.f64 (/.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 (neg.f64 im) im)) (neg.f64 (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im))))
(neg.f64 (/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)))))
(fma.f64 (/.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 4 binary64)) (pow.f64 (*.f64 (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))) im) #s(literal 2 binary64)))) (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 (neg.f64 im) (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))) (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 (/.f64 (pow.f64 im #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))) im) #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 6 binary64)))) (fma.f64 (*.f64 (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))) im) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)) (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 4 binary64))) (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (fma.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64)))) (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 im (fma.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im) im))) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 (neg.f64 im) im))) (fma.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im) im) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (-.f64 (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 4 binary64)) (pow.f64 (*.f64 (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))) im) #s(literal 2 binary64)))) (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64)) (*.f64 (neg.f64 im) (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))) im) #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 6 binary64)))) (fma.f64 (*.f64 (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))) im) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im)) (pow.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) #s(literal 4 binary64))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 (pow.f64 im #s(literal 1/2 binary64)) (pow.f64 im #s(literal 1/2 binary64)) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))
(fma.f64 (sqrt.f64 (neg.f64 im)) (sqrt.f64 (neg.f64 im)) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))
(fma.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64) im)
(fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) im) re) (neg.f64 re) im)
(fma.f64 (*.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) #s(literal 2 binary64)) re) (/.f64 re (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (/.f64 (/.f64 #s(literal 1/2 binary64) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (neg.f64 re)) (/.f64 (neg.f64 re) im) im)
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im) im)
(fma.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) #s(literal 2 binary64)) (/.f64 (*.f64 re re) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (/.f64 (pow.f64 re #s(literal 4 binary64)) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3/2 binary64)) (pow.f64 re #s(literal 3 binary64))) (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3/2 binary64)) (pow.f64 re #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 (pow.f64 im #s(literal 3/2 binary64)) (/.f64 (pow.f64 im #s(literal 3/2 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 (*.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) im) re) re) (/.f64 (*.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) im) re) re) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (*.f64 (fabs.f64 (/.f64 #s(literal 1/2 binary64) im)) (*.f64 re re)) (/.f64 (*.f64 (fabs.f64 (/.f64 #s(literal 1/2 binary64) im)) (*.f64 re re)) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im)
(fma.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (/.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (pow.f64 re #s(literal 6 binary64)) (/.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) (neg.f64 im)) im)
(fma.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) (/.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 (*.f64 re re) (/.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) #s(literal 2 binary64)) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im) im)
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(fma.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 re re) im) im)
(fma.f64 (*.f64 im im) (/.f64 im (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 (neg.f64 re) (*.f64 (/.f64 #s(literal -1/2 binary64) im) re) im)
(fma.f64 im (/.f64 (*.f64 im im) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(fma.f64 re (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im)
(-.f64 (/.f64 (*.f64 im im) (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))) (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))))
(-.f64 (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(-.f64 im (*.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) im) re) re))
(+.f64 (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(+.f64 (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (*.f64 im re)) (*.f64 im im))))
(+.f64 (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (pow.f64 re #s(literal 4 binary64))) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)))
(+.f64 (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)) im)
(+.f64 im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))
(/.f64 #s(literal -1/2 binary64) (neg.f64 im))
(/.f64 #s(literal 1/2 binary64) im)
(neg.f64 (/.f64 #s(literal -1/2 binary64) im))
(*.f64 (exp.f64 (log.f64 re)) (exp.f64 (log.f64 re)))
(*.f64 (neg.f64 re) (neg.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 (neg.f64 re) #s(literal 2 binary64))
(pow.f64 re #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 re) re))
(sqrt.f64 (pow.f64 re #s(literal 4 binary64)))
(fabs.f64 (*.f64 (neg.f64 re) re))
(fabs.f64 (*.f64 re re))
(exp.f64 (*.f64 (log.f64 (neg.f64 re)) #s(literal 2 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))))

eval61.0ms (1.5%)

Memory
-12.5MiB live, 85.0MiB allocated
Compiler

Compiled 8 726 to 1 001 computations (88.5% saved)

prune7.0ms (0.2%)

Memory
17.8MiB live, 17.8MiB allocated
Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New3082310
Fresh000
Picked145
Done000
Total3096315
Accuracy
100.0%
Counts
315 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 re im)
48.2%
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
47.6%
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
99.6%
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im))
1.7%
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
3.8%
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))
Compiler

Compiled 76 to 51 computations (32.9% saved)

simplify12.0ms (0.3%)

Memory
9.3MiB live, 9.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 8 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01997
02695
15195
213395
330495
452895
566495
666795
066785
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))
(*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))
(/.f64 (*.f64 re re) im)
(*.f64 re re)
re
im
#s(literal 1/2 binary64)
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im)
(*.f64 (/.f64 #s(literal 1/2 binary64) im) re)
(/.f64 #s(literal 1/2 binary64) im)
#s(literal 1/2 binary64)
im
re
Outputs
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)))
(*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))
(*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))
(/.f64 (*.f64 re re) im)
(*.f64 re re)
re
im
#s(literal 1/2 binary64)
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re) im))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im)
(fma.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re) im)
(*.f64 (/.f64 #s(literal 1/2 binary64) im) re)
(/.f64 #s(literal 1/2 binary64) im)
#s(literal 1/2 binary64)
im
re

localize54.0ms (1.4%)

Memory
-10.1MiB live, 36.4MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im)
accuracy0.0
(/.f64 #s(literal 1/2 binary64) im)
accuracy0.1953125
(*.f64 (/.f64 #s(literal 1/2 binary64) im) re)
accuracy0.28384230975563396
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im))
accuracy0.0078125
(*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))
accuracy0.28384230975563396
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))
accuracy7.808777612736163
(/.f64 (*.f64 re re) im)
accuracy61.57731200066583
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))
Samples
44.0ms256×0valid
Compiler

Compiled 65 to 15 computations (76.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 35.0ms
ival-mult: 25.0ms (70.5% of total)
ival-hypot: 4.0ms (11.3% of total)
ival-div: 3.0ms (8.5% of total)
ival-add: 2.0ms (5.6% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series9.0ms (0.2%)

Memory
10.3MiB live, 10.3MiB allocated
Counts
8 → 29
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))
(*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))
(/.f64 (*.f64 re re) im)
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im)
(*.f64 (/.f64 #s(literal 1/2 binary64) im) re)
(/.f64 #s(literal 1/2 binary64) 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)))))
(* 1/2 (/ (pow re 2) im))
(/ (pow re 2) im)
(* 1/2 (/ re im))
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* -1 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
(+ re (* 1/2 (/ (pow im 2) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/ 1/2 im)
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
Calls

6 calls:

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

simplify189.0ms (4.8%)

Memory
4.9MiB live, 145.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0113454
1332454
21265439
36069436
08290404
Stop Event
iter limit
node limit
Counts
29 → 27
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)))))
(* 1/2 (/ (pow re 2) im))
(/ (pow re 2) im)
(* 1/2 (/ re im))
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* -1 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
(+ re (* 1/2 (/ (pow im 2) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/ 1/2 im)
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
Outputs
im
(+ im (* 1/2 (/ (pow re 2) im)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))
(fma.f64 (/.f64 (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal -1/8 binary64) #s(literal 1/2 binary64)) im) (*.f64 re re) im)
(+ im (* (pow re 2) (+ (* (pow re 2) (- (* 1/16 (/ (pow re 2) (pow im 5))) (* 1/8 (/ 1 (pow im 3))))) (* 1/2 (/ 1 im)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/16 binary64) re) (/.f64 re (pow.f64 im #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 3 binary64)))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
(* 1/2 (/ (pow re 2) im))
(*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(* 1/2 (/ re im))
(*.f64 (/.f64 re im) #s(literal 1/2 binary64))
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 im (*.f64 re re)) re)
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (/.f64 (*.f64 (/.f64 im re) #s(literal 1/2 binary64)) re) im #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 (*.f64 (/.f64 im re) #s(literal 1/2 binary64)) re) im #s(literal 1 binary64)))) re)
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(*.f64 (*.f64 (-.f64 (/.f64 im (*.f64 re re)) (/.f64 #s(literal -1/2 binary64) im)) re) re)
(* -1 re)
(neg.f64 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/2 binary64) re) (/.f64 (*.f64 im im) re) #s(literal -1 binary64)) re)
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(*.f64 (neg.f64 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 (*.f64 (/.f64 im re) #s(literal 1/2 binary64)) re) im #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 (neg.f64 re) (fma.f64 (pow.f64 im #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (/.f64 (*.f64 (/.f64 im re) #s(literal 1/2 binary64)) re) im #s(literal 1 binary64)))))
(+ re (* 1/2 (/ (pow im 2) re)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) re) (*.f64 im im) re)
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(fma.f64 (/.f64 (fma.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) re) re) (*.f64 im im) #s(literal 1/2 binary64)) re) (*.f64 im im) re)
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/16 binary64) im) (/.f64 im (pow.f64 re #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 3 binary64)))) (*.f64 im im) (/.f64 #s(literal 1/2 binary64) re)) (*.f64 im im) re)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(/ 1/2 im)
(/.f64 #s(literal 1/2 binary64) im)
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) im) (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(fma.f64 (fma.f64 (pow.f64 re #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 im #s(literal 6 binary64))) (fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 4 binary64))) #s(literal 1 binary64))) im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))
(* -1 im)
(neg.f64 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im) (neg.f64 im))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(neg.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) im) (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
(fma.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 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 4 binary64))) #s(literal 1 binary64))) (neg.f64 im) (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im)))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(*.f64 (-.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 (/.f64 (*.f64 re re) im) im)) #s(literal 1 binary64)) (neg.f64 im))

rewrite134.0ms (3.4%)

Memory
-5.0MiB live, 86.2MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01988
02686
19786
261886
0894676
Stop Event
iter limit
node limit
iter limit
Counts
8 → 123
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))
(*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))
(/.f64 (*.f64 re re) im)
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im)
(*.f64 (/.f64 #s(literal 1/2 binary64) im) re)
(/.f64 #s(literal 1/2 binary64) im)
Outputs
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)))
(*.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) im) re) (neg.f64 re))
(*.f64 (*.f64 #s(literal -1/2 binary64) re) (/.f64 (neg.f64 re) im))
(*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im))
(*.f64 (*.f64 (neg.f64 re) re) (/.f64 #s(literal -1/2 binary64) im))
(*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 (neg.f64 re) re) im))
(*.f64 (neg.f64 re) (*.f64 (/.f64 (neg.f64 re) im) #s(literal 1/2 binary64)))
(*.f64 (neg.f64 re) (*.f64 (/.f64 #s(literal -1/2 binary64) im) re))
(*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re)
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re))
(*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 re re) im))
(*.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im))
(*.f64 re (*.f64 (/.f64 #s(literal 1/2 binary64) im) re))
(/.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) re) re) (neg.f64 im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(neg.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im)))
(*.f64 (/.f64 (neg.f64 re) im) (neg.f64 re))
(*.f64 (/.f64 re im) re)
(*.f64 (neg.f64 re) (/.f64 (neg.f64 re) im))
(*.f64 re (/.f64 re im))
(/.f64 (*.f64 (neg.f64 re) re) (neg.f64 im))
(/.f64 (*.f64 re re) im)
(neg.f64 (/.f64 (*.f64 (neg.f64 re) re) im))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re) im))
(*.f64 (/.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64) (pow.f64 im #s(literal 3 binary64))) (-.f64 (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 4 binary64)) (pow.f64 (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im) #s(literal 2 binary64)))) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (neg.f64 im) (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))))))
(*.f64 (/.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64) (pow.f64 im #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im) #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 6 binary64)))) (fma.f64 (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)) (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 4 binary64))))
(*.f64 (/.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (neg.f64 im) im)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (neg.f64 im) im))) (fma.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re) im))
(*.f64 (/.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (neg.f64 im) im)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64) (pow.f64 im #s(literal 3 binary64)))) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 im (fma.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re) im))))
(*.f64 (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re (neg.f64 im)) (/.f64 (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) (neg.f64 im)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(*.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)) (/.f64 (fma.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re) im) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(*.f64 (fma.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(/.f64 (-.f64 (*.f64 (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im))) (*.f64 (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))) (fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (/.f64 (pow.f64 re #s(literal 4 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im))))
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))) (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))) (*.f64 (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))) (-.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))))
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) #s(literal 3 binary64))) (fma.f64 (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (fma.f64 (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (*.f64 (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im))))))
(/.f64 (-.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im)) #s(literal 3 binary64))) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))
(/.f64 (+.f64 (pow.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) #s(literal 3 binary64))) (fma.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))) (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))) (-.f64 (*.f64 (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))) (*.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 im im))) (neg.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im)))))
(/.f64 (neg.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (neg.f64 im) im)))) (neg.f64 (neg.f64 (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im))))
(/.f64 (neg.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64) (pow.f64 im #s(literal 3 binary64))))) (neg.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))))
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (*.f64 (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im) (*.f64 im im))) (*.f64 (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(/.f64 (fma.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)) (*.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)) (pow.f64 im #s(literal 3 binary64)))) (*.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(/.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 im im)) (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))))
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) (*.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 im im)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) (*.f64 (fma.f64 (*.f64 im im) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 im im)) (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 4 binary64))) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) (*.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64) (pow.f64 im #s(literal 3 binary64))) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(/.f64 (+.f64 (pow.f64 im #s(literal 9 binary64)) (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 9 binary64))) (*.f64 (fma.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64) (pow.f64 im #s(literal 3 binary64))) (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 6 binary64))) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (neg.f64 im) im))) (neg.f64 (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64) (pow.f64 im #s(literal 3 binary64)))) (neg.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(/.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (neg.f64 im) im)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im))
(/.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64) (pow.f64 im #s(literal 3 binary64))) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))
(neg.f64 (/.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (neg.f64 im) im))) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(neg.f64 (/.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64) (pow.f64 im #s(literal 3 binary64)))) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(neg.f64 (/.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (neg.f64 im) im)) (neg.f64 (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im))))
(neg.f64 (/.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64) (pow.f64 im #s(literal 3 binary64))) (neg.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))))
(fma.f64 (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64) (pow.f64 im #s(literal 3 binary64)))) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 im (fma.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re) im))) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (neg.f64 im) im))) (fma.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64)) (-.f64 (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 4 binary64)) (pow.f64 (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im) #s(literal 2 binary64)))) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (neg.f64 im) (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(fma.f64 (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 3 binary64)) #s(literal 1/8 binary64)) (+.f64 (pow.f64 (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im) #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 6 binary64)))) (fma.f64 (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)) (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 4 binary64))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(fma.f64 (/.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 4 binary64)) (pow.f64 (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im) #s(literal 2 binary64)))) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (neg.f64 im) (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))))) (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))))
(fma.f64 (/.f64 (pow.f64 im #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im) #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 6 binary64)))) (fma.f64 (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)) (pow.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) #s(literal 4 binary64))) (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))))
(fma.f64 (pow.f64 im #s(literal 1/2 binary64)) (pow.f64 im #s(literal 1/2 binary64)) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)))
(fma.f64 (sqrt.f64 (neg.f64 im)) (sqrt.f64 (neg.f64 im)) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)))
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)))
(fma.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (/.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (/.f64 (/.f64 #s(literal 1/2 binary64) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) im) re) (neg.f64 re) im)
(fma.f64 (*.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) #s(literal 2 binary64)) re) (/.f64 re (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (/.f64 (pow.f64 re #s(literal 4 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) #s(literal 2 binary64)) (/.f64 (*.f64 re re) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3/2 binary64)) (pow.f64 re #s(literal 3 binary64))) (/.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3/2 binary64)) (pow.f64 re #s(literal 3 binary64))) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(fma.f64 (pow.f64 im #s(literal 3/2 binary64)) (/.f64 (pow.f64 im #s(literal 3/2 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))))
(fma.f64 (*.f64 #s(literal -1/2 binary64) re) (/.f64 (neg.f64 re) im) im)
(fma.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im)) (/.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (fabs.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) (/.f64 (fabs.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(fma.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(fma.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re) im)
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im) im)
(fma.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (/.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 2 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (pow.f64 re #s(literal 6 binary64)) (/.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(fma.f64 (*.f64 (neg.f64 re) re) (/.f64 #s(literal -1/2 binary64) im) im)
(fma.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 (neg.f64 re) re) im) im)
(fma.f64 (neg.f64 re) (*.f64 (/.f64 (neg.f64 re) im) #s(literal 1/2 binary64)) im)
(fma.f64 (neg.f64 re) (*.f64 (/.f64 #s(literal -1/2 binary64) im) re) im)
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) (/.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im)
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal 1/2 binary64) im)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im)
(fma.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64) im)
(fma.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) (/.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(fma.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 re re) im) im)
(fma.f64 (*.f64 im im) (/.f64 im (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))))
(fma.f64 im (/.f64 (*.f64 im im) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))))
(fma.f64 (*.f64 re re) (/.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) #s(literal 2 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im) im)
(fma.f64 re (/.f64 (*.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) #s(literal 2 binary64)) re) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(fma.f64 re (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) im)
(-.f64 (/.f64 (*.f64 im im) (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im)))) (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im)))))
(-.f64 (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(-.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im)))
(+.f64 (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))) (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))))
(+.f64 (*.f64 (pow.f64 (/.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64)) (/.f64 (pow.f64 re #s(literal 6 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im)))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64) (*.f64 (+.f64 im (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im))) im))))
(+.f64 (/.f64 (*.f64 (pow.f64 (/.f64 (*.f64 re re) im) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)) (/.f64 (*.f64 (neg.f64 im) im) (-.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)))
(+.f64 (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)) im)
(+.f64 im (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)))
(*.f64 (/.f64 re im) #s(literal 1/2 binary64))
(*.f64 #s(literal -1/2 binary64) (/.f64 (neg.f64 re) im))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) re)
(*.f64 #s(literal 1/2 binary64) (/.f64 re im))
(*.f64 re (/.f64 #s(literal 1/2 binary64) im))
(/.f64 (neg.f64 (*.f64 #s(literal -1/2 binary64) re)) im)
(/.f64 (*.f64 #s(literal -1/2 binary64) re) (neg.f64 im))
(/.f64 (*.f64 #s(literal 1/2 binary64) re) im)
(neg.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) im) re))
(/.f64 #s(literal -1/2 binary64) (neg.f64 im))
(/.f64 #s(literal 1/2 binary64) im)
(neg.f64 (/.f64 #s(literal -1/2 binary64) im))

eval17.0ms (0.4%)

Memory
21.1MiB live, 21.1MiB allocated
Compiler

Compiled 5 966 to 563 computations (90.6% saved)

prune44.0ms (1.1%)

Memory
-31.3MiB live, 13.3MiB allocated
Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New1481149
Fresh000
Picked022
Done044
Total1487155
Accuracy
100.0%
Counts
155 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 re im)
48.2%
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
47.6%
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
99.6%
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im))
1.7%
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
3.8%
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))
3.8%
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))))
Compiler

Compiled 102 to 67 computations (34.3% saved)

simplify11.0ms (0.3%)

Memory
10.8MiB live, 10.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01559
01859
14159
211659
328759
451859
565559
666059
066052
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)))
(*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))
(/.f64 re im)
re
im
(*.f64 #s(literal 1/2 binary64) re)
#s(literal 1/2 binary64)
Outputs
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64))))
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)))
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)))
(*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64))
(/.f64 re im)
re
im
(*.f64 #s(literal 1/2 binary64) re)
#s(literal 1/2 binary64)

localize115.0ms (2.9%)

Memory
-26.6MiB live, 45.1MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 #s(literal 1/2 binary64) re)
accuracy0.11328125
(*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))
accuracy0.28384230975563396
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))))
accuracy61.57731200066583
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)))
Samples
109.0ms256×0valid
Compiler

Compiled 35 to 13 computations (62.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 45.0ms
ival-hypot: 34.0ms (76.1% of total)
ival-mult: 5.0ms (11.2% of total)
ival-div: 3.0ms (6.7% of total)
ival-add: 1.0ms (2.2% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series7.0ms (0.2%)

Memory
4.0MiB live, 4.0MiB allocated
Counts
5 → 28
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)))
(*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))
(/.f64 re im)
(*.f64 #s(literal 1/2 binary64) re)
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)))))
(* 1/2 (/ (pow re 2) im))
(/ re im)
(* 1/2 re)
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* -1 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
(+ re (* 1/2 (/ (pow im 2) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
Calls

6 calls:

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

simplify146.0ms (3.7%)

Memory
15.0MiB live, 139.4MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0112447
1330447
21259432
36061429
08283397
Stop Event
iter limit
node limit
Counts
28 → 26
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)))))
(* 1/2 (/ (pow re 2) im))
(/ re im)
(* 1/2 re)
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* -1 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
(+ re (* 1/2 (/ (pow im 2) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
Outputs
im
(+ im (* 1/2 (/ (pow re 2) im)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im) im)
(+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))
(fma.f64 (/.f64 (fma.f64 (/.f64 (/.f64 (*.f64 re re) im) im) #s(literal -1/8 binary64) #s(literal 1/2 binary64)) im) (*.f64 re re) im)
(+ im (* (pow re 2) (+ (* (pow re 2) (- (* 1/16 (/ (pow re 2) (pow im 5))) (* 1/8 (/ 1 (pow im 3))))) (* 1/2 (/ 1 im)))))
(fma.f64 (pow.f64 re #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/16 binary64) re) (/.f64 re (pow.f64 im #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 3 binary64)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im) im))
(* 1/2 (/ (pow re 2) im))
(*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))
(/ re im)
(/.f64 re im)
(* 1/2 re)
(*.f64 #s(literal 1/2 binary64) re)
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(fma.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) im) (/.f64 im (*.f64 re re)) re)
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (/.f64 (*.f64 (/.f64 im re) #s(literal 1/2 binary64)) re) im #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 (*.f64 (/.f64 im re) #s(literal 1/2 binary64)) re) im #s(literal 1 binary64)))) re)
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(*.f64 (*.f64 (-.f64 (/.f64 im (*.f64 re re)) (/.f64 #s(literal -1/2 binary64) im)) re) re)
(* -1 re)
(neg.f64 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/2 binary64) re) (/.f64 (*.f64 im im) re) #s(literal -1 binary64)) re)
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(*.f64 (neg.f64 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 (*.f64 (/.f64 im re) #s(literal 1/2 binary64)) re) im #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 (neg.f64 re) (fma.f64 (pow.f64 im #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 re #s(literal 6 binary64))) (fma.f64 (pow.f64 im #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 4 binary64))) (fma.f64 (/.f64 (*.f64 (/.f64 im re) #s(literal 1/2 binary64)) re) im #s(literal 1 binary64)))))
(+ re (* 1/2 (/ (pow im 2) re)))
(fma.f64 (/.f64 #s(literal 1/2 binary64) re) (*.f64 im im) re)
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(fma.f64 (/.f64 (fma.f64 (/.f64 (/.f64 #s(literal -1/8 binary64) re) re) (*.f64 im im) #s(literal 1/2 binary64)) re) (*.f64 im im) re)
(+ re (* (pow im 2) (+ (* (pow im 2) (- (* 1/16 (/ (pow im 2) (pow re 5))) (* 1/8 (/ 1 (pow re 3))))) (* 1/2 (/ 1 re)))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/16 binary64) im) (/.f64 im (pow.f64 re #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 re #s(literal 3 binary64)))) (*.f64 im im) (/.f64 #s(literal 1/2 binary64) re)) (*.f64 im im) re)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im) im)
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im) im)
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 (*.f64 #s(literal -1/8 binary64) im) (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im) im))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(fma.f64 (fma.f64 (pow.f64 re #s(literal 6 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 im #s(literal 6 binary64))) (fma.f64 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 4 binary64))) #s(literal 1 binary64))) im (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64)))
(* -1 im)
(neg.f64 im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(fma.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im) (neg.f64 im))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(neg.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) im) (/.f64 (pow.f64 re #s(literal 4 binary64)) (pow.f64 im #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im) im)))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (+ (* 1/16 (/ (pow re 6) (pow im 6))) (* 1/2 (/ (pow re 2) (pow im 2))))))))
(fma.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 (pow.f64 re #s(literal 4 binary64)) (/.f64 #s(literal -1/8 binary64) (pow.f64 im #s(literal 4 binary64))) #s(literal 1 binary64))) (neg.f64 im) (*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) im)))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(*.f64 (-.f64 (*.f64 #s(literal -1/2 binary64) (/.f64 (/.f64 (*.f64 re re) im) im)) #s(literal 1 binary64)) (neg.f64 im))

rewrite126.0ms (3.2%)

Memory
-16.9MiB live, 237.9MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01556
01856
17356
257456
0898349
Stop Event
iter limit
node limit
iter limit
Counts
5 → 23
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re)))
(*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))
(/.f64 re im)
(*.f64 #s(literal 1/2 binary64) re)
Outputs
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64))))
#s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (neg.f64 re) #s(literal 1/2 binary64)) (/.f64 (neg.f64 re) im))
(*.f64 (*.f64 (/.f64 re im) re) #s(literal 1/2 binary64))
(*.f64 (*.f64 (/.f64 #s(literal -1/2 binary64) im) re) (neg.f64 re))
(*.f64 (*.f64 (/.f64 re im) #s(literal 1/2 binary64)) re)
(*.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 re re) (neg.f64 im)))
(*.f64 (neg.f64 re) (*.f64 (/.f64 #s(literal -1/2 binary64) im) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im))
(*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (/.f64 re im) re))
(*.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im))
(*.f64 re (*.f64 (/.f64 re im) #s(literal 1/2 binary64)))
(/.f64 (*.f64 re (*.f64 #s(literal -1/2 binary64) re)) (neg.f64 im))
(/.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 re re)) (neg.f64 im))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) im)
(neg.f64 (*.f64 (*.f64 (/.f64 re im) re) #s(literal -1/2 binary64)))
(/.f64 (neg.f64 re) (neg.f64 im))
(/.f64 re im)
(neg.f64 (/.f64 (neg.f64 re) im))
(*.f64 #s(literal 1/2 binary64) re)
(*.f64 re #s(literal 1/2 binary64))

eval5.0ms (0.1%)

Memory
10.6MiB live, 10.6MiB allocated
Compiler

Compiled 1 306 to 208 computations (84.1% saved)

prune5.0ms (0.1%)

Memory
11.1MiB live, 11.1MiB allocated
Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New48048
Fresh000
Picked011
Done066
Total48755
Accuracy
100.0%
Counts
55 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 re im)
48.2%
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
47.6%
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
99.6%
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im))
1.7%
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
3.8%
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))
3.8%
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))))
Compiler

Compiled 229 to 104 computations (54.6% saved)

regimes64.0ms (1.6%)

Memory
-22.5MiB live, 24.3MiB allocated
Counts
9 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im))
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 re re) im))
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(hypot.f64 re im)
Outputs
(hypot.f64 re im)
Calls

6 calls:

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

Compiled 23 to 21 computations (8.7% saved)

regimes16.0ms (0.4%)

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

6 calls:

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

Compiled 23 to 21 computations (8.7% saved)

regimes15.0ms (0.4%)

Memory
-16.0MiB live, 30.3MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))))
#s(approx (sqrt (+ (* re re) (* im im))) #s(approx (+ (* (/ 1/2 im) (* re re)) im) (*.f64 (/.f64 (*.f64 re re) im) #s(literal 1/2 binary64))))
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
Outputs
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
Calls

6 calls:

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

Compiled 23 to 21 computations (8.7% saved)

regimes10.0ms (0.3%)

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

6 calls:

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

Compiled 23 to 21 computations (8.7% saved)

regimes9.0ms (0.2%)

Memory
-24.2MiB live, 20.4MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
Outputs
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
Calls

6 calls:

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

Compiled 23 to 21 computations (8.7% saved)

simplify11.0ms (0.3%)

Memory
17.7MiB live, 17.7MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01950
13450
27450
313150
416850
Stop Event
saturated
Calls
Call 1
Inputs
(hypot.f64 re im)
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im))
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))
Outputs
(hypot.f64 re im)
#s(approx (sqrt (+ (* re re) (* im im))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) im) re) re im))
(sqrt.f64 (fma.f64 re re (*.f64 im im)))
(sqrt.f64 #s(approx (+ (* re re) (* im im)) (*.f64 im im)))
#s(approx (sqrt (+ (* re re) (* im im))) (neg.f64 re))

derivations376.0ms (9.5%)

Memory
-36.9MiB live, 301.1MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01970
02870
17670
256470
0882570
0104441
1323441
21251437
36235435
08273400
0621
01021
13921
234621
3588921
0819715
Stop Event
done
iter limit
node limit
iter limit
iter limit
node limit
iter limit
node limit
iter limit
Compiler

Compiled 50 to 19 computations (62% saved)

preprocess44.0ms (1.1%)

Memory
8.6MiB live, 54.6MiB allocated
Remove

(sort re im)

(abs re)

(abs im)

Compiler

Compiled 134 to 68 computations (49.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...