math.square on complex, real part

Time bar (total: 2.9s)

analyze0.0ms (0%)

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

Compiled 10 to 6 computations (40% saved)

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

sample626.0ms (21.8%)

Results
457.0ms8256×0valid
Precisions
Click to see histograms. Total time spent on operations: 195.0ms
ival-mult: 126.0ms (64.7% of total)
ival-sub: 57.0ms (29.3% of total)
const: 8.0ms (4.1% of total)
backward-pass: 3.0ms (1.5% of total)
Bogosity

preprocess42.0ms (1.5%)

Algorithm
egg-herbie
Rules
260×fnmadd-define
206×sum3-define
190×fma-define
176×fnmadd-define
160×fmsub-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01433
15530
212430
327330
454330
569330
671730
055
1145
2235
3365
4575
51185
62035
73615
85675
97715
108975
119115
09115
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
(- (* re re) (* im im))
Outputs
(- (* re re) (* im im))
(-.f64 (*.f64 re re) (*.f64 im im))
Call 2
Inputs
(- (* re re) (* im im))
(- (* (neg re) (neg re)) (* im im))
(- (* re re) (* (neg im) (neg im)))
(neg (- (* (neg re) (neg re)) (* im im)))
(neg (- (* re re) (* (neg im) (neg im))))
(- (* im im) (* re re))
Outputs
(- (* re re) (* im im))
(fmsub re re (square im))
(- (* (neg re) (neg re)) (* im im))
(fmsub re re (square im))
(- (* re re) (* (neg im) (neg im)))
(fmsub re re (square im))
(neg (- (* (neg re) (neg re)) (* im im)))
(fmsub im im (square re))
(neg (- (* re re) (* (neg im) (neg im))))
(fmsub im im (square re))
(- (* im im) (* re re))
(fmsub im im (square re))
Symmetry

(abs re)

(abs im)

explain58.0ms (2%)

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

Compiled 45 to 17 computations (62.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 10.0ms (76.1% of total)
ival-sub: 2.0ms (15.2% of total)
const: 1.0ms (7.6% of total)
backward-pass: 0.0ms (0% of total)

eval0.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
93.0%
(-.f64 (*.f64 re re) (*.f64 im im))
Compiler

Compiled 9 to 5 computations (44.4% saved)

simplify22.0ms (0.8%)

Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 im im)
cost-diff0
(*.f64 re re)
cost-diff0
(-.f64 (*.f64 re re) (*.f64 im im))
Rules
260×fnmadd-define
206×sum3-define
190×fma-define
156×fma-lowering-fma.f32
156×fmsub-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0511
11411
22311
33611
45711
511811
620311
736111
856711
977111
1089711
1191111
091111
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(- (* re re) (* im im))
(* re re)
re
(* im im)
im
Outputs
(- (* re re) (* im im))
(-.f64 (*.f64 re re) (*.f64 im im))
(* re re)
(*.f64 re re)
re
(* im im)
(*.f64 im im)
im

localize28.0ms (1%)

Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 re re)
accuracy100.0%
(*.f64 im im)
accuracy93.9%
(-.f64 (*.f64 re re) (*.f64 im im))
Results
22.0ms256×0valid
Compiler

