Diagrams.Color.HSV:lerp from diagrams-contrib-1.3.0.5

Time bar (total: 6.4s)

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 13 to 9 computations (30.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-sub: 0.0ms (0% of total)
ival-add: 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)

sample961.0ms (15.1%)

Results
754.0ms8256×0valid
Precisions
Click to see histograms. Total time spent on operations: 261.0ms
ival-mult: 129.0ms (49.5% of total)
ival-sub: 72.0ms (27.6% of total)
ival-add: 45.0ms (17.3% of total)
const: 11.0ms (4.2% of total)
backward-pass: 3.0ms (1.2% of total)
Bogosity

preprocess139.0ms (2.2%)

Algorithm
egg-herbie
Rules
2818×sum4-define
2056×sum5-define
1890×sum3-define
1566×sum5-define
1422×fmsub-define
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
03389
19180
223980
383070
4388569
5739969
088
1168
2298
3597
41357
52706
64726
79076
831366
939826
1044336
1144736
044736
Stop Event
iter limit
saturated
node limit
Calls
Call 1
Inputs
(+ (* (- 1 x) y) (* x z))
Outputs
(+ (* (- 1 x) y) (* x z))
(-.f64 y (*.f64 x (-.f64 y z)))
Call 2
Inputs
(+ (* (- 1 x) y) (* x z))
(+ (* (- 1 (neg x)) y) (* (neg x) z))
(+ (* (- 1 x) (neg y)) (* x z))
(+ (* (- 1 x) y) (* x (neg z)))
(neg (+ (* (- 1 (neg x)) y) (* (neg x) z)))
(neg (+ (* (- 1 x) (neg y)) (* x z)))
(neg (+ (* (- 1 x) y) (* x (neg z))))
(+ (* (- 1 y) x) (* y z))
(+ (* (- 1 z) y) (* z x))
(+ (* (- 1 x) z) (* x y))
Outputs
(+ (* (- 1 x) y) (* x z))
(+ y (* x (- z y)))
(+ (* (- 1 (neg x)) y) (* (neg x) z))
(fma x (- y z) y)
(+ (* (- 1 x) (neg y)) (* x z))
(fmsub x z (fnmadd x y y))
(+ (* (- 1 x) y) (* x (neg z)))
(fnmsub x z (fmsub x y y))
(neg (+ (* (- 1 (neg x)) y) (* (neg x) z)))
(- (* x (- z y)) y)
(neg (+ (* (- 1 x) (neg y)) (* x z)))
(fnmsub x z (fmsub x y y))
(neg (+ (* (- 1 x) y) (* x (neg z))))
(fmsub x z (fnmadd x y y))
(+ (* (- 1 y) x) (* y z))
(fma y z (fnmadd x y x))
(+ (* (- 1 z) y) (* z x))
(fma x z (fnmadd y z y))
(+ (* (- 1 x) z) (* x y))
(+ z (* x (- y z)))

