math.abs on complex

Time bar (total: 3.2s)

analyze1.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
100%99.9%0%0.1%0%0%0%3
Compiler

Compiled 11 to 7 computations (36.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-add: 0.0ms (0% of total)
ival-mult: 0.0ms (0% of total)
const: 0.0ms (0% of total)
ival-sqrt: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

sample928.0ms (28.7%)

Results
704.0ms8256×0valid
Precisions
Click to see histograms. Total time spent on operations: 441.0ms
ival-mult: 298.0ms (67.6% of total)
ival-sqrt: 77.0ms (17.5% of total)
ival-add: 53.0ms (12% of total)
const: 8.0ms (1.8% of total)
backward-pass: 3.0ms (0.7% of total)
Bogosity

preprocess26.0ms (0.8%)

Algorithm
egg-herbie
Rules
164×fmsub-define
160×fnmadd-define
148×fnmsub-define
104×fmm-def
92×sum3-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01820
14820
29920
322120
443220
558920
666420
766720
063
1113
2133
0133
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
(sqrt (+ (* re re) (* im im)))
Outputs
(sqrt (+ (* re re) (* im im)))
(hypot.f64 re im)
Call 2
Inputs
(sqrt (+ (* re re) (* im im)))
(sqrt (+ (* (neg re) (neg re)) (* im im)))
(sqrt (+ (* re re) (* (neg im) (neg im))))
(neg (sqrt (+ (* (neg re) (neg re)) (* im im))))
(neg (sqrt (+ (* re re) (* (neg im) (neg im)))))
(sqrt (+ (* im im) (* re re)))
Outputs
(sqrt (+ (* re re) (* im im)))
(hypot re im)
(sqrt (+ (* (neg re) (neg re)) (* im im)))
(hypot re im)
(sqrt (+ (* re re) (* (neg im) (neg im))))
(hypot re im)
(neg (sqrt (+ (* (neg re) (neg re)) (* im im))))
(neg (hypot re im))
(neg (sqrt (+ (* re re) (* (neg im) (neg im)))))
(neg (hypot re im))
(sqrt (+ (* im im) (* re re)))
(hypot re im)
Symmetry

(abs re)

(abs im)

(sort re im)

explain111.0ms (3.4%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1280-0-(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
00-0-im
00-0-(*.f64 im im)
00-0-(*.f64 re re)
00-0-re
00-0-(+.f64 (*.f64 re re) (*.f64 im im))
Results
82.0ms512×0valid
Compiler

Compiled 62 to 20 computations (67.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-mult: 13.0ms (63.1% of total)
ival-sqrt: 4.0ms (19.4% of total)
ival-add: 3.0ms (14.6% of total)
const: 1.0ms (4.9% of total)
backward-pass: 0.0ms (0% of total)

eval0.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 re im)
Compiler

Compiled 5 to 3 computations (40% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Localize:

Found 1 expressions of interest:

NewMetricScoreProgram
cost-diff0
(hypot.f64 re im)
Rules
fma-lowering-fma.f32
fma-define
+-lowering-+.f64
hypot-lowering-hypot.f64
*-lowering-*.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
065
1115
2135
0135
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(sqrt (+ (* re re) (* im im)))
re
im
Outputs
(sqrt (+ (* re re) (* im im)))
(hypot.f64 re im)
re
im

localize34.0ms (1.1%)

Localize:

Found 1 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(hypot.f64 re im)
Results
28.0ms256×0valid
Compiler

Compiled 8 to 4 computations (50% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
compiled-spec: 9.0ms (53.3% of total)
ival-mult: 4.0ms (23.7% of total)
ival-sqrt: 2.0ms (11.9% of total)
ival-add: 1.0ms (5.9% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series3.0ms (0.1%)

Counts
1 → 24
Calls
Call 1
Inputs
#<alt (sqrt (+ (* re re) (* im im)))>
Outputs
#<alt im>
#<alt (+ im (* 1/2 (/ (pow re 2) im)))>
#<alt (+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))>
#<alt (+ 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)))))>
#<alt re>
#<alt (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))>
#<alt (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))>
#<alt (* 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)))))))>
#<alt (* -1 re)>
#<alt (* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))>
#<alt (* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))>
#<alt (* -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))))))))>
#<alt re>
#<alt (+ re (* 1/2 (/ (pow im 2) re)))>
#<alt (+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))>
#<alt (+ 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)))))>
#<alt im>
#<alt (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))>
#<alt (* 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)))))))>
#<alt (* -1 im)>
#<alt (* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))>
#<alt (* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))>
#<alt (* -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
@0
(sqrt (+ (* re re) (* im im)))
1.0ms
im
@inf
(sqrt (+ (* re re) (* im im)))
0.0ms
re
@inf
(sqrt (+ (* re re) (* im im)))
0.0ms
im
@0
(sqrt (+ (* re re) (* im im)))
0.0ms
im
@-inf
(sqrt (+ (* re re) (* im im)))

rewrite278.0ms (8.6%)

Algorithm
batch-egg-rewrite
Rules
2274×fma-lowering-fma.f32
2274×fma-lowering-fma.f64
2148×*-lowering-*.f32
2148×*-lowering-*.f64
1732×fma-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
063
1293
22193
322823
084003
Stop Event
iter limit
node limit
Counts
1 → 46
Calls
Call 1
Inputs
(sqrt (+ (* re re) (* im im)))
Outputs
(exp.f64 (*.f64 #s(literal 1/2 binary64) (log.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))
(exp.f64 (*.f64 (log.f64 (pow.f64 (+.f64 (*.f64 re re) (*.f64 im im)) #s(literal 1/4 binary64))) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im im)) (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 1/4 binary64)))
(exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 (*.f64 re re) (*.f64 im im))) #s(literal 1/4 binary64)) #s(literal 2 binary64)))
(exp.f64 (+.f64 (*.f64 (log.f64 (+.f64 (*.f64 re re) (*.f64 im im))) #s(literal 1/4 binary64)) (*.f64 (log.f64 (+.f64 (*.f64 re re) (*.f64 im im))) #s(literal 1/4 binary64))))
(hypot.f64 re im)
(hypot.f64 im re)
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(/.f64 (hypot.f64 (*.f64 re (*.f64 re re)) (*.f64 im (*.f64 im im))) (sqrt.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im))))))
(/.f64 (sqrt.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im))))) (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 #s(literal 1 binary64) (sqrt.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re re) (*.f64 im im)))))
(/.f64 #s(literal 1 binary64) (/.f64 (sqrt.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im))))) (hypot.f64 (*.f64 re (*.f64 re re)) (*.f64 im (*.f64 im im)))))
(/.f64 #s(literal 1 binary64) (/.f64 (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (sqrt.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im)))))))
(/.f64 (sqrt.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 im im) (*.f64 im (*.f64 im (*.f64 im im))))))) (sqrt.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im)))))))
(/.f64 (sqrt.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im)))))) (sqrt.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))))
(/.f64 (sqrt.f64 (-.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 re (*.f64 re (*.f64 re re))))) (sqrt.f64 (-.f64 (*.f64 im im) (*.f64 re re))))
(/.f64 (neg.f64 (hypot.f64 (*.f64 re (*.f64 re re)) (*.f64 im (*.f64 im im)))) (neg.f64 (sqrt.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im)))))))
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im)))))) (neg.f64 (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im)))))
(pow.f64 (+.f64 (*.f64 re re) (*.f64 im im)) #s(literal 1/2 binary64))
(pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re re) (*.f64 im im))) #s(literal -1/2 binary64))
(pow.f64 (pow.f64 (+.f64 (*.f64 re re) (*.f64 im im)) #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im im)) (+.f64 (*.f64 re re) (*.f64 im im))) #s(literal 1/4 binary64))
(pow.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re re) (*.f64 im im)))) #s(literal -1 binary64))
(pow.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im))))) (hypot.f64 (*.f64 re (*.f64 re re)) (*.f64 im (*.f64 im im)))) #s(literal -1 binary64))
(pow.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (sqrt.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im)))))) #s(literal -1 binary64))
(pow.f64 (exp.f64 #s(literal 1/2 binary64)) (log.f64 (+.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 (hypot.f64 re im) (pow.f64 (*.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 1/2 binary64)))
(*.f64 (hypot.f64 re im) (pow.f64 (/.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (-.f64 (*.f64 re re) (*.f64 im im))) #s(literal 1/2 binary64)))
(*.f64 (hypot.f64 (*.f64 re (*.f64 re re)) (*.f64 im (*.f64 im im))) (pow.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im)))) #s(literal -1/2 binary64)))
(*.f64 (sqrt.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im))))) (pow.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im im)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im)))))) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im))))) (pow.f64 (/.f64 (+.f64 (*.f64 re re) (*.f64 im im)) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im))))) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im))))) (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) #s(literal -1/2 binary64)))
(*.f64 (pow.f64 (+.f64 (*.f64 re re) (*.f64 im im)) #s(literal 1/4 binary64)) (pow.f64 (+.f64 (*.f64 re re) (*.f64 im im)) #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im)))) #s(literal -1/2 binary64)) (hypot.f64 (*.f64 re (*.f64 re re)) (*.f64 im (*.f64 im im))))
(*.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) #s(literal -1/2 binary64)) (sqrt.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im))))))
(*.f64 (sqrt.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 im im) (*.f64 im (*.f64 im (*.f64 im im))))))) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im)))))) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im)))))) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 (-.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 re (*.f64 re (*.f64 re re))))) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 im im) (*.f64 re re))) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 (/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im)))) (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im))))) #s(literal 1/2 binary64)) (hypot.f64 re im))
(*.f64 (pow.f64 #s(literal 1 binary64) #s(literal 1/2 binary64)) (hypot.f64 re im))
(*.f64 (pow.f64 (/.f64 (+.f64 (*.f64 re re) (*.f64 im im)) (+.f64 re im)) #s(literal 1/2 binary64)) (pow.f64 (+.f64 re im) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 (/.f64 (+.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 im im) (*.f64 im (*.f64 im (*.f64 im im))))) (+.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 (*.f64 (*.f64 im im) (*.f64 im (*.f64 im (*.f64 im im)))) (*.f64 (*.f64 (-.f64 (*.f64 im im) (*.f64 re re)) (-.f64 (*.f64 im im) (*.f64 re re))) (-.f64 (*.f64 im im) (*.f64 re re)))))) #s(literal 1/2 binary64)) (sqrt.f64 (+.f64 (*.f64 (*.f64 re re) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 (*.f64 im (*.f64 im (-.f64 (*.f64 im im) (*.f64 re re)))) (-.f64 (*.f64 im (*.f64 im (-.f64 (*.f64 im im) (*.f64 re re)))) (*.f64 re (*.f64 re (*.f64 re re))))))))
(*.f64 (pow.f64 (/.f64 (+.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 im im) (*.f64 im (*.f64 im (*.f64 im im))))) (-.f64 (*.f64 (*.f64 re re) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (-.f64 (*.f64 im im) (*.f64 re re)) (-.f64 (*.f64 im im) (*.f64 re re)))))) #s(literal 1/2 binary64)) (sqrt.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (-.f64 (*.f64 im im) (*.f64 re re)))))))
(*.f64 (pow.f64 (/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im)))) (-.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 im im) (*.f64 im (*.f64 im (*.f64 im im)))))) #s(literal 1/2 binary64)) (sqrt.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 im im))))))
(*.f64 (pow.f64 (pow.f64 (+.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 im im) (*.f64 im (*.f64 im (*.f64 im im))))) #s(literal 1/4 binary64)) #s(literal 2 binary64)) (pow.f64 (pow.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im)))) #s(literal -1/4 binary64)) #s(literal 2 binary64)))
(*.f64 (pow.f64 (pow.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im)))) #s(literal 1/4 binary64)) #s(literal 2 binary64)) (pow.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) #s(literal -1/4 binary64)) #s(literal 2 binary64)))