Compiled 18 to 6 computations (66.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 4.0ms (74.3% of total)
ival-sub: 1.0ms (18.6% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series2.0ms (0.1%)

Counts
3 → 48
Calls
Call 1
Inputs
#<alt (- (* re re) (* im im))>
#<alt (* re re)>
#<alt (* im im)>
Outputs
#<alt (* -1 (pow im 2))>
#<alt (- (pow re 2) (pow im 2))>
#<alt (- (pow re 2) (pow im 2))>
#<alt (- (pow re 2) (pow im 2))>
#<alt (pow re 2)>
#<alt (* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))>
#<alt (* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))>
#<alt (* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))>
#<alt (pow re 2)>
#<alt (* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))>
#<alt (* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))>
#<alt (* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))>
#<alt (pow re 2)>
#<alt (+ (* -1 (pow im 2)) (pow re 2))>
#<alt (+ (* -1 (pow im 2)) (pow re 2))>
#<alt (+ (* -1 (pow im 2)) (pow re 2))>
#<alt (* -1 (pow im 2))>
#<alt (* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))>
#<alt (* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))>
#<alt (* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))>
#<alt (* -1 (pow im 2))>
#<alt (* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))>
#<alt (* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))>
#<alt (* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))>
#<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

12 calls:

TimeVariablePointExpression
0.0ms
re
@0
(- (* re re) (* im im))
0.0ms
re
@inf
(- (* re re) (* im im))
0.0ms
im
@0
(- (* re re) (* im im))
0.0ms
im
@inf
(- (* re re) (* im im))
0.0ms
re
@-inf
(- (* re re) (* im im))

rewrite230.0ms (8%)

Algorithm
batch-egg-rewrite
Rules
1902×sum4-define
1280×+-lowering-+.f64
1280×+-lowering-+.f32
1104×*-lowering-*.f32
1104×*-lowering-*.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059
1199
2459
32029
411959
529819
664129
080859
Stop Event
iter limit
node limit
Counts
3 → 239
Calls
Call 1
Inputs
(- (* re re) (* im im))
(* re re)
(* im im)
Outputs
(+.f64 (*.f64 re re) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(+.f64 im (+.f64 (*.f64 im (-.f64 #s(literal -1 binary64) im)) (*.f64 re re)))
(+.f64 im (neg.f64 (+.f64 (*.f64 im (-.f64 #s(literal 1 binary64) im)) (-.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (*.f64 re re)))))
(+.f64 (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) #s(literal 0 binary64))
(+.f64 (-.f64 #s(literal 0 binary64) im) (+.f64 (*.f64 im (-.f64 #s(literal 1 binary64) im)) (*.f64 re re)))
(+.f64 (-.f64 #s(literal 0 binary64) im) (neg.f64 (+.f64 (*.f64 im (-.f64 #s(literal -1 binary64) im)) (-.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (*.f64 re re)))))
(+.f64 #s(literal 0 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 re re))
(+.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))) (*.f64 im im))
(+.f64 (*.f64 (*.f64 im im) #s(literal -2 binary64)) (+.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (*.f64 (*.f64 im im) #s(literal -2 binary64)) (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re re) (*.f64 im im))) #s(literal -1 binary64)))
(+.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -3 binary64))))
(+.f64 (+.f64 (*.f64 re re) (*.f64 im im)) (*.f64 (*.f64 im im) #s(literal -2 binary64)))
(+.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 (*.f64 im im) #s(literal -3 binary64)))
(+.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -3 binary64))) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(+.f64 (*.f64 (*.f64 im im) #s(literal -3 binary64)) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (*.f64 (*.f64 im im) #s(literal -2 binary64)) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64)))))
(+.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 im im)) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 im (*.f64 #s(literal -4 binary64) im)))
(+.f64 (-.f64 (*.f64 re re) im) (*.f64 im (-.f64 #s(literal 1 binary64) im)))
(+.f64 (+.f64 (*.f64 re re) im) (*.f64 im (-.f64 #s(literal -1 binary64) im)))
(+.f64 (+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 re re)) (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(+.f64 (-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))) im) (*.f64 im (+.f64 #s(literal 1 binary64) im)))
(+.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))) im) (*.f64 im (+.f64 #s(literal -1 binary64) im)))
(+.f64 (neg.f64 (-.f64 (-.f64 (*.f64 im im) (*.f64 re re)) (*.f64 re re))) (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(-.f64 (*.f64 re re) (*.f64 im im))
(-.f64 (*.f64 im im) (-.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (*.f64 re re)))
(-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (-.f64 (*.f64 im im) (*.f64 re re)))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(-.f64 (*.f64 (*.f64 im im) #s(literal -2 binary64)) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re re) (*.f64 im im))))
(-.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (+.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(-.f64 (+.f64 (*.f64 re re) (*.f64 im im)) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -3 binary64))) (*.f64 (*.f64 im im) #s(literal -2 binary64)))
(-.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 im im)) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 (*.f64 im im) #s(literal 4 binary64)))
(-.f64 (-.f64 (*.f64 re re) im) (*.f64 im (+.f64 #s(literal -1 binary64) im)))
(-.f64 (+.f64 (*.f64 re re) im) (*.f64 im (+.f64 #s(literal 1 binary64) im)))
(-.f64 (+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 re re)) (*.f64 re re))
(-.f64 (-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))) im) (*.f64 im (-.f64 #s(literal -1 binary64) im)))
(-.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))) im) (*.f64 im (-.f64 #s(literal 1 binary64) im)))
(fma.f64 re re (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 im im (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))))
(fma.f64 im (-.f64 #s(literal 0 binary64) im) (*.f64 re re))
(fma.f64 im #s(literal 0 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 im (*.f64 im #s(literal -2 binary64)) (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (*.f64 im im) #s(literal -1 binary64) (*.f64 re re))
(fma.f64 (*.f64 im im) #s(literal 1 binary64) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))))
(fma.f64 (*.f64 im im) #s(literal -2 binary64) (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (-.f64 #s(literal 0 binary64) im) im (*.f64 re re))
(fma.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal 0 binary64) im) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 #s(literal 0 binary64) (*.f64 im im) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 #s(literal 2 binary64) #s(literal 0 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 #s(literal 2 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 2 binary64) (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal -1 binary64) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))))
(fma.f64 #s(literal -1 binary64) (*.f64 im im) (*.f64 re re))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))))
(fma.f64 #s(literal -1 binary64) (*.f64 (*.f64 im im) #s(literal 2 binary64)) (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 #s(literal -1 binary64) (-.f64 (*.f64 im im) (*.f64 re re)) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 re re))
(fma.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) #s(literal -1 binary64) (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 #s(literal -2 binary64) (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (*.f64 im #s(literal -2 binary64)) im (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (*.f64 im #s(literal 2 binary64)) (-.f64 #s(literal 0 binary64) im) (+.f64 (*.f64 re re) (*.f64 im im)))
(neg.f64 (-.f64 (*.f64 im im) (*.f64 re re)))
(*.f64 #s(literal -1 binary64) (-.f64 (*.f64 im im) (*.f64 re re)))
(*.f64 #s(literal 1 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (-.f64 (*.f64 im im) (*.f64 re re)) #s(literal -1 binary64))
(+.f64 (*.f64 re re) #s(literal 0 binary64))
(+.f64 im (+.f64 (*.f64 im (-.f64 #s(literal -1 binary64) im)) (+.f64 (*.f64 re re) (*.f64 im im))))
(+.f64 im (neg.f64 (+.f64 (*.f64 im (-.f64 #s(literal 1 binary64) im)) (-.f64 (*.f64 im im) (*.f64 re re)))))
(+.f64 (*.f64 im im) (-.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 im im))
(+.f64 (-.f64 #s(literal 0 binary64) im) (+.f64 (*.f64 im (-.f64 #s(literal 1 binary64) im)) (+.f64 (*.f64 re re) (*.f64 im im))))
(+.f64 (-.f64 #s(literal 0 binary64) im) (neg.f64 (+.f64 (*.f64 im (-.f64 #s(literal -1 binary64) im)) (-.f64 (*.f64 im im) (*.f64 re re)))))
(+.f64 #s(literal 0 binary64) (*.f64 re re))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (+.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re re) (*.f64 im im))) #s(literal -1 binary64)))
(+.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(+.f64 (*.f64 (*.f64 im im) #s(literal -2 binary64)) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))))
(+.f64 (*.f64 (*.f64 im im) #s(literal -2 binary64)) (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) #s(literal -1 binary64))))
(+.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))))
(+.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))) #s(literal -1 binary64))))
(+.f64 (+.f64 (*.f64 re re) (*.f64 im im)) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(+.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 (*.f64 im im) #s(literal -2 binary64)))
(+.f64 (*.f64 (*.f64 im im) #s(literal -3 binary64)) (+.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (+.f64 (*.f64 re re) (*.f64 im im))))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -3 binary64))))
(+.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re re) (*.f64 im im))) #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(+.f64 (+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal 3 binary64)))) (*.f64 (*.f64 im im) #s(literal -2 binary64)))
(+.f64 (+.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (+.f64 (*.f64 re re) (*.f64 im im))) (*.f64 (*.f64 im im) #s(literal -3 binary64)))
(+.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 im im)) im) (*.f64 im (-.f64 #s(literal -1 binary64) im)))
(+.f64 (-.f64 (+.f64 (*.f64 re re) (*.f64 im im)) im) (*.f64 im (-.f64 #s(literal 1 binary64) im)))
(+.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 im (*.f64 #s(literal -4 binary64) im)))
(+.f64 (*.f64 (*.f64 re re) #s(literal 2 binary64)) (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(+.f64 (-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) im) (*.f64 im (+.f64 #s(literal 1 binary64) im)))
(+.f64 (+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) im) (*.f64 im (+.f64 #s(literal -1 binary64) im)))
(+.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 im im)) (*.f64 (*.f64 im im) #s(literal -3 binary64)))
(+.f64 (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))) #s(literal -1 binary64))) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(+.f64 (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) #s(literal -1 binary64))) (*.f64 (*.f64 im im) #s(literal -2 binary64)))
(+.f64 (neg.f64 (*.f64 (*.f64 re re) #s(literal -2 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(exp.f64 (*.f64 #s(literal 2 binary64) (log.f64 re)))
(-.f64 (*.f64 re re) #s(literal 0 binary64))
(-.f64 (*.f64 im im) (-.f64 (*.f64 im im) (*.f64 re re)))
(-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(-.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re re) (*.f64 im im))))
(-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))) (*.f64 (*.f64 im im) #s(literal -2 binary64)))
(-.f64 (*.f64 (*.f64 im im) #s(literal -2 binary64)) (-.f64 (*.f64 (*.f64 im im) #s(literal -2 binary64)) (*.f64 re re)))
(-.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (-.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (*.f64 re re)))
(-.f64 (+.f64 (*.f64 re re) (*.f64 im im)) (*.f64 im im))
(-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(-.f64 (+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal 3 binary64)))) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(-.f64 (+.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (+.f64 (*.f64 re re) (*.f64 im im))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 im im)) im) (*.f64 im (+.f64 #s(literal 1 binary64) im)))
(-.f64 (-.f64 (+.f64 (*.f64 re re) (*.f64 im im)) im) (*.f64 im (+.f64 #s(literal -1 binary64) im)))
(-.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 (*.f64 im im) #s(literal 4 binary64)))
(-.f64 (*.f64 (*.f64 re re) #s(literal 2 binary64)) (*.f64 re re))
(-.f64 (-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) im) (*.f64 im (-.f64 #s(literal -1 binary64) im)))
(-.f64 (+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) im) (*.f64 im (-.f64 #s(literal 1 binary64) im)))
(-.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 re re #s(literal 0 binary64))
(fma.f64 im im (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 im (-.f64 #s(literal 0 binary64) im) (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 im #s(literal 0 binary64) (*.f64 re re))
(fma.f64 im (*.f64 im #s(literal -2 binary64)) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))))
(fma.f64 im (*.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))))
(fma.f64 (*.f64 im im) #s(literal 2 binary64) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))))
(fma.f64 (*.f64 im im) #s(literal -1 binary64) (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (*.f64 im im) #s(literal 1 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (*.f64 im im) #s(literal -2 binary64) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) im) im (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal 0 binary64) im) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))))
(fma.f64 #s(literal 0 binary64) (*.f64 im im) (*.f64 re re))
(fma.f64 #s(literal 2 binary64) (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))))
(fma.f64 #s(literal 2 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 2 binary64) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal -1 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 #s(literal -1 binary64) (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 #s(literal -1 binary64) (*.f64 (*.f64 im im) #s(literal 2 binary64)) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))))
(fma.f64 #s(literal -1 binary64) (-.f64 (*.f64 im im) (*.f64 re re)) (*.f64 im im))
(fma.f64 #s(literal 1 binary64) (*.f64 im im) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (+.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) #s(literal -1 binary64) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))))
(fma.f64 #s(literal -2 binary64) (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))))
(fma.f64 (*.f64 im #s(literal -2 binary64)) im (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))))
(fma.f64 (*.f64 im #s(literal 2 binary64)) im (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal -2 binary64))))
(fma.f64 (*.f64 im #s(literal 2 binary64)) (-.f64 #s(literal 0 binary64) im) (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(pow.f64 re #s(literal 2 binary64))
(pow.f64 (-.f64 #s(literal 0 binary64) re) #s(literal 2 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (log.f64 re))
(*.f64 re re)
(*.f64 re (+.f64 re (*.f64 #s(literal 0 binary64) re)))
(*.f64 re (-.f64 re (*.f64 #s(literal 0 binary64) re)))
(*.f64 (*.f64 re re) #s(literal 1 binary64))
(*.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(*.f64 #s(literal 1 binary64) (*.f64 re re))
(*.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) #s(literal -1 binary64))
(*.f64 (-.f64 #s(literal 0 binary64) re) (-.f64 #s(literal 0 binary64) re))
(*.f64 (*.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) re)) (-.f64 #s(literal 0 binary64) re))
(+.f64 im (*.f64 im (+.f64 #s(literal -1 binary64) im)))
(+.f64 (*.f64 im im) #s(literal 0 binary64))
(+.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im (+.f64 #s(literal 1 binary64) im)))
(+.f64 #s(literal 0 binary64) (*.f64 im im))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(+.f64 (*.f64 (*.f64 im im) #s(literal -2 binary64)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(+.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) (+.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (*.f64 (*.f64 im im) #s(literal -3 binary64)) (*.f64 (*.f64 im im) #s(literal 4 binary64)))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 (*.f64 im im) #s(literal -2 binary64)))
(+.f64 (*.f64 (*.f64 im im) #s(literal 4 binary64)) (*.f64 (*.f64 im im) #s(literal -3 binary64)))
(+.f64 (*.f64 im (+.f64 #s(literal -1 binary64) im)) im)
(+.f64 (*.f64 im (+.f64 #s(literal 1 binary64) im)) (-.f64 #s(literal 0 binary64) im))
(+.f64 (*.f64 im (+.f64 (*.f64 im #s(literal 2 binary64)) #s(literal 1 binary64))) (*.f64 im (-.f64 #s(literal -1 binary64) im)))
(+.f64 (*.f64 im (+.f64 (*.f64 im #s(literal 2 binary64)) #s(literal -1 binary64))) (*.f64 im (-.f64 #s(literal 1 binary64) im)))
(+.f64 (*.f64 (*.f64 im im) #s(literal 5 binary64)) (*.f64 im (*.f64 #s(literal -4 binary64) im)))
(exp.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)))
(-.f64 im (*.f64 im (-.f64 #s(literal 1 binary64) im)))
(-.f64 (*.f64 im im) #s(literal 0 binary64))
(-.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im (-.f64 #s(literal -1 binary64) im)))
(-.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 (*.f64 im im) #s(literal -2 binary64)))
(-.f64 (*.f64 (*.f64 im im) #s(literal -2 binary64)) (*.f64 (*.f64 im im) #s(literal -3 binary64)))
(-.f64 (*.f64 (*.f64 im im) #s(literal 2 binary64)) (*.f64 im im))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re re) (*.f64 im im))))
(-.f64 (*.f64 (*.f64 im im) #s(literal -3 binary64)) (*.f64 im (*.f64 #s(literal -4 binary64) im)))
(-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(-.f64 (*.f64 (*.f64 im im) #s(literal 4 binary64)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (*.f64 im (+.f64 (*.f64 im #s(literal 2 binary64)) #s(literal 1 binary64))) (*.f64 im (+.f64 #s(literal 1 binary64) im)))
(-.f64 (*.f64 im (+.f64 (*.f64 im #s(literal 2 binary64)) #s(literal -1 binary64))) (*.f64 im (+.f64 #s(literal -1 binary64) im)))
(-.f64 (*.f64 (*.f64 im im) #s(literal 5 binary64)) (*.f64 (*.f64 im im) #s(literal 4 binary64)))
(fma.f64 im im #s(literal 0 binary64))
(fma.f64 im (-.f64 #s(literal 0 binary64) im) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(fma.f64 im (*.f64 im #s(literal 2 binary64)) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 (*.f64 im im) #s(literal 2 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 (*.f64 im im) #s(literal -1 binary64) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(fma.f64 (*.f64 im im) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) im) im (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(fma.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal 0 binary64) im) #s(literal 0 binary64))
(fma.f64 #s(literal 2 binary64) (*.f64 im im) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal -1 binary64) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (*.f64 im im) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 im im) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(fma.f64 (*.f64 im #s(literal 2 binary64)) im (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(pow.f64 im #s(literal 2 binary64))
(pow.f64 (-.f64 #s(literal 0 binary64) im) #s(literal 2 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (log.f64 im))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (log.f64 (-.f64 #s(literal 0 binary64) im)))
(pow.f64 (exp.f64 (log.f64 (-.f64 #s(literal 0 binary64) im))) #s(literal 2 binary64))
(*.f64 im im)
(*.f64 im (+.f64 (*.f64 im #s(literal -2 binary64)) (*.f64 im #s(literal 3 binary64))))
(*.f64 im (-.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) im)))
(*.f64 im (-.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) im)))
(*.f64 im (-.f64 (*.f64 im #s(literal -2 binary64)) (*.f64 im #s(literal -3 binary64))))
(*.f64 im (-.f64 (*.f64 im #s(literal -3 binary64)) (*.f64 #s(literal -4 binary64) im)))
(*.f64 (*.f64 im im) #s(literal 1 binary64))
(*.f64 (*.f64 im im) (pow.f64 (exp.f64 #s(literal 2 binary64)) (log.f64 #s(literal -1 binary64))))
(*.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal 0 binary64) im))
(*.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) im)))
(*.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 (*.f64 im #s(literal 3 binary64)) (*.f64 #s(literal 4 binary64) im)))
(*.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 (*.f64 im #s(literal -3 binary64)) (*.f64 im #s(literal -2 binary64))))
(*.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal 1 binary64) (+.f64 im #s(literal 1 binary64))))
(*.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal -1 binary64))
(*.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(*.f64 #s(literal 1 binary64) (*.f64 im im))
(*.f64 (pow.f64 (exp.f64 #s(literal 2 binary64)) (log.f64 #s(literal -1 binary64))) (*.f64 im im))
(*.f64 (exp.f64 (log.f64 (-.f64 #s(literal 0 binary64) im))) (exp.f64 (log.f64 (-.f64 #s(literal 0 binary64) im))))
(*.f64 (exp.f64 (log.f64 #s(literal -1 binary64))) (exp.f64 (log.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)))))
(*.f64 (exp.f64 (log.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)))) (exp.f64 (log.f64 #s(literal -1 binary64))))

simplify142.0ms (4.9%)

Algorithm
egg-herbie
Rules
2294×/-lowering-/.f32
2294×/-lowering-/.f64
1560×*-lowering-*.f32
1560×*-lowering-*.f64
1456×fma-lowering-fma.f32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
017219
140153
2122153
3505153
41779153
53536153
67715153
08285153
Stop Event
iter limit
node limit
Counts
48 → 48
Calls
Call 1
Inputs
(* -1 (pow im 2))
(- (pow re 2) (pow im 2))
(- (pow re 2) (pow im 2))
(- (pow re 2) (pow im 2))
(pow re 2)
(* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))
(* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))
(* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))
(pow re 2)
(* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))
(* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))
(* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))
(pow re 2)
(+ (* -1 (pow im 2)) (pow re 2))
(+ (* -1 (pow im 2)) (pow re 2))
(+ (* -1 (pow im 2)) (pow re 2))
(* -1 (pow im 2))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(* -1 (pow im 2))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(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
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(- (pow re 2) (pow im 2))
(-.f64 (*.f64 re re) (*.f64 im im))
(- (pow re 2) (pow im 2))
(-.f64 (*.f64 re re) (*.f64 im im))
(- (pow re 2) (pow im 2))
(-.f64 (*.f64 re re) (*.f64 im im))
(pow re 2)
(*.f64 re re)
(* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))
(-.f64 (*.f64 re re) (*.f64 im im))
(pow re 2)
(*.f64 re re)
(* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow re 2) (+ 1 (* -1 (/ (pow im 2) (pow re 2)))))
(-.f64 (*.f64 re re) (*.f64 im im))
(pow re 2)
(*.f64 re re)
(+ (* -1 (pow im 2)) (pow re 2))
(-.f64 (*.f64 re re) (*.f64 im im))
(+ (* -1 (pow im 2)) (pow re 2))
(-.f64 (*.f64 re re) (*.f64 im im))
(+ (* -1 (pow im 2)) (pow re 2))
(-.f64 (*.f64 re re) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(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)

eval30.0ms (1.1%)

Compiler

Compiled 3788 to 517 computations (86.4% saved)

prune30.0ms (1.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New2843287
Fresh000
Picked011
Done000
Total2844288
Accuracy
100.0%
Counts
288 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
73.7%
(-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
93.0%
(-.f64 (*.f64 re re) (*.f64 im im))
55.5%
(-.f64 #s(literal 0 binary64) (*.f64 im im))
50.5%
(*.f64 re re)
Compiler

Compiled 38 to 24 computations (36.8% saved)

simplify136.0ms (4.7%)

Algorithm
egg-herbie
Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (*.f64 im im) #s(literal 2 binary64))
cost-diff0
(*.f64 re re)
cost-diff0
(+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
cost-diff512
(-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
cost-diff0
(*.f64 im im)
cost-diff0
(-.f64 #s(literal 0 binary64) (*.f64 im im))
cost-diff0
(*.f64 re re)
Rules
1578×*-lowering-*.f32
1578×*-lowering-*.f64
1528×+-lowering-+.f64
1528×+-lowering-+.f32
1492×sum5-define
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01348
13442
28741
317040
433840
5140140
6404140
7726540
0801140
Stop Event
iter limit
node limit
Calls
Call 1
Inputs
(* re re)
re
(- 0 (* im im))
0
(* im im)
im
(- (+ (* re re) (* (* im im) 2)) (* im (* im 3)))
(+ (* re re) (* (* im im) 2))
(* re re)
re
(* (* im im) 2)
(* im im)
im
2
(* im (* im 3))
(* im 3)
3
Outputs
(* re re)
(*.f64 re re)
re
(- 0 (* im im))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
0
#s(literal 0 binary64)
(* im im)
(*.f64 im im)
im
(- (+ (* re re) (* (* im im) 2)) (* im (* im 3)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+ (* re re) (* (* im im) 2))
(+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64)))
(* re re)
(*.f64 re re)
re
(* (* im im) 2)
(*.f64 (*.f64 im im) #s(literal 2 binary64))
(* im im)
(*.f64 im im)
im
2
#s(literal 2 binary64)
(* im (* im 3))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* im 3)
(*.f64 im #s(literal 3 binary64))
3
#s(literal 3 binary64)

localize61.0ms (2.1%)

Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 im #s(literal 3 binary64))
accuracy100.0%
(*.f64 (*.f64 im im) #s(literal 2 binary64))
accuracy99.8%
(*.f64 im (*.f64 im #s(literal 3 binary64)))
accuracy74.8%
(-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
accuracy100.0%
(-.f64 #s(literal 0 binary64) (*.f64 im im))
accuracy100.0%
(*.f64 im im)
accuracy100.0%
(*.f64 re re)
Results
45.0ms256×0valid
Compiler

Compiled 64 to 14 computations (78.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 8.0ms (62.1% of total)
ival-sub: 2.0ms (15.5% of total)
ival-add: 1.0ms (7.8% of total)
const: 1.0ms (7.8% of total)
backward-pass: 0.0ms (0% of total)

series4.0ms (0.1%)

Counts
8 → 120
Calls
Call 1
Inputs
#<alt (* re re)>
#<alt (- 0 (* im im))>
#<alt (* im im)>
#<alt (- (+ (* re re) (* (* im im) 2)) (* im (* im 3)))>
#<alt (+ (* re re) (* (* im im) 2))>
#<alt (* (* im im) 2)>
#<alt (* im (* im 3))>
#<alt (* im 3)>
Outputs
#<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 (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (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)>
#<alt (pow im 2)>
#<alt (- (* 2 (pow im 2)) (* 3 (pow im 2)))>
#<alt (- (+ (* 2 (pow im 2)) (pow re 2)) (* 3 (pow im 2)))>
#<alt (- (+ (* 2 (pow im 2)) (pow re 2)) (* 3 (pow im 2)))>
#<alt (- (+ (* 2 (pow im 2)) (pow re 2)) (* 3 (pow im 2)))>
#<alt (pow re 2)>
#<alt (* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))>
#<alt (* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))>
#<alt (* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))>
#<alt (pow re 2)>
#<alt (* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))>
#<alt (* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))>
#<alt (* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))>
#<alt (pow re 2)>
#<alt (+ (* -1 (pow im 2)) (pow re 2))>
#<alt (+ (* -1 (pow im 2)) (pow re 2))>
#<alt (+ (* -1 (pow im 2)) (pow re 2))>
#<alt (* -1 (pow im 2))>
#<alt (* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))>
#<alt (* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))>
#<alt (* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))>
#<alt (* -1 (pow im 2))>
#<alt (* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))>
#<alt (* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))>
#<alt (* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))>
#<alt (* 2 (pow im 2))>
#<alt (+ (* 2 (pow im 2)) (pow re 2))>
#<alt (+ (* 2 (pow im 2)) (pow re 2))>
#<alt (+ (* 2 (pow im 2)) (pow re 2))>
#<alt (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 (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 (pow re 2)>
#<alt (+ (* 2 (pow im 2)) (pow re 2))>
#<alt (+ (* 2 (pow im 2)) (pow re 2))>
#<alt (+ (* 2 (pow im 2)) (pow re 2))>
#<alt (* 2 (pow im 2))>
#<alt (* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))>
#<alt (* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))>
#<alt (* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))>
#<alt (* 2 (pow im 2))>
#<alt (* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))>
#<alt (* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))>
#<alt (* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))>
#<alt (* 2 (pow im 2))>
#<alt (* 2 (pow im 2))>
#<alt (* 2 (pow im 2))>
#<alt (* 2 (pow im 2))>
#<alt (* 2 (pow im 2))>
#<alt (* 2 (pow im 2))>
#<alt (* 2 (pow im 2))>
#<alt (* 2 (pow im 2))>
#<alt (* 2 (pow im 2))>
#<alt (* 2 (pow im 2))>
#<alt (* 2 (pow im 2))>
#<alt (* 2 (pow im 2))>
#<alt (* 3 (pow im 2))>
#<alt (* 3 (pow im 2))>
#<alt (* 3 (pow im 2))>
#<alt (* 3 (pow im 2))>
#<alt (* 3 (pow im 2))>
#<alt (* 3 (pow im 2))>
#<alt (* 3 (pow im 2))>
#<alt (* 3 (pow im 2))>
#<alt (* 3 (pow im 2))>
#<alt (* 3 (pow im 2))>
#<alt (* 3 (pow im 2))>
#<alt (* 3 (pow im 2))>
#<alt (* 3 im)>
#<alt (* 3 im)>
#<alt (* 3 im)>
#<alt (* 3 im)>
#<alt (* 3 im)>
#<alt (* 3 im)>
#<alt (* 3 im)>
#<alt (* 3 im)>
#<alt (* 3 im)>
#<alt (* 3 im)>
#<alt (* 3 im)>
#<alt (* 3 im)>
Calls

30 calls:

TimeVariablePointExpression
1.0ms
re
@0
(- (+ (* re re) (* (* im im) 2)) (* im (* im 3)))
0.0ms
im
@inf
(* im (* im 3))
0.0ms
im
@inf
(* (* im im) 2)
0.0ms
im
@-inf
(* im 3)
0.0ms
im
@0
(* im 3)

rewrite167.0ms (5.8%)

Algorithm
batch-egg-rewrite
Rules
2126×fma-define
1606×prod-diff
1454×+-lowering-+.f64
1454×+-lowering-+.f32
1364×--lowering--.f32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01337
13631
211430
327929
4104829
5363729
0848629
Stop Event
iter limit
node limit
Counts
8 → 494
Calls
Call 1
Inputs
(* re re)
(- 0 (* im im))
(* im im)
(- (+ (* re re) (* (* im im) 2)) (* im (* im 3)))
(+ (* re re) (* (* im im) 2))
(* (* im im) 2)
(* im (* im 3))
(* im 3)
Outputs
(+.f64 (*.f64 re re) #s(literal 0 binary64))
(+.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(+.f64 #s(literal 0 binary64) (*.f64 re re))
(+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(exp.f64 (*.f64 #s(literal 2 binary64) (log.f64 re)))
(-.f64 (*.f64 re re) #s(literal 0 binary64))
(-.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64))))))
(-.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(-.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(-.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (-.f64 (*.f64 #s(literal 0 binary64) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(-.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 im (*.f64 im #s(literal -3 binary64)) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 im #s(literal 0 binary64) (*.f64 re re))
(fma.f64 (*.f64 im im) #s(literal 0 binary64) (*.f64 re re))
(fma.f64 (*.f64 im im) #s(literal -3 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 #s(literal 2 binary64) #s(literal 0 binary64) (*.f64 re re))
(fma.f64 #s(literal 3 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 #s(literal 3 binary64) #s(literal 0 binary64) (*.f64 re re))
(fma.f64 (*.f64 im #s(literal 3 binary64)) (-.f64 #s(literal 0 binary64) im) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 (*.f64 im #s(literal 3 binary64)) #s(literal 0 binary64) (*.f64 re re))
(fma.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) #s(literal -1 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal 3 binary64)) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 3 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 (*.f64 im #s(literal -3 binary64)) im (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 re re))
(fma.f64 #s(literal -3 binary64) (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 #s(literal -1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 #s(literal -1 binary64) (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 re re #s(literal 0 binary64))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(pow.f64 re #s(literal 2 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (log.f64 re))
(*.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(*.f64 re re)
(*.f64 re (neg.f64 (-.f64 #s(literal 0 binary64) re)))
(*.f64 (-.f64 #s(literal 0 binary64) re) (-.f64 #s(literal 0 binary64) re))
(*.f64 #s(literal 1 binary64) (*.f64 re re))
(*.f64 (neg.f64 (-.f64 #s(literal 0 binary64) re)) re)
(+.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 im (*.f64 im #s(literal -4 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 0 binary64))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (fma.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (neg.f64 (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64))))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (neg.f64 (+.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal 2 binary64))))))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 #s(literal -1 binary64) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64))))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)) #s(literal -1 binary64)))
(+.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(+.f64 (*.f64 im (*.f64 im #s(literal -4 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(+.f64 (*.f64 (*.f64 im im) #s(literal -7 binary64)) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal 8 binary64))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(+.f64 (*.f64 (*.f64 im #s(literal -4 binary64)) im) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(+.f64 (*.f64 (*.f64 im #s(literal 8 binary64)) im) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(-.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 (*.f64 im im) #s(literal 4 binary64)))
(-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal -4 binary64)))))
(-.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (*.f64 im (*.f64 im #s(literal -2 binary64))))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 0 binary64))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (+.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(-.f64 (*.f64 im (*.f64 im #s(literal 6 binary64))) (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 im (*.f64 im #s(literal -4 binary64)))))
(-.f64 (*.f64 im (*.f64 im #s(literal -4 binary64))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (*.f64 im (*.f64 im #s(literal 8 binary64))) (*.f64 (*.f64 im #s(literal 3 binary64)) (*.f64 im #s(literal 3 binary64))))
(-.f64 (*.f64 im (*.f64 im #s(literal 8 binary64))) (*.f64 (*.f64 im im) #s(literal 9 binary64)))
(-.f64 (*.f64 (*.f64 im im) #s(literal 5 binary64)) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(-.f64 (+.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (*.f64 (*.f64 im im) #s(literal 5 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (+.f64 (*.f64 im (*.f64 im #s(literal -4 binary64))) (*.f64 im (*.f64 im #s(literal 6 binary64)))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (+.f64 (*.f64 (*.f64 im im) #s(literal -7 binary64)) (*.f64 im (*.f64 im #s(literal 3 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (+.f64 (*.f64 (*.f64 im im) #s(literal -7 binary64)) (*.f64 (*.f64 im im) #s(literal 12 binary64))) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(-.f64 (+.f64 (*.f64 (*.f64 im im) #s(literal -7 binary64)) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(fma.f64 im (*.f64 im #s(literal 3 binary64)) (*.f64 im (*.f64 im #s(literal -4 binary64))))
(fma.f64 im (-.f64 #s(literal 0 binary64) im) #s(literal 0 binary64))
(fma.f64 im (*.f64 im #s(literal 2 binary64)) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 im (*.f64 im #s(literal -3 binary64)) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 im #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 im (*.f64 im #s(literal -4 binary64)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 (*.f64 im im) #s(literal 2 binary64) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 (*.f64 im im) #s(literal 3 binary64) (*.f64 im (*.f64 im #s(literal -4 binary64))))
(fma.f64 (*.f64 im im) #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 (*.f64 im im) #s(literal -3 binary64) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 (*.f64 im im) #s(literal -1 binary64) #s(literal 0 binary64))
(fma.f64 (*.f64 im im) #s(literal -4 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 #s(literal 2 binary64) (*.f64 im im) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 #s(literal 2 binary64) #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 #s(literal 3 binary64) (*.f64 im im) (*.f64 im (*.f64 im #s(literal -4 binary64))))
(fma.f64 #s(literal 3 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 #s(literal 3 binary64) #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 (*.f64 im #s(literal 3 binary64)) im (*.f64 im (*.f64 im #s(literal -4 binary64))))
(fma.f64 (*.f64 im #s(literal 3 binary64)) (-.f64 #s(literal 0 binary64) im) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 (*.f64 im #s(literal 3 binary64)) #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) #s(literal -1 binary64) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) im) im #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal 3 binary64)) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 #s(literal 4 binary64) im) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 (*.f64 im #s(literal 2 binary64)) im (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 3 binary64) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 (*.f64 im #s(literal -3 binary64)) im (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 #s(literal 0 binary64) im (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 #s(literal -3 binary64) (*.f64 im im) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 #s(literal -1 binary64) (*.f64 im im) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 #s(literal -1 binary64) (*.f64 (*.f64 im im) #s(literal 4 binary64)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 im (*.f64 im #s(literal -4 binary64))))
(fma.f64 #s(literal 4 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(neg.f64 (*.f64 im im))
(*.f64 im (-.f64 #s(literal 0 binary64) im))
(*.f64 im (+.f64 (*.f64 im #s(literal 3 binary64)) (*.f64 im #s(literal -4 binary64))))
(*.f64 (*.f64 im im) #s(literal -1 binary64))
(*.f64 (-.f64 #s(literal 0 binary64) im) im)
(*.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 1 binary64))
(*.f64 #s(literal -1 binary64) (*.f64 im im))
(+.f64 (*.f64 im im) #s(literal 0 binary64))
(+.f64 (*.f64 im im) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(+.f64 (*.f64 im im) (+.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 im (*.f64 im #s(literal -2 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (neg.f64 (*.f64 im (*.f64 im #s(literal -4 binary64)))))
(+.f64 #s(literal 0 binary64) (*.f64 im im))
(+.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(+.f64 (*.f64 (*.f64 im im) #s(literal 4 binary64)) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(+.f64 (neg.f64 (*.f64 im (*.f64 im #s(literal -4 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(+.f64 (neg.f64 (*.f64 (*.f64 im im) #s(literal -7 binary64))) (*.f64 im (*.f64 im #s(literal -6 binary64))))
(+.f64 (neg.f64 (*.f64 im (*.f64 im #s(literal 8 binary64)))) (neg.f64 (*.f64 im (*.f64 im #s(literal -9 binary64)))))
(exp.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)))
(-.f64 (*.f64 im im) #s(literal 0 binary64))
(-.f64 (*.f64 im im) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(-.f64 (*.f64 im im) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal 2 binary64))))))
(-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(-.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (*.f64 im (*.f64 im #s(literal -4 binary64))))
(-.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(-.f64 (*.f64 im (*.f64 im #s(literal 6 binary64))) (*.f64 (*.f64 im im) #s(literal 5 binary64)))
(-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (*.f64 (*.f64 im im) #s(literal 4 binary64)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (+.f64 #s(literal 0 binary64) (*.f64 (*.f64 im im) #s(literal 4 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 im im))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64)))) (*.f64 im (*.f64 im #s(literal -6 binary64))))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal -4 binary64)))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal 6 binary64)))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(-.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal -9 binary64)))) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 (*.f64 im im) #s(literal -7 binary64))) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal 8 binary64)))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(-.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal 4 binary64)) (*.f64 im (*.f64 im #s(literal 6 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 (*.f64 im im) #s(literal -12 binary64))) (*.f64 (*.f64 im im) #s(literal 9 binary64)))
(-.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 (*.f64 im (*.f64 im #s(literal -4 binary64))) #s(literal 3 binary64))) (*.f64 (*.f64 im im) #s(literal 9 binary64)))
(-.f64 (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 (*.f64 im im) #s(literal 5 binary64))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 im im #s(literal 0 binary64))
(fma.f64 im im (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(fma.f64 im im (+.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(fma.f64 im (*.f64 im #s(literal 3 binary64)) (*.f64 im (*.f64 im #s(literal -2 binary64))))
(fma.f64 (*.f64 im im) #s(literal 3 binary64) (*.f64 im (*.f64 im #s(literal -2 binary64))))
(fma.f64 (*.f64 im im) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 (*.f64 im im) #s(literal 1 binary64) (+.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(fma.f64 #s(literal 3 binary64) (*.f64 im im) (*.f64 im (*.f64 im #s(literal -2 binary64))))
(fma.f64 (*.f64 im #s(literal 3 binary64)) im (*.f64 im (*.f64 im #s(literal -2 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 im (*.f64 im #s(literal -2 binary64))))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(pow.f64 im #s(literal 2 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (log.f64 im))
(*.f64 im im)
(*.f64 (*.f64 im im) #s(literal 1 binary64))
(*.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal 0 binary64) im))
(*.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal -1 binary64))
(*.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(*.f64 #s(literal 1 binary64) (*.f64 im im))
(+.f64 (*.f64 re re) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(+.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))))
(+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -4 binary64)))))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) #s(literal 0 binary64))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (-.f64 #s(literal 0 binary64) (*.f64 #s(literal 0 binary64) (*.f64 re re))))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (neg.f64 (-.f64 #s(literal 0 binary64) re)) re (-.f64 #s(literal 0 binary64) (*.f64 re re))))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (-.f64 #s(literal 0 binary64) re) (-.f64 #s(literal 0 binary64) re) (-.f64 #s(literal 0 binary64) (*.f64 re re))))
(+.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(+.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (*.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) #s(literal -1 binary64)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 re re))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) #s(literal -1 binary64)))
(+.f64 #s(literal 0 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))
(+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (neg.f64 (+.f64 (*.f64 #s(literal 0 binary64) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal -2 binary64))))))
(+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (*.f64 #s(literal -1 binary64) (*.f64 im (*.f64 im #s(literal -2 binary64)))))
(+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (*.f64 #s(literal -1 binary64) (+.f64 (*.f64 #s(literal 0 binary64) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal -2 binary64))))))
(+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -4 binary64)))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal -4 binary64))) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(+.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) (*.f64 im (*.f64 im #s(literal -9 binary64)))) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(+.f64 (-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal -9 binary64)))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(+.f64 (fma.f64 im (*.f64 im #s(literal -3 binary64)) (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64)))) (fma.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64))))
(+.f64 (fma.f64 (*.f64 im im) #s(literal -3 binary64) (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64)))) (fma.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64))))
(+.f64 (fma.f64 #s(literal 3 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64)))) (fma.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64))))
(+.f64 (fma.f64 (*.f64 im #s(literal 3 binary64)) (-.f64 #s(literal 0 binary64) im) (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64)))) (fma.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64))))
(+.f64 (fma.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) #s(literal -1 binary64) (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64)))) (fma.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64))))
(+.f64 (fma.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal 3 binary64)) (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64)))) (fma.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64))))
(+.f64 (fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 3 binary64) (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64)))) (fma.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64))))
(+.f64 (fma.f64 (*.f64 im #s(literal -3 binary64)) im (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64)))) (fma.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64))))
(+.f64 (fma.f64 #s(literal -3 binary64) (*.f64 im im) (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64)))) (fma.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64))))
(+.f64 (fma.f64 #s(literal -1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (neg.f64 (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64)))) (fma.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal -1 binary64))))
(+.f64 (fma.f64 im (-.f64 #s(literal 0 binary64) im) (neg.f64 (*.f64 (*.f64 re re) #s(literal -1 binary64)))) (fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (*.f64 re re) #s(literal -1 binary64))))
(+.f64 (fma.f64 (*.f64 im im) #s(literal -1 binary64) (neg.f64 (*.f64 (*.f64 re re) #s(literal -1 binary64)))) (fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (*.f64 re re) #s(literal -1 binary64))))
(+.f64 (fma.f64 (-.f64 #s(literal 0 binary64) im) im (neg.f64 (*.f64 (*.f64 re re) #s(literal -1 binary64)))) (fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (*.f64 re re) #s(literal -1 binary64))))
(+.f64 (fma.f64 #s(literal -1 binary64) (*.f64 im im) (neg.f64 (*.f64 (*.f64 re re) #s(literal -1 binary64)))) (fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) #s(literal -1 binary64) (*.f64 (*.f64 re re) #s(literal -1 binary64))))
(+.f64 (*.f64 (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 re re)) #s(literal -1 binary64)) (*.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) #s(literal -1 binary64)))
(+.f64 (*.f64 (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 re re)) #s(literal -1 binary64)) (*.f64 (+.f64 (*.f64 #s(literal 0 binary64) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal -2 binary64)))) #s(literal -1 binary64)))
(+.f64 (*.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) #s(literal -1 binary64)) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(+.f64 (*.f64 (-.f64 (*.f64 im im) (*.f64 re re)) #s(literal -1 binary64)) #s(literal 0 binary64))
(-.f64 (*.f64 re re) (*.f64 im im))
(-.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 re re)))
(-.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (-.f64 (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64))))))
(-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -4 binary64))))))
(-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) #s(literal 0 binary64))
(-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 #s(literal 0 binary64) (*.f64 re re)))
(-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (+.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(-.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(-.f64 #s(literal 0 binary64) (-.f64 (*.f64 im im) (*.f64 re re)))
(-.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (*.f64 im (*.f64 im #s(literal -2 binary64))))
(-.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (+.f64 (*.f64 #s(literal 0 binary64) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal -2 binary64)))))
(-.f64 (*.f64 im (*.f64 im #s(literal 6 binary64))) (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -4 binary64))))))
(-.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -4 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))) (*.f64 (*.f64 im im) #s(literal 4 binary64)))
(-.f64 (*.f64 (*.f64 im im) #s(literal 5 binary64)) (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal -6 binary64)))))
(-.f64 (*.f64 (*.f64 im im) #s(literal 5 binary64)) (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64))))))
(-.f64 (-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal -9 binary64)))) (*.f64 (*.f64 im #s(literal 3 binary64)) (*.f64 im #s(literal 3 binary64))))
(-.f64 (-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal -9 binary64)))) (*.f64 (*.f64 im im) #s(literal 9 binary64)))
(-.f64 (+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64))))) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(-.f64 (+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (-.f64 (*.f64 re re) (*.f64 im im))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (*.f64 (*.f64 im im) #s(literal 5 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -4 binary64)))) (*.f64 im (*.f64 im #s(literal 6 binary64)))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) (*.f64 im (*.f64 im #s(literal -9 binary64)))) (*.f64 im (*.f64 im #s(literal 3 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) (*.f64 im (*.f64 im #s(literal -9 binary64)))) (*.f64 (*.f64 im im) #s(literal 12 binary64))) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) (*.f64 im (*.f64 im #s(literal -9 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(-.f64 (-.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (*.f64 #s(literal 0 binary64) (*.f64 re re))) (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 re re)))
(-.f64 (-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (-.f64 #s(literal 0 binary64) (*.f64 re re))) (*.f64 re re))
(fma.f64 im (*.f64 im #s(literal 3 binary64)) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -4 binary64)))))
(fma.f64 im (-.f64 #s(literal 0 binary64) im) (*.f64 re re))
(fma.f64 im (*.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))))
(fma.f64 im (*.f64 im #s(literal -3 binary64)) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(fma.f64 im #s(literal 0 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 im (*.f64 im #s(literal -4 binary64)) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 (*.f64 im im) #s(literal 2 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))))
(fma.f64 (*.f64 im im) #s(literal 3 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -4 binary64)))))
(fma.f64 (*.f64 im im) #s(literal 0 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (*.f64 im im) #s(literal -3 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(fma.f64 (*.f64 im im) #s(literal -1 binary64) (*.f64 re re))
(fma.f64 (*.f64 im im) #s(literal -4 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 #s(literal 2 binary64) (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))))
(fma.f64 #s(literal 3 binary64) (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -4 binary64)))))
(fma.f64 #s(literal 3 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(fma.f64 #s(literal 3 binary64) #s(literal 0 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (*.f64 im #s(literal 3 binary64)) im (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -4 binary64)))))
(fma.f64 (*.f64 im #s(literal 3 binary64)) (-.f64 #s(literal 0 binary64) im) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(fma.f64 (*.f64 im #s(literal 3 binary64)) #s(literal 0 binary64) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) #s(literal -1 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(fma.f64 (-.f64 #s(literal 0 binary64) im) im (*.f64 re re))
(fma.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal 3 binary64)) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(fma.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 #s(literal 4 binary64) im) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 (*.f64 im #s(literal 2 binary64)) im (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -3 binary64)))))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 3 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(fma.f64 (*.f64 im #s(literal -3 binary64)) im (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(fma.f64 #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (-.f64 (*.f64 re re) (*.f64 im im)))
(fma.f64 #s(literal -3 binary64) (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(fma.f64 #s(literal -1 binary64) (*.f64 im im) (*.f64 re re))
(fma.f64 #s(literal -1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(fma.f64 #s(literal -1 binary64) (-.f64 (*.f64 im im) (*.f64 re re)) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (-.f64 (*.f64 im im) (*.f64 re re)) (-.f64 #s(literal 0 binary64) (*.f64 #s(literal 0 binary64) (*.f64 re re))))
(fma.f64 #s(literal -1 binary64) (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 #s(literal -1 binary64) (*.f64 (*.f64 im im) #s(literal 4 binary64)) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 re re (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 #s(literal 1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -4 binary64)))))
(fma.f64 #s(literal 4 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(neg.f64 (-.f64 (*.f64 im im) (*.f64 re re)))
(*.f64 #s(literal -1 binary64) (-.f64 (*.f64 im im) (*.f64 re re)))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (*.f64 re re))
(+.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal 0 binary64))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(+.f64 #s(literal 0 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(+.f64 (+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal 6 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal -2 binary64))))
(-.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 re re)))
(-.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))) #s(literal 0 binary64))
(-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (-.f64 (*.f64 im im) (*.f64 re re)))
(-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (-.f64 (*.f64 #s(literal 0 binary64) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(-.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (-.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64))))))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(-.f64 #s(literal 0 binary64) (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)))
(-.f64 (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))) (*.f64 im im))
(-.f64 (*.f64 (*.f64 im im) #s(literal 5 binary64)) (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 re re)))
(-.f64 (+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal 6 binary64)))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 5 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (+.f64 (+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal 6 binary64)))) #s(literal 0 binary64)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 im (-.f64 #s(literal 0 binary64) im) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 im (*.f64 im #s(literal 2 binary64)) (*.f64 re re))
(fma.f64 (*.f64 im im) #s(literal 2 binary64) (*.f64 re re))
(fma.f64 (*.f64 im im) #s(literal -1 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 #s(literal 2 binary64) (*.f64 im im) (*.f64 re re))
(fma.f64 (-.f64 #s(literal 0 binary64) im) im (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 (*.f64 im #s(literal 2 binary64)) im (*.f64 re re))
(fma.f64 #s(literal -1 binary64) (*.f64 im im) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(fma.f64 #s(literal -1 binary64) (-.f64 (*.f64 im im) (*.f64 re re)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 re re (*.f64 im (*.f64 im #s(literal 2 binary64))))
(neg.f64 (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)))
(*.f64 #s(literal -1 binary64) (-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 re re)))
(*.f64 #s(literal 1 binary64) (+.f64 (*.f64 re re) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(+.f64 (*.f64 im im) (*.f64 im im))
(+.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) #s(literal 0 binary64))
(+.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (fma.f64 #s(literal 1 binary64) (*.f64 im im) (-.f64 #s(literal 0 binary64) (*.f64 im im))))
(+.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (fma.f64 (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal 0 binary64) im) (-.f64 #s(literal 0 binary64) (*.f64 im im))))
(+.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im))))
(+.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (*.f64 #s(literal 2 binary64) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (*.f64 (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)) #s(literal 2 binary64)))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(+.f64 #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(+.f64 (*.f64 (*.f64 im im) #s(literal 5 binary64)) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (*.f64 im im) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(-.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) #s(literal 0 binary64))
(-.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(-.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (+.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 im im))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal -2 binary64))))
(-.f64 (*.f64 im (*.f64 im #s(literal 6 binary64))) (-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 im im))))
(-.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))) (*.f64 im (*.f64 im #s(literal -4 binary64))))
(-.f64 (*.f64 (*.f64 im im) #s(literal 5 binary64)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (*.f64 (*.f64 im im) #s(literal 4 binary64)) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(-.f64 (-.f64 (*.f64 im im) (*.f64 im (*.f64 im #s(literal 2 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (+.f64 (*.f64 im im) (*.f64 (*.f64 im im) #s(literal 4 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (+.f64 (*.f64 im im) (*.f64 im (*.f64 im #s(literal -2 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (+.f64 #s(literal 0 binary64) (*.f64 (*.f64 im im) #s(literal 5 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (+.f64 (*.f64 (*.f64 im im) #s(literal 5 binary64)) #s(literal 0 binary64)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (-.f64 (*.f64 im im) (*.f64 im (*.f64 im #s(literal -4 binary64)))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (-.f64 (*.f64 im im) (*.f64 (*.f64 im im) #s(literal -7 binary64))) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(-.f64 (-.f64 (*.f64 im im) (*.f64 im (*.f64 im #s(literal 8 binary64)))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(fma.f64 im im (*.f64 im im))
(fma.f64 im (*.f64 im #s(literal 3 binary64)) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 im (-.f64 #s(literal 0 binary64) im) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 im (*.f64 im #s(literal 2 binary64)) #s(literal 0 binary64))
(fma.f64 im #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 (*.f64 im im) #s(literal 2 binary64) #s(literal 0 binary64))
(fma.f64 (*.f64 im im) #s(literal 3 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 (*.f64 im im) #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 (*.f64 im im) #s(literal -1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 #s(literal 2 binary64) (*.f64 im im) #s(literal 0 binary64))
(fma.f64 #s(literal 3 binary64) (*.f64 im im) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 #s(literal 3 binary64) #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 (*.f64 im #s(literal 3 binary64)) im (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 (*.f64 im #s(literal 3 binary64)) #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) im) im (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 (*.f64 im #s(literal 2 binary64)) im #s(literal 0 binary64))
(fma.f64 #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 im (*.f64 im #s(literal 2 binary64))))
(fma.f64 #s(literal -1 binary64) (*.f64 im im) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(neg.f64 (*.f64 im (*.f64 im #s(literal -2 binary64))))
(*.f64 im (*.f64 im #s(literal 2 binary64)))
(*.f64 im (+.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal 3 binary64))))
(*.f64 (*.f64 im im) #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) (*.f64 im im))
(*.f64 (*.f64 im #s(literal 2 binary64)) im)
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) #s(literal 0 binary64))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (fma.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64)))))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 #s(literal 3 binary64) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 #s(literal 1 binary64) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 #s(literal 0 binary64) (*.f64 im #s(literal -3 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) im)))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)) #s(literal 3 binary64)))
(+.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)) #s(literal 1 binary64)))
(+.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (neg.f64 (*.f64 im (*.f64 im #s(literal -6 binary64)))))
(+.f64 #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal -9 binary64))) (*.f64 #s(literal -3 binary64) (*.f64 im (*.f64 im #s(literal -4 binary64)))))
(+.f64 (*.f64 im (*.f64 im #s(literal -9 binary64))) (*.f64 (*.f64 im (*.f64 im #s(literal -4 binary64))) #s(literal -3 binary64)))
(+.f64 (*.f64 im (*.f64 im #s(literal 6 binary64))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal -6 binary64))) (neg.f64 (*.f64 im (*.f64 im #s(literal -9 binary64)))))
(+.f64 (*.f64 im (*.f64 im #s(literal -6 binary64))) (*.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal -9 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal -6 binary64))) (*.f64 #s(literal -3 binary64) (*.f64 im (*.f64 im #s(literal -3 binary64)))))
(+.f64 (*.f64 im (*.f64 im #s(literal -6 binary64))) (*.f64 (*.f64 im #s(literal -3 binary64)) (*.f64 im #s(literal -3 binary64))))
(+.f64 (*.f64 im (*.f64 im #s(literal -6 binary64))) (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal -3 binary64)))
(+.f64 (*.f64 im (*.f64 im #s(literal -6 binary64))) (*.f64 (*.f64 im #s(literal -9 binary64)) (-.f64 #s(literal 0 binary64) im)))
(+.f64 (neg.f64 (*.f64 im (*.f64 im #s(literal -9 binary64)))) (*.f64 im (*.f64 im #s(literal -6 binary64))))
(+.f64 (*.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal -9 binary64))) (*.f64 im (*.f64 im #s(literal -6 binary64))))
(+.f64 (*.f64 #s(literal -3 binary64) (*.f64 im (*.f64 im #s(literal -3 binary64)))) (*.f64 im (*.f64 im #s(literal -6 binary64))))
(+.f64 (*.f64 (*.f64 im #s(literal -3 binary64)) (*.f64 im #s(literal -3 binary64))) (*.f64 im (*.f64 im #s(literal -6 binary64))))
(+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal -3 binary64)) (*.f64 im (*.f64 im #s(literal -6 binary64))))
(+.f64 (*.f64 (*.f64 im #s(literal -9 binary64)) (-.f64 #s(literal 0 binary64) im)) (*.f64 im (*.f64 im #s(literal -6 binary64))))
(+.f64 (neg.f64 (*.f64 im (*.f64 im #s(literal -6 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(+.f64 (neg.f64 (*.f64 (*.f64 im im) #s(literal -12 binary64))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(+.f64 (neg.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -4 binary64))) #s(literal 3 binary64))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(+.f64 (*.f64 (*.f64 im #s(literal -3 binary64)) (*.f64 im #s(literal -4 binary64))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(+.f64 (*.f64 (*.f64 im #s(literal -3 binary64)) (*.f64 im #s(literal 8 binary64))) (*.f64 (*.f64 im #s(literal -3 binary64)) (*.f64 im #s(literal -9 binary64))))
(+.f64 (*.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal -6 binary64))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(+.f64 (*.f64 #s(literal -3 binary64) (*.f64 im (*.f64 im #s(literal -4 binary64)))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(+.f64 (*.f64 #s(literal -3 binary64) (*.f64 (*.f64 im im) #s(literal -7 binary64))) (*.f64 #s(literal -3 binary64) (*.f64 im (*.f64 im #s(literal 6 binary64)))))
(+.f64 (*.f64 #s(literal -3 binary64) (*.f64 im (*.f64 im #s(literal 8 binary64)))) (*.f64 #s(literal -3 binary64) (*.f64 im (*.f64 im #s(literal -9 binary64)))))
(+.f64 (*.f64 #s(literal 0 binary64) (*.f64 im #s(literal -3 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(+.f64 (*.f64 (*.f64 im #s(literal -4 binary64)) (*.f64 im #s(literal -3 binary64))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(+.f64 (*.f64 (*.f64 im #s(literal 8 binary64)) (*.f64 im #s(literal -3 binary64))) (*.f64 (*.f64 im #s(literal -9 binary64)) (*.f64 im #s(literal -3 binary64))))
(+.f64 (*.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) im)) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(+.f64 (*.f64 (*.f64 im #s(literal -6 binary64)) (-.f64 #s(literal 0 binary64) im)) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -4 binary64))) #s(literal -3 binary64)) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(+.f64 (*.f64 (*.f64 (*.f64 im im) #s(literal -7 binary64)) #s(literal -3 binary64)) (*.f64 (*.f64 im (*.f64 im #s(literal 6 binary64))) #s(literal -3 binary64)))
(+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal 8 binary64))) #s(literal -3 binary64)) (*.f64 (*.f64 im (*.f64 im #s(literal -9 binary64))) #s(literal -3 binary64)))
(+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal 6 binary64))) #s(literal 1 binary64)) (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 1 binary64)))
(-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) #s(literal 0 binary64))
(-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(-.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) (-.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (*.f64 im (*.f64 im #s(literal -3 binary64)))))
(-.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (*.f64 im (*.f64 im #s(literal -6 binary64))))
(-.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (-.f64 (*.f64 im (*.f64 im #s(literal -9 binary64))) (*.f64 im (*.f64 im #s(literal -3 binary64)))))
(-.f64 #s(literal 0 binary64) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(-.f64 (*.f64 im (*.f64 im #s(literal 6 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(-.f64 (*.f64 im (*.f64 im #s(literal -6 binary64))) (*.f64 im (*.f64 im #s(literal -9 binary64))))
(-.f64 (*.f64 (*.f64 im im) #s(literal 9 binary64)) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(-.f64 (*.f64 (*.f64 im im) #s(literal 12 binary64)) (*.f64 (*.f64 im im) #s(literal 9 binary64)))
(-.f64 (+.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) (*.f64 (*.f64 im im) #s(literal 12 binary64))) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 (*.f64 im im) #s(literal -12 binary64))) (*.f64 (*.f64 im im) #s(literal 9 binary64)))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 (*.f64 im (*.f64 im #s(literal -4 binary64))) #s(literal 3 binary64))) (*.f64 (*.f64 im im) #s(literal 9 binary64)))
(-.f64 (-.f64 (*.f64 im (*.f64 im #s(literal 6 binary64))) (*.f64 im (*.f64 im #s(literal 6 binary64)))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 im (*.f64 im #s(literal 3 binary64)) #s(literal 0 binary64))
(fma.f64 im (*.f64 im #s(literal 3 binary64)) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(fma.f64 im (*.f64 im #s(literal -3 binary64)) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(fma.f64 im (*.f64 im #s(literal 6 binary64)) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 (*.f64 im im) #s(literal 3 binary64) #s(literal 0 binary64))
(fma.f64 (*.f64 im im) #s(literal 3 binary64) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(fma.f64 (*.f64 im im) #s(literal -3 binary64) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(fma.f64 (*.f64 im im) #s(literal 6 binary64) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 #s(literal 2 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) #s(literal 3 binary64) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 #s(literal 3 binary64) (*.f64 im im) #s(literal 0 binary64))
(fma.f64 #s(literal 3 binary64) (*.f64 im im) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(fma.f64 #s(literal 3 binary64) (*.f64 im (*.f64 im #s(literal 2 binary64))) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 #s(literal 3 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(fma.f64 (*.f64 im #s(literal 3 binary64)) im #s(literal 0 binary64))
(fma.f64 (*.f64 im #s(literal 3 binary64)) im (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(fma.f64 (*.f64 im #s(literal 3 binary64)) (-.f64 #s(literal 0 binary64) im) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(fma.f64 (*.f64 im #s(literal 3 binary64)) (*.f64 im #s(literal 2 binary64)) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) #s(literal 2 binary64) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) #s(literal -1 binary64) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal 3 binary64)) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(fma.f64 (*.f64 im #s(literal 2 binary64)) (*.f64 im #s(literal 3 binary64)) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 3 binary64) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(fma.f64 (*.f64 im #s(literal -3 binary64)) im (*.f64 im (*.f64 im #s(literal 6 binary64))))
(fma.f64 #s(literal -3 binary64) (*.f64 im im) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(fma.f64 #s(literal -1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (*.f64 im (*.f64 im #s(literal 6 binary64))))
(fma.f64 (*.f64 im #s(literal 6 binary64)) im (*.f64 im (*.f64 im #s(literal -3 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))) (+.f64 (*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal 0 binary64)) #s(literal 0 binary64)))
(fma.f64 #s(literal 6 binary64) (*.f64 im im) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(neg.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(*.f64 im (+.f64 (*.f64 im #s(literal -3 binary64)) (*.f64 im #s(literal 6 binary64))))
(*.f64 (*.f64 im im) #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) (*.f64 im im))
(*.f64 #s(literal 3 binary64) (+.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 im im))))
(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) (*.f64 im (*.f64 im #s(literal 2 binary64)))))
(*.f64 #s(literal 3 binary64) (-.f64 (*.f64 im (*.f64 im #s(literal 2 binary64))) (*.f64 im im)))
(*.f64 (*.f64 im #s(literal 3 binary64)) im)
(*.f64 (*.f64 im #s(literal 3 binary64)) (+.f64 (*.f64 im #s(literal 2 binary64)) (-.f64 #s(literal 0 binary64) im)))
(*.f64 (*.f64 im #s(literal 3 binary64)) (+.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal 2 binary64))))
(*.f64 (*.f64 im #s(literal 3 binary64)) (-.f64 (*.f64 im #s(literal 2 binary64)) im))
(*.f64 (*.f64 im (*.f64 im #s(literal 3 binary64))) #s(literal 1 binary64))
(*.f64 (*.f64 im (*.f64 im #s(literal -3 binary64))) #s(literal -1 binary64))
(*.f64 (-.f64 #s(literal 0 binary64) im) (*.f64 im #s(literal -3 binary64)))
(*.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal -3 binary64))
(*.f64 (*.f64 im #s(literal -3 binary64)) (-.f64 #s(literal 0 binary64) im))
(*.f64 #s(literal -3 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(*.f64 #s(literal -1 binary64) (*.f64 im (*.f64 im #s(literal -3 binary64))))
(*.f64 #s(literal 1 binary64) (*.f64 im (*.f64 im #s(literal 3 binary64))))
(+.f64 (*.f64 im #s(literal 3 binary64)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 im #s(literal 3 binary64)))
(+.f64 (*.f64 im #s(literal 6 binary64)) (*.f64 im #s(literal -3 binary64)))
(+.f64 (*.f64 im #s(literal -6 binary64)) (neg.f64 (*.f64 im #s(literal -9 binary64))))
(+.f64 (neg.f64 (*.f64 im #s(literal -9 binary64))) (*.f64 im #s(literal -6 binary64)))
(+.f64 (neg.f64 (*.f64 im #s(literal -6 binary64))) (*.f64 im #s(literal -3 binary64)))
(-.f64 (*.f64 im #s(literal 3 binary64)) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (*.f64 im #s(literal -3 binary64)))
(-.f64 (*.f64 im #s(literal 6 binary64)) (*.f64 im #s(literal 3 binary64)))
(fma.f64 im #s(literal 3 binary64) #s(literal 0 binary64))
(fma.f64 #s(literal 3 binary64) im #s(literal 0 binary64))
(neg.f64 (*.f64 im #s(literal -3 binary64)))
(*.f64 im #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) im)
(*.f64 (*.f64 im #s(literal 3 binary64)) #s(literal 1 binary64))
(*.f64 (-.f64 #s(literal 0 binary64) im) #s(literal -3 binary64))
(*.f64 (*.f64 im #s(literal -3 binary64)) #s(literal -1 binary64))
(*.f64 #s(literal -3 binary64) (-.f64 #s(literal 0 binary64) im))
(*.f64 #s(literal -1 binary64) (*.f64 im #s(literal -3 binary64)))
(*.f64 #s(literal 1 binary64) (*.f64 im #s(literal 3 binary64)))

simplify149.0ms (5.2%)

Algorithm
egg-herbie
Rules
2878×*-lowering-*.f32
2878×*-lowering-*.f64
1526×fma-lowering-fma.f32
1526×fma-lowering-fma.f64
1484×fmsub-define
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
028717
183447
2263447
31136447
44737447
08550447
Stop Event
iter limit
node limit
Counts
120 → 120
Calls
Call 1
Inputs
(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)
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (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)
(pow im 2)
(- (* 2 (pow im 2)) (* 3 (pow im 2)))
(- (+ (* 2 (pow im 2)) (pow re 2)) (* 3 (pow im 2)))
(- (+ (* 2 (pow im 2)) (pow re 2)) (* 3 (pow im 2)))
(- (+ (* 2 (pow im 2)) (pow re 2)) (* 3 (pow im 2)))
(pow re 2)
(* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))
(* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))
(* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))
(pow re 2)
(* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))
(* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))
(* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))
(pow re 2)
(+ (* -1 (pow im 2)) (pow re 2))
(+ (* -1 (pow im 2)) (pow re 2))
(+ (* -1 (pow im 2)) (pow re 2))
(* -1 (pow im 2))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(* -1 (pow im 2))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(* 2 (pow im 2))
(+ (* 2 (pow im 2)) (pow re 2))
(+ (* 2 (pow im 2)) (pow re 2))
(+ (* 2 (pow im 2)) (pow re 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)))))
(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)))))
(pow re 2)
(+ (* 2 (pow im 2)) (pow re 2))
(+ (* 2 (pow im 2)) (pow re 2))
(+ (* 2 (pow im 2)) (pow re 2))
(* 2 (pow im 2))
(* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))
(* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))
(* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))
(* 2 (pow im 2))
(* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))
(* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))
(* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))
(* 2 (pow im 2))
(* 2 (pow im 2))
(* 2 (pow im 2))
(* 2 (pow im 2))
(* 2 (pow im 2))
(* 2 (pow im 2))
(* 2 (pow im 2))
(* 2 (pow im 2))
(* 2 (pow im 2))
(* 2 (pow im 2))
(* 2 (pow im 2))
(* 2 (pow im 2))
(* 3 (pow im 2))
(* 3 (pow im 2))
(* 3 (pow im 2))
(* 3 (pow im 2))
(* 3 (pow im 2))
(* 3 (pow im 2))
(* 3 (pow im 2))
(* 3 (pow im 2))
(* 3 (pow im 2))
(* 3 (pow im 2))
(* 3 (pow im 2))
(* 3 (pow im 2))
(* 3 im)
(* 3 im)
(* 3 im)
(* 3 im)
(* 3 im)
(* 3 im)
(* 3 im)
(* 3 im)
(* 3 im)
(* 3 im)
(* 3 im)
(* 3 im)
Outputs
(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)
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.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)
(pow im 2)
(*.f64 im im)
(- (* 2 (pow im 2)) (* 3 (pow im 2)))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(- (+ (* 2 (pow im 2)) (pow re 2)) (* 3 (pow im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(- (+ (* 2 (pow im 2)) (pow re 2)) (* 3 (pow im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(- (+ (* 2 (pow im 2)) (pow re 2)) (* 3 (pow im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(pow re 2)
(*.f64 re re)
(* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))
(-.f64 (*.f64 re re) (*.f64 im im))
(pow re 2)
(*.f64 re re)
(* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow re 2) (- (+ 1 (* 2 (/ (pow im 2) (pow re 2)))) (* 3 (/ (pow im 2) (pow re 2)))))
(-.f64 (*.f64 re re) (*.f64 im im))
(pow re 2)
(*.f64 re re)
(+ (* -1 (pow im 2)) (pow re 2))
(-.f64 (*.f64 re re) (*.f64 im im))
(+ (* -1 (pow im 2)) (pow re 2))
(-.f64 (*.f64 re re) (*.f64 im im))
(+ (* -1 (pow im 2)) (pow re 2))
(-.f64 (*.f64 re re) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(* (pow im 2) (- (/ (pow re 2) (pow im 2)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(+ (* 2 (pow im 2)) (pow re 2))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(+ (* 2 (pow im 2)) (pow re 2))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(+ (* 2 (pow im 2)) (pow re 2))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(pow re 2)
(*.f64 re re)
(* (pow re 2) (+ 1 (* 2 (/ (pow im 2) (pow re 2)))))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(* (pow re 2) (+ 1 (* 2 (/ (pow im 2) (pow re 2)))))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(* (pow re 2) (+ 1 (* 2 (/ (pow im 2) (pow re 2)))))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(pow re 2)
(*.f64 re re)
(* (pow re 2) (+ 1 (* 2 (/ (pow im 2) (pow re 2)))))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(* (pow re 2) (+ 1 (* 2 (/ (pow im 2) (pow re 2)))))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(* (pow re 2) (+ 1 (* 2 (/ (pow im 2) (pow re 2)))))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(pow re 2)
(*.f64 re re)
(+ (* 2 (pow im 2)) (pow re 2))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(+ (* 2 (pow im 2)) (pow re 2))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(+ (* 2 (pow im 2)) (pow re 2))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(* (pow im 2) (+ 2 (/ (pow re 2) (pow im 2))))
(+.f64 (*.f64 re re) (*.f64 im (*.f64 #s(literal 2 binary64) im)))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* 2 (pow im 2))
(*.f64 im (*.f64 #s(literal 2 binary64) im))
(* 3 (pow im 2))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* 3 (pow im 2))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* 3 (pow im 2))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* 3 (pow im 2))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* 3 (pow im 2))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* 3 (pow im 2))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* 3 (pow im 2))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* 3 (pow im 2))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* 3 (pow im 2))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* 3 (pow im 2))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* 3 (pow im 2))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* 3 (pow im 2))
(*.f64 im (*.f64 im #s(literal 3 binary64)))
(* 3 im)
(*.f64 im #s(literal 3 binary64))
(* 3 im)
(*.f64 im #s(literal 3 binary64))
(* 3 im)
(*.f64 im #s(literal 3 binary64))
(* 3 im)
(*.f64 im #s(literal 3 binary64))
(* 3 im)
(*.f64 im #s(literal 3 binary64))
(* 3 im)
(*.f64 im #s(literal 3 binary64))
(* 3 im)
(*.f64 im #s(literal 3 binary64))
(* 3 im)
(*.f64 im #s(literal 3 binary64))
(* 3 im)
(*.f64 im #s(literal 3 binary64))
(* 3 im)
(*.f64 im #s(literal 3 binary64))
(* 3 im)
(*.f64 im #s(literal 3 binary64))
(* 3 im)
(*.f64 im #s(literal 3 binary64))

eval87.0ms (3%)

Compiler

Compiled 11979 to 1283 computations (89.3% saved)

prune94.0ms (3.3%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New7291730
Fresh000
Picked123
Done011
Total7304734
Accuracy
100.0%
Counts
734 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
73.7%
(-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
93.0%
(-.f64 (*.f64 re re) (*.f64 im im))
50.5%
(*.f64 re re)
55.5%
(neg.f64 (*.f64 im im))
Compiler

Compiled 37 to 23 computations (37.8% saved)

simplify6.0ms (0.2%)

Algorithm
egg-herbie
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff-64
(neg.f64 (*.f64 im im))
cost-diff0
(*.f64 im im)
Rules
40×sum3-define
32×fma-define
18×fma-lowering-fma.f32
18×fma-lowering-fma.f64
16×+-lowering-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036
1116
2156
3216
4356
5536
6626
7756
8996
0996
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(neg (* im im))
(* im im)
im
Outputs
(neg (* im im))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* im im)
(*.f64 im im)
im

localize23.0ms (0.8%)

Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 im im)
accuracy100.0%
(neg.f64 (*.f64 im im))
Results
18.0ms256×0valid
Compiler

Compiled 11 to 5 computations (54.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 4.0ms
ival-mult: 2.0ms (51.7% of total)
ival-neg: 1.0ms (25.9% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series0.0ms (0%)

Counts
2 → 24
Calls
Call 1
Inputs
#<alt (* im im)>
#<alt (neg (* im im))>
Outputs
#<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)>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
#<alt (* -1 (pow im 2))>
Calls

6 calls:

TimeVariablePointExpression
0.0ms
im
@inf
(neg (* im im))
0.0ms
im
@0
(neg (* im im))
0.0ms
im
@0
(* im im)
0.0ms
im
@-inf
(neg (* im im))
0.0ms
im
@-inf
(* im im)

rewrite16.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
40×sum3-define
32×fma-define
18×fma-lowering-fma.f32
18×+-lowering-+.f64
18×+-lowering-+.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035
1135
2205
3305
4535
5755
6875
71005
81245
01245
Stop Event
iter limit
saturated
Counts
2 → 23
Calls
Call 1
Inputs
(* im im)
(neg (* im im))
Outputs
(+.f64 (*.f64 im im) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 im im))
(exp.f64 (*.f64 #s(literal 2 binary64) (log.f64 im)))
(-.f64 (*.f64 im im) #s(literal 0 binary64))
(fma.f64 im im #s(literal 0 binary64))
(pow.f64 im #s(literal 2 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (log.f64 im))
(*.f64 im im)
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 im im)) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(fma.f64 im #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 im (-.f64 #s(literal 0 binary64) im) #s(literal 0 binary64))
(fma.f64 (*.f64 im im) #s(literal -1 binary64) #s(literal 0 binary64))
(fma.f64 #s(literal 0 binary64) im (-.f64 #s(literal 0 binary64) (*.f64 im im)))
(fma.f64 #s(literal -1 binary64) (*.f64 im im) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) im) im #s(literal 0 binary64))
(neg.f64 (*.f64 im im))
(*.f64 im (-.f64 #s(literal 0 binary64) im))
(*.f64 (*.f64 im im) #s(literal -1 binary64))
(*.f64 #s(literal -1 binary64) (*.f64 im im))
(*.f64 (-.f64 #s(literal 0 binary64) im) im)

simplify10.0ms (0.4%)

Algorithm
egg-herbie
Rules
40×sum3-define
32×fma-define
18×fma-lowering-fma.f32
18×fma-lowering-fma.f64
16×+-lowering-+.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0584
1860
21860
32060
42360
53760
65560
76460
87760
910160
010160
Stop Event
iter limit
saturated
Counts
24 → 24
Calls
Call 1
Inputs
(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)
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
(* -1 (pow im 2))
Outputs
(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)
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))
(* -1 (pow im 2))
(-.f64 #s(literal 0 binary64) (*.f64 im im))

eval5.0ms (0.2%)

Compiler

Compiled 243 to 39 computations (84% saved)

prune5.0ms (0.2%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New47047
Fresh000
Picked011
Done033
Total47451
Accuracy
100.0%
Counts
51 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
73.7%
(-.f64 (+.f64 (*.f64 re re) (*.f64 (*.f64 im im) #s(literal 2 binary64))) (*.f64 im (*.f64 im #s(literal 3 binary64))))
93.0%
(-.f64 (*.f64 re re) (*.f64 im im))
50.5%
(*.f64 re re)
55.5%
(neg.f64 (*.f64 im im))
Compiler

Compiled 73 to 38 computations (47.9% saved)

regimes13.0ms (0.5%)

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

5 calls:

4.0ms
im
2.0ms
re
2.0ms
(*.f64 im im)
2.0ms
(*.f64 re re)
2.0ms
(-.f64 (*.f64 re re) (*.f64 im im))
Results
AccuracySegmentsBranch
97.6%2re
95.3%2im
97.6%2(-.f64 (*.f64 re re) (*.f64 im im))
97.6%2(*.f64 re re)
95.3%2(*.f64 im im)
Compiler

Compiled 25 to 15 computations (40% saved)

regimes7.0ms (0.3%)

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

4 calls:

2.0ms
im
2.0ms
re
2.0ms
(*.f64 re re)
2.0ms
(*.f64 im im)
Results
AccuracySegmentsBranch
79.1%2im
79.1%2(*.f64 im im)
78.3%2re
78.3%2(*.f64 re re)
Compiler

Compiled 16 to 10 computations (37.5% saved)

regimes4.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 re re)
Outputs
(*.f64 re re)
Calls

3 calls:

1.0ms
im
1.0ms
re
1.0ms
(*.f64 re re)
Results
AccuracySegmentsBranch
50.5%1re
50.5%1(*.f64 re re)
50.5%1im
Compiler

Compiled 11 to 7 computations (36.4% saved)

bsearch10.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
10.0ms
1.396189591395678e+302
1.320144356214561e+304
Results
6.0ms112×0valid
Compiler

Compiled 98 to 65 computations (33.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-mult: 2.0ms (77.9% of total)
ival-sub: 1.0ms (39% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

bsearch12.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
11.0ms
3.446988330556999e+29
2.6137133423850036e+35
Results
6.0ms144×0valid
Compiler

Compiled 113 to 81 computations (28.3% saved)

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

simplify12.0ms (0.4%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
sub-neg_binary64
*-commutative_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01232
12132
22632
32932
43032
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 (*.f64 re re) #s(literal 12999999999999999697561883141973962435721492779911937982959345922470542275312526934343736572993965196248666247573523785617578163435860248862265031753281649936382856689819285329951908326934824671136318517815799496439611261276987326141693742220234082034268026167709624769716825850313625174788805152175292416 binary64)) (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 re re))
(if (<=.f64 (*.f64 im im) #s(literal 15600000000000000765063709847453696 binary64)) (*.f64 re re) (neg.f64 (*.f64 im im)))
(*.f64 re re)
Outputs
(if (<=.f64 (*.f64 re re) #s(literal 12999999999999999697561883141973962435721492779911937982959345922470542275312526934343736572993965196248666247573523785617578163435860248862265031753281649936382856689819285329951908326934824671136318517815799496439611261276987326141693742220234082034268026167709624769716825850313625174788805152175292416 binary64)) (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 re re))
(if (<=.f64 (*.f64 im im) #s(literal 15600000000000000765063709847453696 binary64)) (*.f64 re re) (neg.f64 (*.f64 im im)))
(if (<=.f64 (*.f64 im im) #s(literal 15600000000000000765063709847453696 binary64)) (*.f64 re re) (*.f64 im (-.f64 #s(literal 0 binary64) im)))
(*.f64 re re)

soundness578.0ms (20.1%)

Rules
2294×/-lowering-/.f32
2294×/-lowering-/.f64
2126×fma-define
1606×prod-diff
1560×*-lowering-*.f32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01337
13631
211430
327929
4104829
5363729
0848629
017219
140153
2122153
3505153
41779153
53536153
67715153
08285153
Stop Event
done
iter limit
node limit
iter limit
node limit
Compiler

Compiled 63 to 32 computations (49.2% saved)

preprocess261.0ms (9.1%)

Remove

(abs im)

(abs re)

Compiler

Compiled 160 to 70 computations (56.3% saved)

end0.0ms (0%)

Profiling

Loading profile data...