explain115.0ms (1.8%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
50-0-(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
00-0-x
00-0-(*.f64 x z)
00-0-z
00-0-(*.f64 (-.f64 #s(literal 1 binary64) x) y)
00-0-(-.f64 #s(literal 1 binary64) x)
00-0-#s(literal 1 binary64)
00-0-y
Results
79.0ms512×0valid
Compiler

Compiled 68 to 26 computations (61.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-mult: 8.0ms (54.1% of total)
ival-sub: 4.0ms (27% of total)
ival-add: 3.0ms (20.3% of total)
const: 1.0ms (6.8% of total)
backward-pass: 0.0ms (0% of total)

eval0.0ms (0%)

Compiler

Compiled 10 to 6 computations (40% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 y (*.f64 x (-.f64 y z)))
98.0%
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
Compiler

Compiled 22 to 14 computations (36.4% saved)

simplify70.0ms (1.1%)

Algorithm
egg-herbie
Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
cost-diff0
(-.f64 y z)
cost-diff0
(*.f64 x (-.f64 y z))
cost-diff0
(-.f64 y (*.f64 x (-.f64 y z)))
cost-diff0
(*.f64 x z)
cost-diff0
(-.f64 #s(literal 1 binary64) x)
cost-diff0
(*.f64 (-.f64 #s(literal 1 binary64) x) y)
cost-diff128
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
Rules
876×sum5-define
784×fnmadd-define
676×fmsub-define
674×sum4-define
664×fnmsub-define
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01142
12642
26042
316837
442037
5111137
6232737
7322437
8329437
0329437
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(+ (* (- 1 x) y) (* x z))
(* (- 1 x) y)
(- 1 x)
1
x
y
(* x z)
z
(- y (* x (- y z)))
y
(* x (- y z))
x
(- y z)
z
Outputs
(+ (* (- 1 x) y) (* x z))
(-.f64 y (*.f64 x (-.f64 y z)))
(* (- 1 x) y)
(*.f64 (-.f64 #s(literal 1 binary64) x) y)
(- 1 x)
(-.f64 #s(literal 1 binary64) x)
1
#s(literal 1 binary64)
x
y
(* x z)
(*.f64 x z)
z
(- y (* x (- y z)))
(-.f64 y (*.f64 x (-.f64 y z)))
y
(* x (- y z))
(*.f64 x (-.f64 y z))
x
(- y z)
(-.f64 y z)
z

localize256.0ms (4%)

Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(-.f64 y z)
accuracy100.0%
(-.f64 y (*.f64 x (-.f64 y z)))
accuracy100.0%
(*.f64 x (-.f64 y z))
accuracy100.0%
(-.f64 #s(literal 1 binary64) x)
accuracy100.0%
(*.f64 x z)
accuracy100.0%
(*.f64 (-.f64 #s(literal 1 binary64) x) y)
accuracy98.2%
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
Results
244.0ms256×0valid
Compiler

Compiled 46 to 12 computations (73.9% saved)

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

series44.0ms (0.7%)

Counts
7 → 192
Calls
Call 1
Inputs
#<alt (+ (* (- 1 x) y) (* x z))>
#<alt (* (- 1 x) y)>
#<alt (- 1 x)>
#<alt (* x z)>
#<alt (- y (* x (- y z)))>
#<alt (* x (- y z))>
#<alt (- y z)>
Outputs
#<alt y>
#<alt (+ y (* x (+ z (* -1 y))))>
#<alt (+ y (* x (+ z (* -1 y))))>
#<alt (+ y (* x (+ z (* -1 y))))>
#<alt (* x (+ z (* -1 y)))>
#<alt (* x (+ z (+ (* -1 y) (/ y x))))>
#<alt (* x (+ z (+ (* -1 y) (/ y x))))>
#<alt (* x (+ z (+ (* -1 y) (/ y x))))>
#<alt (* -1 (* x (+ y (* -1 z))))>
#<alt (* -1 (* x (+ y (+ (* -1 z) (* -1 (/ y x))))))>
#<alt (* -1 (* x (+ y (+ (* -1 z) (* -1 (/ y x))))))>
#<alt (* -1 (* x (+ y (+ (* -1 z) (* -1 (/ y x))))))>
#<alt (* x z)>
#<alt (+ (* x z) (* y (- 1 x)))>
#<alt (+ (* x z) (* y (- 1 x)))>
#<alt (+ (* x z) (* y (- 1 x)))>
#<alt (* y (- 1 x))>
#<alt (* y (- (+ 1 (/ (* x z) y)) x))>
#<alt (* y (- (+ 1 (/ (* x z) y)) x))>
#<alt (* y (- (+ 1 (/ (* x z) y)) x))>
#<alt (* y (- 1 x))>
#<alt (* -1 (* y (+ (* -1 (- 1 x)) (* -1 (/ (* x z) y)))))>
#<alt (* -1 (* y (+ (* -1 (- 1 x)) (* -1 (/ (* x z) y)))))>
#<alt (* -1 (* y (+ (* -1 (- 1 x)) (* -1 (/ (* x z) y)))))>
#<alt (* y (- 1 x))>
#<alt (+ (* x z) (* y (- 1 x)))>
#<alt (+ (* x z) (* y (- 1 x)))>
#<alt (+ (* x z) (* y (- 1 x)))>
#<alt (* x z)>
#<alt (* z (+ x (/ (* y (- 1 x)) z)))>
#<alt (* z (+ x (/ (* y (- 1 x)) z)))>
#<alt (* z (+ x (/ (* y (- 1 x)) z)))>
#<alt (* x z)>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (* y (- 1 x)) z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (* y (- 1 x)) z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (* y (- 1 x)) z)))))>
#<alt y>
#<alt (+ y (* -1 (* x y)))>
#<alt (+ y (* -1 (* x y)))>
#<alt (+ y (* -1 (* x y)))>
#<alt (* -1 (* x y))>
#<alt (* x (+ (* -1 y) (/ y x)))>
#<alt (* x (+ (* -1 y) (/ y x)))>
#<alt (* x (+ (* -1 y) (/ y x)))>
#<alt (* -1 (* x y))>
#<alt (* -1 (* x (+ y (* -1 (/ y x)))))>
#<alt (* -1 (* x (+ y (* -1 (/ y x)))))>
#<alt (* -1 (* x (+ y (* -1 (/ y x)))))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt 1>
#<alt (+ 1 (* -1 x))>
#<alt (+ 1 (* -1 x))>
#<alt (+ 1 (* -1 x))>
#<alt (* -1 x)>
#<alt (* x (- (/ 1 x) 1))>
#<alt (* x (- (/ 1 x) 1))>
#<alt (* x (- (/ 1 x) 1))>
#<alt (* -1 x)>
#<alt (* -1 (* x (- 1 (/ 1 x))))>
#<alt (* -1 (* x (- 1 (/ 1 x))))>
#<alt (* -1 (* x (- 1 (/ 1 x))))>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (- (* y (- 1 x)) (* -1 (* x z)))>
#<alt (- (* y (- 1 x)) (* -1 (* x z)))>
#<alt (- (* y (- 1 x)) (* -1 (* x z)))>
#<alt (* y (- 1 x))>
#<alt (* y (- (+ 1 (/ (* x z) y)) x))>
#<alt (* y (- (+ 1 (/ (* x z) y)) x))>
#<alt (* y (- (+ 1 (/ (* x z) y)) x))>
#<alt (* y (+ 1 (* -1 x)))>
#<alt (* -1 (* y (- (* -1 (/ (* x z) y)) (+ 1 (* -1 x)))))>
#<alt (* -1 (* y (- (* -1 (/ (* x z) y)) (+ 1 (* -1 x)))))>
#<alt (* -1 (* y (- (* -1 (/ (* x z) y)) (+ 1 (* -1 x)))))>
#<alt y>
#<alt (+ y (* x (- z y)))>
#<alt (+ y (* x (- z y)))>
#<alt (+ y (* x (- z y)))>
#<alt (* x (- z y))>
#<alt (* x (- (+ z (/ y x)) y))>
#<alt (* x (- (+ z (/ y x)) y))>
#<alt (* x (- (+ z (/ y x)) y))>
#<alt (* -1 (* x (- y z)))>
#<alt (* -1 (* x (- (* -1 (/ y x)) (* -1 (- y z)))))>
#<alt (* -1 (* x (- (* -1 (/ y x)) (* -1 (- y z)))))>
#<alt (* -1 (* x (- (* -1 (/ y x)) (* -1 (- y z)))))>
#<alt (- y (* x y))>
#<alt (- (+ y (* x z)) (* x y))>
#<alt (- (+ y (* x z)) (* x y))>
#<alt (- (+ y (* x z)) (* x y))>
#<alt (* x z)>
#<alt (* z (- (/ y z) (+ (* -1 x) (/ (* x y) z))))>
#<alt (* z (- (/ y z) (+ (* -1 x) (/ (* x y) z))))>
#<alt (* z (- (/ y z) (+ (* -1 x) (/ (* x y) z))))>
#<alt (* x z)>
#<alt (* -1 (* z (- (* -1 (/ (- y (* x y)) z)) x)))>
#<alt (* -1 (* z (- (* -1 (/ (- y (* x y)) z)) x)))>
#<alt (* -1 (* z (- (* -1 (/ (- y (* x y)) z)) x)))>
#<alt (* x (- y z))>
#<alt (* x (- y z))>
#<alt (* x (- y z))>
#<alt (* x (- y z))>
#<alt (* x (- y z))>
#<alt (* x (- y z))>
#<alt (* x (- y z))>
#<alt (* x (- y z))>
#<alt (* x (- y z))>
#<alt (* x (- y z))>
#<alt (* x (- y z))>
#<alt (* x (- y z))>
#<alt (* -1 (* x z))>
#<alt (+ (* -1 (* x z)) (* x y))>
#<alt (+ (* -1 (* x z)) (* x y))>
#<alt (+ (* -1 (* x z)) (* x y))>
#<alt (* x y)>
#<alt (* y (+ x (* -1 (/ (* x z) y))))>
#<alt (* y (+ x (* -1 (/ (* x z) y))))>
#<alt (* y (+ x (* -1 (/ (* x z) y))))>
#<alt (* x y)>
#<alt (* -1 (* y (+ (* -1 x) (/ (* x z) y))))>
#<alt (* -1 (* y (+ (* -1 x) (/ (* x z) y))))>
#<alt (* -1 (* y (+ (* -1 x) (/ (* x z) y))))>
#<alt (* x y)>
#<alt (+ (* -1 (* x z)) (* x y))>
#<alt (+ (* -1 (* x z)) (* x y))>
#<alt (+ (* -1 (* x z)) (* x y))>
#<alt (* -1 (* x z))>
#<alt (* z (+ (* -1 x) (/ (* x y) z)))>
#<alt (* z (+ (* -1 x) (/ (* x y) z)))>
#<alt (* z (+ (* -1 x) (/ (* x y) z)))>
#<alt (* -1 (* x z))>
#<alt (* -1 (* z (+ x (* -1 (/ (* x y) z)))))>
#<alt (* -1 (* z (+ x (* -1 (/ (* x y) z)))))>
#<alt (* -1 (* z (+ x (* -1 (/ (* x y) z)))))>
#<alt (* -1 z)>
#<alt (- y z)>
#<alt (- y z)>
#<alt (- y z)>
#<alt y>
#<alt (* y (+ 1 (* -1 (/ z y))))>
#<alt (* y (+ 1 (* -1 (/ z y))))>
#<alt (* y (+ 1 (* -1 (/ z y))))>
#<alt y>
#<alt (* -1 (* y (- (/ z y) 1)))>
#<alt (* -1 (* y (- (/ z y) 1)))>
#<alt (* -1 (* y (- (/ z y) 1)))>
#<alt y>
#<alt (+ y (* -1 z))>
#<alt (+ y (* -1 z))>
#<alt (+ y (* -1 z))>
#<alt (* -1 z)>
#<alt (* z (- (/ y z) 1))>
#<alt (* z (- (/ y z) 1))>
#<alt (* z (- (/ y z) 1))>
#<alt (* -1 z)>
#<alt (* -1 (* z (+ 1 (* -1 (/ y z)))))>
#<alt (* -1 (* z (+ 1 (* -1 (/ y z)))))>
#<alt (* -1 (* z (+ 1 (* -1 (/ y z)))))>
Calls

48 calls:

TimeVariablePointExpression
30.0ms
x
@inf
(+ (* (- 1 x) y) (* x z))
3.0ms
x
@-inf
(+ (* (- 1 x) y) (* x z))
1.0ms
y
@inf
(- y z)
1.0ms
y
@inf
(* (- 1 x) y)
1.0ms
y
@0
(+ (* (- 1 x) y) (* x z))

rewrite133.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
2034×fmsub-define
2012×fnmsub-define
1832×fmm-def
1820×sum4-define
860×prod-diff
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01135
12635
26035
316830
443830
5173730
6481530
0809630
Stop Event
iter limit
node limit
Counts
7 → 362
Calls
Call 1
Inputs
(+ (* (- 1 x) y) (* x z))
(* (- 1 x) y)
(- 1 x)
(* x z)
(- y (* x (- y z)))
(* x (- y z))
(- y z)
Outputs
(+.f64 y (*.f64 x (-.f64 z y)))
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
(+.f64 #s(literal 0 binary64) (+.f64 y (*.f64 x (-.f64 z y))))
(+.f64 (*.f64 x (-.f64 z y)) y)
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (+.f64 y (*.f64 x z)))
(+.f64 (*.f64 x z) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(+.f64 (+.f64 y (*.f64 x z)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) #s(literal 0 binary64))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 y (+.f64 x #s(literal -1 binary64)))))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (neg.f64 (+.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) (*.f64 (-.f64 #s(literal 1 binary64) x) y))))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (neg.f64 (+.f64 (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) y) (+.f64 y (*.f64 x z)))))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 #s(literal 1 binary64) (+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 y (+.f64 x #s(literal -1 binary64))))))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 #s(literal -1 binary64) (+.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) (*.f64 (-.f64 #s(literal 1 binary64) x) y))))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 #s(literal -1 binary64) (+.f64 (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) y) (+.f64 y (*.f64 x z)))))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 (+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 y (+.f64 x #s(literal -1 binary64)))) #s(literal 1 binary64)))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 (+.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) (*.f64 (-.f64 #s(literal 1 binary64) x) y)) #s(literal -1 binary64)))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 (+.f64 (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) y) (+.f64 y (*.f64 x z))) #s(literal -1 binary64)))
(+.f64 (-.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x y)) (*.f64 x y))
(+.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 y z)))
(+.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) y) (-.f64 #s(literal 0 binary64) y))
(+.f64 (neg.f64 (-.f64 (-.f64 (*.f64 x (-.f64 y z)) y) y)) (-.f64 #s(literal 0 binary64) y))
(+.f64 (*.f64 #s(literal 1 binary64) (-.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x y))) (*.f64 x y))
(+.f64 (*.f64 #s(literal 1 binary64) (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 z y)))) (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 #s(literal -1 binary64) (-.f64 (-.f64 (*.f64 x (-.f64 y z)) y) y)) (-.f64 #s(literal 0 binary64) y))
(+.f64 (*.f64 (-.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x y)) #s(literal 1 binary64)) (*.f64 x y))
(+.f64 (*.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 z y))) #s(literal 1 binary64)) (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 (-.f64 (-.f64 (*.f64 x (-.f64 y z)) y) y) #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) y))
(-.f64 y (*.f64 x (-.f64 y z)))
(-.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x (-.f64 y z)) y))
(-.f64 (*.f64 x (-.f64 z y)) (-.f64 #s(literal 0 binary64) y))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) y))
(-.f64 (*.f64 x z) (*.f64 y (+.f64 x #s(literal -1 binary64))))
(-.f64 (+.f64 y (*.f64 x z)) (*.f64 x y))
(-.f64 (+.f64 y (*.f64 x (-.f64 z y))) #s(literal 0 binary64))
(-.f64 (-.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x y)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(-.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 z y)))
(-.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) y) y)
(fma.f64 #s(literal 1 binary64) y (*.f64 x (-.f64 z y)))
(fma.f64 #s(literal 1 binary64) (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
(fma.f64 #s(literal 1 binary64) #s(literal 0 binary64) (+.f64 y (*.f64 x (-.f64 z y))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (-.f64 z y)) y)
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x y)) (+.f64 y (*.f64 x z)))
(fma.f64 #s(literal 1 binary64) (*.f64 x z) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 #s(literal 1 binary64) (+.f64 y (*.f64 x z)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 #s(literal 1 binary64) (+.f64 y (*.f64 x (-.f64 z y))) #s(literal 0 binary64))
(fma.f64 x z (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 x (-.f64 z y) y)
(fma.f64 x (-.f64 #s(literal 0 binary64) y) (+.f64 y (*.f64 x z)))
(fma.f64 x (+.f64 (-.f64 z y) (-.f64 y z)) (+.f64 y (*.f64 x (-.f64 z y))))
(fma.f64 (-.f64 #s(literal 1 binary64) x) y (*.f64 x z))
(fma.f64 y #s(literal 1 binary64) (*.f64 x (-.f64 z y)))
(fma.f64 y (-.f64 #s(literal 1 binary64) x) (*.f64 x z))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) (+.f64 y (*.f64 x z)))
(fma.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) #s(literal 1 binary64) (*.f64 x z))
(fma.f64 z x (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 (-.f64 y z) (-.f64 #s(literal 0 binary64) x) y)
(fma.f64 (-.f64 y z) (+.f64 (-.f64 #s(literal 0 binary64) x) x) (+.f64 y (*.f64 x (-.f64 z y))))
(fma.f64 (*.f64 x (-.f64 y z)) #s(literal 0 binary64) (+.f64 y (*.f64 x (-.f64 z y))))
(fma.f64 (*.f64 x (-.f64 y z)) #s(literal -1 binary64) y)
(fma.f64 #s(literal 0 binary64) (*.f64 x (-.f64 y z)) (+.f64 y (*.f64 x (-.f64 z y))))
(fma.f64 (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) x) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 (*.f64 x (-.f64 z y)) #s(literal 1 binary64) y)
(fma.f64 (-.f64 #s(literal 0 binary64) x) y (+.f64 y (*.f64 x z)))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 y z) y)
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) z) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) y)
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x z)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 #s(literal -1 binary64) (*.f64 x y) (+.f64 y (*.f64 x z)))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) y) (*.f64 x (-.f64 z y)))
(fma.f64 #s(literal -1 binary64) (-.f64 (*.f64 x (-.f64 y z)) y) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) y) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 #s(literal -1 binary64) (*.f64 y (+.f64 x #s(literal -1 binary64))) (*.f64 x z))
(fma.f64 (-.f64 z y) x y)
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) #s(literal 1 binary64) (+.f64 y (*.f64 x z)))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) #s(literal -1 binary64) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 (*.f64 x z) #s(literal 1 binary64) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 (*.f64 x y) #s(literal -1 binary64) (+.f64 y (*.f64 x z)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) x (+.f64 y (*.f64 x z)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) #s(literal -1 binary64) (*.f64 x (-.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 x #s(literal -1 binary64)) (*.f64 x z))
(fma.f64 (+.f64 y (*.f64 x z)) #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 (+.f64 x #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) y) (*.f64 x z))
(fma.f64 (-.f64 (*.f64 x (-.f64 y z)) y) #s(literal -1 binary64) #s(literal 0 binary64))
(fma.f64 (+.f64 y (*.f64 x (-.f64 z y))) #s(literal 1 binary64) #s(literal 0 binary64))
(neg.f64 (-.f64 (*.f64 x (-.f64 y z)) y))
(*.f64 #s(literal 1 binary64) (+.f64 y (*.f64 x (-.f64 z y))))
(*.f64 #s(literal -1 binary64) (-.f64 (*.f64 x (-.f64 y z)) y))
(*.f64 (-.f64 (*.f64 x (-.f64 y z)) y) #s(literal -1 binary64))
(*.f64 (+.f64 y (*.f64 x (-.f64 z y))) #s(literal 1 binary64))
(+.f64 y (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) y)
(+.f64 (-.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x y)) (*.f64 x y))
(+.f64 (+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 y z)))
(+.f64 (neg.f64 (-.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) y)) (-.f64 #s(literal 0 binary64) y))
(+.f64 (*.f64 #s(literal 1 binary64) (-.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x y))) (*.f64 x y))
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 (-.f64 #s(literal 1 binary64) x) y)) (*.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x y)))
(+.f64 (*.f64 #s(literal -1 binary64) (-.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) y)) (-.f64 #s(literal 0 binary64) y))
(+.f64 (*.f64 (+.f64 x #s(literal -1 binary64)) (-.f64 (-.f64 #s(literal 0 binary64) y) y)) (*.f64 y (+.f64 x #s(literal -1 binary64))))
(+.f64 (*.f64 #s(literal 1 binary64) (+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x (-.f64 z y)))) (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 (-.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x y)) #s(literal 1 binary64)) (*.f64 x y))
(+.f64 (*.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (-.f64 #s(literal 1 binary64) x)) (*.f64 (*.f64 x y) (-.f64 #s(literal 1 binary64) x)))
(+.f64 (*.f64 (-.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) y) #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) y))
(+.f64 (*.f64 (-.f64 (-.f64 #s(literal 0 binary64) y) y) (+.f64 x #s(literal -1 binary64))) (*.f64 y (+.f64 x #s(literal -1 binary64))))
(+.f64 (*.f64 (+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x (-.f64 z y))) #s(literal 1 binary64)) (*.f64 x (-.f64 y z)))
(-.f64 y (*.f64 x y))
(-.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (*.f64 y (+.f64 x #s(literal -1 binary64))))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (-.f64 #s(literal 0 binary64) y))
(-.f64 (-.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x y)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(-.f64 (+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 z y)))
(fma.f64 #s(literal 1 binary64) y (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 #s(literal 1 binary64) (*.f64 (-.f64 #s(literal 1 binary64) x) y) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x y)) y)
(fma.f64 x (-.f64 #s(literal 0 binary64) y) y)
(fma.f64 (-.f64 #s(literal 1 binary64) x) y #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 0 binary64) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 y #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 y (-.f64 #s(literal 1 binary64) x) #s(literal 0 binary64))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) y)
(fma.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 #s(literal 0 binary64) (-.f64 #s(literal 1 binary64) x) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 (-.f64 #s(literal 0 binary64) x) y y)
(fma.f64 #s(literal -1 binary64) (*.f64 x y) y)
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) y) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 #s(literal -1 binary64) (*.f64 y (+.f64 x #s(literal -1 binary64))) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) #s(literal 1 binary64) y)
(fma.f64 (*.f64 x y) #s(literal -1 binary64) y)
(fma.f64 (-.f64 #s(literal 0 binary64) y) x y)
(fma.f64 (-.f64 #s(literal 0 binary64) y) #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 x #s(literal -1 binary64)) #s(literal 0 binary64))
(fma.f64 (+.f64 x #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) y) #s(literal 0 binary64))
(neg.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))))
(*.f64 #s(literal 1 binary64) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(*.f64 (-.f64 #s(literal 1 binary64) x) y)
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(*.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) #s(literal 1 binary64))
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 x #s(literal -1 binary64))))
(*.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 x #s(literal -1 binary64)))
(*.f64 (+.f64 x #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) y))
(*.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) #s(literal -1 binary64))
(+.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) x))
(+.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (-.f64 #s(literal 1 binary64) x))
(+.f64 (-.f64 #s(literal 0 binary64) x) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) x)
(-.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (+.f64 x #s(literal -1 binary64)))
(-.f64 (-.f64 #s(literal 0 binary64) x) #s(literal -1 binary64))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) x) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) x) #s(literal 1 binary64))
(fma.f64 x #s(literal -1 binary64) #s(literal 1 binary64))
(fma.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) x) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64))
(fma.f64 #s(literal -1 binary64) (+.f64 x #s(literal -1 binary64)) #s(literal 0 binary64))
(fma.f64 (+.f64 x #s(literal -1 binary64)) #s(literal -1 binary64) #s(literal 0 binary64))
(neg.f64 (+.f64 x #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) x))
(*.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
(*.f64 #s(literal -1 binary64) (+.f64 x #s(literal -1 binary64)))
(*.f64 (+.f64 x #s(literal -1 binary64)) #s(literal -1 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 x z))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (+.f64 (*.f64 x y) (*.f64 x z)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (*.f64 #s(literal 1 binary64) (+.f64 (*.f64 x y) (*.f64 x z))))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (*.f64 (+.f64 (*.f64 x y) (*.f64 x z)) #s(literal 1 binary64)))
(+.f64 (*.f64 x z) #s(literal 0 binary64))
(+.f64 (+.f64 (*.f64 x z) (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 #s(literal 1 binary64) (+.f64 (*.f64 x z) (*.f64 x (-.f64 z y)))) (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 (+.f64 (*.f64 x z) (*.f64 x (-.f64 z y))) #s(literal 1 binary64)) (*.f64 x (-.f64 y z)))
(-.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(-.f64 (*.f64 x z) #s(literal 0 binary64))
(-.f64 (+.f64 (*.f64 x z) (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 z y)))
(fma.f64 #s(literal 1 binary64) (*.f64 x z) #s(literal 0 binary64))
(fma.f64 x z #s(literal 0 binary64))
(fma.f64 z x #s(literal 0 binary64))
(fma.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) z) (*.f64 x z))
(fma.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) x) (*.f64 x z))
(fma.f64 (-.f64 #s(literal 0 binary64) z) #s(literal 0 binary64) (*.f64 x z))
(fma.f64 (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) x) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) x) #s(literal 0 binary64) (*.f64 x z))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) z) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x z)) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) #s(literal -1 binary64) #s(literal 0 binary64))
(fma.f64 (*.f64 x z) #s(literal 1 binary64) #s(literal 0 binary64))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(*.f64 #s(literal 1 binary64) (*.f64 x z))
(*.f64 x z)
(*.f64 z x)
(*.f64 (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) x))
(*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) z))
(*.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(*.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) #s(literal -1 binary64))
(*.f64 (*.f64 x z) #s(literal 1 binary64))
(+.f64 y (*.f64 x (-.f64 z y)))
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
(+.f64 #s(literal 0 binary64) (+.f64 y (*.f64 x (-.f64 z y))))
(+.f64 (*.f64 x (-.f64 z y)) y)
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (+.f64 y (*.f64 x z)))
(+.f64 (*.f64 x z) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(+.f64 (+.f64 y (*.f64 x z)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) #s(literal 0 binary64))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 y (+.f64 x #s(literal -1 binary64)))))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (neg.f64 (+.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) (*.f64 (-.f64 #s(literal 1 binary64) x) y))))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (neg.f64 (+.f64 (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) y) (+.f64 y (*.f64 x z)))))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 #s(literal 1 binary64) (+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 y (+.f64 x #s(literal -1 binary64))))))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 #s(literal -1 binary64) (+.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) (*.f64 (-.f64 #s(literal 1 binary64) x) y))))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 #s(literal -1 binary64) (+.f64 (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) y) (+.f64 y (*.f64 x z)))))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 (+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 y (+.f64 x #s(literal -1 binary64)))) #s(literal 1 binary64)))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 (+.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) (*.f64 (-.f64 #s(literal 1 binary64) x) y)) #s(literal -1 binary64)))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 (+.f64 (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) y) (+.f64 y (*.f64 x z))) #s(literal -1 binary64)))
(+.f64 (-.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x y)) (*.f64 x y))
(+.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 y z)))
(+.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) y) (-.f64 #s(literal 0 binary64) y))
(+.f64 (neg.f64 (-.f64 (-.f64 (*.f64 x (-.f64 y z)) y) y)) (-.f64 #s(literal 0 binary64) y))
(+.f64 (*.f64 #s(literal 1 binary64) (-.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x y))) (*.f64 x y))
(+.f64 (*.f64 #s(literal 1 binary64) (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 z y)))) (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 #s(literal -1 binary64) (-.f64 (-.f64 (*.f64 x (-.f64 y z)) y) y)) (-.f64 #s(literal 0 binary64) y))
(+.f64 (*.f64 (-.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x y)) #s(literal 1 binary64)) (*.f64 x y))
(+.f64 (*.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 z y))) #s(literal 1 binary64)) (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 (-.f64 (-.f64 (*.f64 x (-.f64 y z)) y) y) #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) y))
(-.f64 y (*.f64 x (-.f64 y z)))
(-.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x (-.f64 y z)) y))
(-.f64 (*.f64 x (-.f64 z y)) (-.f64 #s(literal 0 binary64) y))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) y))
(-.f64 (*.f64 x z) (*.f64 y (+.f64 x #s(literal -1 binary64))))
(-.f64 (+.f64 y (*.f64 x z)) (*.f64 x y))
(-.f64 (+.f64 y (*.f64 x (-.f64 z y))) #s(literal 0 binary64))
(-.f64 (-.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x y)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(-.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 z y)))
(-.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) y) y)
(fma.f64 #s(literal 1 binary64) y (*.f64 x (-.f64 z y)))
(fma.f64 #s(literal 1 binary64) (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
(fma.f64 #s(literal 1 binary64) #s(literal 0 binary64) (+.f64 y (*.f64 x (-.f64 z y))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (-.f64 z y)) y)
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x y)) (+.f64 y (*.f64 x z)))
(fma.f64 #s(literal 1 binary64) (*.f64 x z) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 #s(literal 1 binary64) (+.f64 y (*.f64 x z)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 #s(literal 1 binary64) (+.f64 y (*.f64 x (-.f64 z y))) #s(literal 0 binary64))
(fma.f64 x z (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 x (-.f64 z y) y)
(fma.f64 x (-.f64 #s(literal 0 binary64) y) (+.f64 y (*.f64 x z)))
(fma.f64 x (+.f64 (-.f64 z y) (-.f64 y z)) (+.f64 y (*.f64 x (-.f64 z y))))
(fma.f64 (-.f64 #s(literal 1 binary64) x) y (*.f64 x z))
(fma.f64 y #s(literal 1 binary64) (*.f64 x (-.f64 z y)))
(fma.f64 y (-.f64 #s(literal 1 binary64) x) (*.f64 x z))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) (+.f64 y (*.f64 x z)))
(fma.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) #s(literal 1 binary64) (*.f64 x z))
(fma.f64 z x (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 (-.f64 y z) (-.f64 #s(literal 0 binary64) x) y)
(fma.f64 (-.f64 y z) (+.f64 (-.f64 #s(literal 0 binary64) x) x) (+.f64 y (*.f64 x (-.f64 z y))))
(fma.f64 (*.f64 x (-.f64 y z)) #s(literal 0 binary64) (+.f64 y (*.f64 x (-.f64 z y))))
(fma.f64 (*.f64 x (-.f64 y z)) #s(literal -1 binary64) y)
(fma.f64 #s(literal 0 binary64) (*.f64 x (-.f64 y z)) (+.f64 y (*.f64 x (-.f64 z y))))
(fma.f64 (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) x) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 (*.f64 x (-.f64 z y)) #s(literal 1 binary64) y)
(fma.f64 (-.f64 #s(literal 0 binary64) x) y (+.f64 y (*.f64 x z)))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 y z) y)
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) z) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) y)
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x z)) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 #s(literal -1 binary64) (*.f64 x y) (+.f64 y (*.f64 x z)))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) y) (*.f64 x (-.f64 z y)))
(fma.f64 #s(literal -1 binary64) (-.f64 (*.f64 x (-.f64 y z)) y) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) y) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 #s(literal -1 binary64) (*.f64 y (+.f64 x #s(literal -1 binary64))) (*.f64 x z))
(fma.f64 (-.f64 z y) x y)
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) #s(literal 1 binary64) (+.f64 y (*.f64 x z)))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) #s(literal -1 binary64) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 (*.f64 x z) #s(literal 1 binary64) (*.f64 (-.f64 #s(literal 1 binary64) x) y))
(fma.f64 (*.f64 x y) #s(literal -1 binary64) (+.f64 y (*.f64 x z)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) x (+.f64 y (*.f64 x z)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) #s(literal -1 binary64) (*.f64 x (-.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 x #s(literal -1 binary64)) (*.f64 x z))
(fma.f64 (+.f64 y (*.f64 x z)) #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 (+.f64 x #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) y) (*.f64 x z))
(fma.f64 (-.f64 (*.f64 x (-.f64 y z)) y) #s(literal -1 binary64) #s(literal 0 binary64))
(fma.f64 (+.f64 y (*.f64 x (-.f64 z y))) #s(literal 1 binary64) #s(literal 0 binary64))
(neg.f64 (-.f64 (*.f64 x (-.f64 y z)) y))
(*.f64 #s(literal 1 binary64) (+.f64 y (*.f64 x (-.f64 z y))))
(*.f64 #s(literal -1 binary64) (-.f64 (*.f64 x (-.f64 y z)) y))
(*.f64 (-.f64 (*.f64 x (-.f64 y z)) y) #s(literal -1 binary64))
(*.f64 (+.f64 y (*.f64 x (-.f64 z y))) #s(literal 1 binary64))
(+.f64 (*.f64 x (-.f64 y z)) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 x (-.f64 y z)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 x y) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(+.f64 (+.f64 (*.f64 x (-.f64 y z)) (*.f64 x (-.f64 y z))) (*.f64 x (-.f64 z y)))
(+.f64 (neg.f64 (-.f64 (*.f64 x (-.f64 z y)) (*.f64 x y))) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(+.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 (-.f64 z y) y)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(+.f64 (*.f64 #s(literal -1 binary64) (-.f64 (*.f64 x (-.f64 z y)) (*.f64 x y))) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(+.f64 (*.f64 (-.f64 (-.f64 z y) y) (-.f64 #s(literal 0 binary64) x)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(+.f64 (*.f64 (-.f64 (*.f64 x (-.f64 z y)) (*.f64 x y)) #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(-.f64 (*.f64 x (-.f64 y z)) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (*.f64 x (-.f64 z y)))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(-.f64 (*.f64 x y) (*.f64 x z))
(-.f64 (+.f64 (*.f64 x (-.f64 y z)) (*.f64 x (-.f64 y z))) (*.f64 x (-.f64 y z)))
(fma.f64 #s(literal 1 binary64) (*.f64 x (-.f64 y z)) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x z)) (*.f64 x y))
(fma.f64 #s(literal 1 binary64) (*.f64 x y) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(fma.f64 x y (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(fma.f64 x (-.f64 y z) #s(literal 0 binary64))
(fma.f64 x (-.f64 #s(literal 0 binary64) z) (*.f64 x y))
(fma.f64 y x (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(fma.f64 z (-.f64 #s(literal 0 binary64) x) (*.f64 x y))
(fma.f64 (-.f64 y z) x #s(literal 0 binary64))
(fma.f64 (*.f64 x (-.f64 y z)) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) z) x (*.f64 x y))
(fma.f64 (*.f64 x (-.f64 z y)) #s(literal -1 binary64) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) x) z (*.f64 x y))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 z y) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) y) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 z y)) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x y)) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(fma.f64 #s(literal -1 binary64) (*.f64 x z) (*.f64 x y))
(fma.f64 (-.f64 z y) (-.f64 #s(literal 0 binary64) x) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)) #s(literal 1 binary64) (*.f64 x y))
(fma.f64 (*.f64 x z) #s(literal -1 binary64) (*.f64 x y))
(fma.f64 (*.f64 x y) #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(neg.f64 (*.f64 x (-.f64 z y)))
(*.f64 #s(literal 1 binary64) (*.f64 x (-.f64 y z)))
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 (*.f64 x (-.f64 y z)) #s(literal 1 binary64))
(*.f64 (*.f64 x (-.f64 z y)) #s(literal -1 binary64))
(*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 z y))
(*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 z y) (-.f64 #s(literal 0 binary64) x))
(+.f64 y (-.f64 #s(literal 0 binary64) z))
(+.f64 (-.f64 y z) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (-.f64 y z))
(+.f64 (-.f64 #s(literal 0 binary64) z) y)
(+.f64 (neg.f64 (-.f64 (-.f64 z y) y)) (-.f64 #s(literal 0 binary64) y))
(+.f64 (*.f64 #s(literal -1 binary64) (-.f64 (-.f64 z y) y)) (-.f64 #s(literal 0 binary64) y))
(+.f64 (*.f64 (-.f64 (-.f64 z y) y) #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) y))
(-.f64 y z)
(-.f64 (-.f64 y z) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (-.f64 z y))
(-.f64 (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) y))
(fma.f64 #s(literal 1 binary64) y (-.f64 #s(literal 0 binary64) z))
(fma.f64 #s(literal 1 binary64) (-.f64 y z) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) z) y)
(fma.f64 y #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) z))
(fma.f64 z #s(literal -1 binary64) y)
(fma.f64 (-.f64 y z) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) z) #s(literal 1 binary64) y)
(fma.f64 #s(literal -1 binary64) z y)
(fma.f64 #s(literal -1 binary64) (-.f64 z y) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) y) (-.f64 #s(literal 0 binary64) z))
(fma.f64 (-.f64 z y) #s(literal -1 binary64) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) y) #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) z))
(neg.f64 (-.f64 z y))
(*.f64 #s(literal 1 binary64) (-.f64 y z))
(*.f64 (-.f64 y z) #s(literal 1 binary64))
(*.f64 #s(literal -1 binary64) (-.f64 z y))
(*.f64 (-.f64 z y) #s(literal -1 binary64))

simplify258.0ms (4.1%)

Algorithm
egg-herbie
Rules
2192×*-lowering-*.f32
2192×*-lowering-*.f64
1824×fnmsub-define
1188×/-lowering-/.f32
1188×/-lowering-/.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0113900
1404819
21219819
33854819
47886819
08138819
Stop Event
iter limit
node limit
Counts
192 → 192
Calls
Call 1
Inputs
y
(+ y (* x (+ z (* -1 y))))
(+ y (* x (+ z (* -1 y))))
(+ y (* x (+ z (* -1 y))))
(* x (+ z (* -1 y)))
(* x (+ z (+ (* -1 y) (/ y x))))
(* x (+ z (+ (* -1 y) (/ y x))))
(* x (+ z (+ (* -1 y) (/ y x))))
(* -1 (* x (+ y (* -1 z))))
(* -1 (* x (+ y (+ (* -1 z) (* -1 (/ y x))))))
(* -1 (* x (+ y (+ (* -1 z) (* -1 (/ y x))))))
(* -1 (* x (+ y (+ (* -1 z) (* -1 (/ y x))))))
(* x z)
(+ (* x z) (* y (- 1 x)))
(+ (* x z) (* y (- 1 x)))
(+ (* x z) (* y (- 1 x)))
(* y (- 1 x))
(* y (- (+ 1 (/ (* x z) y)) x))
(* y (- (+ 1 (/ (* x z) y)) x))
(* y (- (+ 1 (/ (* x z) y)) x))
(* y (- 1 x))
(* -1 (* y (+ (* -1 (- 1 x)) (* -1 (/ (* x z) y)))))
(* -1 (* y (+ (* -1 (- 1 x)) (* -1 (/ (* x z) y)))))
(* -1 (* y (+ (* -1 (- 1 x)) (* -1 (/ (* x z) y)))))
(* y (- 1 x))
(+ (* x z) (* y (- 1 x)))
(+ (* x z) (* y (- 1 x)))
(+ (* x z) (* y (- 1 x)))
(* x z)
(* z (+ x (/ (* y (- 1 x)) z)))
(* z (+ x (/ (* y (- 1 x)) z)))
(* z (+ x (/ (* y (- 1 x)) z)))
(* x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ (* y (- 1 x)) z)))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (* y (- 1 x)) z)))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (* y (- 1 x)) z)))))
y
(+ y (* -1 (* x y)))
(+ y (* -1 (* x y)))
(+ y (* -1 (* x y)))
(* -1 (* x y))
(* x (+ (* -1 y) (/ y x)))
(* x (+ (* -1 y) (/ y x)))
(* x (+ (* -1 y) (/ y x)))
(* -1 (* x y))
(* -1 (* x (+ y (* -1 (/ y x)))))
(* -1 (* x (+ y (* -1 (/ y x)))))
(* -1 (* x (+ y (* -1 (/ y x)))))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
1
(+ 1 (* -1 x))
(+ 1 (* -1 x))
(+ 1 (* -1 x))
(* -1 x)
(* x (- (/ 1 x) 1))
(* x (- (/ 1 x) 1))
(* x (- (/ 1 x) 1))
(* -1 x)
(* -1 (* x (- 1 (/ 1 x))))
(* -1 (* x (- 1 (/ 1 x))))
(* -1 (* x (- 1 (/ 1 x))))
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(- (* y (- 1 x)) (* -1 (* x z)))
(- (* y (- 1 x)) (* -1 (* x z)))
(- (* y (- 1 x)) (* -1 (* x z)))
(* y (- 1 x))
(* y (- (+ 1 (/ (* x z) y)) x))
(* y (- (+ 1 (/ (* x z) y)) x))
(* y (- (+ 1 (/ (* x z) y)) x))
(* y (+ 1 (* -1 x)))
(* -1 (* y (- (* -1 (/ (* x z) y)) (+ 1 (* -1 x)))))
(* -1 (* y (- (* -1 (/ (* x z) y)) (+ 1 (* -1 x)))))
(* -1 (* y (- (* -1 (/ (* x z) y)) (+ 1 (* -1 x)))))
y
(+ y (* x (- z y)))
(+ y (* x (- z y)))
(+ y (* x (- z y)))
(* x (- z y))
(* x (- (+ z (/ y x)) y))
(* x (- (+ z (/ y x)) y))
(* x (- (+ z (/ y x)) y))
(* -1 (* x (- y z)))
(* -1 (* x (- (* -1 (/ y x)) (* -1 (- y z)))))
(* -1 (* x (- (* -1 (/ y x)) (* -1 (- y z)))))
(* -1 (* x (- (* -1 (/ y x)) (* -1 (- y z)))))
(- y (* x y))
(- (+ y (* x z)) (* x y))
(- (+ y (* x z)) (* x y))
(- (+ y (* x z)) (* x y))
(* x z)
(* z (- (/ y z) (+ (* -1 x) (/ (* x y) z))))
(* z (- (/ y z) (+ (* -1 x) (/ (* x y) z))))
(* z (- (/ y z) (+ (* -1 x) (/ (* x y) z))))
(* x z)
(* -1 (* z (- (* -1 (/ (- y (* x y)) z)) x)))
(* -1 (* z (- (* -1 (/ (- y (* x y)) z)) x)))
(* -1 (* z (- (* -1 (/ (- y (* x y)) z)) x)))
(* x (- y z))
(* x (- y z))
(* x (- y z))
(* x (- y z))
(* x (- y z))
(* x (- y z))
(* x (- y z))
(* x (- y z))
(* x (- y z))
(* x (- y z))
(* x (- y z))
(* x (- y z))
(* -1 (* x z))
(+ (* -1 (* x z)) (* x y))
(+ (* -1 (* x z)) (* x y))
(+ (* -1 (* x z)) (* x y))
(* x y)
(* y (+ x (* -1 (/ (* x z) y))))
(* y (+ x (* -1 (/ (* x z) y))))
(* y (+ x (* -1 (/ (* x z) y))))
(* x y)
(* -1 (* y (+ (* -1 x) (/ (* x z) y))))
(* -1 (* y (+ (* -1 x) (/ (* x z) y))))
(* -1 (* y (+ (* -1 x) (/ (* x z) y))))
(* x y)
(+ (* -1 (* x z)) (* x y))
(+ (* -1 (* x z)) (* x y))
(+ (* -1 (* x z)) (* x y))
(* -1 (* x z))
(* z (+ (* -1 x) (/ (* x y) z)))
(* z (+ (* -1 x) (/ (* x y) z)))
(* z (+ (* -1 x) (/ (* x y) z)))
(* -1 (* x z))
(* -1 (* z (+ x (* -1 (/ (* x y) z)))))
(* -1 (* z (+ x (* -1 (/ (* x y) z)))))
(* -1 (* z (+ x (* -1 (/ (* x y) z)))))
(* -1 z)
(- y z)
(- y z)
(- y z)
y
(* y (+ 1 (* -1 (/ z y))))
(* y (+ 1 (* -1 (/ z y))))
(* y (+ 1 (* -1 (/ z y))))
y
(* -1 (* y (- (/ z y) 1)))
(* -1 (* y (- (/ z y) 1)))
(* -1 (* y (- (/ z y) 1)))
y
(+ y (* -1 z))
(+ y (* -1 z))
(+ y (* -1 z))
(* -1 z)
(* z (- (/ y z) 1))
(* z (- (/ y z) 1))
(* z (- (/ y z) 1))
(* -1 z)
(* -1 (* z (+ 1 (* -1 (/ y z)))))
(* -1 (* z (+ 1 (* -1 (/ y z)))))
(* -1 (* z (+ 1 (* -1 (/ y z)))))
Outputs
y
(+ y (* x (+ z (* -1 y))))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ y (* x (+ z (* -1 y))))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ y (* x (+ z (* -1 y))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x (+ z (* -1 y)))
(*.f64 x (-.f64 z y))
(* x (+ z (+ (* -1 y) (/ y x))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x (+ z (+ (* -1 y) (/ y x))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x (+ z (+ (* -1 y) (/ y x))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* x (+ y (* -1 z))))
(*.f64 x (-.f64 z y))
(* -1 (* x (+ y (+ (* -1 z) (* -1 (/ y x))))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* x (+ y (+ (* -1 z) (* -1 (/ y x))))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* x (+ y (+ (* -1 z) (* -1 (/ y x))))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x z)
(*.f64 x z)
(+ (* x z) (* y (- 1 x)))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ (* x z) (* y (- 1 x)))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ (* x z) (* y (- 1 x)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- (+ 1 (/ (* x z) y)) x))
(+.f64 y (*.f64 x (-.f64 z y)))
(* y (- (+ 1 (/ (* x z) y)) x))
(+.f64 y (*.f64 x (-.f64 z y)))
(* y (- (+ 1 (/ (* x z) y)) x))
(+.f64 y (*.f64 x (-.f64 z y)))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* -1 (* y (+ (* -1 (- 1 x)) (* -1 (/ (* x z) y)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* y (+ (* -1 (- 1 x)) (* -1 (/ (* x z) y)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* y (+ (* -1 (- 1 x)) (* -1 (/ (* x z) y)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(+ (* x z) (* y (- 1 x)))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ (* x z) (* y (- 1 x)))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ (* x z) (* y (- 1 x)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x z)
(*.f64 x z)
(* z (+ x (/ (* y (- 1 x)) z)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* z (+ x (/ (* y (- 1 x)) z)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* z (+ x (/ (* y (- 1 x)) z)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x z)
(*.f64 x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ (* y (- 1 x)) z)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* z (+ (* -1 x) (* -1 (/ (* y (- 1 x)) z)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* z (+ (* -1 x) (* -1 (/ (* y (- 1 x)) z)))))
(+.f64 y (*.f64 x (-.f64 z y)))
y
(+ y (* -1 (* x y)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(+ y (* -1 (* x y)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(+ y (* -1 (* x y)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* -1 (* x y))
(-.f64 #s(literal 0 binary64) (*.f64 y x))
(* x (+ (* -1 y) (/ y x)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* x (+ (* -1 y) (/ y x)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* x (+ (* -1 y) (/ y x)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* -1 (* x y))
(-.f64 #s(literal 0 binary64) (*.f64 y x))
(* -1 (* x (+ y (* -1 (/ y x)))))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* -1 (* x (+ y (* -1 (/ y x)))))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* -1 (* x (+ y (* -1 (/ y x)))))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
1
#s(literal 1 binary64)
(+ 1 (* -1 x))
(-.f64 #s(literal 1 binary64) x)
(+ 1 (* -1 x))
(-.f64 #s(literal 1 binary64) x)
(+ 1 (* -1 x))
(-.f64 #s(literal 1 binary64) x)
(* -1 x)
(-.f64 #s(literal 0 binary64) x)
(* x (- (/ 1 x) 1))
(-.f64 #s(literal 1 binary64) x)
(* x (- (/ 1 x) 1))
(-.f64 #s(literal 1 binary64) x)
(* x (- (/ 1 x) 1))
(-.f64 #s(literal 1 binary64) x)
(* -1 x)
(-.f64 #s(literal 0 binary64) x)
(* -1 (* x (- 1 (/ 1 x))))
(-.f64 #s(literal 1 binary64) x)
(* -1 (* x (- 1 (/ 1 x))))
(-.f64 #s(literal 1 binary64) x)
(* -1 (* x (- 1 (/ 1 x))))
(-.f64 #s(literal 1 binary64) x)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(- (* y (- 1 x)) (* -1 (* x z)))
(+.f64 y (*.f64 x (-.f64 z y)))
(- (* y (- 1 x)) (* -1 (* x z)))
(+.f64 y (*.f64 x (-.f64 z y)))
(- (* y (- 1 x)) (* -1 (* x z)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- (+ 1 (/ (* x z) y)) x))
(+.f64 y (*.f64 x (-.f64 z y)))
(* y (- (+ 1 (/ (* x z) y)) x))
(+.f64 y (*.f64 x (-.f64 z y)))
(* y (- (+ 1 (/ (* x z) y)) x))
(+.f64 y (*.f64 x (-.f64 z y)))
(* y (+ 1 (* -1 x)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* -1 (* y (- (* -1 (/ (* x z) y)) (+ 1 (* -1 x)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* y (- (* -1 (/ (* x z) y)) (+ 1 (* -1 x)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* y (- (* -1 (/ (* x z) y)) (+ 1 (* -1 x)))))
(+.f64 y (*.f64 x (-.f64 z y)))
y
(+ y (* x (- z y)))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ y (* x (- z y)))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ y (* x (- z y)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- (+ z (/ y x)) y))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x (- (+ z (/ y x)) y))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x (- (+ z (/ y x)) y))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* x (- y z)))
(*.f64 x (-.f64 z y))
(* -1 (* x (- (* -1 (/ y x)) (* -1 (- y z)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* x (- (* -1 (/ y x)) (* -1 (- y z)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* x (- (* -1 (/ y x)) (* -1 (- y z)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(- y (* x y))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(- (+ y (* x z)) (* x y))
(+.f64 y (*.f64 x (-.f64 z y)))
(- (+ y (* x z)) (* x y))
(+.f64 y (*.f64 x (-.f64 z y)))
(- (+ y (* x z)) (* x y))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x z)
(*.f64 x z)
(* z (- (/ y z) (+ (* -1 x) (/ (* x y) z))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* z (- (/ y z) (+ (* -1 x) (/ (* x y) z))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* z (- (/ y z) (+ (* -1 x) (/ (* x y) z))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x z)
(*.f64 x z)
(* -1 (* z (- (* -1 (/ (- y (* x y)) z)) x)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* z (- (* -1 (/ (- y (* x y)) z)) x)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* z (- (* -1 (/ (- y (* x y)) z)) x)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x (- y z))
(*.f64 x (-.f64 y z))
(* x (- y z))
(*.f64 x (-.f64 y z))
(* x (- y z))
(*.f64 x (-.f64 y z))
(* x (- y z))
(*.f64 x (-.f64 y z))
(* x (- y z))
(*.f64 x (-.f64 y z))
(* x (- y z))
(*.f64 x (-.f64 y z))
(* x (- y z))
(*.f64 x (-.f64 y z))
(* x (- y z))
(*.f64 x (-.f64 y z))
(* x (- y z))
(*.f64 x (-.f64 y z))
(* x (- y z))
(*.f64 x (-.f64 y z))
(* x (- y z))
(*.f64 x (-.f64 y z))
(* x (- y z))
(*.f64 x (-.f64 y z))
(* -1 (* x z))
(*.f64 x (-.f64 #s(literal 0 binary64) z))
(+ (* -1 (* x z)) (* x y))
(*.f64 x (-.f64 y z))
(+ (* -1 (* x z)) (* x y))
(*.f64 x (-.f64 y z))
(+ (* -1 (* x z)) (* x y))
(*.f64 x (-.f64 y z))
(* x y)
(*.f64 y x)
(* y (+ x (* -1 (/ (* x z) y))))
(*.f64 x (-.f64 y z))
(* y (+ x (* -1 (/ (* x z) y))))
(*.f64 x (-.f64 y z))
(* y (+ x (* -1 (/ (* x z) y))))
(*.f64 x (-.f64 y z))
(* x y)
(*.f64 y x)
(* -1 (* y (+ (* -1 x) (/ (* x z) y))))
(*.f64 x (-.f64 y z))
(* -1 (* y (+ (* -1 x) (/ (* x z) y))))
(*.f64 x (-.f64 y z))
(* -1 (* y (+ (* -1 x) (/ (* x z) y))))
(*.f64 x (-.f64 y z))
(* x y)
(*.f64 y x)
(+ (* -1 (* x z)) (* x y))
(*.f64 x (-.f64 y z))
(+ (* -1 (* x z)) (* x y))
(*.f64 x (-.f64 y z))
(+ (* -1 (* x z)) (* x y))
(*.f64 x (-.f64 y z))
(* -1 (* x z))
(*.f64 x (-.f64 #s(literal 0 binary64) z))
(* z (+ (* -1 x) (/ (* x y) z)))
(*.f64 x (-.f64 y z))
(* z (+ (* -1 x) (/ (* x y) z)))
(*.f64 x (-.f64 y z))
(* z (+ (* -1 x) (/ (* x y) z)))
(*.f64 x (-.f64 y z))
(* -1 (* x z))
(*.f64 x (-.f64 #s(literal 0 binary64) z))
(* -1 (* z (+ x (* -1 (/ (* x y) z)))))
(*.f64 x (-.f64 y z))
(* -1 (* z (+ x (* -1 (/ (* x y) z)))))
(*.f64 x (-.f64 y z))
(* -1 (* z (+ x (* -1 (/ (* x y) z)))))
(*.f64 x (-.f64 y z))
(* -1 z)
(-.f64 #s(literal 0 binary64) z)
(- y z)
(-.f64 y z)
(- y z)
(-.f64 y z)
(- y z)
(-.f64 y z)
y
(* y (+ 1 (* -1 (/ z y))))
(-.f64 y z)
(* y (+ 1 (* -1 (/ z y))))
(-.f64 y z)
(* y (+ 1 (* -1 (/ z y))))
(-.f64 y z)
y
(* -1 (* y (- (/ z y) 1)))
(-.f64 y z)
(* -1 (* y (- (/ z y) 1)))
(-.f64 y z)
(* -1 (* y (- (/ z y) 1)))
(-.f64 y z)
y
(+ y (* -1 z))
(-.f64 y z)
(+ y (* -1 z))
(-.f64 y z)
(+ y (* -1 z))
(-.f64 y z)
(* -1 z)
(-.f64 #s(literal 0 binary64) z)
(* z (- (/ y z) 1))
(-.f64 y z)
(* z (- (/ y z) 1))
(-.f64 y z)
(* z (- (/ y z) 1))
(-.f64 y z)
(* -1 z)
(-.f64 #s(literal 0 binary64) z)
(* -1 (* z (+ 1 (* -1 (/ y z)))))
(-.f64 y z)
(* -1 (* z (+ 1 (* -1 (/ y z)))))
(-.f64 y z)
(* -1 (* z (+ 1 (* -1 (/ y z)))))
(-.f64 y z)

eval72.0ms (1.1%)

Compiler

Compiled 5772 to 583 computations (89.9% saved)

prune51.0ms (0.8%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New5486554
Fresh000
Picked112
Done000
Total5497556
Accuracy
100.0%
Counts
556 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (-.f64 z y) x y)
98.0%
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
73.6%
(+.f64 y (*.f64 x z))
63.5%
(*.f64 y (-.f64 #s(literal 1 binary64) x))
65.6%
(*.f64 x (-.f64 z y))
39.4%
(*.f64 x z)
36.9%
y
Compiler

Compiled 98 to 64 computations (34.7% saved)

simplify89.0ms (1.4%)

Algorithm
egg-herbie
Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
cost-diff0
(-.f64 #s(literal 1 binary64) x)
cost-diff0
(*.f64 y (-.f64 #s(literal 1 binary64) x))
cost-diff0
(-.f64 z y)
cost-diff0
(*.f64 x (-.f64 z y))
cost-diff0
(*.f64 x z)
cost-diff0
(-.f64 z y)
cost-diff6272
(fma.f64 (-.f64 z y) x y)
Rules
1536×sum4-define
1370×sum3-define
928×fnmadd-define
860×fma-define
644×fma-lowering-fma.f32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01140
12140
23940
38039
417839
535639
666839
7120739
8324439
9384239
10401139
11401539
12401539
13411139
0411139
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(+ (* (- z y) x) y)
(- z y)
z
y
x
y
(* x z)
x
z
(* x (- z y))
x
(- z y)
z
y
(* y (- 1 x))
y
(- 1 x)
1
x
Outputs
(+ (* (- z y) x) y)
(-.f64 y (*.f64 x (-.f64 y z)))
(- z y)
(-.f64 z y)
z
y
x
y
(* x z)
(*.f64 z x)
x
z
(* x (- z y))
(*.f64 (-.f64 z y) x)
x
(- z y)
(-.f64 z y)
z
y
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
y
(- 1 x)
(-.f64 #s(literal 1 binary64) x)
1
#s(literal 1 binary64)
x

localize115.0ms (1.8%)

Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(-.f64 #s(literal 1 binary64) x)
accuracy100.0%
(*.f64 y (-.f64 #s(literal 1 binary64) x))
accuracy100.0%
(-.f64 z y)
accuracy100.0%
(*.f64 x (-.f64 z y))
accuracy100.0%
(*.f64 x z)
accuracy100.0%
(-.f64 z y)
accuracy100.0%
(fma.f64 (-.f64 z y) x y)
Results
100.0ms256×0valid
Compiler

Compiled 44 to 11 computations (75% saved)

Precisions
Click to see histograms. Total time spent on operations: 20.0ms
ival-sub: 7.0ms (34.6% of total)
ival-mult: 7.0ms (34.6% of total)
compiled-spec: 4.0ms (19.8% of total)
ival-add: 1.0ms (4.9% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series4.0ms (0.1%)

Counts
6 → 156
Calls
Call 1
Inputs
#<alt (+ (* (- z y) x) y)>
#<alt (- z y)>
#<alt (* x z)>
#<alt (* x (- z y))>
#<alt (* y (- 1 x))>
#<alt (- 1 x)>
Outputs
#<alt (+ y (* -1 (* x y)))>
#<alt (+ y (+ (* -1 (* x y)) (* x z)))>
#<alt (+ y (+ (* -1 (* x y)) (* x z)))>
#<alt (+ y (+ (* -1 (* x y)) (* x z)))>
#<alt (* x z)>
#<alt (* z (+ x (+ (* -1 (/ (* x y) z)) (/ y z))))>
#<alt (* z (+ x (+ (* -1 (/ (* x y) z)) (/ y z))))>
#<alt (* z (+ x (+ (* -1 (/ (* x y) z)) (/ y z))))>
#<alt (* x z)>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (+ y (* -1 (* x y))) z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (+ y (* -1 (* x y))) z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (+ y (* -1 (* x y))) z)))))>
#<alt (* x z)>
#<alt (+ (* x z) (* y (+ 1 (* -1 x))))>
#<alt (+ (* x z) (* y (+ 1 (* -1 x))))>
#<alt (+ (* x z) (* y (+ 1 (* -1 x))))>
#<alt (* y (+ 1 (* -1 x)))>
#<alt (* y (+ 1 (+ (* -1 x) (/ (* x z) y))))>
#<alt (* y (+ 1 (+ (* -1 x) (/ (* x z) y))))>
#<alt (* y (+ 1 (+ (* -1 x) (/ (* x z) y))))>
#<alt (* -1 (* y (- x 1)))>
#<alt (* -1 (* y (- (+ x (* -1 (/ (* x z) y))) 1)))>
#<alt (* -1 (* y (- (+ x (* -1 (/ (* x z) y))) 1)))>
#<alt (* -1 (* y (- (+ x (* -1 (/ (* x z) y))) 1)))>
#<alt y>
#<alt (+ y (* x (- z y)))>
#<alt (+ y (* x (- z y)))>
#<alt (+ y (* x (- z y)))>
#<alt (* x (- z y))>
#<alt (* x (- (+ z (/ y x)) y))>
#<alt (* x (- (+ z (/ y x)) y))>
#<alt (* x (- (+ z (/ y x)) y))>
#<alt (* x (- z y))>
#<alt (* -1 (* x (+ (* -1 (- z y)) (* -1 (/ y x)))))>
#<alt (* -1 (* x (+ (* -1 (- z y)) (* -1 (/ y x)))))>
#<alt (* -1 (* x (+ (* -1 (- z y)) (* -1 (/ y x)))))>
#<alt (* -1 y)>
#<alt (- z y)>
#<alt (- z y)>
#<alt (- z y)>
#<alt z>
#<alt (* z (+ 1 (* -1 (/ y z))))>
#<alt (* z (+ 1 (* -1 (/ y z))))>
#<alt (* z (+ 1 (* -1 (/ y z))))>
#<alt z>
#<alt (* -1 (* z (- (/ y z) 1)))>
#<alt (* -1 (* z (- (/ y z) 1)))>
#<alt (* -1 (* z (- (/ y z) 1)))>
#<alt z>
#<alt (+ z (* -1 y))>
#<alt (+ z (* -1 y))>
#<alt (+ z (* -1 y))>
#<alt (* -1 y)>
#<alt (* y (- (/ z y) 1))>
#<alt (* y (- (/ z y) 1))>
#<alt (* y (- (/ z y) 1))>
#<alt (* -1 y)>
#<alt (* -1 (* y (+ 1 (* -1 (/ z y)))))>
#<alt (* -1 (* y (+ 1 (* -1 (/ z y)))))>
#<alt (* -1 (* y (+ 1 (* -1 (/ z y)))))>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* -1 (* x y))>
#<alt (+ (* -1 (* x y)) (* x z))>
#<alt (+ (* -1 (* x y)) (* x z))>
#<alt (+ (* -1 (* x y)) (* x z))>
#<alt (* x z)>
#<alt (* z (+ x (* -1 (/ (* x y) z))))>
#<alt (* z (+ x (* -1 (/ (* x y) z))))>
#<alt (* z (+ x (* -1 (/ (* x y) z))))>
#<alt (* x z)>
#<alt (* -1 (* z (+ (* -1 x) (/ (* x y) z))))>
#<alt (* -1 (* z (+ (* -1 x) (/ (* x y) z))))>
#<alt (* -1 (* z (+ (* -1 x) (/ (* x y) z))))>
#<alt (* x z)>
#<alt (+ (* -1 (* x y)) (* x z))>
#<alt (+ (* -1 (* x y)) (* x z))>
#<alt (+ (* -1 (* x y)) (* x z))>
#<alt (* -1 (* x y))>
#<alt (* y (+ (* -1 x) (/ (* x z) y)))>
#<alt (* y (+ (* -1 x) (/ (* x z) y)))>
#<alt (* y (+ (* -1 x) (/ (* x z) y)))>
#<alt (* -1 (* x y))>
#<alt (* -1 (* y (+ x (* -1 (/ (* x z) y)))))>
#<alt (* -1 (* y (+ x (* -1 (/ (* x z) y)))))>
#<alt (* -1 (* y (+ x (* -1 (/ (* x z) y)))))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt (* y (- 1 x))>
#<alt y>
#<alt (+ y (* -1 (* x y)))>
#<alt (+ y (* -1 (* x y)))>
#<alt (+ y (* -1 (* x y)))>
#<alt (* -1 (* x y))>
#<alt (* x (+ (* -1 y) (/ y x)))>
#<alt (* x (+ (* -1 y) (/ y x)))>
#<alt (* x (+ (* -1 y) (/ y x)))>
#<alt (* -1 (* x y))>
#<alt (* -1 (* x (+ y (* -1 (/ y x)))))>
#<alt (* -1 (* x (+ y (* -1 (/ y x)))))>
#<alt (* -1 (* x (+ y (* -1 (/ y x)))))>
#<alt 1>
#<alt (+ 1 (* -1 x))>
#<alt (+ 1 (* -1 x))>
#<alt (+ 1 (* -1 x))>
#<alt (* -1 x)>
#<alt (* x (- (/ 1 x) 1))>
#<alt (* x (- (/ 1 x) 1))>
#<alt (* x (- (/ 1 x) 1))>
#<alt (* -1 x)>
#<alt (* -1 (* x (- 1 (/ 1 x))))>
#<alt (* -1 (* x (- 1 (/ 1 x))))>
#<alt (* -1 (* x (- 1 (/ 1 x))))>
Calls

39 calls:

TimeVariablePointExpression
0.0ms
x
@-inf
(+ (* (- z y) x) y)
0.0ms
z
@0
(+ (* (- z y) x) y)
0.0ms
z
@-inf
(+ (* (- z y) x) y)
0.0ms
z
@inf
(+ (* (- z y) x) y)
0.0ms
x
@0
(+ (* (- z y) x) y)

rewrite151.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
1668×sum5-define
1566×fnmadd-define
1390×fmm-def
1330×prod-diff
1270×fnmsub-define
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01125
12125
23925
38024
417824
539524
693724
7334924
8752024
0826524
Stop Event
iter limit
node limit
Counts
6 → 295
Calls
Call 1
Inputs
(+ (* (- z y) x) y)
(- z y)
(* x z)
(* x (- z y))
(* y (- 1 x))
(- 1 x)
Outputs
(+.f64 y (*.f64 (-.f64 z y) x))
(+.f64 (*.f64 (-.f64 z y) x) y)
(+.f64 (+.f64 y (*.f64 (-.f64 z y) x)) #s(literal 0 binary64))
(+.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (+.f64 (*.f64 (-.f64 z y) x) (*.f64 x (-.f64 y z))))
(+.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (+.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) (*.f64 y (+.f64 x #s(literal -1 binary64)))))
(+.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (-.f64 y y))
(+.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (-.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 y (*.f64 z x))) #s(literal -1 binary64)) (+.f64 y (*.f64 z x))))
(+.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (*.f64 #s(literal 1 binary64) (+.f64 (*.f64 (-.f64 z y) x) (*.f64 x (-.f64 y z)))))
(+.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (*.f64 #s(literal 1 binary64) (+.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) (*.f64 y (+.f64 x #s(literal -1 binary64))))))
(+.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (*.f64 (+.f64 (*.f64 (-.f64 z y) x) (*.f64 x (-.f64 y z))) #s(literal 1 binary64)))
(+.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (*.f64 (+.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) (*.f64 y (+.f64 x #s(literal -1 binary64)))) #s(literal 1 binary64)))
(+.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (-.f64 (+.f64 (*.f64 (-.f64 z y) x) (*.f64 x (-.f64 y z))) #s(literal 0 binary64)))
(+.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (-.f64 (+.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) (*.f64 y (+.f64 x #s(literal -1 binary64)))) #s(literal 0 binary64)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(+.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) (*.f64 z x))
(+.f64 #s(literal 0 binary64) (+.f64 y (*.f64 (-.f64 z y) x)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) (+.f64 y (*.f64 z x)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 y (*.f64 z x))) #s(literal -1 binary64)))
(+.f64 (*.f64 y x) (-.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (*.f64 y x)))
(+.f64 (+.f64 y (*.f64 z x)) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(+.f64 (+.f64 (*.f64 (-.f64 z y) x) (*.f64 x (-.f64 y z))) (+.f64 y (*.f64 (-.f64 z y) x)))
(+.f64 (+.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) (*.f64 y (+.f64 x #s(literal -1 binary64)))) (+.f64 y (*.f64 (-.f64 z y) x)))
(+.f64 (-.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (*.f64 y x)) (*.f64 y x))
(+.f64 (*.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 (+.f64 x #s(literal -1 binary64)) x)) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 (-.f64 y z) y)) (-.f64 (*.f64 y x) (-.f64 #s(literal 0 binary64) y)))
(+.f64 (*.f64 (-.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (*.f64 y x)) #s(literal 1 binary64)) (*.f64 y x))
(+.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 y (*.f64 z x))) #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(+.f64 (-.f64 y (*.f64 x (-.f64 (-.f64 y z) (-.f64 #s(literal 0 binary64) y)))) (*.f64 y x))
(+.f64 (-.f64 (*.f64 z x) (+.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 (*.f64 y x) #s(literal 2 binary64)))) (*.f64 y x))
(+.f64 (-.f64 (+.f64 y (*.f64 z x)) (*.f64 (*.f64 y x) #s(literal 2 binary64))) (*.f64 y x))
(-.f64 y (*.f64 x (-.f64 y z)))
(-.f64 y (*.f64 (-.f64 z y) (-.f64 #s(literal 0 binary64) x)))
(-.f64 y (*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 z y)))
(-.f64 (*.f64 (-.f64 z y) x) (-.f64 #s(literal 0 binary64) y))
(-.f64 (+.f64 y (*.f64 (-.f64 z y) x)) #s(literal 0 binary64))
(-.f64 (*.f64 z x) (*.f64 y (+.f64 x #s(literal -1 binary64))))
(-.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x (-.f64 y z)) y))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) (-.f64 #s(literal 0 binary64) (+.f64 y (*.f64 z x))))
(-.f64 (+.f64 y (*.f64 z x)) (*.f64 y x))
(-.f64 (-.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (*.f64 x (-.f64 #s(literal 0 binary64) z))) (*.f64 z x))
(-.f64 (-.f64 (+.f64 y (*.f64 (-.f64 z y) x)) (-.f64 #s(literal 0 binary64) y)) y)
(fma.f64 z x (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 y #s(literal 1 binary64) (*.f64 (-.f64 z y) x))
(fma.f64 y (-.f64 #s(literal 1 binary64) x) (*.f64 z x))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) (+.f64 y (*.f64 z x)))
(fma.f64 y (+.f64 x (-.f64 #s(literal 1 binary64) x)) (*.f64 (-.f64 z y) x))
(fma.f64 y (+.f64 (-.f64 #s(literal 1 binary64) x) x) (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x y)
(fma.f64 x z (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 x (-.f64 z y) y)
(fma.f64 x (-.f64 #s(literal 0 binary64) y) (+.f64 y (*.f64 z x)))
(fma.f64 x (+.f64 (-.f64 z y) y) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 x (+.f64 y (-.f64 z y)) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 (*.f64 (-.f64 z y) x) #s(literal 1 binary64) y)
(fma.f64 (+.f64 y (*.f64 (-.f64 z y) x)) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 (*.f64 z x) #s(literal 1 binary64) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 #s(literal 1 binary64) y (*.f64 (-.f64 z y) x))
(fma.f64 #s(literal 1 binary64) (*.f64 (-.f64 z y) x) y)
(fma.f64 #s(literal 1 binary64) (+.f64 y (*.f64 (-.f64 z y) x)) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 z x) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 #s(literal 1 binary64) (*.f64 y (-.f64 #s(literal 1 binary64) x)) (*.f64 z x))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 y x)) (+.f64 y (*.f64 z x)))
(fma.f64 #s(literal 1 binary64) (+.f64 y (*.f64 z x)) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 (-.f64 #s(literal 1 binary64) x) y (*.f64 z x))
(fma.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) #s(literal 1 binary64) (*.f64 z x))
(fma.f64 (-.f64 #s(literal 0 binary64) x) y (+.f64 y (*.f64 z x)))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 y z) y)
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) z) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) x (+.f64 y (*.f64 z x)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) #s(literal -1 binary64) (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 x #s(literal -1 binary64)) (*.f64 z x))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) y) (*.f64 (-.f64 z y) x))
(fma.f64 #s(literal -1 binary64) (*.f64 y x) (+.f64 y (*.f64 z x)))
(fma.f64 #s(literal -1 binary64) (*.f64 y (+.f64 x #s(literal -1 binary64))) (*.f64 z x))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) y)
(fma.f64 #s(literal -1 binary64) (-.f64 (*.f64 x (-.f64 y z)) y) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) z)) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 y (*.f64 z x))) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) #s(literal 1 binary64) (+.f64 y (*.f64 z x)))
(fma.f64 (*.f64 y x) #s(literal -1 binary64) (+.f64 y (*.f64 z x)))
(fma.f64 (+.f64 y (*.f64 z x)) #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 (-.f64 y z) (-.f64 #s(literal 0 binary64) x) y)
(fma.f64 (+.f64 x #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) y) (*.f64 z x))
(fma.f64 (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) x) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) #s(literal -1 binary64) (*.f64 z x))
(fma.f64 (*.f64 x (-.f64 y z)) #s(literal -1 binary64) y)
(fma.f64 (-.f64 (*.f64 x (-.f64 y z)) y) #s(literal -1 binary64) #s(literal 0 binary64))
(fma.f64 (*.f64 x (-.f64 #s(literal 0 binary64) z)) #s(literal -1 binary64) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(neg.f64 (-.f64 (*.f64 x (-.f64 y z)) y))
(*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (+.f64 y (*.f64 (-.f64 z y) x)))
(*.f64 #s(literal -1 binary64) (-.f64 (*.f64 x (-.f64 y z)) y))
(*.f64 (-.f64 (*.f64 x (-.f64 y z)) y) #s(literal -1 binary64))
(+.f64 z (-.f64 #s(literal 0 binary64) y))
(+.f64 (-.f64 z y) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (-.f64 z y))
(+.f64 (-.f64 #s(literal 0 binary64) y) z)
(-.f64 z y)
(-.f64 (-.f64 z y) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (-.f64 y z))
(-.f64 (-.f64 #s(literal 0 binary64) y) (-.f64 #s(literal 0 binary64) z))
(-.f64 (+.f64 (-.f64 z y) z) z)
(fma.f64 z #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) y))
(fma.f64 y #s(literal -1 binary64) z)
(fma.f64 (-.f64 z y) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) z (-.f64 #s(literal 0 binary64) y))
(fma.f64 #s(literal 1 binary64) (-.f64 z y) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) y) z)
(fma.f64 (-.f64 #s(literal 0 binary64) y) #s(literal 1 binary64) z)
(fma.f64 #s(literal -1 binary64) y z)
(fma.f64 #s(literal -1 binary64) (-.f64 y z) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) y))
(fma.f64 (-.f64 y z) #s(literal -1 binary64) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) z) #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) y))
(neg.f64 (-.f64 y z))
(*.f64 (-.f64 z y) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (-.f64 z y))
(*.f64 #s(literal -1 binary64) (-.f64 y z))
(*.f64 (-.f64 y z) #s(literal -1 binary64))
(+.f64 (*.f64 (-.f64 z y) x) (*.f64 y x))
(+.f64 (*.f64 z x) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 z x))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) (*.f64 x (+.f64 y z)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) (*.f64 (*.f64 x (+.f64 y z)) #s(literal 1 binary64)))
(+.f64 (*.f64 y x) (*.f64 (-.f64 z y) x))
(+.f64 (*.f64 x (+.f64 y z)) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(-.f64 (*.f64 z x) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(-.f64 (*.f64 y x) (*.f64 x (-.f64 y z)))
(-.f64 (*.f64 x (+.f64 y z)) (*.f64 y x))
(-.f64 (-.f64 (*.f64 z x) (*.f64 x (-.f64 #s(literal 0 binary64) z))) (*.f64 z x))
(fma.f64 z x #s(literal 0 binary64))
(fma.f64 y x (*.f64 (-.f64 z y) x))
(fma.f64 x z #s(literal 0 binary64))
(fma.f64 x y (*.f64 (-.f64 z y) x))
(fma.f64 x (+.f64 (-.f64 z y) y) #s(literal 0 binary64))
(fma.f64 x (+.f64 y (-.f64 z y)) #s(literal 0 binary64))
(fma.f64 x (+.f64 y z) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 (*.f64 z x) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 z x) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 y x) (*.f64 (-.f64 z y) x))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 y z)) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) z) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) z)) #s(literal 0 binary64))
(fma.f64 (*.f64 y x) #s(literal 1 binary64) (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) x) #s(literal 0 binary64))
(fma.f64 (*.f64 x (-.f64 #s(literal 0 binary64) z)) #s(literal -1 binary64) #s(literal 0 binary64))
(neg.f64 (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(*.f64 z x)
(*.f64 x z)
(*.f64 x (+.f64 (-.f64 z y) y))
(*.f64 x (+.f64 y (-.f64 z y)))
(*.f64 (*.f64 z x) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 z x))
(*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) z))
(*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(*.f64 (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) x))
(*.f64 (*.f64 x (-.f64 #s(literal 0 binary64) z)) #s(literal -1 binary64))
(+.f64 (*.f64 (-.f64 z y) x) #s(literal 0 binary64))
(+.f64 (*.f64 (-.f64 z y) x) (+.f64 (*.f64 (-.f64 z y) x) (*.f64 x (-.f64 y z))))
(+.f64 (*.f64 z x) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(+.f64 #s(literal 0 binary64) (*.f64 (-.f64 z y) x))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) (*.f64 z x))
(+.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 (-.f64 y z) y)))
(+.f64 (*.f64 y x) (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) (*.f64 x (-.f64 y z))))
(+.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 (-.f64 y z) y)) (*.f64 y x))
(+.f64 (*.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 (-.f64 y z) y)) #s(literal 1 binary64)) (*.f64 y x))
(+.f64 (-.f64 (*.f64 z x) (*.f64 (*.f64 y x) #s(literal 2 binary64))) (*.f64 y x))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 x (-.f64 (-.f64 y z) (-.f64 #s(literal 0 binary64) y)))) (*.f64 y x))
(-.f64 (*.f64 (-.f64 z y) x) #s(literal 0 binary64))
(-.f64 (*.f64 z x) (*.f64 y x))
(-.f64 #s(literal 0 binary64) (*.f64 x (-.f64 y z)))
(-.f64 #s(literal 0 binary64) (*.f64 (-.f64 z y) (-.f64 #s(literal 0 binary64) x)))
(-.f64 #s(literal 0 binary64) (*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 z y)))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(-.f64 (-.f64 (*.f64 (-.f64 z y) x) (*.f64 x (-.f64 #s(literal 0 binary64) z))) (*.f64 z x))
(fma.f64 z x (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 y #s(literal 0 binary64) (*.f64 (-.f64 z y) x))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) (*.f64 z x))
(fma.f64 (-.f64 z y) x #s(literal 0 binary64))
(fma.f64 x z (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 x (-.f64 z y) #s(literal 0 binary64))
(fma.f64 x #s(literal 0 binary64) (*.f64 (-.f64 z y) x))
(fma.f64 x (-.f64 #s(literal 0 binary64) y) (*.f64 z x))
(fma.f64 x (+.f64 (-.f64 z y) y) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 x (+.f64 y (-.f64 z y)) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 (*.f64 (-.f64 z y) x) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 (*.f64 z x) #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 #s(literal 1 binary64) (*.f64 (-.f64 z y) x) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 z x) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 #s(literal 1 binary64) #s(literal 0 binary64) (*.f64 (-.f64 z y) x))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 y x)) (*.f64 z x))
(fma.f64 #s(literal 0 binary64) #s(literal 1 binary64) (*.f64 (-.f64 z y) x))
(fma.f64 #s(literal 0 binary64) (*.f64 y x) (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 #s(literal 0 binary64) x) y (*.f64 z x))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 y z) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) x (*.f64 z x))
(fma.f64 #s(literal -1 binary64) (*.f64 y x) (*.f64 z x))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) z)) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) #s(literal 1 binary64) (*.f64 z x))
(fma.f64 (*.f64 y x) #s(literal 0 binary64) (*.f64 (-.f64 z y) x))
(fma.f64 (*.f64 y x) #s(literal -1 binary64) (*.f64 z x))
(fma.f64 (-.f64 y z) (-.f64 #s(literal 0 binary64) x) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 (*.f64 x (-.f64 y z)) #s(literal -1 binary64) #s(literal 0 binary64))
(fma.f64 (*.f64 x (-.f64 #s(literal 0 binary64) z)) #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(neg.f64 (*.f64 x (-.f64 y z)))
(neg.f64 (*.f64 (-.f64 z y) (-.f64 #s(literal 0 binary64) x)))
(neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 z y)))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(*.f64 (*.f64 (-.f64 z y) x) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 (-.f64 z y) x))
(*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 y z))
(*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 y z) (-.f64 #s(literal 0 binary64) x))
(*.f64 (*.f64 x (-.f64 y z)) #s(literal -1 binary64))
(+.f64 y (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(+.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) #s(literal 0 binary64))
(+.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) (+.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) (*.f64 y (+.f64 x #s(literal -1 binary64)))))
(+.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) (-.f64 y y))
(+.f64 #s(literal 0 binary64) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) y)
(+.f64 (*.f64 y x) (*.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 (+.f64 x #s(literal -1 binary64)) x)))
(+.f64 (*.f64 y x) (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) (*.f64 y (+.f64 x #s(literal -1 binary64)))))
(+.f64 (*.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 (+.f64 x #s(literal -1 binary64)) x)) (*.f64 y x))
(+.f64 (*.f64 (*.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 (+.f64 x #s(literal -1 binary64)) x)) #s(literal 1 binary64)) (*.f64 y x))
(+.f64 (-.f64 y (*.f64 (*.f64 y x) #s(literal 2 binary64))) (*.f64 y x))
(+.f64 (-.f64 #s(literal 0 binary64) (+.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 (*.f64 y x) #s(literal 2 binary64)))) (*.f64 y x))
(-.f64 y (*.f64 y x))
(-.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (*.f64 y (+.f64 x #s(literal -1 binary64))))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) (-.f64 #s(literal 0 binary64) y))
(-.f64 (-.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) (-.f64 #s(literal 0 binary64) y)) y)
(fma.f64 y #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 y (-.f64 #s(literal 1 binary64) x) #s(literal 0 binary64))
(fma.f64 y #s(literal 0 binary64) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) y)
(fma.f64 y (+.f64 x (-.f64 #s(literal 1 binary64) x)) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 y (+.f64 (-.f64 #s(literal 1 binary64) x) x) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 x #s(literal 0 binary64) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 x (-.f64 #s(literal 0 binary64) y) y)
(fma.f64 #s(literal 1 binary64) y (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 #s(literal 1 binary64) (*.f64 y (-.f64 #s(literal 1 binary64) x)) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 0 binary64) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 y x)) y)
(fma.f64 (-.f64 #s(literal 1 binary64) x) y #s(literal 0 binary64))
(fma.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 #s(literal 0 binary64) #s(literal 1 binary64) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 #s(literal 0 binary64) (*.f64 y x) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 (-.f64 #s(literal 0 binary64) x) y y)
(fma.f64 (-.f64 #s(literal 0 binary64) y) x y)
(fma.f64 (-.f64 #s(literal 0 binary64) y) #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 x #s(literal -1 binary64)) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) y) (-.f64 #s(literal 0 binary64) (*.f64 y x)))
(fma.f64 #s(literal -1 binary64) (*.f64 y x) y)
(fma.f64 #s(literal -1 binary64) (*.f64 y (+.f64 x #s(literal -1 binary64))) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) (*.f64 y x)) #s(literal 1 binary64) y)
(fma.f64 (*.f64 y x) #s(literal 0 binary64) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(fma.f64 (*.f64 y x) #s(literal -1 binary64) y)
(fma.f64 (+.f64 x #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) y) #s(literal 0 binary64))
(fma.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) #s(literal -1 binary64) #s(literal 0 binary64))
(neg.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(*.f64 #s(literal 1 binary64) (*.f64 y (-.f64 #s(literal 1 binary64) x)))
(*.f64 (-.f64 #s(literal 1 binary64) x) y)
(*.f64 (*.f64 y (-.f64 #s(literal 1 binary64) x)) #s(literal 1 binary64))
(*.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 x #s(literal -1 binary64)))
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 x #s(literal -1 binary64))))
(*.f64 (+.f64 x #s(literal -1 binary64)) (-.f64 #s(literal 0 binary64) y))
(*.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) #s(literal -1 binary64))
(+.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) x))
(+.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (-.f64 #s(literal 1 binary64) x))
(+.f64 (-.f64 #s(literal 0 binary64) x) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) x)
(-.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (+.f64 x #s(literal -1 binary64)))
(-.f64 (-.f64 #s(literal 0 binary64) x) #s(literal -1 binary64))
(fma.f64 x #s(literal -1 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) x) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) x) #s(literal 1 binary64))
(fma.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) x) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64))
(fma.f64 #s(literal -1 binary64) (+.f64 x #s(literal -1 binary64)) #s(literal 0 binary64))
(fma.f64 (+.f64 x #s(literal -1 binary64)) #s(literal -1 binary64) #s(literal 0 binary64))
(neg.f64 (+.f64 x #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) x))
(*.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
(*.f64 #s(literal -1 binary64) (+.f64 x #s(literal -1 binary64)))
(*.f64 (+.f64 x #s(literal -1 binary64)) #s(literal -1 binary64))

simplify210.0ms (3.3%)

Algorithm
egg-herbie
Rules
1972×*-lowering-*.f32
1972×*-lowering-*.f64
1962×sum3-define
1360×fmsub-define
1038×fmm-def
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
086781
1291625
2951625
32929625
47440625
08272625
Stop Event
iter limit
node limit
Counts
156 → 156
Calls
Call 1
Inputs
(+ y (* -1 (* x y)))
(+ y (+ (* -1 (* x y)) (* x z)))
(+ y (+ (* -1 (* x y)) (* x z)))
(+ y (+ (* -1 (* x y)) (* x z)))
(* x z)
(* z (+ x (+ (* -1 (/ (* x y) z)) (/ y z))))
(* z (+ x (+ (* -1 (/ (* x y) z)) (/ y z))))
(* z (+ x (+ (* -1 (/ (* x y) z)) (/ y z))))
(* x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ (+ y (* -1 (* x y))) z)))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (+ y (* -1 (* x y))) z)))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (+ y (* -1 (* x y))) z)))))
(* x z)
(+ (* x z) (* y (+ 1 (* -1 x))))
(+ (* x z) (* y (+ 1 (* -1 x))))
(+ (* x z) (* y (+ 1 (* -1 x))))
(* y (+ 1 (* -1 x)))
(* y (+ 1 (+ (* -1 x) (/ (* x z) y))))
(* y (+ 1 (+ (* -1 x) (/ (* x z) y))))
(* y (+ 1 (+ (* -1 x) (/ (* x z) y))))
(* -1 (* y (- x 1)))
(* -1 (* y (- (+ x (* -1 (/ (* x z) y))) 1)))
(* -1 (* y (- (+ x (* -1 (/ (* x z) y))) 1)))
(* -1 (* y (- (+ x (* -1 (/ (* x z) y))) 1)))
y
(+ y (* x (- z y)))
(+ y (* x (- z y)))
(+ y (* x (- z y)))
(* x (- z y))
(* x (- (+ z (/ y x)) y))
(* x (- (+ z (/ y x)) y))
(* x (- (+ z (/ y x)) y))
(* x (- z y))
(* -1 (* x (+ (* -1 (- z y)) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 (- z y)) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 (- z y)) (* -1 (/ y x)))))
(* -1 y)
(- z y)
(- z y)
(- z y)
z
(* z (+ 1 (* -1 (/ y z))))
(* z (+ 1 (* -1 (/ y z))))
(* z (+ 1 (* -1 (/ y z))))
z
(* -1 (* z (- (/ y z) 1)))
(* -1 (* z (- (/ y z) 1)))
(* -1 (* z (- (/ y z) 1)))
z
(+ z (* -1 y))
(+ z (* -1 y))
(+ z (* -1 y))
(* -1 y)
(* y (- (/ z y) 1))
(* y (- (/ z y) 1))
(* y (- (/ z y) 1))
(* -1 y)
(* -1 (* y (+ 1 (* -1 (/ z y)))))
(* -1 (* y (+ 1 (* -1 (/ z y)))))
(* -1 (* y (+ 1 (* -1 (/ z y)))))
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* -1 (* x y))
(+ (* -1 (* x y)) (* x z))
(+ (* -1 (* x y)) (* x z))
(+ (* -1 (* x y)) (* x z))
(* x z)
(* z (+ x (* -1 (/ (* x y) z))))
(* z (+ x (* -1 (/ (* x y) z))))
(* z (+ x (* -1 (/ (* x y) z))))
(* x z)
(* -1 (* z (+ (* -1 x) (/ (* x y) z))))
(* -1 (* z (+ (* -1 x) (/ (* x y) z))))
(* -1 (* z (+ (* -1 x) (/ (* x y) z))))
(* x z)
(+ (* -1 (* x y)) (* x z))
(+ (* -1 (* x y)) (* x z))
(+ (* -1 (* x y)) (* x z))
(* -1 (* x y))
(* y (+ (* -1 x) (/ (* x z) y)))
(* y (+ (* -1 x) (/ (* x z) y)))
(* y (+ (* -1 x) (/ (* x z) y)))
(* -1 (* x y))
(* -1 (* y (+ x (* -1 (/ (* x z) y)))))
(* -1 (* y (+ x (* -1 (/ (* x z) y)))))
(* -1 (* y (+ x (* -1 (/ (* x z) y)))))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
(* y (- 1 x))
y
(+ y (* -1 (* x y)))
(+ y (* -1 (* x y)))
(+ y (* -1 (* x y)))
(* -1 (* x y))
(* x (+ (* -1 y) (/ y x)))
(* x (+ (* -1 y) (/ y x)))
(* x (+ (* -1 y) (/ y x)))
(* -1 (* x y))
(* -1 (* x (+ y (* -1 (/ y x)))))
(* -1 (* x (+ y (* -1 (/ y x)))))
(* -1 (* x (+ y (* -1 (/ y x)))))
1
(+ 1 (* -1 x))
(+ 1 (* -1 x))
(+ 1 (* -1 x))
(* -1 x)
(* x (- (/ 1 x) 1))
(* x (- (/ 1 x) 1))
(* x (- (/ 1 x) 1))
(* -1 x)
(* -1 (* x (- 1 (/ 1 x))))
(* -1 (* x (- 1 (/ 1 x))))
(* -1 (* x (- 1 (/ 1 x))))
Outputs
(+ y (* -1 (* x y)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(+ y (+ (* -1 (* x y)) (* x z)))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ y (+ (* -1 (* x y)) (* x z)))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ y (+ (* -1 (* x y)) (* x z)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x z)
(*.f64 x z)
(* z (+ x (+ (* -1 (/ (* x y) z)) (/ y z))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* z (+ x (+ (* -1 (/ (* x y) z)) (/ y z))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* z (+ x (+ (* -1 (/ (* x y) z)) (/ y z))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x z)
(*.f64 x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ (+ y (* -1 (* x y))) z)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* z (+ (* -1 x) (* -1 (/ (+ y (* -1 (* x y))) z)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* z (+ (* -1 x) (* -1 (/ (+ y (* -1 (* x y))) z)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x z)
(*.f64 x z)
(+ (* x z) (* y (+ 1 (* -1 x))))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ (* x z) (* y (+ 1 (* -1 x))))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ (* x z) (* y (+ 1 (* -1 x))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* y (+ 1 (* -1 x)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (+ 1 (+ (* -1 x) (/ (* x z) y))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* y (+ 1 (+ (* -1 x) (/ (* x z) y))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* y (+ 1 (+ (* -1 x) (/ (* x z) y))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* y (- x 1)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* -1 (* y (- (+ x (* -1 (/ (* x z) y))) 1)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* y (- (+ x (* -1 (/ (* x z) y))) 1)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* y (- (+ x (* -1 (/ (* x z) y))) 1)))
(+.f64 y (*.f64 x (-.f64 z y)))
y
(+ y (* x (- z y)))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ y (* x (- z y)))
(+.f64 y (*.f64 x (-.f64 z y)))
(+ y (* x (- z y)))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- (+ z (/ y x)) y))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x (- (+ z (/ y x)) y))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x (- (+ z (/ y x)) y))
(+.f64 y (*.f64 x (-.f64 z y)))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* -1 (* x (+ (* -1 (- z y)) (* -1 (/ y x)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* x (+ (* -1 (- z y)) (* -1 (/ y x)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 (* x (+ (* -1 (- z y)) (* -1 (/ y x)))))
(+.f64 y (*.f64 x (-.f64 z y)))
(* -1 y)
(-.f64 #s(literal 0 binary64) y)
(- z y)
(-.f64 z y)
(- z y)
(-.f64 z y)
(- z y)
(-.f64 z y)
z
(* z (+ 1 (* -1 (/ y z))))
(-.f64 z y)
(* z (+ 1 (* -1 (/ y z))))
(-.f64 z y)
(* z (+ 1 (* -1 (/ y z))))
(-.f64 z y)
z
(* -1 (* z (- (/ y z) 1)))
(-.f64 z y)
(* -1 (* z (- (/ y z) 1)))
(-.f64 z y)
(* -1 (* z (- (/ y z) 1)))
(-.f64 z y)
z
(+ z (* -1 y))
(-.f64 z y)
(+ z (* -1 y))
(-.f64 z y)
(+ z (* -1 y))
(-.f64 z y)
(* -1 y)
(-.f64 #s(literal 0 binary64) y)
(* y (- (/ z y) 1))
(-.f64 z y)
(* y (- (/ z y) 1))
(-.f64 z y)
(* y (- (/ z y) 1))
(-.f64 z y)
(* -1 y)
(-.f64 #s(literal 0 binary64) y)
(* -1 (* y (+ 1 (* -1 (/ z y)))))
(-.f64 z y)
(* -1 (* y (+ 1 (* -1 (/ z y)))))
(-.f64 z y)
(* -1 (* y (+ 1 (* -1 (/ z y)))))
(-.f64 z y)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* -1 (* x y))
(-.f64 #s(literal 0 binary64) (*.f64 y x))
(+ (* -1 (* x y)) (* x z))
(*.f64 x (-.f64 z y))
(+ (* -1 (* x y)) (* x z))
(*.f64 x (-.f64 z y))
(+ (* -1 (* x y)) (* x z))
(*.f64 x (-.f64 z y))
(* x z)
(*.f64 x z)
(* z (+ x (* -1 (/ (* x y) z))))
(*.f64 x (-.f64 z y))
(* z (+ x (* -1 (/ (* x y) z))))
(*.f64 x (-.f64 z y))
(* z (+ x (* -1 (/ (* x y) z))))
(*.f64 x (-.f64 z y))
(* x z)
(*.f64 x z)
(* -1 (* z (+ (* -1 x) (/ (* x y) z))))
(*.f64 x (-.f64 z y))
(* -1 (* z (+ (* -1 x) (/ (* x y) z))))
(*.f64 x (-.f64 z y))
(* -1 (* z (+ (* -1 x) (/ (* x y) z))))
(*.f64 x (-.f64 z y))
(* x z)
(*.f64 x z)
(+ (* -1 (* x y)) (* x z))
(*.f64 x (-.f64 z y))
(+ (* -1 (* x y)) (* x z))
(*.f64 x (-.f64 z y))
(+ (* -1 (* x y)) (* x z))
(*.f64 x (-.f64 z y))
(* -1 (* x y))
(-.f64 #s(literal 0 binary64) (*.f64 y x))
(* y (+ (* -1 x) (/ (* x z) y)))
(*.f64 x (-.f64 z y))
(* y (+ (* -1 x) (/ (* x z) y)))
(*.f64 x (-.f64 z y))
(* y (+ (* -1 x) (/ (* x z) y)))
(*.f64 x (-.f64 z y))
(* -1 (* x y))
(-.f64 #s(literal 0 binary64) (*.f64 y x))
(* -1 (* y (+ x (* -1 (/ (* x z) y)))))
(*.f64 x (-.f64 z y))
(* -1 (* y (+ x (* -1 (/ (* x z) y)))))
(*.f64 x (-.f64 z y))
(* -1 (* y (+ x (* -1 (/ (* x z) y)))))
(*.f64 x (-.f64 z y))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* y (- 1 x))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
y
(+ y (* -1 (* x y)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(+ y (* -1 (* x y)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(+ y (* -1 (* x y)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* -1 (* x y))
(-.f64 #s(literal 0 binary64) (*.f64 y x))
(* x (+ (* -1 y) (/ y x)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* x (+ (* -1 y) (/ y x)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* x (+ (* -1 y) (/ y x)))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* -1 (* x y))
(-.f64 #s(literal 0 binary64) (*.f64 y x))
(* -1 (* x (+ y (* -1 (/ y x)))))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* -1 (* x (+ y (* -1 (/ y x)))))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(* -1 (* x (+ y (* -1 (/ y x)))))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
1
#s(literal 1 binary64)
(+ 1 (* -1 x))
(-.f64 #s(literal 1 binary64) x)
(+ 1 (* -1 x))
(-.f64 #s(literal 1 binary64) x)
(+ 1 (* -1 x))
(-.f64 #s(literal 1 binary64) x)
(* -1 x)
(-.f64 #s(literal 0 binary64) x)
(* x (- (/ 1 x) 1))
(-.f64 #s(literal 1 binary64) x)
(* x (- (/ 1 x) 1))
(-.f64 #s(literal 1 binary64) x)
(* x (- (/ 1 x) 1))
(-.f64 #s(literal 1 binary64) x)
(* -1 x)
(-.f64 #s(literal 0 binary64) x)
(* -1 (* x (- 1 (/ 1 x))))
(-.f64 #s(literal 1 binary64) x)
(* -1 (* x (- 1 (/ 1 x))))
(-.f64 #s(literal 1 binary64) x)
(* -1 (* x (- 1 (/ 1 x))))
(-.f64 #s(literal 1 binary64) x)

eval54.0ms (0.8%)

Compiler

Compiled 3874 to 438 computations (88.7% saved)

prune45.0ms (0.7%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New5001501
Fresh011
Picked055
Done101
Total5017508
Accuracy
100.0%
Counts
508 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (-.f64 z y) x y)
63.6%
(-.f64 (*.f64 z x) (*.f64 y x))
73.6%
(+.f64 y (*.f64 x z))
63.5%
(*.f64 y (-.f64 #s(literal 1 binary64) x))
65.6%
(*.f64 x (-.f64 z y))
39.4%
(*.f64 x z)
36.9%
y
Compiler

Compiled 53 to 34 computations (35.8% saved)

simplify47.0ms (0.7%)

Algorithm
egg-herbie
Localize:

Found 5 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 y x)
cost-diff0
(*.f64 z x)
cost-diff128
(-.f64 (*.f64 z x) (*.f64 y x))
cost-diff0
(*.f64 x z)
cost-diff0
(+.f64 y (*.f64 x z))
Rules
644×fnmadd-define
542×sum3-define
480×sum5-define
460×fma-define
380×fmsub-define
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0825
12124
24124
36424
410224
521324
645024
783624
8133224
9201224
10213524
11215324
12216124
0216124
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(+ y (* x z))
y
(* x z)
x
z
(- (* z x) (* y x))
(* z x)
z
x
(* y x)
y
Outputs
(+ y (* x z))
(+.f64 y (*.f64 x z))
y
(* x z)
(*.f64 x z)
x
z
(- (* z x) (* y x))
(*.f64 x (-.f64 z y))
(* z x)
(*.f64 x z)
z
x
(* y x)
(*.f64 y x)
y

localize55.0ms (0.9%)

Localize:

Found 5 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 z x)
accuracy100.0%
(*.f64 y x)
accuracy98.2%
(-.f64 (*.f64 z x) (*.f64 y x))
accuracy100.0%
(*.f64 x z)
accuracy100.0%
(+.f64 y (*.f64 x z))
Results
46.0ms256×0valid
Compiler

Compiled 31 to 9 computations (71% saved)

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

series4.0ms (0.1%)

Counts
5 → 144
Calls
Call 1
Inputs
#<alt (+ y (* x z))>
#<alt (* x z)>
#<alt (- (* z x) (* y x))>
#<alt (* z x)>
#<alt (* y x)>
Outputs
#<alt (* x z)>
#<alt (+ y (* x z))>
#<alt (+ y (* x z))>
#<alt (+ y (* x z))>
#<alt y>
#<alt (* y (+ 1 (/ (* x z) y)))>
#<alt (* y (+ 1 (/ (* x z) y)))>
#<alt (* y (+ 1 (/ (* x z) y)))>
#<alt y>
#<alt (* -1 (* y (- (* -1 (/ (* x z) y)) 1)))>
#<alt (* -1 (* y (- (* -1 (/ (* x z) y)) 1)))>
#<alt (* -1 (* y (- (* -1 (/ (* x z) y)) 1)))>
#<alt y>
#<alt (+ y (* x z))>
#<alt (+ y (* x z))>
#<alt (+ y (* x z))>
#<alt (* x z)>
#<alt (* x (+ z (/ y x)))>
#<alt (* x (+ z (/ y x)))>
#<alt (* x (+ z (/ y x)))>
#<alt (* x z)>
#<alt (* -1 (* x (+ (* -1 z) (* -1 (/ y x)))))>
#<alt (* -1 (* x (+ (* -1 z) (* -1 (/ y x)))))>
#<alt (* -1 (* x (+ (* -1 z) (* -1 (/ y x)))))>
#<alt y>
#<alt (+ y (* x z))>
#<alt (+ y (* x z))>
#<alt (+ y (* x z))>
#<alt (* x z)>
#<alt (* z (+ x (/ y z)))>
#<alt (* z (+ x (/ y z)))>
#<alt (* z (+ x (/ y z)))>
#<alt (* x z)>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ y z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ y z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ y z)))))>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* -1 (* x y))>
#<alt (- (* x z) (* x y))>
#<alt (- (* x z) (* x y))>
#<alt (- (* x z) (* x y))>
#<alt (* x z)>
#<alt (* z (+ x (* -1 (/ (* x y) z))))>
#<alt (* z (+ x (* -1 (/ (* x y) z))))>
#<alt (* z (+ x (* -1 (/ (* x y) z))))>
#<alt (* x z)>
#<alt (* -1 (* z (+ (* -1 x) (/ (* x y) z))))>
#<alt (* -1 (* z (+ (* -1 x) (/ (* x y) z))))>
#<alt (* -1 (* z (+ (* -1 x) (/ (* x y) z))))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* x (- z y))>
#<alt (* -1 (* x (- (* -1 z) (* -1 y))))>
#<alt (* -1 (* x (- (* -1 z) (* -1 y))))>
#<alt (* -1 (* x (- (* -1 z) (* -1 y))))>
#<alt (* -1 (* x (- (* -1 z) (* -1 y))))>
#<alt (* x z)>
#<alt (+ (* -1 (* x y)) (* x z))>
#<alt (+ (* -1 (* x y)) (* x z))>
#<alt (+ (* -1 (* x y)) (* x z))>
#<alt (* -1 (* x y))>
#<alt (* y (- (/ (* x z) y) x))>
#<alt (* y (- (/ (* x z) y) x))>
#<alt (* y (- (/ (* x z) y) x))>
#<alt (* -1 (* x y))>
#<alt (* -1 (* y (- (* -1 (/ (* x z) y)) (* -1 x))))>
#<alt (* -1 (* y (- (* -1 (/ (* x z) y)) (* -1 x))))>
#<alt (* -1 (* y (- (* -1 (/ (* x z) y)) (* -1 x))))>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x z)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
Calls

36 calls:

TimeVariablePointExpression
0.0ms
x
@0
(- (* z x) (* y x))
0.0ms
x
@-inf
(- (* z x) (* y x))
0.0ms
z
@0
(- (* z x) (* y x))
0.0ms
x
@inf
(- (* z x) (* y x))
0.0ms
y
@-inf
(- (* z x) (* y x))

rewrite179.0ms (2.8%)

Algorithm
batch-egg-rewrite
Rules
2486×sum4-define
1440×fma-define
1290×fnmadd-define
1254×fma-lowering-fma.f32
1254×fma-lowering-fma.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
12718
26518
328118
4137218
5476918
0815918
Stop Event
iter limit
node limit
Counts
5 → 427
Calls
Call 1
Inputs
(+ y (* x z))
(* x z)
(- (* z x) (* y x))
(* z x)
(* y x)
Outputs
(+.f64 y (*.f64 x z))
(+.f64 (+.f64 y (*.f64 x z)) #s(literal 0 binary64))
(+.f64 (*.f64 x z) y)
(+.f64 (*.f64 y x) (+.f64 (*.f64 x (-.f64 z y)) y))
(+.f64 (*.f64 x (-.f64 z y)) (*.f64 y (+.f64 x #s(literal 1 binary64))))
(+.f64 #s(literal 0 binary64) (+.f64 y (*.f64 x z)))
(+.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (+.f64 (*.f64 x (+.f64 z y)) y))
(+.f64 (*.f64 x (+.f64 z y)) (-.f64 y (*.f64 y x)))
(+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 y x))
(+.f64 (-.f64 y (*.f64 y x)) (*.f64 x (+.f64 z y)))
(+.f64 (+.f64 y (*.f64 x (+.f64 z y))) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(+.f64 (*.f64 y (+.f64 x #s(literal 1 binary64))) (*.f64 x (-.f64 z y)))
(-.f64 y (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(-.f64 (+.f64 y (*.f64 x z)) #s(literal 0 binary64))
(-.f64 (+.f64 y (*.f64 x z)) (*.f64 z #s(literal 0 binary64)))
(-.f64 (*.f64 x z) (-.f64 #s(literal 0 binary64) y))
(-.f64 (*.f64 y x) (-.f64 (*.f64 x (-.f64 y z)) y))
(-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x (-.f64 #s(literal 0 binary64) z)) y))
(-.f64 (*.f64 x (+.f64 z y)) (*.f64 y (-.f64 x #s(literal 1 binary64))))
(-.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(-.f64 (-.f64 y (*.f64 y x)) (-.f64 #s(literal 0 binary64) (*.f64 x (+.f64 z y))))
(-.f64 (+.f64 y (*.f64 x (+.f64 z y))) (*.f64 y x))
(-.f64 (*.f64 y (+.f64 x #s(literal 1 binary64))) (*.f64 x (-.f64 y z)))
(-.f64 (+.f64 y (*.f64 x (*.f64 y #s(literal 2 binary64)))) (*.f64 x (+.f64 (-.f64 y z) y)))
(-.f64 (+.f64 (*.f64 x z) (*.f64 y #s(literal 2 binary64))) y)
(-.f64 (+.f64 #s(literal 0 binary64) (*.f64 y (+.f64 x #s(literal 1 binary64)))) (*.f64 x (-.f64 y z)))
(-.f64 (+.f64 #s(literal 0 binary64) (+.f64 y (*.f64 x (+.f64 z y)))) (*.f64 y x))
(-.f64 (+.f64 (*.f64 y (+.f64 x #s(literal 1 binary64))) (*.f64 x z)) (*.f64 y x))
(-.f64 (+.f64 (*.f64 y (+.f64 x #s(literal 1 binary64))) (*.f64 y x)) (*.f64 x (+.f64 (-.f64 y z) y)))
(-.f64 (+.f64 (*.f64 y (+.f64 x #s(literal 1 binary64))) #s(literal 0 binary64)) (*.f64 x (-.f64 y z)))
(-.f64 (+.f64 (*.f64 y (+.f64 x #s(literal 1 binary64))) (*.f64 x (-.f64 #s(literal 0 binary64) y))) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(-.f64 (+.f64 (*.f64 y (+.f64 x #s(literal 1 binary64))) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))))) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(-.f64 (+.f64 (*.f64 y (+.f64 x #s(literal 1 binary64))) (*.f64 x (+.f64 z y))) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) #s(literal 0 binary64)) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(-.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x (-.f64 #s(literal 0 binary64) y))) (*.f64 y (*.f64 x #s(literal -2 binary64))))
(-.f64 (+.f64 (+.f64 y (*.f64 x (-.f64 z y))) (*.f64 x (*.f64 y #s(literal 2 binary64)))) (*.f64 y x))
(-.f64 (+.f64 (-.f64 y (*.f64 y x)) (*.f64 x z)) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(-.f64 (+.f64 (-.f64 y (*.f64 y x)) (*.f64 y x)) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(-.f64 (+.f64 (-.f64 y (*.f64 y x)) #s(literal 0 binary64)) (-.f64 #s(literal 0 binary64) (*.f64 x (+.f64 z y))))
(-.f64 (+.f64 (-.f64 y (*.f64 y x)) (*.f64 x (*.f64 y #s(literal 2 binary64)))) (*.f64 x (-.f64 y z)))
(-.f64 (+.f64 (-.f64 y (*.f64 y x)) (*.f64 x (+.f64 y (+.f64 y z)))) (*.f64 y x))
(-.f64 (+.f64 (+.f64 y (*.f64 x (+.f64 z y))) (*.f64 y x)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (+.f64 (+.f64 y (*.f64 x (+.f64 z y))) #s(literal 0 binary64)) (*.f64 y x))
(-.f64 (+.f64 (+.f64 y (*.f64 x (+.f64 z y))) (*.f64 y (*.f64 x #s(literal -2 binary64)))) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(fma.f64 y x (+.f64 (*.f64 x (-.f64 z y)) y))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) (+.f64 (*.f64 x (+.f64 z y)) y))
(fma.f64 y #s(literal 1 binary64) (*.f64 x z))
(fma.f64 x y (+.f64 (*.f64 x (-.f64 z y)) y))
(fma.f64 x z y)
(fma.f64 x (-.f64 #s(literal 0 binary64) y) (+.f64 (*.f64 x (+.f64 z y)) y))
(fma.f64 x (-.f64 z y) (*.f64 y (+.f64 x #s(literal 1 binary64))))
(fma.f64 x (+.f64 z y) (-.f64 y (*.f64 y x)))
(fma.f64 x (+.f64 y z) (-.f64 y (*.f64 y x)))
(fma.f64 z x y)
(fma.f64 (*.f64 y x) #s(literal -1 binary64) (+.f64 (*.f64 x (+.f64 z y)) y))
(fma.f64 (*.f64 y x) #s(literal 1 binary64) (+.f64 (*.f64 x (-.f64 z y)) y))
(fma.f64 (-.f64 #s(literal 0 binary64) x) y (+.f64 (*.f64 x (+.f64 z y)) y))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) y) (+.f64 (*.f64 x (-.f64 z y)) y))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 y z) (*.f64 y (+.f64 x #s(literal 1 binary64))))
(fma.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) #s(literal -1 binary64) (+.f64 (*.f64 x (-.f64 z y)) y))
(fma.f64 (-.f64 #s(literal 0 binary64) y) x (+.f64 (*.f64 x (+.f64 z y)) y))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (-.f64 #s(literal 0 binary64) x) (+.f64 (*.f64 x (-.f64 z y)) y))
(fma.f64 (-.f64 #s(literal 0 binary64) y) #s(literal -1 binary64) (*.f64 x z))
(fma.f64 (-.f64 z y) x (*.f64 y (+.f64 x #s(literal 1 binary64))))
(fma.f64 #s(literal -1 binary64) (*.f64 y x) (+.f64 (*.f64 x (+.f64 z y)) y))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) (+.f64 (*.f64 x (-.f64 z y)) y))
(fma.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) y) (*.f64 x z))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) (*.f64 y (+.f64 x #s(literal 1 binary64))))
(fma.f64 #s(literal 1 binary64) y (*.f64 x z))
(fma.f64 #s(literal 1 binary64) (*.f64 y x) (+.f64 (*.f64 x (-.f64 z y)) y))
(fma.f64 #s(literal 1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) (+.f64 (*.f64 x (+.f64 z y)) y))
(neg.f64 (-.f64 (*.f64 x (-.f64 #s(literal 0 binary64) z)) y))
(neg.f64 (+.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 x (-.f64 #s(literal 0 binary64) z))))
(*.f64 #s(literal -1 binary64) (-.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 x z)))
(+.f64 (*.f64 x z) #s(literal 0 binary64))
(+.f64 (*.f64 x z) (*.f64 z #s(literal 0 binary64)))
(+.f64 (*.f64 x z) (+.f64 (*.f64 x (-.f64 z y)) (*.f64 x (-.f64 y z))))
(+.f64 (*.f64 x z) (-.f64 #s(literal 0 binary64) (*.f64 z #s(literal 0 binary64))))
(+.f64 (*.f64 x z) (*.f64 #s(literal 0 binary64) z))
(+.f64 (*.f64 y x) (*.f64 x (-.f64 z y)))
(+.f64 (*.f64 x (-.f64 z y)) (*.f64 y x))
(+.f64 #s(literal 0 binary64) (*.f64 x z))
(+.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(+.f64 (*.f64 y (*.f64 x #s(literal -2 binary64))) (*.f64 x (+.f64 y (+.f64 y z))))
(+.f64 (*.f64 z #s(literal 0 binary64)) (*.f64 x z))
(+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(+.f64 (*.f64 x (+.f64 z y)) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y z))) (*.f64 y (*.f64 x #s(literal -2 binary64))))
(+.f64 (*.f64 z (*.f64 x #s(literal 2 binary64))) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(+.f64 (*.f64 #s(literal 0 binary64) z) (*.f64 x z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(+.f64 (*.f64 (+.f64 z y) x) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(+.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) z) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(-.f64 (*.f64 x z) #s(literal 0 binary64))
(-.f64 (*.f64 x z) (*.f64 z #s(literal 0 binary64)))
(-.f64 (*.f64 y x) (*.f64 x (-.f64 y z)))
(-.f64 (*.f64 x (-.f64 z y)) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(-.f64 #s(literal 0 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(-.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (-.f64 #s(literal 0 binary64) (*.f64 x (+.f64 z y))))
(-.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 y (*.f64 x #s(literal -2 binary64))))
(-.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 (-.f64 y z) y)))
(-.f64 (*.f64 x (+.f64 z y)) (*.f64 y x))
(-.f64 (*.f64 x (+.f64 y (+.f64 y z))) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (*.f64 (*.f64 y x) #s(literal 3 binary64)) (*.f64 x (+.f64 (-.f64 y z) (*.f64 y #s(literal 2 binary64)))))
(-.f64 (+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x z)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 z y))) (*.f64 (*.f64 y x) #s(literal 3 binary64)))
(-.f64 (+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 y x))
(-.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 y z))) #s(literal 0 binary64)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 y x (*.f64 x (-.f64 z y)))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) (*.f64 x (+.f64 z y)))
(fma.f64 y #s(literal 0 binary64) (*.f64 x z))
(fma.f64 y (*.f64 x #s(literal -2 binary64)) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 y (*.f64 x #s(literal 2 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 x y (*.f64 x (-.f64 z y)))
(fma.f64 x z #s(literal 0 binary64))
(fma.f64 x z (+.f64 (*.f64 x (-.f64 z y)) (*.f64 x (-.f64 y z))))
(fma.f64 x z (-.f64 #s(literal 0 binary64) (*.f64 z #s(literal 0 binary64))))
(fma.f64 x #s(literal 0 binary64) (*.f64 x z))
(fma.f64 x (-.f64 #s(literal 0 binary64) y) (*.f64 x (+.f64 z y)))
(fma.f64 x (-.f64 z y) (*.f64 y x))
(fma.f64 x (*.f64 y #s(literal -2 binary64)) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 x (*.f64 y #s(literal 2 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 x (+.f64 z y) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(fma.f64 x (+.f64 y z) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(fma.f64 z x #s(literal 0 binary64))
(fma.f64 z x (+.f64 (*.f64 x (-.f64 z y)) (*.f64 x (-.f64 y z))))
(fma.f64 z x (-.f64 #s(literal 0 binary64) (*.f64 z #s(literal 0 binary64))))
(fma.f64 (*.f64 y x) #s(literal -1 binary64) (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 y x) #s(literal 1 binary64) (*.f64 x (-.f64 z y)))
(fma.f64 (*.f64 y x) #s(literal 2 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (*.f64 y x) #s(literal -2 binary64) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (-.f64 #s(literal 0 binary64) x) y (*.f64 x (+.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) y) (*.f64 x (-.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 y z) (*.f64 y x))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (*.f64 y #s(literal 2 binary64)) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 #s(literal 0 binary64) (*.f64 y x) (*.f64 x z))
(fma.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) #s(literal -1 binary64) (*.f64 x (-.f64 z y)))
(fma.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) #s(literal 2 binary64) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (-.f64 #s(literal 0 binary64) y) x (*.f64 x (+.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (-.f64 #s(literal 0 binary64) x) (*.f64 x (-.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 x #s(literal 2 binary64)) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (-.f64 z y) x (*.f64 y x))
(fma.f64 #s(literal -1 binary64) (*.f64 y x) (*.f64 x (+.f64 z y)))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (-.f64 z y)))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) (*.f64 y x))
(fma.f64 #s(literal -1 binary64) (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 #s(literal 1 binary64) (*.f64 y x) (*.f64 x (-.f64 z y)))
(fma.f64 #s(literal 1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (+.f64 z y)))
(fma.f64 #s(literal 2 binary64) (*.f64 y x) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 #s(literal 2 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) #s(literal -1 binary64) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 #s(literal -2 binary64) (*.f64 y x) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (*.f64 x #s(literal -2 binary64)) y (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (*.f64 y #s(literal -2 binary64)) x (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) x (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 (*.f64 x #s(literal 2 binary64)) y (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (*.f64 x #s(literal 2 binary64)) (-.f64 #s(literal 0 binary64) y) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (*.f64 y #s(literal 2 binary64)) x (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (*.f64 y #s(literal 2 binary64)) (-.f64 #s(literal 0 binary64) x) (*.f64 x (+.f64 y (+.f64 y z))))
(neg.f64 (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(*.f64 x z)
(*.f64 x (+.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 z y)))
(*.f64 x (+.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) (*.f64 y #s(literal 2 binary64))))
(*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(*.f64 x (-.f64 (*.f64 y #s(literal 2 binary64)) (+.f64 (-.f64 y z) y)))
(*.f64 z x)
(*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) z))
(*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 (-.f64 y z) y))
(*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(*.f64 #s(literal 1 binary64) (*.f64 x z))
(*.f64 (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) x))
(+.f64 (*.f64 x z) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(+.f64 (*.f64 y x) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(+.f64 (*.f64 x (-.f64 z y)) #s(literal 0 binary64))
(+.f64 (*.f64 x (-.f64 z y)) (-.f64 #s(literal 0 binary64) (*.f64 z #s(literal 0 binary64))))
(+.f64 (*.f64 x (-.f64 z y)) (neg.f64 (*.f64 #s(literal 2 binary64) (*.f64 z #s(literal 0 binary64)))))
(+.f64 (*.f64 x (-.f64 z y)) (*.f64 (-.f64 z y) #s(literal 0 binary64)))
(+.f64 (*.f64 x (-.f64 z y)) (*.f64 #s(literal -1 binary64) (*.f64 #s(literal 2 binary64) (*.f64 z #s(literal 0 binary64)))))
(+.f64 (*.f64 x (-.f64 z y)) (*.f64 #s(literal 0 binary64) (-.f64 z y)))
(+.f64 #s(literal 0 binary64) (*.f64 x (-.f64 z y)))
(+.f64 #s(literal 0 binary64) (*.f64 (*.f64 x (-.f64 y z)) #s(literal -1 binary64)))
(+.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x z))
(+.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 (*.f64 x (-.f64 #s(literal 0 binary64) z)) #s(literal -1 binary64)))
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 y x))
(+.f64 (*.f64 y (*.f64 x #s(literal -2 binary64))) (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 y (*.f64 x #s(literal -2 binary64))) (*.f64 (-.f64 #s(literal 0 binary64) (*.f64 x (+.f64 z y))) #s(literal -1 binary64)))
(+.f64 (*.f64 x (+.f64 z y)) (*.f64 y (*.f64 x #s(literal -2 binary64))))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 z #s(literal 0 binary64))) (*.f64 x (-.f64 z y)))
(+.f64 (*.f64 (-.f64 z y) #s(literal 0 binary64)) (*.f64 x (-.f64 z y)))
(+.f64 (*.f64 (-.f64 z y) (*.f64 x #s(literal 2 binary64))) (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 #s(literal 0 binary64) (-.f64 z y)) (*.f64 x (-.f64 z y)))
(+.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) (-.f64 z y)) (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 (*.f64 x (-.f64 #s(literal 0 binary64) z)) #s(literal -1 binary64)) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(+.f64 (*.f64 (*.f64 x (-.f64 y z)) #s(literal -1 binary64)) #s(literal 0 binary64))
(+.f64 (*.f64 (*.f64 x (-.f64 y z)) #s(literal -1 binary64)) (*.f64 (*.f64 z #s(literal 0 binary64)) #s(literal -1 binary64)))
(+.f64 (*.f64 (*.f64 x (-.f64 y z)) #s(literal -1 binary64)) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 z #s(literal 0 binary64))) #s(literal -1 binary64)))
(+.f64 (*.f64 (*.f64 z #s(literal 0 binary64)) #s(literal -1 binary64)) (*.f64 (*.f64 x (-.f64 y z)) #s(literal -1 binary64)))
(-.f64 (*.f64 x z) (*.f64 y x))
(-.f64 (*.f64 y x) (*.f64 x (+.f64 (-.f64 y z) y)))
(-.f64 (*.f64 x (-.f64 z y)) #s(literal 0 binary64))
(-.f64 (*.f64 x (-.f64 z y)) (*.f64 z #s(literal 0 binary64)))
(-.f64 #s(literal 0 binary64) (*.f64 x (-.f64 y z)))
(-.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(-.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(-.f64 (*.f64 y (*.f64 x #s(literal -2 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 x (+.f64 z y))))
(-.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 (-.f64 y z) (*.f64 y #s(literal 2 binary64)))))
(-.f64 (*.f64 x (+.f64 z y)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y z))) (*.f64 (*.f64 y x) #s(literal 3 binary64)))
(-.f64 (-.f64 (*.f64 x z) (*.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 y (*.f64 x #s(literal -2 binary64))))
(fma.f64 y x (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) (*.f64 x z))
(fma.f64 y #s(literal 0 binary64) (*.f64 x (-.f64 z y)))
(fma.f64 y (*.f64 x #s(literal -2 binary64)) (*.f64 x (+.f64 z y)))
(fma.f64 x y (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 x z (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(fma.f64 x #s(literal 0 binary64) (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 #s(literal 0 binary64) y) (*.f64 x z))
(fma.f64 x (-.f64 z y) #s(literal 0 binary64))
(fma.f64 x (-.f64 z y) (-.f64 #s(literal 0 binary64) (*.f64 z #s(literal 0 binary64))))
(fma.f64 x (*.f64 y #s(literal -2 binary64)) (*.f64 x (+.f64 z y)))
(fma.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))) (*.f64 y x))
(fma.f64 x (+.f64 z y) (*.f64 y (*.f64 x #s(literal -2 binary64))))
(fma.f64 x (+.f64 y z) (*.f64 y (*.f64 x #s(literal -2 binary64))))
(fma.f64 z x (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(fma.f64 (*.f64 y x) #s(literal -1 binary64) (*.f64 x z))
(fma.f64 (*.f64 y x) #s(literal 1 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (*.f64 y x) #s(literal -2 binary64) (*.f64 x (+.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) x) y (*.f64 x z))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) y) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 y z) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 y z) (-.f64 #s(literal 0 binary64) (*.f64 z #s(literal 0 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (*.f64 y #s(literal 2 binary64)) (*.f64 x (+.f64 z y)))
(fma.f64 #s(literal 0 binary64) (*.f64 y x) (*.f64 x (-.f64 z y)))
(fma.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) #s(literal -1 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) #s(literal 2 binary64) (*.f64 x (+.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) x (*.f64 x z))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (-.f64 #s(literal 0 binary64) x) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 x #s(literal 2 binary64)) (*.f64 x (+.f64 z y)))
(fma.f64 (-.f64 z y) x #s(literal 0 binary64))
(fma.f64 (-.f64 z y) x (-.f64 #s(literal 0 binary64) (*.f64 z #s(literal 0 binary64))))
(fma.f64 #s(literal -1 binary64) (*.f64 y x) (*.f64 x z))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) (-.f64 #s(literal 0 binary64) (*.f64 z #s(literal 0 binary64))))
(fma.f64 #s(literal -1 binary64) (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 z y)))
(fma.f64 #s(literal 1 binary64) (*.f64 y x) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x z))
(fma.f64 #s(literal 2 binary64) #s(literal 0 binary64) (*.f64 x (-.f64 z y)))
(fma.f64 #s(literal 2 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) #s(literal -1 binary64) (*.f64 x (+.f64 z y)))
(fma.f64 #s(literal -2 binary64) (*.f64 y x) (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 x #s(literal -2 binary64)) y (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 y #s(literal -2 binary64)) x (*.f64 x (+.f64 z y)))
(fma.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) x (*.f64 y x))
(fma.f64 (*.f64 x #s(literal 2 binary64)) (-.f64 #s(literal 0 binary64) y) (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 y #s(literal 2 binary64)) (-.f64 #s(literal 0 binary64) x) (*.f64 x (+.f64 z y)))
(neg.f64 (*.f64 x (-.f64 y z)))
(*.f64 x (-.f64 z y))
(*.f64 x (+.f64 (*.f64 y #s(literal -2 binary64)) (+.f64 z y)))
(*.f64 x (+.f64 (*.f64 y #s(literal -2 binary64)) (+.f64 y z)))
(*.f64 x (+.f64 (+.f64 z y) (*.f64 y #s(literal -2 binary64))))
(*.f64 x (+.f64 (+.f64 y z) (*.f64 y #s(literal -2 binary64))))
(*.f64 x (-.f64 (+.f64 z y) (*.f64 y #s(literal 2 binary64))))
(*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 y z))
(*.f64 (-.f64 z y) x)
(*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 y z) (-.f64 #s(literal 0 binary64) x))
(+.f64 (*.f64 x z) #s(literal 0 binary64))
(+.f64 (*.f64 x z) (*.f64 z #s(literal 0 binary64)))
(+.f64 (*.f64 x z) (+.f64 (*.f64 x (-.f64 z y)) (*.f64 x (-.f64 y z))))
(+.f64 (*.f64 x z) (-.f64 #s(literal 0 binary64) (*.f64 z #s(literal 0 binary64))))
(+.f64 (*.f64 x z) (*.f64 #s(literal 0 binary64) z))
(+.f64 (*.f64 y x) (*.f64 x (-.f64 z y)))
(+.f64 (*.f64 x (-.f64 z y)) (*.f64 y x))
(+.f64 #s(literal 0 binary64) (*.f64 x z))
(+.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(+.f64 (*.f64 y (*.f64 x #s(literal -2 binary64))) (*.f64 x (+.f64 y (+.f64 y z))))
(+.f64 (*.f64 z #s(literal 0 binary64)) (*.f64 x z))
(+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(+.f64 (*.f64 x (+.f64 z y)) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y z))) (*.f64 y (*.f64 x #s(literal -2 binary64))))
(+.f64 (*.f64 z (*.f64 x #s(literal 2 binary64))) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(+.f64 (*.f64 #s(literal 0 binary64) z) (*.f64 x z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(+.f64 (*.f64 (+.f64 z y) x) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(+.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) z) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(-.f64 (*.f64 x z) #s(literal 0 binary64))
(-.f64 (*.f64 x z) (*.f64 z #s(literal 0 binary64)))
(-.f64 (*.f64 y x) (*.f64 x (-.f64 y z)))
(-.f64 (*.f64 x (-.f64 z y)) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(-.f64 #s(literal 0 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(-.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (-.f64 #s(literal 0 binary64) (*.f64 x (+.f64 z y))))
(-.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 y (*.f64 x #s(literal -2 binary64))))
(-.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 (-.f64 y z) y)))
(-.f64 (*.f64 x (+.f64 z y)) (*.f64 y x))
(-.f64 (*.f64 x (+.f64 y (+.f64 y z))) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (*.f64 (*.f64 y x) #s(literal 3 binary64)) (*.f64 x (+.f64 (-.f64 y z) (*.f64 y #s(literal 2 binary64)))))
(-.f64 (+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x z)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 z y))) (*.f64 (*.f64 y x) #s(literal 3 binary64)))
(-.f64 (+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 y x))
(-.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 y z))) #s(literal 0 binary64)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 y x (*.f64 x (-.f64 z y)))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) (*.f64 x (+.f64 z y)))
(fma.f64 y #s(literal 0 binary64) (*.f64 x z))
(fma.f64 y (*.f64 x #s(literal -2 binary64)) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 y (*.f64 x #s(literal 2 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 x y (*.f64 x (-.f64 z y)))
(fma.f64 x z #s(literal 0 binary64))
(fma.f64 x z (+.f64 (*.f64 x (-.f64 z y)) (*.f64 x (-.f64 y z))))
(fma.f64 x z (-.f64 #s(literal 0 binary64) (*.f64 z #s(literal 0 binary64))))
(fma.f64 x #s(literal 0 binary64) (*.f64 x z))
(fma.f64 x (-.f64 #s(literal 0 binary64) y) (*.f64 x (+.f64 z y)))
(fma.f64 x (-.f64 z y) (*.f64 y x))
(fma.f64 x (*.f64 y #s(literal -2 binary64)) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 x (*.f64 y #s(literal 2 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 x (+.f64 z y) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(fma.f64 x (+.f64 y z) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(fma.f64 z x #s(literal 0 binary64))
(fma.f64 z x (+.f64 (*.f64 x (-.f64 z y)) (*.f64 x (-.f64 y z))))
(fma.f64 z x (-.f64 #s(literal 0 binary64) (*.f64 z #s(literal 0 binary64))))
(fma.f64 (*.f64 y x) #s(literal -1 binary64) (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 y x) #s(literal 1 binary64) (*.f64 x (-.f64 z y)))
(fma.f64 (*.f64 y x) #s(literal 2 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (*.f64 y x) #s(literal -2 binary64) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (-.f64 #s(literal 0 binary64) x) y (*.f64 x (+.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) y) (*.f64 x (-.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 y z) (*.f64 y x))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (*.f64 y #s(literal 2 binary64)) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 #s(literal 0 binary64) (*.f64 y x) (*.f64 x z))
(fma.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) #s(literal -1 binary64) (*.f64 x (-.f64 z y)))
(fma.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) #s(literal 2 binary64) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (-.f64 #s(literal 0 binary64) y) x (*.f64 x (+.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (-.f64 #s(literal 0 binary64) x) (*.f64 x (-.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 x #s(literal 2 binary64)) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (-.f64 z y) x (*.f64 y x))
(fma.f64 #s(literal -1 binary64) (*.f64 y x) (*.f64 x (+.f64 z y)))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (-.f64 z y)))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y z)) (*.f64 y x))
(fma.f64 #s(literal -1 binary64) (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 #s(literal 1 binary64) (*.f64 y x) (*.f64 x (-.f64 z y)))
(fma.f64 #s(literal 1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (+.f64 z y)))
(fma.f64 #s(literal 2 binary64) (*.f64 y x) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 #s(literal 2 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) #s(literal -1 binary64) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 #s(literal -2 binary64) (*.f64 y x) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (*.f64 x #s(literal -2 binary64)) y (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (*.f64 y #s(literal -2 binary64)) x (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) x (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 (*.f64 x #s(literal 2 binary64)) y (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (*.f64 x #s(literal 2 binary64)) (-.f64 #s(literal 0 binary64) y) (*.f64 x (+.f64 y (+.f64 y z))))
(fma.f64 (*.f64 y #s(literal 2 binary64)) x (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (*.f64 y #s(literal 2 binary64)) (-.f64 #s(literal 0 binary64) x) (*.f64 x (+.f64 y (+.f64 y z))))
(neg.f64 (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(*.f64 x z)
(*.f64 x (+.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 z y)))
(*.f64 x (+.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) (*.f64 y #s(literal 2 binary64))))
(*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(*.f64 x (-.f64 (*.f64 y #s(literal 2 binary64)) (+.f64 (-.f64 y z) y)))
(*.f64 z x)
(*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) z))
(*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 (-.f64 y z) y))
(*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) z)))
(*.f64 #s(literal 1 binary64) (*.f64 x z))
(*.f64 (-.f64 #s(literal 0 binary64) z) (-.f64 #s(literal 0 binary64) x))
(+.f64 y (*.f64 y (-.f64 x #s(literal 1 binary64))))
(+.f64 y (neg.f64 (-.f64 y (*.f64 y x))))
(+.f64 y (*.f64 (-.f64 y (*.f64 y x)) #s(literal -1 binary64)))
(+.f64 x (neg.f64 (-.f64 x (*.f64 y x))))
(+.f64 x (*.f64 #s(literal -1 binary64) (-.f64 x (*.f64 y x))))
(+.f64 x (*.f64 (-.f64 x (*.f64 y x)) #s(literal -1 binary64)))
(+.f64 (*.f64 y x) #s(literal 0 binary64))
(+.f64 (-.f64 #s(literal 0 binary64) x) (neg.f64 (*.f64 x (+.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) y)))))
(+.f64 (-.f64 #s(literal 0 binary64) x) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) y)))))
(+.f64 (-.f64 #s(literal 0 binary64) x) (*.f64 (*.f64 x (+.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) y))) #s(literal -1 binary64)))
(+.f64 #s(literal 0 binary64) (*.f64 y x))
(+.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(+.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 y (+.f64 x #s(literal 1 binary64))))
(+.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 (neg.f64 (*.f64 y (+.f64 x #s(literal 1 binary64)))) #s(literal -1 binary64)))
(+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(+.f64 (*.f64 (*.f64 y x) #s(literal 3 binary64)) (*.f64 y (*.f64 x #s(literal -2 binary64))))
(+.f64 (*.f64 #s(literal 1 binary64) (*.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 y (*.f64 x #s(literal -2 binary64))))
(+.f64 (*.f64 (*.f64 (*.f64 y x) #s(literal 3 binary64)) #s(literal 1 binary64)) (*.f64 (*.f64 y (*.f64 x #s(literal -2 binary64))) #s(literal 1 binary64)))
(-.f64 (*.f64 y x) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(-.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 y (*.f64 x #s(literal -2 binary64))))
(-.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 y x))
(-.f64 (*.f64 (*.f64 y x) #s(literal 3 binary64)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (+.f64 (*.f64 (*.f64 y x) #s(literal 3 binary64)) #s(literal 0 binary64)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (+.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 y x))
(fma.f64 y x #s(literal 0 binary64))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 y (*.f64 x #s(literal 2 binary64)) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(fma.f64 x y #s(literal 0 binary64))
(fma.f64 x (-.f64 #s(literal 0 binary64) y) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 x (*.f64 y #s(literal 2 binary64)) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(fma.f64 (*.f64 y x) #s(literal -1 binary64) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 (*.f64 y x) #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 (*.f64 y x) #s(literal 2 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(fma.f64 (-.f64 #s(literal 0 binary64) x) y (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) y) #s(literal 0 binary64))
(fma.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) #s(literal -1 binary64) #s(literal 0 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) y) x (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (-.f64 #s(literal 0 binary64) x) #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) (*.f64 y x) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 y x) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 #s(literal 2 binary64) (*.f64 y x) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(fma.f64 (*.f64 x #s(literal 2 binary64)) y (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(fma.f64 (*.f64 y #s(literal 2 binary64)) x (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(neg.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(*.f64 y x)
(*.f64 y (-.f64 (-.f64 #s(literal 0 binary64) x) (*.f64 x #s(literal -2 binary64))))
(*.f64 x y)
(*.f64 x (-.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 y #s(literal -2 binary64))))
(*.f64 (*.f64 y x) #s(literal 1 binary64))
(*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 #s(literal 0 binary64) y))
(*.f64 (*.f64 x (-.f64 #s(literal 0 binary64) y)) #s(literal -1 binary64))
(*.f64 (-.f64 #s(literal 0 binary64) y) (-.f64 #s(literal 0 binary64) x))
(*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) y)))
(*.f64 #s(literal 1 binary64) (*.f64 y x))

simplify166.0ms (2.6%)

Algorithm
egg-herbie
Rules
1650×fnmadd-define
1568×sum5-define
1374×*-lowering-*.f32
1374×*-lowering-*.f64
1370×times-frac
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
052541
1189514
2550514
31803514
46985514
08131514
Stop Event
iter limit
node limit
Counts
144 → 144
Calls
Call 1
Inputs
(* x z)
(+ y (* x z))
(+ y (* x z))
(+ y (* x z))
y
(* y (+ 1 (/ (* x z) y)))
(* y (+ 1 (/ (* x z) y)))
(* y (+ 1 (/ (* x z) y)))
y
(* -1 (* y (- (* -1 (/ (* x z) y)) 1)))
(* -1 (* y (- (* -1 (/ (* x z) y)) 1)))
(* -1 (* y (- (* -1 (/ (* x z) y)) 1)))
y
(+ y (* x z))
(+ y (* x z))
(+ y (* x z))
(* x z)
(* x (+ z (/ y x)))
(* x (+ z (/ y x)))
(* x (+ z (/ y x)))
(* x z)
(* -1 (* x (+ (* -1 z) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 z) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 z) (* -1 (/ y x)))))
y
(+ y (* x z))
(+ y (* x z))
(+ y (* x z))
(* x z)
(* z (+ x (/ y z)))
(* z (+ x (/ y z)))
(* z (+ x (/ y z)))
(* x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ y z)))))
(* -1 (* z (+ (* -1 x) (* -1 (/ y z)))))
(* -1 (* z (+ (* -1 x) (* -1 (/ y z)))))
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* -1 (* x y))
(- (* x z) (* x y))
(- (* x z) (* x y))
(- (* x z) (* x y))
(* x z)
(* z (+ x (* -1 (/ (* x y) z))))
(* z (+ x (* -1 (/ (* x y) z))))
(* z (+ x (* -1 (/ (* x y) z))))
(* x z)
(* -1 (* z (+ (* -1 x) (/ (* x y) z))))
(* -1 (* z (+ (* -1 x) (/ (* x y) z))))
(* -1 (* z (+ (* -1 x) (/ (* x y) z))))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* x (- z y))
(* -1 (* x (- (* -1 z) (* -1 y))))
(* -1 (* x (- (* -1 z) (* -1 y))))
(* -1 (* x (- (* -1 z) (* -1 y))))
(* -1 (* x (- (* -1 z) (* -1 y))))
(* x z)
(+ (* -1 (* x y)) (* x z))
(+ (* -1 (* x y)) (* x z))
(+ (* -1 (* x y)) (* x z))
(* -1 (* x y))
(* y (- (/ (* x z) y) x))
(* y (- (/ (* x z) y) x))
(* y (- (/ (* x z) y) x))
(* -1 (* x y))
(* -1 (* y (- (* -1 (/ (* x z) y)) (* -1 x))))
(* -1 (* y (- (* -1 (/ (* x z) y)) (* -1 x))))
(* -1 (* y (- (* -1 (/ (* x z) y)) (* -1 x))))
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x z)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
Outputs
(* x z)
(*.f64 x z)
(+ y (* x z))
(+.f64 (*.f64 x z) y)
(+ y (* x z))
(+.f64 (*.f64 x z) y)
(+ y (* x z))
(+.f64 (*.f64 x z) y)
y
(* y (+ 1 (/ (* x z) y)))
(+.f64 (*.f64 x z) y)
(* y (+ 1 (/ (* x z) y)))
(+.f64 (*.f64 x z) y)
(* y (+ 1 (/ (* x z) y)))
(+.f64 (*.f64 x z) y)
y
(* -1 (* y (- (* -1 (/ (* x z) y)) 1)))
(+.f64 (*.f64 x z) y)
(* -1 (* y (- (* -1 (/ (* x z) y)) 1)))
(+.f64 (*.f64 x z) y)
(* -1 (* y (- (* -1 (/ (* x z) y)) 1)))
(+.f64 (*.f64 x z) y)
y
(+ y (* x z))
(+.f64 (*.f64 x z) y)
(+ y (* x z))
(+.f64 (*.f64 x z) y)
(+ y (* x z))
(+.f64 (*.f64 x z) y)
(* x z)
(*.f64 x z)
(* x (+ z (/ y x)))
(+.f64 (*.f64 x z) y)
(* x (+ z (/ y x)))
(+.f64 (*.f64 x z) y)
(* x (+ z (/ y x)))
(+.f64 (*.f64 x z) y)
(* x z)
(*.f64 x z)
(* -1 (* x (+ (* -1 z) (* -1 (/ y x)))))
(+.f64 (*.f64 x z) y)
(* -1 (* x (+ (* -1 z) (* -1 (/ y x)))))
(+.f64 (*.f64 x z) y)
(* -1 (* x (+ (* -1 z) (* -1 (/ y x)))))
(+.f64 (*.f64 x z) y)
y
(+ y (* x z))
(+.f64 (*.f64 x z) y)
(+ y (* x z))
(+.f64 (*.f64 x z) y)
(+ y (* x z))
(+.f64 (*.f64 x z) y)
(* x z)
(*.f64 x z)
(* z (+ x (/ y z)))
(+.f64 (*.f64 x z) y)
(* z (+ x (/ y z)))
(+.f64 (*.f64 x z) y)
(* z (+ x (/ y z)))
(+.f64 (*.f64 x z) y)
(* x z)
(*.f64 x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ y z)))))
(+.f64 (*.f64 x z) y)
(* -1 (* z (+ (* -1 x) (* -1 (/ y z)))))
(+.f64 (*.f64 x z) y)
(* -1 (* z (+ (* -1 x) (* -1 (/ y z)))))
(+.f64 (*.f64 x z) y)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* -1 (* x y))
(*.f64 x (-.f64 #s(literal 0 binary64) y))
(- (* x z) (* x y))
(*.f64 x (-.f64 z y))
(- (* x z) (* x y))
(*.f64 x (-.f64 z y))
(- (* x z) (* x y))
(*.f64 x (-.f64 z y))
(* x z)
(*.f64 x z)
(* z (+ x (* -1 (/ (* x y) z))))
(*.f64 x (-.f64 z y))
(* z (+ x (* -1 (/ (* x y) z))))
(*.f64 x (-.f64 z y))
(* z (+ x (* -1 (/ (* x y) z))))
(*.f64 x (-.f64 z y))
(* x z)
(*.f64 x z)
(* -1 (* z (+ (* -1 x) (/ (* x y) z))))
(*.f64 x (-.f64 z y))
(* -1 (* z (+ (* -1 x) (/ (* x y) z))))
(*.f64 x (-.f64 z y))
(* -1 (* z (+ (* -1 x) (/ (* x y) z))))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* x (- z y))
(*.f64 x (-.f64 z y))
(* -1 (* x (- (* -1 z) (* -1 y))))
(*.f64 x (-.f64 z y))
(* -1 (* x (- (* -1 z) (* -1 y))))
(*.f64 x (-.f64 z y))
(* -1 (* x (- (* -1 z) (* -1 y))))
(*.f64 x (-.f64 z y))
(* -1 (* x (- (* -1 z) (* -1 y))))
(*.f64 x (-.f64 z y))
(* x z)
(*.f64 x z)
(+ (* -1 (* x y)) (* x z))
(*.f64 x (-.f64 z y))
(+ (* -1 (* x y)) (* x z))
(*.f64 x (-.f64 z y))
(+ (* -1 (* x y)) (* x z))
(*.f64 x (-.f64 z y))
(* -1 (* x y))
(*.f64 x (-.f64 #s(literal 0 binary64) y))
(* y (- (/ (* x z) y) x))
(*.f64 x (-.f64 z y))
(* y (- (/ (* x z) y) x))
(*.f64 x (-.f64 z y))
(* y (- (/ (* x z) y) x))
(*.f64 x (-.f64 z y))
(* -1 (* x y))
(*.f64 x (-.f64 #s(literal 0 binary64) y))
(* -1 (* y (- (* -1 (/ (* x z) y)) (* -1 x))))
(*.f64 x (-.f64 z y))
(* -1 (* y (- (* -1 (/ (* x z) y)) (* -1 x))))
(*.f64 x (-.f64 z y))
(* -1 (* y (- (* -1 (/ (* x z) y)) (* -1 x))))
(*.f64 x (-.f64 z y))
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x z)
(*.f64 x z)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)

eval264.0ms (4.2%)

Compiler

Compiled 6046 to 706 computations (88.3% saved)

prune62.0ms (1%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New5701571
Fresh000
Picked022
Done145
Total5717578
Accuracy
100.0%
Counts
578 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
52.9%
(-.f64 (-.f64 (+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 y x)) (*.f64 y x))
63.6%
(-.f64 (*.f64 z x) (*.f64 y x))
73.6%
(+.f64 y (*.f64 x z))
63.5%
(*.f64 y (-.f64 #s(literal 1 binary64) x))
65.6%
(*.f64 x (-.f64 z y))
39.4%
(*.f64 x z)
36.9%
y
Compiler

Compiled 68 to 42 computations (38.2% saved)

simplify358.0ms (5.6%)

Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))))
cost-diff128
(-.f64 (-.f64 (+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 y x)) (*.f64 y x))
cost-diff384
(-.f64 (+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 y x))
cost-diff512
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (*.f64 y x) #s(literal 3 binary64)))
Rules
2022×fmsub-define
1958×fmm-def
1608×fnmadd-define
1454×fma-lowering-fma.f32
1454×fma-lowering-fma.f64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01376
13967
214656
356143
4297439
0838239
Stop Event
iter limit
node limit
Calls
Call 1
Inputs
(- (- (+ (* x (+ z (* y -2))) (* (* y x) 3)) (* y x)) (* y x))
(- (+ (* x (+ z (* y -2))) (* (* y x) 3)) (* y x))
(+ (* x (+ z (* y -2))) (* (* y x) 3))
(* x (+ z (* y -2)))
x
(+ z (* y -2))
z
(* y -2)
y
-2
(* (* y x) 3)
(* y x)
3
Outputs
(- (- (+ (* x (+ z (* y -2))) (* (* y x) 3)) (* y x)) (* y x))
(*.f64 x (-.f64 z y))
(- (+ (* x (+ z (* y -2))) (* (* y x) 3)) (* y x))
(*.f64 x z)
(+ (* x (+ z (* y -2))) (* (* y x) 3))
(*.f64 x (+.f64 z y))
(* x (+ z (* y -2)))
(*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))))
x
(+ z (* y -2))
(+.f64 z (*.f64 y #s(literal -2 binary64)))
z
(* y -2)
(*.f64 y #s(literal -2 binary64))
y
-2
#s(literal -2 binary64)
(* (* y x) 3)
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* y x)
(*.f64 x y)
3
#s(literal 3 binary64)

localize117.0ms (1.8%)

Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy99.7%
(*.f64 (*.f64 y x) #s(literal 3 binary64))
accuracy98.2%
(-.f64 (-.f64 (+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 y x)) (*.f64 y x))
accuracy89.3%
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (*.f64 y x) #s(literal 3 binary64)))
accuracy60.2%
(-.f64 (+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 y x))
Results
35.0ms129×0valid
31.0ms56×2valid
29.0ms71×1valid
Compiler

Compiled 83 to 14 computations (83.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 50.0ms
ival-add: 19.0ms (37.9% of total)
ival-mult: 18.0ms (35.9% of total)
backward-pass: 8.0ms (15.9% of total)
ival-sub: 4.0ms (8% of total)
const: 1.0ms (2% of total)

series12.0ms (0.2%)

Counts
5 → 168
Calls
Call 1
Inputs
#<alt (+ (* x (+ z (* y -2))) (* (* y x) 3))>
#<alt (- (+ (* x (+ z (* y -2))) (* (* y x) 3)) (* y x))>
#<alt (- (- (+ (* x (+ z (* y -2))) (* (* y x) 3)) (* y x)) (* y x))>
#<alt (* x (+ z (* y -2)))>
#<alt (* (* y x) 3)>
Outputs
#<alt (* x (+ z (+ (* -2 y) (* 3 y))))>
#<alt (* x (+ z (+ (* -2 y) (* 3 y))))>
#<alt (* x (+ z (+ (* -2 y) (* 3 y))))>
#<alt (* x (+ z (+ (* -2 y) (* 3 y))))>
#<alt (* x (+ z (+ (* -2 y) (* 3 y))))>
#<alt (* x (+ z (+ (* -2 y) (* 3 y))))>
#<alt (* x (+ z (+ (* -2 y) (* 3 y))))>
#<alt (* x (+ z (+ (* -2 y) (* 3 y))))>
#<alt (* -1 (* x (+ (* -3 y) (* -1 (+ z (* -2 y))))))>
#<alt (* -1 (* x (+ (* -3 y) (* -1 (+ z (* -2 y))))))>
#<alt (* -1 (* x (+ (* -3 y) (* -1 (+ z (* -2 y))))))>
#<alt (* -1 (* x (+ (* -3 y) (* -1 (+ z (* -2 y))))))>
#<alt (+ (* -2 (* x y)) (* 3 (* x y)))>
#<alt (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z)))>
#<alt (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z)))>
#<alt (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z)))>
#<alt (* x z)>
#<alt (* z (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))))>
#<alt (* z (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))))>
#<alt (* z (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))))>
#<alt (* x z)>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (+ (* -2 (* x y)) (* 3 (* x y))) z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (+ (* -2 (* x y)) (* 3 (* x y))) z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (+ (* -2 (* x y)) (* 3 (* x y))) z)))))>
#<alt (* x z)>
#<alt (+ (* x z) (* y (+ (* -2 x) (* 3 x))))>
#<alt (+ (* x z) (* y (+ (* -2 x) (* 3 x))))>
#<alt (+ (* x z) (* y (+ (* -2 x) (* 3 x))))>
#<alt (* y (+ (* -2 x) (* 3 x)))>
#<alt (* y (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))))>
#<alt (* y (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))))>
#<alt (* y (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))))>
#<alt (* -1 (* y (+ (* -3 x) (* 2 x))))>
#<alt (* -1 (* y (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x)))))>
#<alt (* -1 (* y (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x)))))>
#<alt (* -1 (* y (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x)))))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) y))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) y))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) y))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) y))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) y))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) y))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) y))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) y))>
#<alt (* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -1 y))))>
#<alt (* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -1 y))))>
#<alt (* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -1 y))))>
#<alt (* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -1 y))))>
#<alt (- (+ (* -2 (* x y)) (* 3 (* x y))) (* x y))>
#<alt (- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* x y))>
#<alt (- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* x y))>
#<alt (- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* x y))>
#<alt (* x z)>
#<alt (* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (/ (* x y) z)))>
#<alt (* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (/ (* x y) z)))>
#<alt (* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (/ (* x y) z)))>
#<alt (* x z)>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* x y)) z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* x y)) z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* x y)) z)))))>
#<alt (* x z)>
#<alt (+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) x)))>
#<alt (+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) x)))>
#<alt (+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) x)))>
#<alt (* y (- (+ (* -2 x) (* 3 x)) x))>
#<alt (* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) x))>
#<alt (* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) x))>
#<alt (* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) x))>
#<alt (* -1 (* y (- (+ (* -3 x) (* 2 x)) (* -1 x))))>
#<alt (* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -1 x))))>
#<alt (* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -1 x))))>
#<alt (* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -1 x))))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))>
#<alt (* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))>
#<alt (* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -2 y))))>
#<alt (* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -2 y))))>
#<alt (* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -2 y))))>
#<alt (* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -2 y))))>
#<alt (- (+ (* -2 (* x y)) (* 3 (* x y))) (* 2 (* x y)))>
#<alt (- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* 2 (* x y)))>
#<alt (- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* 2 (* x y)))>
#<alt (- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* 2 (* x y)))>
#<alt (* x z)>
#<alt (* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (* 2 (/ (* x y) z))))>
#<alt (* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (* 2 (/ (* x y) z))))>
#<alt (* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (* 2 (/ (* x y) z))))>
#<alt (* x z)>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* 2 (* x y))) z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* 2 (* x y))) z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* 2 (* x y))) z)))))>
#<alt (* x z)>
#<alt (+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) (* 2 x))))>
#<alt (+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) (* 2 x))))>
#<alt (+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) (* 2 x))))>
#<alt (* y (- (+ (* -2 x) (* 3 x)) (* 2 x)))>
#<alt (* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) (* 2 x)))>
#<alt (* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) (* 2 x)))>
#<alt (* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) (* 2 x)))>
#<alt (* -1 (* y (- (+ (* -3 x) (* 2 x)) (* -2 x))))>
#<alt (* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -2 x))))>
#<alt (* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -2 x))))>
#<alt (* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -2 x))))>
#<alt (* x (+ z (* -2 y)))>
#<alt (* x (+ z (* -2 y)))>
#<alt (* x (+ z (* -2 y)))>
#<alt (* x (+ z (* -2 y)))>
#<alt (* x (+ z (* -2 y)))>
#<alt (* x (+ z (* -2 y)))>
#<alt (* x (+ z (* -2 y)))>
#<alt (* x (+ z (* -2 y)))>
#<alt (* x (+ z (* -2 y)))>
#<alt (* x (+ z (* -2 y)))>
#<alt (* x (+ z (* -2 y)))>
#<alt (* x (+ z (* -2 y)))>
#<alt (* -2 (* x y))>
#<alt (+ (* -2 (* x y)) (* x z))>
#<alt (+ (* -2 (* x y)) (* x z))>
#<alt (+ (* -2 (* x y)) (* x z))>
#<alt (* x z)>
#<alt (* z (+ x (* -2 (/ (* x y) z))))>
#<alt (* z (+ x (* -2 (/ (* x y) z))))>
#<alt (* z (+ x (* -2 (/ (* x y) z))))>
#<alt (* x z)>
#<alt (* -1 (* z (+ (* -1 x) (* 2 (/ (* x y) z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* 2 (/ (* x y) z)))))>
#<alt (* -1 (* z (+ (* -1 x) (* 2 (/ (* x y) z)))))>
#<alt (* x z)>
#<alt (+ (* -2 (* x y)) (* x z))>
#<alt (+ (* -2 (* x y)) (* x z))>
#<alt (+ (* -2 (* x y)) (* x z))>
#<alt (* -2 (* x y))>
#<alt (* y (+ (* -2 x) (/ (* x z) y)))>
#<alt (* y (+ (* -2 x) (/ (* x z) y)))>
#<alt (* y (+ (* -2 x) (/ (* x z) y)))>
#<alt (* -2 (* x y))>
#<alt (* -1 (* y (+ (* -1 (/ (* x z) y)) (* 2 x))))>
#<alt (* -1 (* y (+ (* -1 (/ (* x z) y)) (* 2 x))))>
#<alt (* -1 (* y (+ (* -1 (/ (* x z) y)) (* 2 x))))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
Calls

42 calls:

TimeVariablePointExpression
2.0ms
y
@-inf
(+ (* x (+ z (* y -2))) (* (* y x) 3))
1.0ms
x
@0
(+ (* x (+ z (* y -2))) (* (* y x) 3))
1.0ms
x
@-inf
(+ (* x (+ z (* y -2))) (* (* y x) 3))
0.0ms
y
@inf
(+ (* x (+ z (* y -2))) (* (* y x) 3))
0.0ms
y
@0
(+ (* x (+ z (* y -2))) (* (* y x) 3))

rewrite156.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
1880×fnmadd-define
1644×sum4-define
1228×sum3-define
1170×fnmsub-define
1146×+-lowering-+.f64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01360
13952
215641
374128
4532924
0829024
Stop Event
iter limit
node limit
Counts
5 → 292
Calls
Call 1
Inputs
(+ (* x (+ z (* y -2))) (* (* y x) 3))
(- (+ (* x (+ z (* y -2))) (* (* y x) 3)) (* y x))
(- (- (+ (* x (+ z (* y -2))) (* (* y x) 3)) (* y x)) (* y x))
(* x (+ z (* y -2)))
(* (* y x) 3)
Outputs
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(+.f64 (*.f64 x y) (*.f64 x z))
(+.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(+.f64 (*.f64 x (+.f64 z y)) #s(literal 0 binary64))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(+.f64 (*.f64 x z) (*.f64 x y))
(+.f64 (*.f64 x (*.f64 y #s(literal -2 binary64))) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(+.f64 (*.f64 x (*.f64 y #s(literal -2 binary64))) (+.f64 #s(literal 0 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64))))))
(+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (-.f64 z y)))
(+.f64 #s(literal 0 binary64) (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))) (*.f64 x (*.f64 y #s(literal -2 binary64))))
(+.f64 (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(+.f64 (*.f64 x (-.f64 z y)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (*.f64 x y) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(-.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))))))
(-.f64 (*.f64 x (+.f64 z y)) #s(literal 0 binary64))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (-.f64 (*.f64 x y) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64))))))
(-.f64 (*.f64 x z) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(-.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (neg.f64 (*.f64 x (-.f64 z y))))
(-.f64 #s(literal 0 binary64) (*.f64 x (-.f64 #s(literal 0 binary64) (+.f64 z y))))
(-.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)) (*.f64 x y))
(fma.f64 x z (*.f64 x y))
(fma.f64 x y (*.f64 x z))
(fma.f64 x (*.f64 y #s(literal -2 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(fma.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(fma.f64 x (*.f64 y #s(literal 3 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64))) (*.f64 x (*.f64 y #s(literal -2 binary64))))
(fma.f64 x (+.f64 z y) #s(literal 0 binary64))
(fma.f64 z x (*.f64 x y))
(fma.f64 y x (*.f64 x z))
(fma.f64 y (*.f64 x #s(literal 3 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 y (*.f64 x #s(literal -2 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(fma.f64 #s(literal -2 binary64) (*.f64 x y) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(fma.f64 (*.f64 y #s(literal -2 binary64)) x (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(fma.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) x (*.f64 y (*.f64 x #s(literal 3 binary64))))
(fma.f64 (*.f64 x y) #s(literal -2 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(fma.f64 (*.f64 x y) #s(literal 3 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (*.f64 x y) #s(literal 1 binary64) (*.f64 x z))
(fma.f64 #s(literal 3 binary64) (*.f64 x y) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 x #s(literal 2 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(fma.f64 (*.f64 x #s(literal 3 binary64)) y (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (*.f64 y #s(literal 2 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(fma.f64 #s(literal -1 binary64) (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(fma.f64 #s(literal 2 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x y)) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(fma.f64 (*.f64 x #s(literal -2 binary64)) y (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(fma.f64 (*.f64 y #s(literal 3 binary64)) x (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(neg.f64 (*.f64 x (-.f64 #s(literal 0 binary64) (+.f64 z y))))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 z y) x)
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (-.f64 #s(literal 0 binary64) x) (*.f64 y #s(literal -2 binary64))))
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 x #s(literal -2 binary64))))
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) #s(literal -2 binary64)))
(+.f64 (*.f64 x y) (*.f64 x (-.f64 z y)))
(+.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(+.f64 (*.f64 x (+.f64 z y)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 x z) #s(literal 0 binary64))
(+.f64 (*.f64 x z) (neg.f64 (+.f64 (*.f64 x (-.f64 #s(literal 0 binary64) (+.f64 z y))) (*.f64 x (+.f64 z y)))))
(+.f64 (*.f64 x (*.f64 y #s(literal -2 binary64))) (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(+.f64 #s(literal 0 binary64) (*.f64 x z))
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))) (*.f64 (*.f64 x y) #s(literal -3 binary64)))
(+.f64 (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(+.f64 (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)) (*.f64 x (*.f64 y #s(literal -2 binary64))))
(+.f64 (*.f64 (*.f64 x y) #s(literal -3 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(+.f64 (*.f64 x (-.f64 z y)) (*.f64 x y))
(-.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 x (*.f64 y #s(literal -2 binary64))))
(-.f64 (*.f64 x y) (neg.f64 (*.f64 x (-.f64 z y))))
(-.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) (*.f64 x (-.f64 y (+.f64 z (*.f64 y #s(literal -2 binary64))))))
(-.f64 (*.f64 x (+.f64 z y)) (*.f64 x y))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (*.f64 x (-.f64 #s(literal 0 binary64) (+.f64 z y))))
(-.f64 (*.f64 x z) #s(literal 0 binary64))
(-.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(-.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))) (+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x y)))
(-.f64 (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (*.f64 x (-.f64 z y)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 x z #s(literal 0 binary64))
(fma.f64 x (*.f64 y #s(literal -2 binary64)) (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(fma.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 x (-.f64 #s(literal 0 binary64) y) (*.f64 x (+.f64 z y)))
(fma.f64 x (*.f64 y #s(literal 2 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 x (*.f64 y #s(literal 3 binary64)) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(fma.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64))) (*.f64 (*.f64 x y) #s(literal -3 binary64)))
(fma.f64 x (+.f64 z y) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 x (+.f64 z (-.f64 (*.f64 y #s(literal -2 binary64)) y)) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(fma.f64 z x #s(literal 0 binary64))
(fma.f64 y (*.f64 x #s(literal 3 binary64)) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) (*.f64 x (+.f64 z y)))
(fma.f64 y (*.f64 x #s(literal 2 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 y (*.f64 x #s(literal -2 binary64)) (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(fma.f64 y (-.f64 x x) (*.f64 x z))
(fma.f64 #s(literal -2 binary64) (*.f64 x y) (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(fma.f64 (*.f64 y #s(literal -2 binary64)) x (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(fma.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) x (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 (*.f64 x y) #s(literal -2 binary64) (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(fma.f64 (*.f64 x y) #s(literal 3 binary64) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(fma.f64 (*.f64 x y) #s(literal -1 binary64) (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 x y) #s(literal 2 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 #s(literal 3 binary64) (*.f64 x y) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) y) x (*.f64 x (+.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 x #s(literal 2 binary64)) (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(fma.f64 (*.f64 x #s(literal 3 binary64)) y (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) x) y (*.f64 x (+.f64 z y)))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (*.f64 y #s(literal 2 binary64)) (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 x (+.f64 z y)))
(fma.f64 #s(literal -1 binary64) (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(fma.f64 (*.f64 y #s(literal 2 binary64)) x (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 (*.f64 x #s(literal 2 binary64)) y (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 #s(literal 2 binary64) (*.f64 x y) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 #s(literal 2 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x y)) (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(fma.f64 (*.f64 x #s(literal -2 binary64)) y (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(fma.f64 (*.f64 y #s(literal 3 binary64)) x (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) z))
(neg.f64 (*.f64 z (-.f64 #s(literal 0 binary64) x)))
(*.f64 x z)
(*.f64 x (+.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) (*.f64 y #s(literal 2 binary64))))
(*.f64 x (+.f64 (*.f64 y #s(literal 3 binary64)) (+.f64 z (-.f64 (*.f64 y #s(literal -2 binary64)) y))))
(*.f64 x (+.f64 (-.f64 #s(literal 0 binary64) y) (+.f64 z y)))
(*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(*.f64 x (+.f64 (+.f64 z (-.f64 (*.f64 y #s(literal -2 binary64)) y)) (*.f64 y #s(literal 3 binary64))))
(*.f64 x (-.f64 (+.f64 z y) y))
(*.f64 x (neg.f64 (-.f64 y (+.f64 z y))))
(*.f64 z x)
(*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 y (+.f64 z y)))
(*.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 x y))
(+.f64 (*.f64 x y) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(+.f64 (*.f64 x y) (+.f64 (*.f64 x y) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64)))))
(+.f64 (*.f64 x y) (neg.f64 (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))))
(+.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -4 binary64))))
(+.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) (neg.f64 (+.f64 (*.f64 x (-.f64 y (+.f64 z (*.f64 y #s(literal -2 binary64))))) (*.f64 x y))))
(+.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) (neg.f64 (-.f64 (*.f64 x y) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))))
(+.f64 (*.f64 x (+.f64 z y)) (*.f64 x (*.f64 y #s(literal -2 binary64))))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 x z) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(+.f64 (*.f64 x (*.f64 y #s(literal -2 binary64))) (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(+.f64 #s(literal 0 binary64) (*.f64 x (-.f64 z y)))
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))) (*.f64 (*.f64 x y) #s(literal -4 binary64)))
(+.f64 (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -4 binary64))) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(+.f64 (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(+.f64 (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))) (*.f64 (-.f64 #s(literal 0 binary64) x) (*.f64 y #s(literal -2 binary64))))
(+.f64 (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))) (*.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 x #s(literal -2 binary64))))
(+.f64 (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))) (*.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) #s(literal -2 binary64)))
(+.f64 (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)) (*.f64 (*.f64 x y) #s(literal -3 binary64)))
(+.f64 (*.f64 (*.f64 x y) #s(literal -4 binary64)) (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))))
(+.f64 (*.f64 (*.f64 x y) #s(literal -3 binary64)) (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)))
(+.f64 (*.f64 x (-.f64 z y)) #s(literal 0 binary64))
(-.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(-.f64 (*.f64 x y) (-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64)))))
(-.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) (-.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))))))
(-.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) (+.f64 (*.f64 x (-.f64 y (+.f64 z (*.f64 y #s(literal -2 binary64))))) (*.f64 x y)))
(-.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) (-.f64 (*.f64 x y) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64)))))
(-.f64 (*.f64 x (+.f64 z y)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(-.f64 (*.f64 x z) (*.f64 x y))
(-.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (-.f64 y (+.f64 z (*.f64 y #s(literal -2 binary64))))))
(-.f64 #s(literal 0 binary64) (neg.f64 (*.f64 x (-.f64 z y))))
(-.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64)))) (+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (*.f64 y #s(literal 2 binary64)))))
(-.f64 (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))) (*.f64 x (*.f64 y #s(literal -2 binary64))))
(-.f64 (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(-.f64 (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)) (+.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x y)))
(-.f64 (*.f64 x (-.f64 z y)) #s(literal 0 binary64))
(fma.f64 x z (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 x y (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 x (*.f64 y #s(literal -2 binary64)) (*.f64 x (+.f64 z y)))
(fma.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))) (*.f64 x y))
(fma.f64 x (-.f64 #s(literal 0 binary64) y) (*.f64 x z))
(fma.f64 x (*.f64 y #s(literal 2 binary64)) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(fma.f64 x (*.f64 y #s(literal 3 binary64)) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -4 binary64))))
(fma.f64 x (+.f64 z (*.f64 y #s(literal 3 binary64))) (*.f64 (*.f64 x y) #s(literal -4 binary64)))
(fma.f64 x (+.f64 z y) (*.f64 x (*.f64 y #s(literal -2 binary64))))
(fma.f64 x (+.f64 z (-.f64 (*.f64 y #s(literal -2 binary64)) y)) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(fma.f64 x (+.f64 z (+.f64 (*.f64 y #s(literal -2 binary64)) (*.f64 y #s(literal -2 binary64)))) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(fma.f64 z x (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(fma.f64 y x (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 y (*.f64 x #s(literal 3 binary64)) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -4 binary64))))
(fma.f64 y (-.f64 #s(literal 0 binary64) x) (*.f64 x z))
(fma.f64 y (*.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(fma.f64 y (*.f64 x #s(literal -2 binary64)) (*.f64 x (+.f64 z y)))
(fma.f64 #s(literal -2 binary64) (*.f64 x y) (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 y #s(literal -2 binary64)) x (*.f64 x (+.f64 z y)))
(fma.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) x (*.f64 x y))
(fma.f64 (*.f64 x y) #s(literal -2 binary64) (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 x y) #s(literal 3 binary64) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -4 binary64))))
(fma.f64 (*.f64 x y) #s(literal -1 binary64) (*.f64 x z))
(fma.f64 (*.f64 x y) #s(literal 2 binary64) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(fma.f64 (*.f64 x y) #s(literal 1 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(fma.f64 #s(literal 3 binary64) (*.f64 x y) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -4 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) y) x (*.f64 x z))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 x #s(literal 2 binary64)) (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 x #s(literal 3 binary64)) y (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -4 binary64))))
(fma.f64 (-.f64 #s(literal 0 binary64) x) y (*.f64 x z))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (*.f64 y #s(literal 2 binary64)) (*.f64 x (+.f64 z y)))
(fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 x z))
(fma.f64 #s(literal -1 binary64) (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 y #s(literal 2 binary64)) x (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(fma.f64 (*.f64 x #s(literal 2 binary64)) y (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(fma.f64 #s(literal 2 binary64) (*.f64 x y) (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))))
(fma.f64 #s(literal 2 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x y)) (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 x #s(literal -2 binary64)) y (*.f64 x (+.f64 z y)))
(fma.f64 (*.f64 y #s(literal 3 binary64)) x (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -4 binary64))))
(neg.f64 (neg.f64 (*.f64 x (-.f64 z y))))
(neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 (-.f64 #s(literal 0 binary64) y) z)))
(neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) y)))
(neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 (*.f64 y #s(literal 3 binary64)) (+.f64 z (+.f64 (*.f64 y #s(literal -2 binary64)) (*.f64 y #s(literal -2 binary64)))))))
(neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 (+.f64 z y) (*.f64 y #s(literal -2 binary64)))))
(neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 (*.f64 y #s(literal -2 binary64)) (+.f64 z y))))
(neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 (*.f64 y #s(literal 2 binary64)) (+.f64 z (-.f64 (*.f64 y #s(literal -2 binary64)) y)))))
(neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 y (+.f64 z (*.f64 y #s(literal -2 binary64))))))
(neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 (+.f64 z (+.f64 (*.f64 y #s(literal -2 binary64)) (*.f64 y #s(literal -2 binary64)))) (*.f64 y #s(literal 3 binary64)))))
(neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (+.f64 (+.f64 z (-.f64 (*.f64 y #s(literal -2 binary64)) y)) (*.f64 y #s(literal 2 binary64)))))
(neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) x) (-.f64 z y)))
(*.f64 x (+.f64 (-.f64 #s(literal 0 binary64) y) z))
(*.f64 x (+.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) y))
(*.f64 x (+.f64 (*.f64 y #s(literal 3 binary64)) (+.f64 z (+.f64 (*.f64 y #s(literal -2 binary64)) (*.f64 y #s(literal -2 binary64))))))
(*.f64 x (+.f64 (*.f64 y #s(literal -2 binary64)) (+.f64 z y)))
(*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) (+.f64 z (-.f64 (*.f64 y #s(literal -2 binary64)) y))))
(*.f64 x (+.f64 y (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(*.f64 x (+.f64 (+.f64 z (+.f64 (*.f64 y #s(literal -2 binary64)) (*.f64 y #s(literal -2 binary64)))) (*.f64 y #s(literal 3 binary64))))
(*.f64 x (+.f64 (+.f64 z (-.f64 (*.f64 y #s(literal -2 binary64)) y)) (*.f64 y #s(literal 2 binary64))))
(*.f64 x (-.f64 z y))
(*.f64 x (+.f64 (+.f64 z y) (*.f64 y #s(literal -2 binary64))))
(*.f64 #s(literal -1 binary64) (neg.f64 (*.f64 x (-.f64 z y))))
(+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) #s(literal 0 binary64))
(+.f64 (*.f64 x (+.f64 z y)) (*.f64 (*.f64 x y) #s(literal -3 binary64)))
(+.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (*.f64 x (-.f64 z y)))
(+.f64 (*.f64 x z) (*.f64 x (*.f64 y #s(literal -2 binary64))))
(+.f64 (*.f64 x (*.f64 y #s(literal -2 binary64))) (*.f64 x z))
(+.f64 #s(literal 0 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))))
(+.f64 (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))) (*.f64 x y))
(+.f64 (*.f64 x (-.f64 z y)) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(-.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) #s(literal 0 binary64))
(-.f64 (*.f64 x (+.f64 z y)) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(-.f64 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (neg.f64 (*.f64 x (-.f64 z y))))
(-.f64 (*.f64 x z) (*.f64 x (*.f64 y #s(literal 2 binary64))))
(-.f64 (*.f64 x (*.f64 y #s(literal -2 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 x z)))
(-.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))))))
(-.f64 (+.f64 (*.f64 x z) (*.f64 (*.f64 x y) #s(literal -3 binary64))) (-.f64 #s(literal 0 binary64) (*.f64 x y)))
(-.f64 (*.f64 x (-.f64 z y)) (*.f64 x y))
(fma.f64 x z (*.f64 x (*.f64 y #s(literal -2 binary64))))
(fma.f64 x (*.f64 y #s(literal -2 binary64)) (*.f64 x z))
(fma.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))) #s(literal 0 binary64))
(fma.f64 z x (*.f64 x (*.f64 y #s(literal -2 binary64))))
(fma.f64 y (*.f64 x #s(literal -2 binary64)) (*.f64 x z))
(fma.f64 #s(literal -2 binary64) (*.f64 x y) (*.f64 x z))
(fma.f64 (*.f64 y #s(literal -2 binary64)) x (*.f64 x z))
(fma.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) x #s(literal 0 binary64))
(fma.f64 (*.f64 x y) #s(literal -2 binary64) (*.f64 x z))
(fma.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 x #s(literal 2 binary64)) (*.f64 x z))
(fma.f64 (-.f64 #s(literal 0 binary64) x) (*.f64 y #s(literal 2 binary64)) (*.f64 x z))
(fma.f64 #s(literal -1 binary64) (*.f64 x (*.f64 y #s(literal 2 binary64))) (*.f64 x z))
(fma.f64 #s(literal 2 binary64) (-.f64 #s(literal 0 binary64) (*.f64 x y)) (*.f64 x z))
(fma.f64 (*.f64 x #s(literal -2 binary64)) y (*.f64 x z))
(neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))))))
(*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64))))
(*.f64 (+.f64 z (*.f64 y #s(literal -2 binary64))) x)
(+.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) #s(literal 0 binary64))
(+.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) (*.f64 (*.f64 x #s(literal 3 binary64)) (+.f64 (*.f64 y #s(literal -2 binary64)) (*.f64 y #s(literal 2 binary64)))))
(+.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) (*.f64 (+.f64 (*.f64 y #s(literal -2 binary64)) (*.f64 y #s(literal 2 binary64))) (*.f64 x #s(literal 3 binary64))))
(+.f64 #s(literal 0 binary64) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(+.f64 (*.f64 (*.f64 x y) #s(literal -3 binary64)) (*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y #s(literal 2 binary64)))))
(+.f64 (*.f64 (*.f64 x y) #s(literal -3 binary64)) (*.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) #s(literal 3 binary64)))
(+.f64 (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x #s(literal 3 binary64)))) (*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y #s(literal -2 binary64)))))
(+.f64 (*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y #s(literal -2 binary64)))) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x #s(literal 3 binary64)))))
(+.f64 (*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y #s(literal 2 binary64)))) (*.f64 (*.f64 x y) #s(literal -3 binary64)))
(+.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) (*.f64 y #s(literal -2 binary64))) (*.f64 (*.f64 x #s(literal 3 binary64)) (*.f64 y #s(literal 3 binary64))))
(+.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) (*.f64 y #s(literal 3 binary64))) (*.f64 (*.f64 x #s(literal 3 binary64)) (*.f64 y #s(literal -2 binary64))))
(+.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) #s(literal 0 binary64)) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(+.f64 (*.f64 (*.f64 y #s(literal -2 binary64)) (*.f64 x #s(literal 3 binary64))) (*.f64 (*.f64 y #s(literal 3 binary64)) (*.f64 x #s(literal 3 binary64))))
(+.f64 (*.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) #s(literal 3 binary64)) (*.f64 (*.f64 x (*.f64 y #s(literal -2 binary64))) #s(literal 3 binary64)))
(+.f64 (*.f64 (*.f64 x (*.f64 y #s(literal -2 binary64))) #s(literal 3 binary64)) (*.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) #s(literal 3 binary64)))
(+.f64 (*.f64 (*.f64 x (*.f64 y #s(literal 2 binary64))) #s(literal 3 binary64)) (*.f64 (*.f64 x y) #s(literal -3 binary64)))
(+.f64 (*.f64 (*.f64 y #s(literal 3 binary64)) (*.f64 x #s(literal 3 binary64))) (*.f64 (*.f64 y #s(literal -2 binary64)) (*.f64 x #s(literal 3 binary64))))
(+.f64 (*.f64 #s(literal 0 binary64) (*.f64 x #s(literal 3 binary64))) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(-.f64 (*.f64 y (*.f64 x #s(literal 3 binary64))) #s(literal 0 binary64))
(fma.f64 x (*.f64 y #s(literal 3 binary64)) #s(literal 0 binary64))
(fma.f64 y (*.f64 x #s(literal 3 binary64)) #s(literal 0 binary64))
(fma.f64 (*.f64 x y) #s(literal 3 binary64) #s(literal 0 binary64))
(fma.f64 #s(literal 3 binary64) (*.f64 x y) #s(literal 0 binary64))
(fma.f64 (*.f64 x #s(literal 3 binary64)) y #s(literal 0 binary64))
(fma.f64 (*.f64 y #s(literal 3 binary64)) x #s(literal 0 binary64))
(neg.f64 (*.f64 (*.f64 x y) #s(literal -3 binary64)))
(*.f64 x (*.f64 y #s(literal 3 binary64)))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(*.f64 (*.f64 x y) #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
(*.f64 (*.f64 y #s(literal 3 binary64)) x)

simplify239.0ms (3.8%)

Algorithm
egg-herbie
Rules
2992×+-lowering-+.f64
2992×+-lowering-+.f32
1788×sum3-define
1646×*-lowering-*.f32
1646×*-lowering-*.f64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01221308
1485993
22284915
08371915
Stop Event
iter limit
node limit
Counts
168 → 168
Calls
Call 1
Inputs
(* x (+ z (+ (* -2 y) (* 3 y))))
(* x (+ z (+ (* -2 y) (* 3 y))))
(* x (+ z (+ (* -2 y) (* 3 y))))
(* x (+ z (+ (* -2 y) (* 3 y))))
(* x (+ z (+ (* -2 y) (* 3 y))))
(* x (+ z (+ (* -2 y) (* 3 y))))
(* x (+ z (+ (* -2 y) (* 3 y))))
(* x (+ z (+ (* -2 y) (* 3 y))))
(* -1 (* x (+ (* -3 y) (* -1 (+ z (* -2 y))))))
(* -1 (* x (+ (* -3 y) (* -1 (+ z (* -2 y))))))
(* -1 (* x (+ (* -3 y) (* -1 (+ z (* -2 y))))))
(* -1 (* x (+ (* -3 y) (* -1 (+ z (* -2 y))))))
(+ (* -2 (* x y)) (* 3 (* x y)))
(+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z)))
(+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z)))
(+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z)))
(* x z)
(* z (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))))
(* z (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))))
(* z (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))))
(* x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ (+ (* -2 (* x y)) (* 3 (* x y))) z)))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (+ (* -2 (* x y)) (* 3 (* x y))) z)))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (+ (* -2 (* x y)) (* 3 (* x y))) z)))))
(* x z)
(+ (* x z) (* y (+ (* -2 x) (* 3 x))))
(+ (* x z) (* y (+ (* -2 x) (* 3 x))))
(+ (* x z) (* y (+ (* -2 x) (* 3 x))))
(* y (+ (* -2 x) (* 3 x)))
(* y (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))))
(* y (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))))
(* y (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))))
(* -1 (* y (+ (* -3 x) (* 2 x))))
(* -1 (* y (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x)))))
(* -1 (* y (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x)))))
(* -1 (* y (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x)))))
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -1 y))))
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -1 y))))
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -1 y))))
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -1 y))))
(- (+ (* -2 (* x y)) (* 3 (* x y))) (* x y))
(- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* x y))
(- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* x y))
(- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* x y))
(* x z)
(* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (/ (* x y) z)))
(* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (/ (* x y) z)))
(* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (/ (* x y) z)))
(* x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* x y)) z)))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* x y)) z)))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* x y)) z)))))
(* x z)
(+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) x)))
(+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) x)))
(+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) x)))
(* y (- (+ (* -2 x) (* 3 x)) x))
(* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) x))
(* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) x))
(* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) x))
(* -1 (* y (- (+ (* -3 x) (* 2 x)) (* -1 x))))
(* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -1 x))))
(* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -1 x))))
(* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -1 x))))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -2 y))))
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -2 y))))
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -2 y))))
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -2 y))))
(- (+ (* -2 (* x y)) (* 3 (* x y))) (* 2 (* x y)))
(- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* 2 (* x y)))
(- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* 2 (* x y)))
(- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* 2 (* x y)))
(* x z)
(* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (* 2 (/ (* x y) z))))
(* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (* 2 (/ (* x y) z))))
(* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (* 2 (/ (* x y) z))))
(* x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* 2 (* x y))) z)))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* 2 (* x y))) z)))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* 2 (* x y))) z)))))
(* x z)
(+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) (* 2 x))))
(+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) (* 2 x))))
(+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) (* 2 x))))
(* y (- (+ (* -2 x) (* 3 x)) (* 2 x)))
(* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) (* 2 x)))
(* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) (* 2 x)))
(* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) (* 2 x)))
(* -1 (* y (- (+ (* -3 x) (* 2 x)) (* -2 x))))
(* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -2 x))))
(* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -2 x))))
(* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -2 x))))
(* x (+ z (* -2 y)))
(* x (+ z (* -2 y)))
(* x (+ z (* -2 y)))
(* x (+ z (* -2 y)))
(* x (+ z (* -2 y)))
(* x (+ z (* -2 y)))
(* x (+ z (* -2 y)))
(* x (+ z (* -2 y)))
(* x (+ z (* -2 y)))
(* x (+ z (* -2 y)))
(* x (+ z (* -2 y)))
(* x (+ z (* -2 y)))
(* -2 (* x y))
(+ (* -2 (* x y)) (* x z))
(+ (* -2 (* x y)) (* x z))
(+ (* -2 (* x y)) (* x z))
(* x z)
(* z (+ x (* -2 (/ (* x y) z))))
(* z (+ x (* -2 (/ (* x y) z))))
(* z (+ x (* -2 (/ (* x y) z))))
(* x z)
(* -1 (* z (+ (* -1 x) (* 2 (/ (* x y) z)))))
(* -1 (* z (+ (* -1 x) (* 2 (/ (* x y) z)))))
(* -1 (* z (+ (* -1 x) (* 2 (/ (* x y) z)))))
(* x z)
(+ (* -2 (* x y)) (* x z))
(+ (* -2 (* x y)) (* x z))
(+ (* -2 (* x y)) (* x z))
(* -2 (* x y))
(* y (+ (* -2 x) (/ (* x z) y)))
(* y (+ (* -2 x) (/ (* x z) y)))
(* y (+ (* -2 x) (/ (* x z) y)))
(* -2 (* x y))
(* -1 (* y (+ (* -1 (/ (* x z) y)) (* 2 x))))
(* -1 (* y (+ (* -1 (/ (* x z) y)) (* 2 x))))
(* -1 (* y (+ (* -1 (/ (* x z) y)) (* 2 x))))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
Outputs
(* x (+ z (+ (* -2 y) (* 3 y))))
(*.f64 x (+.f64 z y))
(* x (+ z (+ (* -2 y) (* 3 y))))
(*.f64 x (+.f64 z y))
(* x (+ z (+ (* -2 y) (* 3 y))))
(*.f64 x (+.f64 z y))
(* x (+ z (+ (* -2 y) (* 3 y))))
(*.f64 x (+.f64 z y))
(* x (+ z (+ (* -2 y) (* 3 y))))
(*.f64 x (+.f64 z y))
(* x (+ z (+ (* -2 y) (* 3 y))))
(*.f64 x (+.f64 z y))
(* x (+ z (+ (* -2 y) (* 3 y))))
(*.f64 x (+.f64 z y))
(* x (+ z (+ (* -2 y) (* 3 y))))
(*.f64 x (+.f64 z y))
(* -1 (* x (+ (* -3 y) (* -1 (+ z (* -2 y))))))
(*.f64 x (+.f64 z y))
(* -1 (* x (+ (* -3 y) (* -1 (+ z (* -2 y))))))
(*.f64 x (+.f64 z y))
(* -1 (* x (+ (* -3 y) (* -1 (+ z (* -2 y))))))
(*.f64 x (+.f64 z y))
(* -1 (* x (+ (* -3 y) (* -1 (+ z (* -2 y))))))
(*.f64 x (+.f64 z y))
(+ (* -2 (* x y)) (* 3 (* x y)))
(*.f64 x y)
(+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z)))
(*.f64 x (+.f64 z y))
(+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z)))
(*.f64 x (+.f64 z y))
(+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z)))
(*.f64 x (+.f64 z y))
(* x z)
(*.f64 x z)
(* z (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))))
(*.f64 z (*.f64 x (+.f64 #s(literal 1 binary64) (/.f64 y z))))
(* z (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))))
(*.f64 z (*.f64 x (+.f64 #s(literal 1 binary64) (/.f64 y z))))
(* z (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))))
(*.f64 z (*.f64 x (+.f64 #s(literal 1 binary64) (/.f64 y z))))
(* x z)
(*.f64 x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ (+ (* -2 (* x y)) (* 3 (* x y))) z)))))
(*.f64 z (*.f64 x (+.f64 #s(literal 1 binary64) (/.f64 y z))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (+ (* -2 (* x y)) (* 3 (* x y))) z)))))
(*.f64 z (*.f64 x (+.f64 #s(literal 1 binary64) (/.f64 y z))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (+ (* -2 (* x y)) (* 3 (* x y))) z)))))
(*.f64 z (*.f64 x (+.f64 #s(literal 1 binary64) (/.f64 y z))))
(* x z)
(*.f64 x z)
(+ (* x z) (* y (+ (* -2 x) (* 3 x))))
(*.f64 x (+.f64 z y))
(+ (* x z) (* y (+ (* -2 x) (* 3 x))))
(*.f64 x (+.f64 z y))
(+ (* x z) (* y (+ (* -2 x) (* 3 x))))
(*.f64 x (+.f64 z y))
(* y (+ (* -2 x) (* 3 x)))
(*.f64 x y)
(* y (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))))
(*.f64 y (*.f64 x (+.f64 (/.f64 z y) #s(literal 1 binary64))))
(* y (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))))
(*.f64 y (*.f64 x (+.f64 (/.f64 z y) #s(literal 1 binary64))))
(* y (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))))
(*.f64 y (*.f64 x (+.f64 (/.f64 z y) #s(literal 1 binary64))))
(* -1 (* y (+ (* -3 x) (* 2 x))))
(*.f64 x y)
(* -1 (* y (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x)))))
(*.f64 y (*.f64 x (+.f64 (/.f64 z y) #s(literal 1 binary64))))
(* -1 (* y (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x)))))
(*.f64 y (*.f64 x (+.f64 (/.f64 z y) #s(literal 1 binary64))))
(* -1 (* y (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x)))))
(*.f64 y (*.f64 x (+.f64 (/.f64 z y) #s(literal 1 binary64))))
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(*.f64 x z)
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(*.f64 x z)
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(*.f64 x z)
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(*.f64 x z)
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(*.f64 x z)
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(*.f64 x z)
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(*.f64 x z)
(* x (- (+ z (+ (* -2 y) (* 3 y))) y))
(*.f64 x z)
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -1 y))))
(*.f64 x z)
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -1 y))))
(*.f64 x z)
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -1 y))))
(*.f64 x z)
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -1 y))))
(*.f64 x z)
(- (+ (* -2 (* x y)) (* 3 (* x y))) (* x y))
#s(literal 0 binary64)
(- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* x y))
(*.f64 x z)
(- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* x y))
(*.f64 x z)
(- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* x y))
(*.f64 x z)
(* x z)
(*.f64 x z)
(* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (/ (* x y) z)))
(*.f64 x z)
(* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (/ (* x y) z)))
(*.f64 x z)
(* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (/ (* x y) z)))
(*.f64 x z)
(* x z)
(*.f64 x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* x y)) z)))))
(*.f64 x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* x y)) z)))))
(*.f64 x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* x y)) z)))))
(*.f64 x z)
(* x z)
(*.f64 x z)
(+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) x)))
(*.f64 x z)
(+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) x)))
(*.f64 x z)
(+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) x)))
(*.f64 x z)
(* y (- (+ (* -2 x) (* 3 x)) x))
#s(literal 0 binary64)
(* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) x))
(*.f64 y (/.f64 (*.f64 x z) y))
(* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) x))
(*.f64 y (/.f64 (*.f64 x z) y))
(* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) x))
(*.f64 y (/.f64 (*.f64 x z) y))
(* -1 (* y (- (+ (* -3 x) (* 2 x)) (* -1 x))))
#s(literal 0 binary64)
(* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -1 x))))
(*.f64 y (/.f64 (*.f64 x z) y))
(* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -1 x))))
(*.f64 y (/.f64 (*.f64 x z) y))
(* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -1 x))))
(*.f64 y (/.f64 (*.f64 x z) y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(*.f64 x (-.f64 z y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(*.f64 x (-.f64 z y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(*.f64 x (-.f64 z y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(*.f64 x (-.f64 z y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(*.f64 x (-.f64 z y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(*.f64 x (-.f64 z y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(*.f64 x (-.f64 z y))
(* x (- (+ z (+ (* -2 y) (* 3 y))) (* 2 y)))
(*.f64 x (-.f64 z y))
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -2 y))))
(*.f64 x (-.f64 z y))
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -2 y))))
(*.f64 x (-.f64 z y))
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -2 y))))
(*.f64 x (-.f64 z y))
(* -1 (* x (- (+ (* -3 y) (* -1 (+ z (* -2 y)))) (* -2 y))))
(*.f64 x (-.f64 z y))
(- (+ (* -2 (* x y)) (* 3 (* x y))) (* 2 (* x y)))
(-.f64 #s(literal 0 binary64) (*.f64 x y))
(- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* 2 (* x y)))
(*.f64 x (-.f64 z y))
(- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* 2 (* x y)))
(*.f64 x (-.f64 z y))
(- (+ (* -2 (* x y)) (+ (* 3 (* x y)) (* x z))) (* 2 (* x y)))
(*.f64 x (-.f64 z y))
(* x z)
(*.f64 x z)
(* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (* 2 (/ (* x y) z))))
(*.f64 z (*.f64 x (-.f64 #s(literal 1 binary64) (/.f64 y z))))
(* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (* 2 (/ (* x y) z))))
(*.f64 z (*.f64 x (-.f64 #s(literal 1 binary64) (/.f64 y z))))
(* z (- (+ x (+ (* -2 (/ (* x y) z)) (* 3 (/ (* x y) z)))) (* 2 (/ (* x y) z))))
(*.f64 z (*.f64 x (-.f64 #s(literal 1 binary64) (/.f64 y z))))
(* x z)
(*.f64 x z)
(* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* 2 (* x y))) z)))))
(*.f64 z (*.f64 x (-.f64 #s(literal 1 binary64) (/.f64 y z))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* 2 (* x y))) z)))))
(*.f64 z (*.f64 x (-.f64 #s(literal 1 binary64) (/.f64 y z))))
(* -1 (* z (+ (* -1 x) (* -1 (/ (- (+ (* -2 (* x y)) (* 3 (* x y))) (* 2 (* x y))) z)))))
(*.f64 z (*.f64 x (-.f64 #s(literal 1 binary64) (/.f64 y z))))
(* x z)
(*.f64 x z)
(+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) (* 2 x))))
(*.f64 x (-.f64 z y))
(+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) (* 2 x))))
(*.f64 x (-.f64 z y))
(+ (* x z) (* y (- (+ (* -2 x) (* 3 x)) (* 2 x))))
(*.f64 x (-.f64 z y))
(* y (- (+ (* -2 x) (* 3 x)) (* 2 x)))
(-.f64 #s(literal 0 binary64) (*.f64 x y))
(* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) (* 2 x)))
(*.f64 y (*.f64 x (+.f64 (/.f64 z y) #s(literal -1 binary64))))
(* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) (* 2 x)))
(*.f64 y (*.f64 x (+.f64 (/.f64 z y) #s(literal -1 binary64))))
(* y (- (+ (* -2 x) (+ (* 3 x) (/ (* x z) y))) (* 2 x)))
(*.f64 y (*.f64 x (+.f64 (/.f64 z y) #s(literal -1 binary64))))
(* -1 (* y (- (+ (* -3 x) (* 2 x)) (* -2 x))))
(-.f64 #s(literal 0 binary64) (*.f64 x y))
(* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -2 x))))
(*.f64 y (*.f64 x (+.f64 (/.f64 z y) #s(literal -1 binary64))))
(* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -2 x))))
(*.f64 y (*.f64 x (+.f64 (/.f64 z y) #s(literal -1 binary64))))
(* -1 (* y (- (+ (* -3 x) (+ (* -1 (/ (* x z) y)) (* 2 x))) (* -2 x))))
(*.f64 y (*.f64 x (+.f64 (/.f64 z y) #s(literal -1 binary64))))
(* x (+ z (* -2 y)))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* x (+ z (* -2 y)))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* x (+ z (* -2 y)))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* x (+ z (* -2 y)))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* x (+ z (* -2 y)))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* x (+ z (* -2 y)))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* x (+ z (* -2 y)))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* x (+ z (* -2 y)))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* x (+ z (* -2 y)))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* x (+ z (* -2 y)))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* x (+ z (* -2 y)))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* x (+ z (* -2 y)))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* -2 (* x y))
(*.f64 x (*.f64 #s(literal -2 binary64) y))
(+ (* -2 (* x y)) (* x z))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(+ (* -2 (* x y)) (* x z))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(+ (* -2 (* x y)) (* x z))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* x z)
(*.f64 x z)
(* z (+ x (* -2 (/ (* x y) z))))
(*.f64 z (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 y z) #s(literal -2 binary64)))))
(* z (+ x (* -2 (/ (* x y) z))))
(*.f64 z (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 y z) #s(literal -2 binary64)))))
(* z (+ x (* -2 (/ (* x y) z))))
(*.f64 z (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 y z) #s(literal -2 binary64)))))
(* x z)
(*.f64 x z)
(* -1 (* z (+ (* -1 x) (* 2 (/ (* x y) z)))))
(*.f64 z (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 y z) #s(literal -2 binary64)))))
(* -1 (* z (+ (* -1 x) (* 2 (/ (* x y) z)))))
(*.f64 z (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 y z) #s(literal -2 binary64)))))
(* -1 (* z (+ (* -1 x) (* 2 (/ (* x y) z)))))
(*.f64 z (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 y z) #s(literal -2 binary64)))))
(* x z)
(*.f64 x z)
(+ (* -2 (* x y)) (* x z))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(+ (* -2 (* x y)) (* x z))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(+ (* -2 (* x y)) (* x z))
(*.f64 x (-.f64 z (*.f64 y #s(literal 2 binary64))))
(* -2 (* x y))
(*.f64 x (*.f64 #s(literal -2 binary64) y))
(* y (+ (* -2 x) (/ (* x z) y)))
(*.f64 y (*.f64 x (+.f64 #s(literal -2 binary64) (/.f64 z y))))
(* y (+ (* -2 x) (/ (* x z) y)))
(*.f64 y (*.f64 x (+.f64 #s(literal -2 binary64) (/.f64 z y))))
(* y (+ (* -2 x) (/ (* x z) y)))
(*.f64 y (*.f64 x (+.f64 #s(literal -2 binary64) (/.f64 z y))))
(* -2 (* x y))
(*.f64 x (*.f64 #s(literal -2 binary64) y))
(* -1 (* y (+ (* -1 (/ (* x z) y)) (* 2 x))))
(*.f64 y (*.f64 x (+.f64 #s(literal -2 binary64) (/.f64 z y))))
(* -1 (* y (+ (* -1 (/ (* x z) y)) (* 2 x))))
(*.f64 y (*.f64 x (+.f64 #s(literal -2 binary64) (/.f64 z y))))
(* -1 (* y (+ (* -1 (/ (* x z) y)) (* 2 x))))
(*.f64 y (*.f64 x (+.f64 #s(literal -2 binary64) (/.f64 z y))))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(* 3 (* x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))

eval230.0ms (3.6%)

Compiler

Compiled 7225 to 822 computations (88.6% saved)

prune48.0ms (0.8%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New4591460
Fresh000
Picked101
Done066
Total4607467
Accuracy
100.0%
Counts
467 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
63.6%
(-.f64 (*.f64 z x) (*.f64 y x))
53.2%
(-.f64 (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)) (*.f64 y (*.f64 x #s(literal 3 binary64))))
73.6%
(+.f64 y (*.f64 x z))
63.5%
(*.f64 y (-.f64 #s(literal 1 binary64) x))
65.6%
(*.f64 x (-.f64 z y))
39.4%
(*.f64 x z)
36.9%
y
Compiler

Compiled 145 to 75 computations (48.3% saved)

regimes50.0ms (0.8%)

Counts
11 → 1
Calls
Call 1
Inputs
y
(*.f64 x z)
(*.f64 x (-.f64 z y))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(+.f64 y (*.f64 x z))
(-.f64 y (*.f64 x (-.f64 y z)))
(-.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
(-.f64 (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(-.f64 (-.f64 (+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 y x)) (*.f64 y x))
(fma.f64 (-.f64 z y) x y)
Outputs
(fma.f64 (-.f64 z y) x y)
Calls

4 calls:

36.0ms
z
4.0ms
y
4.0ms
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
4.0ms
x
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1z
100.0%1(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
Compiler

Compiled 24 to 17 computations (29.2% saved)

regimes42.0ms (0.7%)

Counts
10 → 1
Calls
Call 1
Inputs
y
(*.f64 x z)
(*.f64 x (-.f64 z y))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(+.f64 y (*.f64 x z))
(-.f64 y (*.f64 x (-.f64 y z)))
(-.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
(-.f64 (*.f64 x (+.f64 (*.f64 y #s(literal 2 binary64)) z)) (*.f64 y (*.f64 x #s(literal 3 binary64))))
(-.f64 (-.f64 (+.f64 (*.f64 x (+.f64 z (*.f64 y #s(literal -2 binary64)))) (*.f64 (*.f64 y x) #s(literal 3 binary64))) (*.f64 y x)) (*.f64 y x))
Outputs
(-.f64 y (*.f64 x (-.f64 y z)))
Calls

4 calls:

30.0ms
y
4.0ms
(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
4.0ms
x
4.0ms
z
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1z
100.0%1(+.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) y) (*.f64 x z))
Compiler

Compiled 24 to 17 computations (29.2% saved)

regimes8.0ms (0.1%)

Counts
5 → 3
Calls
Call 1
Inputs
y
(*.f64 x z)
(*.f64 x (-.f64 z y))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(+.f64 y (*.f64 x z))
Outputs
(*.f64 x (-.f64 z y))
(+.f64 y (*.f64 x z))
(*.f64 x (-.f64 z y))
Calls

3 calls:

3.0ms
y
2.0ms
z
2.0ms
x
Results
AccuracySegmentsBranch
99.1%3x
86.1%3y
88.8%3z
Compiler

Compiled 12 to 9 computations (25% saved)

regimes20.0ms (0.3%)

Counts
4 → 3
Calls
Call 1
Inputs
y
(*.f64 x z)
(*.f64 x (-.f64 z y))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
Outputs
(*.f64 x (-.f64 z y))
(*.f64 y (-.f64 #s(literal 1 binary64) x))
(*.f64 x (-.f64 z y))
Calls

2 calls:

18.0ms
x
2.0ms
z
Results
AccuracySegmentsBranch
82.2%3z
87.6%3x
Compiler

Compiled 8 to 6 computations (25% saved)

regimes2.0ms (0%)

Counts
3 → 3
Calls
Call 1
Inputs
y
(*.f64 x z)
(*.f64 x (-.f64 z y))
Outputs
(*.f64 x (-.f64 z y))
y
(*.f64 x (-.f64 z y))
Calls

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
87.3%3x
Compiler

Compiled 4 to 3 computations (25% saved)

regimes5.0ms (0.1%)

Counts
2 → 3
Calls
Call 1
Inputs
y
(*.f64 x z)
Outputs
(*.f64 x z)
y
(*.f64 x z)
Calls

3 calls:

2.0ms
y
2.0ms
z
2.0ms
x
Results
AccuracySegmentsBranch
56.1%3z
55.4%3y
61.4%3x
Compiler

Compiled 12 to 9 computations (25% saved)

regimes4.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
y
Outputs
y
Calls

3 calls:

1.0ms
y
1.0ms
z
1.0ms
x
Results
AccuracySegmentsBranch
36.9%1y
36.9%1z
36.9%1x
Compiler

Compiled 12 to 9 computations (25% saved)

bsearch56.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
9.0ms
1.3221568303558455e-7
1.6260169945762998e-6
7.0ms
-661570550220.4456
-427431034077.8471
Results
11.0ms160×0valid
Compiler

Compiled 198 to 133 computations (32.8% saved)

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

bsearch25.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
6.907132388074613e-22
7.948503095808349e-18
9.0ms
-7.364778540843087
-0.6352770122383955
Results
16.0ms224×0valid
Compiler

Compiled 270 to 195 computations (27.8% saved)

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

bsearch27.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
15.0ms
6.907132388074613e-22
7.948503095808349e-18
9.0ms
-1.6119077861081578e-21
-1.0736084289828293e-22
Results
17.0ms224×0valid
Compiler

Compiled 214 to 153 computations (28.5% saved)

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

bsearch26.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
6.907132388074613e-22
7.948503095808349e-18
11.0ms
-1.6119077861081578e-21
-1.0736084289828293e-22
Results
17.0ms224×0valid
Compiler

Compiled 186 to 139 computations (25.3% saved)

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

simplify27.0ms (0.4%)

Algorithm
egg-herbie
Rules
180×unsub-neg_binary64
106×neg-mul-1_binary64
104×distribute-lft-neg-in_binary64
60×neg-sub0_binary64
48×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03680
16680
28480
39780
411880
514380
616580
721680
831280
936780
1038280
1140480
1242980
1346280
1449980
1550680
1650780
Stop Event
saturated
Calls
Call 1
Inputs
(fma.f64 (-.f64 z y) x y)
(-.f64 y (*.f64 x (-.f64 y z)))
(if (<=.f64 x #s(literal -430000000000 binary64)) (*.f64 x (-.f64 z y)) (if (<=.f64 x #s(literal 944473296573929/590295810358705651712 binary64)) (+.f64 y (*.f64 x z)) (*.f64 x (-.f64 z y))))
(if (<=.f64 x #s(literal -8106479329266893/4503599627370496 binary64)) (*.f64 x (-.f64 z y)) (if (<=.f64 x #s(literal 1298074214633707/1298074214633706907132624082305024 binary64)) (*.f64 y (-.f64 #s(literal 1 binary64) x)) (*.f64 x (-.f64 z y))))
(if (<=.f64 x #s(literal -2924301590726815/5316911983139663491615228241121378304 binary64)) (*.f64 x (-.f64 z y)) (if (<=.f64 x #s(literal 2466341007804043/324518553658426726783156020576256 binary64)) y (*.f64 x (-.f64 z y))))
(if (<=.f64 x #s(literal -2924301590726815/5316911983139663491615228241121378304 binary64)) (*.f64 x z) (if (<=.f64 x #s(literal 1412304745521473/20769187434139310514121985316880384 binary64)) y (*.f64 x z)))
y
Outputs
(fma.f64 (-.f64 z y) x y)
(-.f64 y (*.f64 x (-.f64 y z)))
(+.f64 y (*.f64 (-.f64 z y) x))
(if (<=.f64 x #s(literal -430000000000 binary64)) (*.f64 x (-.f64 z y)) (if (<=.f64 x #s(literal 944473296573929/590295810358705651712 binary64)) (+.f64 y (*.f64 x z)) (*.f64 x (-.f64 z y))))
(if (<=.f64 x #s(literal -430000000000 binary64)) (*.f64 (-.f64 z y) x) (if (<=.f64 x #s(literal 944473296573929/590295810358705651712 binary64)) (+.f64 y (*.f64 z x)) (*.f64 (-.f64 z y) x)))
(if (<=.f64 x #s(literal -8106479329266893/4503599627370496 binary64)) (*.f64 x (-.f64 z y)) (if (<=.f64 x #s(literal 1298074214633707/1298074214633706907132624082305024 binary64)) (*.f64 y (-.f64 #s(literal 1 binary64) x)) (*.f64 x (-.f64 z y))))
(if (<=.f64 x #s(literal -8106479329266893/4503599627370496 binary64)) (*.f64 (-.f64 z y) x) (if (<=.f64 x #s(literal 1298074214633707/1298074214633706907132624082305024 binary64)) (*.f64 y (-.f64 #s(literal 1 binary64) x)) (*.f64 (-.f64 z y) x)))
(if (<=.f64 x #s(literal -2924301590726815/5316911983139663491615228241121378304 binary64)) (*.f64 x (-.f64 z y)) (if (<=.f64 x #s(literal 2466341007804043/324518553658426726783156020576256 binary64)) y (*.f64 x (-.f64 z y))))
(if (<=.f64 x #s(literal -2924301590726815/5316911983139663491615228241121378304 binary64)) (*.f64 (-.f64 z y) x) (if (<=.f64 x #s(literal 2466341007804043/324518553658426726783156020576256 binary64)) y (*.f64 (-.f64 z y) x)))
(if (<=.f64 x #s(literal -2924301590726815/5316911983139663491615228241121378304 binary64)) (*.f64 x z) (if (<=.f64 x #s(literal 1412304745521473/20769187434139310514121985316880384 binary64)) y (*.f64 x z)))
(if (<=.f64 x #s(literal -2924301590726815/5316911983139663491615228241121378304 binary64)) (*.f64 z x) (if (<=.f64 x #s(literal 1412304745521473/20769187434139310514121985316880384 binary64)) y (*.f64 z x)))
y

soundness1.3s (20.1%)

Rules
2192×*-lowering-*.f32
2192×*-lowering-*.f64
2056×sum5-define
2034×fmsub-define
2012×fnmsub-define
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
088
1168
2298
3597
41357
52706
64726
79076
831366
939826
1044336
1144736
044736
0113900
1404819
21219819
33854819
47886819
08138819
01135
12635
26035
316830
443830
5173730
6481530
0809630
Stop Event
fuel
iter limit
node limit
iter limit
node limit
iter limit
saturated
Compiler

Compiled 174 to 84 computations (51.7% saved)

preprocess78.0ms (1.2%)

Compiler

Compiled 238 to 96 computations (59.7% saved)

end0.0ms (0%)

Profiling

Loading profile data...