simplify200.0ms (6.2%)

Algorithm
egg-herbie
Rules
3804×*-lowering-*.f32
3804×*-lowering-*.f64
2068×+-lowering-+.f64
2068×+-lowering-+.f32
1652×fnmadd-define
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
099386
1292340
21044320
34052308
08374308
Stop Event
iter limit
node limit
Counts
24 → 24
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)))))
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -1 re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
re
(+ 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
(* 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))))))))
Outputs
im
(+ im (* 1/2 (/ (pow re 2) im)))
(+.f64 im (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im))))
(+ im (* (pow re 2) (+ (* -1/8 (/ (pow re 2) (pow im 3))) (* 1/2 (/ 1 im)))))
(+.f64 im (*.f64 (*.f64 re re) (+.f64 (/.f64 (*.f64 (*.f64 re re) #s(literal -1/8 binary64)) (*.f64 im (*.f64 im im))) (/.f64 #s(literal 1/2 binary64) 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)))))
(+.f64 im (*.f64 (*.f64 re re) (+.f64 (/.f64 #s(literal 1/2 binary64) im) (*.f64 (*.f64 re re) (+.f64 (/.f64 (*.f64 re (*.f64 re #s(literal 1/16 binary64))) (pow.f64 im #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (*.f64 im (*.f64 im im))))))))
re
(* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2)))))
(+.f64 re (*.f64 im (/.f64 (*.f64 im #s(literal 1/2 binary64)) re)))
(* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2))))))
(+.f64 (*.f64 im (/.f64 (*.f64 im #s(literal 1/2 binary64)) re)) (*.f64 re (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 #s(literal -1/8 binary64) (*.f64 im (*.f64 im (*.f64 im im)))) (*.f64 re (*.f64 re (*.f64 re 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 (*.f64 im (/.f64 (*.f64 im #s(literal 1/2 binary64)) re)) (*.f64 re (+.f64 (/.f64 (*.f64 #s(literal 1/16 binary64) (pow.f64 im #s(literal 6 binary64))) (pow.f64 re #s(literal 6 binary64))) (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 #s(literal -1/8 binary64) (*.f64 im (*.f64 im (*.f64 im im)))) (*.f64 re (*.f64 re (*.f64 re re))))))))
(* -1 re)
(-.f64 #s(literal 0 binary64) re)
(* -1 (* re (+ 1 (* 1/2 (/ (pow im 2) (pow re 2))))))
(-.f64 (-.f64 #s(literal 0 binary64) re) (*.f64 im (/.f64 (*.f64 im #s(literal 1/2 binary64)) re)))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (* 1/2 (/ (pow im 2) (pow re 2)))))))
(-.f64 (*.f64 re (+.f64 #s(literal -1 binary64) (*.f64 #s(literal 1/8 binary64) (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 re (*.f64 re (*.f64 re re))))))) (*.f64 im (/.f64 (*.f64 im #s(literal 1/2 binary64)) re)))
(* -1 (* re (+ 1 (+ (* -1/8 (/ (pow im 4) (pow re 4))) (+ (* 1/16 (/ (pow im 6) (pow re 6))) (* 1/2 (/ (pow im 2) (pow re 2))))))))
(-.f64 (*.f64 (-.f64 #s(literal 0 binary64) re) (+.f64 (/.f64 (*.f64 #s(literal 1/16 binary64) (pow.f64 im #s(literal 6 binary64))) (pow.f64 re #s(literal 6 binary64))) (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 #s(literal -1/8 binary64) (*.f64 im (*.f64 im (*.f64 im im)))) (*.f64 re (*.f64 re (*.f64 re re))))))) (*.f64 im (/.f64 (*.f64 im #s(literal 1/2 binary64)) re)))
re
(+ re (* 1/2 (/ (pow im 2) re)))
(+.f64 re (*.f64 im (/.f64 (*.f64 im #s(literal 1/2 binary64)) re)))
(+ re (* (pow im 2) (+ (* -1/8 (/ (pow im 2) (pow re 3))) (* 1/2 (/ 1 re)))))
(+.f64 re (*.f64 (*.f64 im im) (+.f64 (/.f64 (*.f64 #s(literal -1/8 binary64) (/.f64 (/.f64 (*.f64 im im) re) re)) re) (/.f64 #s(literal 1/2 binary64) 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)))))
(+.f64 re (*.f64 (*.f64 im im) (+.f64 (/.f64 #s(literal 1/2 binary64) re) (*.f64 (*.f64 im im) (+.f64 (/.f64 (*.f64 im (*.f64 im #s(literal 1/16 binary64))) (pow.f64 re #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (*.f64 re (*.f64 re re))))))))
im
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(+.f64 im (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im))))
(* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2))))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im))) (*.f64 im (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 (*.f64 re re) (*.f64 (*.f64 re re) #s(literal -1/8 binary64))) (*.f64 im (*.f64 im (*.f64 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)))))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im))) (*.f64 im (+.f64 (/.f64 (*.f64 #s(literal 1/16 binary64) (pow.f64 re #s(literal 6 binary64))) (pow.f64 im #s(literal 6 binary64))) (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 (*.f64 re re) (*.f64 (*.f64 re re) #s(literal -1/8 binary64))) (*.f64 im (*.f64 im (*.f64 im im))))))))
(* -1 im)
(-.f64 #s(literal 0 binary64) im)
(* -1 (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2))))))
(-.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im))))
(* -1 (* im (+ 1 (+ (* -1/8 (/ (pow re 4) (pow im 4))) (* 1/2 (/ (pow re 2) (pow im 2)))))))
(-.f64 (*.f64 im (+.f64 #s(literal -1 binary64) (*.f64 #s(literal 1/8 binary64) (/.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im))))))) (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 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))))))))
(-.f64 (-.f64 (*.f64 im (+.f64 (*.f64 #s(literal 1/8 binary64) (/.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 im (*.f64 im (*.f64 im im))))) (*.f64 (/.f64 (pow.f64 re #s(literal 6 binary64)) (pow.f64 im #s(literal 6 binary64))) #s(literal -1/16 binary64)))) (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im)))) im)

eval23.0ms (0.7%)

Compiler

Compiled 1788 to 257 computations (85.6% saved)

prune10.0ms (0.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New68270
Fresh000
Picked011
Done000
Total68371
Accuracy
100.0%
Counts
71 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 re im)
99.5%
(+.f64 im (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im))))
99.2%
im
Compiler

Compiled 19 to 12 computations (36.8% saved)

simplify5.0ms (0.2%)

Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 re im)
cost-diff0
(*.f64 re (/.f64 re im))
cost-diff0
(*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im)))
cost-diff0
(+.f64 im (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im))))
Rules
42×*-lowering-*.f32
42×*-lowering-*.f64
16×fma-lowering-fma.f32
16×fma-define
16×fma-lowering-fma.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0728
11424
23124
34124
44524
54924
04924
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
im
(+ im (* 1/2 (* re (/ re im))))
im
(* 1/2 (* re (/ re im)))
1/2
(* re (/ re im))
re
(/ re im)
Outputs
im
(+ im (* 1/2 (* re (/ re im))))
(+.f64 im (*.f64 re (/.f64 (*.f64 #s(literal 1/2 binary64) re) im)))
im
(* 1/2 (* re (/ re im)))
(*.f64 re (/.f64 (*.f64 #s(literal 1/2 binary64) re) im))
1/2
#s(literal 1/2 binary64)
(* re (/ re im))
(/.f64 (*.f64 re re) im)
re
(/ re im)
(/.f64 re im)

localize39.0ms (1.2%)

Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(/.f64 re im)
accuracy100.0%
(+.f64 im (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im))))
accuracy100.0%
(*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im)))
accuracy99.8%
(*.f64 re (/.f64 re im))
Results
31.0ms256×0valid
Compiler

Compiled 31 to 8 computations (74.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-mult: 4.0ms (49.6% of total)
ival-div: 3.0ms (37.2% of total)
ival-add: 1.0ms (12.4% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series7.0ms (0.2%)

Counts
4 → 96
Calls
Call 1
Inputs
#<alt (+ im (* 1/2 (* re (/ re im))))>
#<alt (* 1/2 (* re (/ re im)))>
#<alt (* re (/ re im))>
#<alt (/ re im)>
Outputs
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)>
#<alt (/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)>
#<alt (/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)>
#<alt im>
#<alt (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt im>
#<alt (* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))>
#<alt (* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))>
#<alt (* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))>
#<alt im>
#<alt (+ im (* 1/2 (/ (pow re 2) im)))>
#<alt (+ im (* 1/2 (/ (pow re 2) im)))>
#<alt (+ im (* 1/2 (/ (pow re 2) im)))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))>
#<alt (* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))>
#<alt (* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))>
#<alt (* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))>
#<alt (* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ (pow re 2) im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
#<alt (/ re im)>
Calls

24 calls:

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

rewrite275.0ms (8.5%)

Algorithm
batch-egg-rewrite
Rules
2392×*-lowering-*.f32
2392×*-lowering-*.f64
1812×sum5-define
1726×fma-lowering-fma.f32
1726×fma-lowering-fma.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0724
13520
227820
3378520
0821820
Stop Event
iter limit
node limit
Counts
4 → 157
Calls
Call 1
Inputs
(+ im (* 1/2 (* re (/ re im))))
(* 1/2 (* re (/ re im)))
(* re (/ re im))
(/ re im)
Outputs
(+.f64 im (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))))
(+.f64 (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))) im)
(+.f64 (/.f64 (*.f64 im im) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) (neg.f64 (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))))
(-.f64 (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))) (-.f64 #s(literal 0 binary64) im))
(-.f64 (/.f64 (*.f64 im im) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))))
(-.f64 (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (-.f64 (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))) im)) (/.f64 (*.f64 im im) (-.f64 (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))) im)))
(fma.f64 im (/.f64 im (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) (neg.f64 (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))))
(fma.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im)) im)
(fma.f64 re (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) im)
(fma.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re) im)
(fma.f64 (*.f64 re (/.f64 re im)) #s(literal 1/2 binary64) im)
(fma.f64 (*.f64 im im) (/.f64 #s(literal 1 binary64) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) (neg.f64 (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im) im)
(fma.f64 (*.f64 re (*.f64 #s(literal 1/2 binary64) re)) (/.f64 #s(literal 1 binary64) im) im)
(fma.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) re im)
(fma.f64 (/.f64 (*.f64 im im) (-.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))))) (+.f64 im (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re)))) (neg.f64 (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))))
(fma.f64 (/.f64 (*.f64 im im) (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal -1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (+.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))) (neg.f64 (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))))
(neg.f64 (/.f64 (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))))))
(neg.f64 (/.f64 (-.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))) (-.f64 #s(literal 0 binary64) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))))
(neg.f64 (/.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64)))))))
(neg.f64 (/.f64 (+.f64 (neg.f64 (*.f64 im im)) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))))
(/.f64 (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 im (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))))))
(/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) (+.f64 im (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))))) #s(literal 1 binary64)))
(/.f64 #s(literal 1 binary64) (/.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))) im) (-.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (*.f64 im im))))
(/.f64 (-.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))
(/.f64 #s(literal -1 binary64) (neg.f64 (/.f64 #s(literal 1 binary64) (+.f64 im (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re)))))))
(/.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))))) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64)))))))
(/.f64 (+.f64 (neg.f64 (*.f64 im im)) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))) (-.f64 #s(literal 0 binary64) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))))
(/.f64 (+.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im)))) (*.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))) (*.f64 #s(literal 1/64 binary64) (*.f64 (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))))) (*.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))) (+.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im))) (*.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))) (-.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))) (*.f64 im (*.f64 im im)))))))
(/.f64 (-.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im))) (*.f64 #s(literal 1/64 binary64) (*.f64 (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))))) (*.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))) (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal -1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))))))
(/.f64 (-.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im))) (*.f64 #s(literal 1/64 binary64) (*.f64 (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))))) (*.f64 (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))))))))
(/.f64 (-.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (*.f64 im im)) (-.f64 (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))) im))
(/.f64 (-.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal 1/16 binary64) (*.f64 (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))) (*.f64 (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)) (+.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))))))
(/.f64 (-.f64 (*.f64 (*.f64 im im) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) (*.f64 (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))))) (*.f64 (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))))
(/.f64 (*.f64 (+.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im)))) (*.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))) (*.f64 #s(literal 1/64 binary64) (*.f64 (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im))) (*.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))) (-.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))) (*.f64 im (*.f64 im im))))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64)))))))
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im))) (*.f64 #s(literal 1/64 binary64) (*.f64 (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal -1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64)))))))
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im))) (*.f64 #s(literal 1/64 binary64) (*.f64 (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))))
(/.f64 (*.f64 (-.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal 1/16 binary64) (*.f64 (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))))
(/.f64 (neg.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))))) (neg.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))))))
(/.f64 (neg.f64 (+.f64 (neg.f64 (*.f64 im im)) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))))) (neg.f64 (-.f64 #s(literal 0 binary64) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))))
(/.f64 (neg.f64 (-.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (*.f64 im im))) (neg.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))) im)))
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 im im) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) #s(literal 3 binary64)) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) #s(literal 3 binary64))) (+.f64 (*.f64 (/.f64 (*.f64 im im) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) (/.f64 (*.f64 im im) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))) (+.f64 (*.f64 (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))) (*.f64 (/.f64 (*.f64 im im) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))))))
(/.f64 (-.f64 (*.f64 (/.f64 (*.f64 im im) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) (/.f64 (*.f64 im im) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))) (*.f64 (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))))) (+.f64 (/.f64 (*.f64 im im) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) (/.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))))
(/.f64 (*.f64 (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))) #s(literal 1 binary64)) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))))
(/.f64 (*.f64 (-.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))) #s(literal 1 binary64)) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))
(/.f64 (*.f64 (+.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im)))) (*.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))) (*.f64 #s(literal 1/64 binary64) (*.f64 (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))))) (+.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im))) (*.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))) (-.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))) (*.f64 im (*.f64 im im))))))
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im))) (*.f64 #s(literal 1/64 binary64) (*.f64 (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))))) (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal -1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))))
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im))) (*.f64 #s(literal 1/64 binary64) (*.f64 (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))))) (/.f64 #s(literal 1 binary64) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (+.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))))))
(/.f64 (*.f64 (-.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal 1/16 binary64) (*.f64 (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))) (/.f64 #s(literal 1 binary64) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))) (+.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))))
(pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 im (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))))) #s(literal -1 binary64))
(*.f64 (+.f64 im (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re)))) (*.f64 (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)) (/.f64 #s(literal 1 binary64) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))))
(*.f64 (+.f64 im (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re)))) (/.f64 (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))))
(*.f64 (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64)))))))
(*.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))) (*.f64 (+.f64 im (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re)))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))))))
(*.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))) (/.f64 (+.f64 im (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re)))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64)))))))
(*.f64 #s(literal 1 binary64) (+.f64 im (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re)))))
(*.f64 (-.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))) (/.f64 #s(literal 1 binary64) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))))
(*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))))) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))))))
(*.f64 (+.f64 (neg.f64 (*.f64 im im)) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im)))))
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64)))))) (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))))
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 im (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))) (-.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))))
(*.f64 (-.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (*.f64 im im)) (/.f64 #s(literal 1 binary64) (-.f64 (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))) im)))
(*.f64 (/.f64 (-.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))) (-.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))))) (+.f64 im (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re)))))
(*.f64 (/.f64 (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))) (+.f64 (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im im))) (*.f64 (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64)))) (*.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (*.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))) im) (-.f64 (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))) im)))))) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64)))) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64)))) (*.f64 im im)))))
(*.f64 (/.f64 (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re)))))) (-.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re))) (*.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))) im) (-.f64 (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))) im))))) (-.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (-.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))))
(*.f64 (/.f64 (-.f64 (*.f64 im im) (/.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (/.f64 im (*.f64 re re)))) (+.f64 (*.f64 im (*.f64 im im)) (*.f64 #s(literal -1/8 binary64) (*.f64 (*.f64 re (/.f64 re im)) (/.f64 (*.f64 re (/.f64 re im)) (/.f64 im (*.f64 re re))))))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re (/.f64 re im)) (+.f64 (*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/4 binary64)) (*.f64 im #s(literal 1/2 binary64))))))
(neg.f64 (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) im))
(/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re)))
(/.f64 #s(literal 1 binary64) (/.f64 (/.f64 im re) (*.f64 #s(literal 1/2 binary64) re)))
(/.f64 #s(literal 1 binary64) (/.f64 im (*.f64 re (*.f64 #s(literal 1/2 binary64) re))))
(/.f64 #s(literal 1 binary64) (/.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 re (*.f64 re #s(literal -1/2 binary64)))))
(/.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 im re))
(/.f64 (*.f64 re #s(literal -1/2 binary64)) (-.f64 #s(literal 0 binary64) (/.f64 im re)))
(/.f64 (*.f64 re (*.f64 #s(literal 1/2 binary64) re)) im)
(/.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 #s(literal 1 binary64) re))
(/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) (-.f64 #s(literal 0 binary64) im))
(/.f64 (*.f64 (*.f64 re (*.f64 #s(literal 1/2 binary64) re)) #s(literal 1 binary64)) im)
(/.f64 (neg.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64)))) im)
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) (/.f64 im re)))
(/.f64 (*.f64 (*.f64 re (*.f64 #s(literal 1/2 binary64) re)) #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) im))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) #s(literal 1/2 binary64)) (-.f64 #s(literal 0 binary64) im))
(/.f64 (/.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) #s(literal -1 binary64)) im)
(*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im)))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (/.f64 re im)))
(*.f64 (/.f64 re im) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 (/.f64 re im) (/.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) re)))
(*.f64 (*.f64 re (/.f64 re im)) #s(literal 1/2 binary64))
(*.f64 (-.f64 #s(literal 0 binary64) re) (*.f64 (/.f64 #s(literal -1 binary64) im) (*.f64 #s(literal 1/2 binary64) re)))
(*.f64 #s(literal 1 binary64) (/.f64 #s(literal 1/2 binary64) (/.f64 im (*.f64 re re))))
(*.f64 (/.f64 #s(literal 1 binary64) im) (*.f64 re (*.f64 #s(literal 1/2 binary64) re)))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 re im))
(*.f64 (*.f64 re re) (/.f64 #s(literal 1/2 binary64) im))
(*.f64 (*.f64 re re) (*.f64 (/.f64 #s(literal 1 binary64) im) #s(literal 1/2 binary64)))
(*.f64 (*.f64 re (*.f64 #s(literal 1/2 binary64) re)) (/.f64 #s(literal 1 binary64) im))
(*.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) re)
(*.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 re im)) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) re)))
(*.f64 (*.f64 re (*.f64 re #s(literal -1/2 binary64))) (/.f64 #s(literal -1 binary64) im))
(*.f64 (*.f64 (*.f64 re (*.f64 #s(literal 1/2 binary64) re)) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) im))
(*.f64 (/.f64 #s(literal 1/2 binary64) im) (/.f64 re (/.f64 #s(literal 1 binary64) re)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal -1 binary64)) (/.f64 re (-.f64 #s(literal 0 binary64) im)))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) (-.f64 #s(literal 0 binary64) im)) (-.f64 #s(literal 0 binary64) re))
(*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64)) (/.f64 re im))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 re (/.f64 re im))))
(/.f64 re (/.f64 im re))
(/.f64 (/.f64 re im) (/.f64 #s(literal 1 binary64) re))
(/.f64 (-.f64 #s(literal 0 binary64) re) (-.f64 #s(literal 0 binary64) (/.f64 im re)))
(/.f64 #s(literal 1 binary64) (/.f64 im (*.f64 re re)))
(/.f64 #s(literal 1 binary64) (/.f64 (/.f64 im (*.f64 re re)) #s(literal 1 binary64)))
(/.f64 (*.f64 re re) im)
(/.f64 #s(literal -1 binary64) (neg.f64 (/.f64 im (*.f64 re re))))
(/.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) (-.f64 #s(literal 0 binary64) im))
(/.f64 (*.f64 (*.f64 re re) #s(literal 1 binary64)) im)
(/.f64 (neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re))) im)
(/.f64 (*.f64 (*.f64 re re) #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) im))
(/.f64 (/.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) #s(literal -1 binary64)) im)
(pow.f64 (/.f64 im (*.f64 re re)) #s(literal -1 binary64))
(*.f64 re (/.f64 re im))
(*.f64 (/.f64 re im) re)
(*.f64 (/.f64 re im) (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) re)))
(*.f64 (-.f64 #s(literal 0 binary64) re) (/.f64 re (-.f64 #s(literal 0 binary64) im)))
(*.f64 (-.f64 #s(literal 0 binary64) re) (*.f64 (/.f64 #s(literal -1 binary64) im) re))
(*.f64 #s(literal 1 binary64) (*.f64 re (/.f64 re im)))
(*.f64 (/.f64 #s(literal 1 binary64) im) (*.f64 re re))
(*.f64 (/.f64 #s(literal 1 binary64) im) (/.f64 re (/.f64 #s(literal 1 binary64) re)))
(*.f64 (*.f64 re re) (/.f64 #s(literal 1 binary64) im))
(*.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) (/.f64 #s(literal -1 binary64) im))
(*.f64 (/.f64 re (-.f64 #s(literal 0 binary64) im)) (-.f64 #s(literal 0 binary64) re))
(*.f64 (*.f64 (*.f64 re re) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) im))
(*.f64 (/.f64 re #s(literal -1 binary64)) (/.f64 re (-.f64 #s(literal 0 binary64) im)))
(*.f64 (/.f64 (-.f64 #s(literal 0 binary64) re) #s(literal -1 binary64)) (/.f64 re im))
(*.f64 (/.f64 re #s(literal 1 binary64)) (/.f64 re im))
(exp.f64 (*.f64 (log.f64 (/.f64 im re)) #s(literal -1 binary64)))
(-.f64 #s(literal 0 binary64) (/.f64 re (-.f64 #s(literal 0 binary64) im)))
(-.f64 (/.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) im)) (/.f64 re (-.f64 #s(literal 0 binary64) im)))
(neg.f64 (/.f64 re (-.f64 #s(literal 0 binary64) im)))
(neg.f64 (*.f64 #s(literal 1 binary64) (/.f64 re (-.f64 #s(literal 0 binary64) im))))
(neg.f64 (/.f64 #s(literal -1 binary64) (/.f64 im re)))
(/.f64 re im)
(/.f64 (-.f64 #s(literal 0 binary64) re) (-.f64 #s(literal 0 binary64) im))
(/.f64 #s(literal 1 binary64) (/.f64 im re))
(/.f64 (/.f64 #s(literal 1 binary64) im) (/.f64 #s(literal 1 binary64) re))
(/.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (/.f64 im re)))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) re) #s(literal 1 binary64)) (-.f64 #s(literal 0 binary64) im))
(/.f64 (*.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) re)) (-.f64 #s(literal 0 binary64) im))
(/.f64 (/.f64 (-.f64 #s(literal 0 binary64) re) #s(literal -1 binary64)) im)
(pow.f64 (/.f64 im re) #s(literal -1 binary64))
(*.f64 re (/.f64 #s(literal 1 binary64) im))
(*.f64 (/.f64 re im) #s(literal 1 binary64))
(*.f64 (-.f64 #s(literal 0 binary64) re) (/.f64 #s(literal -1 binary64) im))
(*.f64 #s(literal 1 binary64) (/.f64 re im))
(*.f64 (/.f64 #s(literal 1 binary64) im) re)
(*.f64 (/.f64 #s(literal 1 binary64) im) (pow.f64 (/.f64 #s(literal 1 binary64) re) #s(literal -1 binary64)))
(*.f64 #s(literal -1 binary64) (/.f64 re (-.f64 #s(literal 0 binary64) im)))
(*.f64 (/.f64 #s(literal -1 binary64) im) (-.f64 #s(literal 0 binary64) re))
(*.f64 (*.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) re)) (/.f64 #s(literal -1 binary64) im))
(*.f64 (pow.f64 (/.f64 im re) #s(literal -1/2 binary64)) (pow.f64 (/.f64 im re) #s(literal -1/2 binary64)))

simplify180.0ms (5.6%)

Algorithm
egg-herbie
Rules
2704×*-lowering-*.f32
2704×*-lowering-*.f64
1850×fmm-def
1790×fma-lowering-fma.f32
1790×fma-lowering-fma.f64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
029609
174507
2184492
3644462
42725462
57681462
08357462
Stop Event
iter limit
node limit
Counts
96 → 96
Calls
Call 1
Inputs
(* 1/2 (/ (pow re 2) im))
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
im
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
im
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
im
(+ im (* 1/2 (/ (pow re 2) im)))
(+ im (* 1/2 (/ (pow re 2) im)))
(+ im (* 1/2 (/ (pow re 2) im)))
(* 1/2 (/ (pow re 2) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* 1/2 (/ (pow re 2) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(* 1/2 (/ (pow re 2) im))
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ (pow re 2) im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
(/ re im)
Outputs
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im)
im
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
im
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
im
(+ im (* 1/2 (/ (pow re 2) im)))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(+ im (* 1/2 (/ (pow re 2) im)))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(+ im (* 1/2 (/ (pow re 2) im)))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ (pow re 2) im)
(/.f64 (*.f64 re re) im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)
(/ re im)
(/.f64 re im)

eval26.0ms (0.8%)

Compiler

Compiled 5284 to 514 computations (90.3% saved)

prune22.0ms (0.7%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New2521253
Fresh000
Picked022
Done011
Total2524256
Accuracy
100.0%
Counts
256 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 re im)
53.1%
(/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im)
99.5%
(+.f64 im (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im))))
99.2%
im
Compiler

Compiled 32 to 20 computations (37.5% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 re re)
cost-diff0
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
cost-diff0
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
cost-diff0
(/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im)
Rules
16×*-lowering-*.f32
16×*-lowering-*.f64
10×fma-lowering-fma.f32
10×fma-define
10×fma-lowering-fma.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0825
11525
22125
32225
02225
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(/ (+ (* 1/2 (* re re)) (* im im)) im)
(+ (* 1/2 (* re re)) (* im im))
(* 1/2 (* re re))
1/2
(* re re)
re
(* im im)
im
Outputs
(/ (+ (* 1/2 (* re re)) (* im im)) im)
(/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im)
(+ (* 1/2 (* re re)) (* im im))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* 1/2 (* re re))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
1/2
#s(literal 1/2 binary64)
(* re re)
(*.f64 re re)
re
(* im im)
(*.f64 im im)
im

localize41.0ms (1.3%)

Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 re re)
accuracy100.0%
(*.f64 im im)
accuracy100.0%
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
accuracy53.4%
(/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im)
Results
32.0ms256×0valid
Compiler

Compiled 37 to 9 computations (75.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-mult: 7.0ms (57.1% of total)
ival-add: 3.0ms (24.5% of total)
ival-div: 2.0ms (16.3% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series5.0ms (0.1%)

Counts
5 → 84
Calls
Call 1
Inputs
#<alt (/ (+ (* 1/2 (* re re)) (* im im)) im)>
#<alt (+ (* 1/2 (* re re)) (* im im))>
#<alt (* 1/2 (* re re))>
#<alt (* re re)>
#<alt (* im im)>
Outputs
#<alt im>
#<alt (+ im (* 1/2 (/ (pow re 2) im)))>
#<alt (+ im (* 1/2 (/ (pow re 2) im)))>
#<alt (+ im (* 1/2 (/ (pow re 2) im)))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))>
#<alt (* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))>
#<alt (* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))>
#<alt (* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))>
#<alt (* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))>
#<alt (* 1/2 (/ (pow re 2) im))>
#<alt (/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)>
#<alt (/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)>
#<alt (/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)>
#<alt im>
#<alt (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt (* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt im>
#<alt (* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))>
#<alt (* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))>
#<alt (* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))>
#<alt (pow im 2)>
#<alt (+ (* 1/2 (pow re 2)) (pow im 2))>
#<alt (+ (* 1/2 (pow re 2)) (pow im 2))>
#<alt (+ (* 1/2 (pow re 2)) (pow im 2))>
#<alt (* 1/2 (pow re 2))>
#<alt (* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))>
#<alt (* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))>
#<alt (* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))>
#<alt (* 1/2 (pow re 2))>
#<alt (* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))>
#<alt (* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))>
#<alt (* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))>
#<alt (* 1/2 (pow re 2))>
#<alt (+ (* 1/2 (pow re 2)) (pow im 2))>
#<alt (+ (* 1/2 (pow re 2)) (pow im 2))>
#<alt (+ (* 1/2 (pow re 2)) (pow im 2))>
#<alt (pow im 2)>
#<alt (* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt (* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt (* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt (pow im 2)>
#<alt (* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt (* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt (* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))>
#<alt (* 1/2 (pow re 2))>
#<alt (* 1/2 (pow re 2))>
#<alt (* 1/2 (pow re 2))>
#<alt (* 1/2 (pow re 2))>
#<alt (* 1/2 (pow re 2))>
#<alt (* 1/2 (pow re 2))>
#<alt (* 1/2 (pow re 2))>
#<alt (* 1/2 (pow re 2))>
#<alt (* 1/2 (pow re 2))>
#<alt (* 1/2 (pow re 2))>
#<alt (* 1/2 (pow re 2))>
#<alt (* 1/2 (pow re 2))>
#<alt (pow re 2)>
#<alt (pow re 2)>
#<alt (pow re 2)>
#<alt (pow re 2)>
#<alt (pow re 2)>
#<alt (pow re 2)>
#<alt (pow re 2)>
#<alt (pow re 2)>
#<alt (pow re 2)>
#<alt (pow re 2)>
#<alt (pow re 2)>
#<alt (pow re 2)>
#<alt (pow im 2)>
#<alt (pow im 2)>
#<alt (pow im 2)>
#<alt (pow im 2)>
#<alt (pow im 2)>
#<alt (pow im 2)>
#<alt (pow im 2)>
#<alt (pow im 2)>
#<alt (pow im 2)>
#<alt (pow im 2)>
#<alt (pow im 2)>
#<alt (pow im 2)>
Calls

21 calls:

TimeVariablePointExpression
2.0ms
re
@0
(/ (+ (* 1/2 (* re re)) (* im im)) im)
0.0ms
re
@inf
(/ (+ (* 1/2 (* re re)) (* im im)) im)
0.0ms
im
@inf
(/ (+ (* 1/2 (* re re)) (* im im)) im)
0.0ms
im
@0
(/ (+ (* 1/2 (* re re)) (* im im)) im)
0.0ms
re
@inf
(* 1/2 (* re re))

rewrite313.0ms (9.7%)

Algorithm
batch-egg-rewrite
Rules
3534×*-lowering-*.f32
3534×*-lowering-*.f64
1570×fma-lowering-fma.f32
1570×fma-lowering-fma.f64
1498×fmsub-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0822
13922
230222
3345122
0847922
Stop Event
iter limit
node limit
Counts
5 → 245
Calls
Call 1
Inputs
(/ (+ (* 1/2 (* re re)) (* im im)) im)
(+ (* 1/2 (* re re)) (* im im))
(* 1/2 (* re re))
(* re re)
(* im im)
Outputs
(+.f64 (*.f64 (/.f64 #s(literal 1 binary64) im) (*.f64 #s(literal 1/2 binary64) (*.f64 re re))) (*.f64 (/.f64 #s(literal 1 binary64) im) (*.f64 im im)))
(+.f64 (*.f64 (/.f64 #s(literal 1 binary64) im) (*.f64 im im)) (*.f64 (/.f64 #s(literal 1 binary64) im) (*.f64 #s(literal 1/2 binary64) (*.f64 re re))))
(+.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (/.f64 #s(literal 1 binary64) im)) (*.f64 (*.f64 im im) (/.f64 #s(literal 1 binary64) im)))
(+.f64 (*.f64 (*.f64 im im) (/.f64 #s(literal 1 binary64) im)) (*.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (/.f64 #s(literal 1 binary64) im)))
(exp.f64 (*.f64 (log.f64 (/.f64 im (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))) #s(literal -1 binary64)))
(-.f64 #s(literal 0 binary64) (/.f64 (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)) im))
(-.f64 (/.f64 (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) im) (/.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) im))
(-.f64 (/.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) im)) (/.f64 (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)) im))
(-.f64 (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))) (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 im (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(neg.f64 (/.f64 (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)) im))
(neg.f64 (*.f64 #s(literal 1 binary64) (/.f64 (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)) im)))
(neg.f64 (/.f64 #s(literal -1 binary64) (/.f64 im (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im)
(/.f64 (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)) (-.f64 #s(literal 0 binary64) im))
(/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (*.f64 im (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) (-.f64 #s(literal 0 binary64) im)))
(/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (*.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(/.f64 #s(literal 1 binary64) (/.f64 im (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(/.f64 #s(literal 1 binary64) (/.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))) (/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) im)))
(/.f64 #s(literal 1 binary64) (/.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) im)))
(/.f64 (/.f64 #s(literal 1 binary64) im) (/.f64 #s(literal -1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im))))
(/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (*.f64 im (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (*.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (-.f64 #s(literal 0 binary64) im)))
(/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (*.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(/.f64 #s(literal -1 binary64) (/.f64 im (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im))))
(/.f64 #s(literal -1 binary64) (*.f64 (/.f64 #s(literal -1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im))) (-.f64 #s(literal 0 binary64) im)))
(/.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) (*.f64 im (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(/.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) (*.f64 (-.f64 #s(literal 0 binary64) im) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(/.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) (neg.f64 (*.f64 im (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(/.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) (*.f64 im (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(/.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) (*.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(/.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) (neg.f64 (*.f64 im (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(/.f64 (+.f64 (*.f64 #s(literal 1/512 binary64) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))))) (*.f64 (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 im (*.f64 im im))) (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 im (*.f64 im im))))) (*.f64 (*.f64 im (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) (+.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (-.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))))))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im im) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (*.f64 (*.f64 im (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) (-.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im im) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (*.f64 (*.f64 im (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (+.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))))))
(/.f64 (-.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im (*.f64 im im)))))) (*.f64 (*.f64 im (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))))
(/.f64 (/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) im) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))
(/.f64 (/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) im) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))
(/.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))
(/.f64 (*.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) #s(literal -1 binary64)) (*.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))) (-.f64 #s(literal 0 binary64) im)))
(/.f64 (*.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) #s(literal -1 binary64)) (*.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (-.f64 #s(literal 0 binary64) im)))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))) (-.f64 #s(literal 0 binary64) im)))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) #s(literal 1 binary64)) (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) im))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) #s(literal -1 binary64)) (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) (-.f64 #s(literal 0 binary64) im)))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) #s(literal 1 binary64)) (*.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (-.f64 #s(literal 0 binary64) im)))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) #s(literal 1 binary64)) (*.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) im))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) #s(literal -1 binary64)) (*.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (-.f64 #s(literal 0 binary64) im)))
(/.f64 (*.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))) im))
(/.f64 (*.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re))))) #s(literal -1 binary64)) (*.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))) (-.f64 #s(literal 0 binary64) im)))
(/.f64 (*.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (*.f64 im (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(/.f64 (*.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))) (*.f64 im (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(/.f64 (*.f64 #s(literal 1 binary64) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re)))))) (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))
(/.f64 (*.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (*.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(/.f64 (*.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))) (*.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(/.f64 (*.f64 #s(literal -1 binary64) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re)))))) (*.f64 (-.f64 #s(literal 0 binary64) im) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))
(/.f64 (neg.f64 (/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) im)) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(/.f64 (neg.f64 (/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) im)) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(/.f64 (*.f64 #s(literal 1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im))) (-.f64 #s(literal 0 binary64) im))
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)) #s(literal 1 binary64)) (-.f64 #s(literal 0 binary64) im))
(/.f64 (*.f64 #s(literal 1 binary64) (/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) im)) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))
(/.f64 (*.f64 #s(literal 1 binary64) (/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) im)) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))
(/.f64 (*.f64 (/.f64 #s(literal 1 binary64) im) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(/.f64 (*.f64 (/.f64 #s(literal 1 binary64) im) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(/.f64 (*.f64 (/.f64 #s(literal 1 binary64) im) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re)))))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) (/.f64 #s(literal 1 binary64) im)) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) (/.f64 #s(literal 1 binary64) im)) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(/.f64 (*.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re))))) (/.f64 #s(literal 1 binary64) im)) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))
(/.f64 (*.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (/.f64 #s(literal -1 binary64) im)) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(/.f64 (*.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (/.f64 #s(literal -1 binary64) im)) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) (/.f64 #s(literal -1 binary64) im)) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) (/.f64 #s(literal -1 binary64) im)) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))
(/.f64 (/.f64 (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)) #s(literal -1 binary64)) im)
(/.f64 (/.f64 #s(literal 1 binary64) (/.f64 im (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))
(/.f64 (/.f64 #s(literal 1 binary64) (/.f64 im (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))
(pow.f64 (/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im) #s(literal 1 binary64))
(pow.f64 (/.f64 im (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) #s(literal -1 binary64))
(pow.f64 (/.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))) (/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) im)) #s(literal -1 binary64))
(pow.f64 (/.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) im)) #s(literal -1 binary64))
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (/.f64 #s(literal 1 binary64) im))
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (/.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (*.f64 im (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(*.f64 (/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im) #s(literal 1 binary64))
(*.f64 (/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im) (/.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(*.f64 (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)) (/.f64 #s(literal -1 binary64) im))
(*.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (/.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) im))
(*.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (/.f64 #s(literal 1 binary64) (*.f64 im (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(*.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) (/.f64 #s(literal 1 binary64) im)))
(*.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (/.f64 (/.f64 #s(literal 1 binary64) im) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(*.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))) (/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (*.f64 im (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(*.f64 #s(literal 1 binary64) (/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im))
(*.f64 (/.f64 #s(literal 1 binary64) im) (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))
(*.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (/.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) im))
(*.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (/.f64 #s(literal 1 binary64) (*.f64 im (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(*.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (/.f64 #s(literal 1 binary64) im)))
(*.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (/.f64 (/.f64 #s(literal 1 binary64) im) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)) im))
(*.f64 (/.f64 #s(literal -1 binary64) im) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)))
(*.f64 (/.f64 #s(literal -1 binary64) im) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im))) #s(literal -1 binary64)))
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) (/.f64 #s(literal 1 binary64) (/.f64 im (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))))
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (/.f64 #s(literal 1 binary64) (/.f64 im (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))))
(*.f64 (/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) im) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(*.f64 (/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) im) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(*.f64 (/.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))) im) (/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(*.f64 (pow.f64 (/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im) #s(literal 1/2 binary64)) (pow.f64 (/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im) #s(literal 1/2 binary64)))
(*.f64 (*.f64 #s(literal 1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im))) (/.f64 #s(literal -1 binary64) im))
(*.f64 (/.f64 #s(literal 1 binary64) (/.f64 im (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(*.f64 (/.f64 #s(literal 1 binary64) (/.f64 im (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(*.f64 (/.f64 (/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) im) (+.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))) (+.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))) (-.f64 (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))) (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64))))))))
(*.f64 (/.f64 (/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) im) (-.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))
(*.f64 (/.f64 (/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) im) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))
(*.f64 (/.f64 (/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) im) (-.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 (*.f64 im im) (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(*.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 im (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(*.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im))) #s(literal -1 binary64)) (/.f64 #s(literal -1 binary64) im))
(*.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 im (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(*.f64 (pow.f64 (/.f64 im (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(*.f64 (pow.f64 (/.f64 im (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(*.f64 (pow.f64 (/.f64 im (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))
(*.f64 (pow.f64 (/.f64 (-.f64 #s(literal 0 binary64) im) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(*.f64 (pow.f64 (/.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 #s(literal 1/2 binary64) (*.f64 re re)))
(+.f64 (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(+.f64 (neg.f64 (*.f64 im (-.f64 #s(literal 0 binary64) im))) (neg.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))
(+.f64 (neg.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64))) (neg.f64 (*.f64 im (-.f64 #s(literal 0 binary64) im))))
(exp.f64 (*.f64 (log.f64 (/.f64 #s(literal -1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)))) #s(literal -1 binary64)))
(-.f64 #s(literal 0 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)))
(-.f64 (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(-.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))) (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))
(fma.f64 #s(literal 1/2 binary64) (*.f64 re re) (*.f64 im im))
(fma.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re (*.f64 re (*.f64 re re)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(fma.f64 re (*.f64 #s(literal 1/2 binary64) re) (*.f64 im im))
(fma.f64 (*.f64 re re) #s(literal 1/2 binary64) (*.f64 im im))
(fma.f64 (*.f64 re re) (/.f64 (*.f64 (*.f64 re re) #s(literal 1/4 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(fma.f64 im im (*.f64 #s(literal 1/2 binary64) (*.f64 re re)))
(fma.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) re (*.f64 im im))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) (/.f64 (*.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 re re))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(fma.f64 #s(literal 1/4 binary64) (/.f64 (*.f64 re (*.f64 re (*.f64 re re))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(fma.f64 (*.f64 re (*.f64 re (*.f64 re re))) (/.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(fma.f64 (*.f64 (*.f64 re re) #s(literal 1/4 binary64)) (/.f64 (*.f64 re re) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(fma.f64 (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64))) (/.f64 re (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re (*.f64 re (*.f64 re re)))) (/.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(fma.f64 (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(fma.f64 (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 (*.f64 im im) (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))) (neg.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(neg.f64 (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)))
(/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))
(/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (neg.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal -1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im))))
(/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal -1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im))) #s(literal 1 binary64)))
(/.f64 #s(literal 1 binary64) (/.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re)))))))
(/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))
(/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (neg.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(/.f64 #s(literal -1 binary64) (neg.f64 (/.f64 #s(literal -1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)))))
(/.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(/.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(/.f64 (+.f64 (*.f64 #s(literal 1/512 binary64) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))))) (*.f64 (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 im (*.f64 im im))) (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 im (*.f64 im im))))) (*.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))) (+.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (-.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))))))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im im) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (*.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))) (-.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im im) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (*.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (+.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))))))
(/.f64 (-.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im (*.f64 im im)))))) (*.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))))
(/.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re))))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (*.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (*.f64 im (*.f64 im (*.f64 im im))))) (*.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) #s(literal 1 binary64)) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) #s(literal 1 binary64)) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(/.f64 (*.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re))))) #s(literal 1 binary64)) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))
(/.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im (*.f64 im im)))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(/.f64 (*.f64 (+.f64 (*.f64 #s(literal 1/512 binary64) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))))) (*.f64 (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 im (*.f64 im im))) (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 im (*.f64 im im))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (-.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))))))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im im) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) #s(literal 1 binary64)) (*.f64 (-.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im im) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(/.f64 (neg.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))
(/.f64 (neg.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (neg.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(/.f64 (neg.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))
(/.f64 (neg.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))) (neg.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(/.f64 (neg.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re)))))) (neg.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) #s(literal 3 binary64)) (pow.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) #s(literal 3 binary64))) (+.f64 (*.f64 (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))) (+.f64 (*.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))) (*.f64 (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))))
(/.f64 (-.f64 (*.f64 (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))) (*.f64 (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))) (+.f64 (/.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (/.f64 (*.f64 im (*.f64 im (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(/.f64 (*.f64 (+.f64 (*.f64 #s(literal 1/512 binary64) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))))) (*.f64 (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 im (*.f64 im im))) (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 im (*.f64 im im))))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))) (+.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (-.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))))))))
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im im) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))) (-.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im im) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))) (+.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))))
(/.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im (*.f64 im im)))))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))
(pow.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) #s(literal 1 binary64))
(pow.f64 (/.f64 #s(literal -1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im))) #s(literal -1 binary64))
(pow.f64 (/.f64 (/.f64 #s(literal -1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im))) #s(literal 1 binary64)) #s(literal -1 binary64))
(pow.f64 (/.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re)))))) #s(literal -1 binary64))
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) #s(literal 1 binary64))
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (/.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (*.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(*.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(*.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) #s(literal 1 binary64)))
(*.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))) (/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(*.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))) (*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(*.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))
(*.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(*.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) #s(literal 1 binary64)))
(*.f64 #s(literal -1 binary64) (-.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) (*.f64 im im)))
(*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(*.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) (pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) #s(literal -1 binary64)))
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) #s(literal -1 binary64)))
(*.f64 (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re))))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))
(*.f64 (/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))
(*.f64 (/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (+.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))) (+.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))) (-.f64 (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))) (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64))))))))
(*.f64 (/.f64 (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))) (-.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))
(*.f64 (/.f64 (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))) (-.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 (*.f64 im im) (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(*.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64))))))))
(*.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))))
(*.f64 (pow.f64 (/.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (-.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im im) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))))))
(*.f64 (pow.f64 (/.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) (-.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 (*.f64 re (*.f64 re (*.f64 re re))) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im (*.f64 im (*.f64 im im))))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im))))))
(*.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))))))
(*.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (*.f64 im im)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)))))
(*.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 #s(literal -1/4 binary64) (*.f64 re (*.f64 re (*.f64 re re)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))
(*.f64 (pow.f64 (/.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))) (+.f64 (*.f64 #s(literal 1/512 binary64) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))))) (*.f64 (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 im (*.f64 im im))) (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 im (*.f64 im im)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (-.f64 (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))) (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))))))))
(*.f64 (pow.f64 (/.f64 (+.f64 (*.f64 re (*.f64 re (*.f64 (*.f64 re re) #s(literal 1/4 binary64)))) (*.f64 im (*.f64 im (+.f64 (*.f64 im im) (*.f64 (*.f64 re re) #s(literal -1/2 binary64)))))) (-.f64 (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) (*.f64 (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re)))) #s(literal 1/64 binary64))) (*.f64 (*.f64 im im) (*.f64 (*.f64 im (*.f64 im (*.f64 im im))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 re re) (*.f64 re (*.f64 re (*.f64 re re))))) (*.f64 im (*.f64 (*.f64 im (*.f64 im im)) (*.f64 im im))))))
(exp.f64 (*.f64 (log.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re))) #s(literal 1 binary64)))
(pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) #s(literal 1 binary64))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(*.f64 re (*.f64 #s(literal 1/2 binary64) re))
(*.f64 re (pow.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64)))
(*.f64 (*.f64 re re) #s(literal 1/2 binary64))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) re)
(*.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64)) re)
(exp.f64 (*.f64 #s(literal 2 binary64) (log.f64 re)))
(exp.f64 (*.f64 (*.f64 #s(literal 2 binary64) (log.f64 re)) #s(literal 1 binary64)))
(exp.f64 (*.f64 (log.f64 (exp.f64 (log.f64 re))) #s(literal 2 binary64)))
(pow.f64 re #s(literal 2 binary64))
(pow.f64 (*.f64 re re) #s(literal 1 binary64))
(pow.f64 (exp.f64 (log.f64 re)) #s(literal 2 binary64))
(*.f64 re re)
(*.f64 (exp.f64 (log.f64 re)) (exp.f64 (log.f64 re)))
(*.f64 (pow.f64 (pow.f64 re #s(literal 1/2 binary64)) #s(literal 2 binary64)) (pow.f64 (pow.f64 re #s(literal 1/2 binary64)) #s(literal 2 binary64)))
(*.f64 (pow.f64 (exp.f64 (log.f64 re)) #s(literal 1 binary64)) (pow.f64 (exp.f64 (log.f64 re)) #s(literal 1 binary64)))
(exp.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)))
(exp.f64 (*.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)) #s(literal 1 binary64)))
(exp.f64 (*.f64 (log.f64 (exp.f64 (log.f64 im))) #s(literal 2 binary64)))
(pow.f64 im #s(literal 2 binary64))
(pow.f64 (*.f64 im im) #s(literal 1 binary64))
(pow.f64 (exp.f64 (log.f64 im)) #s(literal 2 binary64))
(*.f64 im im)
(*.f64 (*.f64 im im) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 im im))
(*.f64 #s(literal 1 binary64) (pow.f64 (-.f64 #s(literal 0 binary64) im) #s(literal 2 binary64)))
(*.f64 (exp.f64 (log.f64 im)) (exp.f64 (log.f64 im)))
(*.f64 (pow.f64 (pow.f64 im #s(literal 1/2 binary64)) #s(literal 2 binary64)) (pow.f64 (pow.f64 im #s(literal 1/2 binary64)) #s(literal 2 binary64)))
(*.f64 (pow.f64 (exp.f64 (log.f64 im)) #s(literal 1 binary64)) (pow.f64 (exp.f64 (log.f64 im)) #s(literal 1 binary64)))

simplify213.0ms (6.6%)

Algorithm
egg-herbie
Rules
2958×*-lowering-*.f32
2958×*-lowering-*.f64
1262×times-frac
974×/-lowering-/.f32
974×/-lowering-/.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
032489
191372
2248372
3939372
43054372
57936372
08051372
Stop Event
iter limit
node limit
Counts
84 → 84
Calls
Call 1
Inputs
im
(+ im (* 1/2 (/ (pow re 2) im)))
(+ im (* 1/2 (/ (pow re 2) im)))
(+ im (* 1/2 (/ (pow re 2) im)))
(* 1/2 (/ (pow re 2) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* 1/2 (/ (pow re 2) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(* 1/2 (/ (pow re 2) im))
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
im
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
im
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(pow im 2)
(+ (* 1/2 (pow re 2)) (pow im 2))
(+ (* 1/2 (pow re 2)) (pow im 2))
(+ (* 1/2 (pow re 2)) (pow im 2))
(* 1/2 (pow re 2))
(* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))
(* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))
(* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))
(* 1/2 (pow re 2))
(* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))
(* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))
(* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))
(* 1/2 (pow re 2))
(+ (* 1/2 (pow re 2)) (pow im 2))
(+ (* 1/2 (pow re 2)) (pow im 2))
(+ (* 1/2 (pow re 2)) (pow im 2))
(pow im 2)
(* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(pow im 2)
(* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(* 1/2 (pow re 2))
(* 1/2 (pow re 2))
(* 1/2 (pow re 2))
(* 1/2 (pow re 2))
(* 1/2 (pow re 2))
(* 1/2 (pow re 2))
(* 1/2 (pow re 2))
(* 1/2 (pow re 2))
(* 1/2 (pow re 2))
(* 1/2 (pow re 2))
(* 1/2 (pow re 2))
(* 1/2 (pow re 2))
(pow re 2)
(pow re 2)
(pow re 2)
(pow re 2)
(pow re 2)
(pow re 2)
(pow re 2)
(pow re 2)
(pow re 2)
(pow re 2)
(pow re 2)
(pow re 2)
(pow im 2)
(pow im 2)
(pow im 2)
(pow im 2)
(pow im 2)
(pow im 2)
(pow im 2)
(pow im 2)
(pow im 2)
(pow im 2)
(pow im 2)
(pow im 2)
Outputs
im
(+ im (* 1/2 (/ (pow re 2) im)))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(+ im (* 1/2 (/ (pow re 2) im)))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(+ im (* 1/2 (/ (pow re 2) im)))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* (pow re 2) (+ (* 1/2 (/ 1 im)) (/ im (pow re 2))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* 1/2 (/ (pow re 2) im))
(/.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im)
(/ (+ (* 1/2 (pow re 2)) (pow im 2)) im)
(/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im)
im
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* im (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
im
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(* -1 (* im (- (* -1/2 (/ (pow re 2) (pow im 2))) 1)))
(-.f64 im (/.f64 (*.f64 (*.f64 re re) #s(literal -1/2 binary64)) im))
(pow im 2)
(*.f64 im im)
(+ (* 1/2 (pow re 2)) (pow im 2))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(+ (* 1/2 (pow re 2)) (pow im 2))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(+ (* 1/2 (pow re 2)) (pow im 2))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* (pow re 2) (+ 1/2 (/ (pow im 2) (pow re 2))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(+ (* 1/2 (pow re 2)) (pow im 2))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(+ (* 1/2 (pow re 2)) (pow im 2))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(+ (* 1/2 (pow re 2)) (pow im 2))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(pow im 2)
(*.f64 im im)
(* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(pow im 2)
(*.f64 im im)
(* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* (pow im 2) (+ 1 (* 1/2 (/ (pow re 2) (pow im 2)))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(* 1/2 (pow re 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(pow re 2)
(*.f64 re re)
(pow re 2)
(*.f64 re re)
(pow re 2)
(*.f64 re re)
(pow re 2)
(*.f64 re re)
(pow re 2)
(*.f64 re re)
(pow re 2)
(*.f64 re re)
(pow re 2)
(*.f64 re re)
(pow re 2)
(*.f64 re re)
(pow re 2)
(*.f64 re re)
(pow re 2)
(*.f64 re re)
(pow re 2)
(*.f64 re re)
(pow re 2)
(*.f64 re re)
(pow im 2)
(*.f64 im im)
(pow im 2)
(*.f64 im im)
(pow im 2)
(*.f64 im im)
(pow im 2)
(*.f64 im im)
(pow im 2)
(*.f64 im im)
(pow im 2)
(*.f64 im im)
(pow im 2)
(*.f64 im im)
(pow im 2)
(*.f64 im im)
(pow im 2)
(*.f64 im im)
(pow im 2)
(*.f64 im im)
(pow im 2)
(*.f64 im im)
(pow im 2)
(*.f64 im im)

eval83.0ms (2.6%)

Compiler

Compiled 10796 to 716 computations (93.4% saved)

prune41.0ms (1.3%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New3290329
Fresh000
Picked011
Done033
Total3294333
Accuracy
100.0%
Counts
333 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 re im)
53.1%
(/.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 re re)) (*.f64 im im)) im)
99.5%
(+.f64 im (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im))))
99.2%
im
Compiler

Compiled 66 to 35 computations (47% saved)

regimes15.0ms (0.5%)

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

6 calls:

3.0ms
(*.f64 im im)
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))
Results
AccuracySegmentsBranch
100.0%1re
100.0%1im
100.0%1(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
100.0%1(+.f64 (*.f64 re re) (*.f64 im im))
100.0%1(*.f64 re re)
100.0%1(*.f64 im im)
Compiler

Compiled 35 to 21 computations (40% saved)

regimes7.0ms (0.2%)

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

3 calls:

3.0ms
(*.f64 re re)
2.0ms
im
2.0ms
re
Results
AccuracySegmentsBranch
99.5%1re
99.5%1im
99.5%1(*.f64 re re)
Compiler

Compiled 11 to 7 computations (36.4% saved)

regimes3.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
im
Outputs
im
Calls

2 calls:

1.0ms
im
1.0ms
re
Results
AccuracySegmentsBranch
99.2%1re
99.2%1im
Compiler

Compiled 6 to 4 computations (33.3% saved)

simplify8.0ms (0.3%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0813
11113
Stop Event
saturated
Calls
Call 1
Inputs
(hypot.f64 re im)
(+.f64 im (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im))))
im
Outputs
(hypot.f64 re im)
(+.f64 im (*.f64 #s(literal 1/2 binary64) (*.f64 re (/.f64 re im))))
im

soundness291.0ms (9%)

Rules
3804×*-lowering-*.f32
3804×*-lowering-*.f64
2068×+-lowering-+.f64
2068×+-lowering-+.f32
1652×fnmadd-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
099386
1292340
21044320
34052308
08374308
063
1113
2133
0133
Stop Event
done
iter limit
saturated
iter limit
node limit
Compiler

Compiled 35 to 21 computations (40% saved)

preprocess31.0ms (1%)

Remove

(sort re im)

(abs im)

(abs re)

Compiler

Compiled 110 to 64 computations (41.8% saved)

end0.0ms (0%)

Profiling

Loading profile data...