Graphics.Rendering.Plot.Render.Plot.Legend:renderLegendOutside from plot-0.2.3.4, A

Time bar (total: 2.8s)

analyze0.0ms (0%)

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

Compiled 7 to 6 computations (14.3% saved)

sample445.0ms (15.7%)

Memory
-3.7MiB live, 836.8MiB allocated
Samples
304.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 99.0ms
ival-add: 91.0ms (92.2% of total)
ival-true: 5.0ms (5.1% of total)
ival-assert: 3.0ms (3% of total)
Bogosity

preprocess22.0ms (0.8%)

Memory
5.9MiB live, 45.1MiB allocated
Algorithm
egg-herbie
Rules
90×distribute-rgt-in
86×sub-neg
68×associate-+l-
64×cancel-sign-sub-inv
60×associate--r+
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01432
14130
210130
326130
447130
556430
658030
045
175
2105
3125
4135
0134
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
(+ (+ x y) x)
Outputs
(+ (+ x y) x)
(+.f64 x (+.f64 x y))
Call 2
Inputs
(+ (+ x y) x)
(+ (+ (neg x) y) (neg x))
(+ (+ x (neg y)) x)
(neg (+ (+ (neg x) y) (neg x)))
(neg (+ (+ x (neg y)) x))
(+ (+ y x) y)
Outputs
(+ (+ x y) x)
(+ x (+ x y))
(+ (+ (neg x) y) (neg x))
(+ y (* x -2))
(+ (+ x (neg y)) x)
(+ x (- x y))
(neg (+ (+ (neg x) y) (neg x)))
(+ x (- x y))
(neg (+ (+ x (neg y)) x))
(+ y (* x -2))
(+ (+ y x) y)
(+ x (+ y y))

explain45.0ms (1.6%)

Memory
-0.9MiB live, 121.5MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-y
00-0-(+.f64 x y)
00-0-(+.f64 (+.f64 x y) x)
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
17.0ms512×0valid
Compiler

Compiled 38 to 20 computations (47.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-add: 5.0ms (92.8% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

eval0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Memory
2.0MiB live, 2.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (+.f64 x y) x)
Compiler

Compiled 7 to 4 computations (42.9% saved)

simplify5.0ms (0.2%)

Memory
-28.5MiB live, 10.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 x y)
cost-diff0
(+.f64 (+.f64 x y) x)
Rules
14×+-lowering-+.f64
14×+-lowering-+.f32
associate-+l+
*-lowering-*.f32
*-lowering-*.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0410
1710
21010
31210
41310
0139
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(+ (+ x y) x)
(+ x y)
x
y
Outputs
(+ (+ x y) x)
(+.f64 x (+.f64 x y))
(+ x y)
(+.f64 x y)
x
y

localize14.0ms (0.5%)

Memory
-2.4MiB live, 37.6MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(+.f64 x y)
accuracy100.0%
(+.f64 (+.f64 x y) x)
Samples
9.0ms256×0valid
Compiler

Compiled 12 to 6 computations (50% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-add: 2.0ms (75.9% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series2.0ms (0.1%)

Memory
6.6MiB live, 6.6MiB allocated
Counts
2 → 48
Calls
Call 1
Inputs
#<alt (+ (+ x y) x)>
#<alt (+ x y)>
Outputs
#<alt y>
#<alt (+ y (* 2 x))>
#<alt (+ y (* 2 x))>
#<alt (+ y (* 2 x))>
#<alt (* 2 x)>
#<alt (* x (+ 2 (/ y x)))>
#<alt (* x (+ 2 (/ y x)))>
#<alt (* x (+ 2 (/ y x)))>
#<alt (* 2 x)>
#<alt (* -1 (* x (- (* -1 (/ y x)) 2)))>
#<alt (* -1 (* x (- (* -1 (/ y x)) 2)))>
#<alt (* -1 (* x (- (* -1 (/ y x)) 2)))>
#<alt (* 2 x)>
#<alt (+ y (* 2 x))>
#<alt (+ y (* 2 x))>
#<alt (+ y (* 2 x))>
#<alt y>
#<alt (* y (+ 1 (* 2 (/ x y))))>
#<alt (* y (+ 1 (* 2 (/ x y))))>
#<alt (* y (+ 1 (* 2 (/ x y))))>
#<alt y>
#<alt (* -1 (* y (- (* -2 (/ x y)) 1)))>
#<alt (* -1 (* y (- (* -2 (/ x y)) 1)))>
#<alt (* -1 (* y (- (* -2 (/ x y)) 1)))>
#<alt y>
#<alt (+ x y)>
#<alt (+ x y)>
#<alt (+ x y)>
#<alt x>
#<alt (* x (+ 1 (/ y x)))>
#<alt (* x (+ 1 (/ y x)))>
#<alt (* x (+ 1 (/ y x)))>
#<alt x>
#<alt (* -1 (* x (- (* -1 (/ y x)) 1)))>
#<alt (* -1 (* x (- (* -1 (/ y x)) 1)))>
#<alt (* -1 (* x (- (* -1 (/ y x)) 1)))>
#<alt x>
#<alt (+ x y)>
#<alt (+ x y)>
#<alt (+ x y)>
#<alt y>
#<alt (* y (+ 1 (/ x y)))>
#<alt (* y (+ 1 (/ x y)))>
#<alt (* y (+ 1 (/ x y)))>
#<alt y>
#<alt (* -1 (* y (- (* -1 (/ x y)) 1)))>
#<alt (* -1 (* y (- (* -1 (/ x y)) 1)))>
#<alt (* -1 (* y (- (* -1 (/ x y)) 1)))>
Calls

12 calls:

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

rewrite328.0ms (11.6%)

Memory
-2.1MiB live, 587.8MiB allocated
Algorithm
batch-egg-rewrite
Rules
5 968×accelerator-lowering-fma.f32
5 968×accelerator-lowering-fma.f64
4 498×*-lowering-*.f32
4 498×*-lowering-*.f64
2 178×/-lowering-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048
1308
22778
346108
081057
Stop Event
iter limit
node limit
Counts
2 → 205
Calls
Call 1
Inputs
(+ (+ x y) x)
(+ x y)
Outputs
(+.f64 x (+.f64 x y))
(+.f64 y (+.f64 x x))
(+.f64 (+.f64 x y) x)
(+.f64 (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (neg.f64 (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64)))))
(+.f64 (+.f64 x x) y)
(exp.f64 (*.f64 (log.f64 (/.f64 #s(literal 1 binary64) (+.f64 x (+.f64 x y)))) #s(literal -1 binary64)))
(-.f64 (*.f64 x (/.f64 x (-.f64 x y))) (-.f64 (/.f64 (*.f64 y y) (-.f64 x y)) x))
(-.f64 (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64))))
(-.f64 (/.f64 (*.f64 x x) (neg.f64 y)) (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (neg.f64 y)))
(-.f64 (+.f64 x (*.f64 x (/.f64 x (-.f64 x y)))) (/.f64 (*.f64 y y) (-.f64 x y)))
(fma.f64 (+.f64 x y) (*.f64 (-.f64 x y) (/.f64 #s(literal 1 binary64) (-.f64 x y))) x)
(fma.f64 (+.f64 x y) (/.f64 (-.f64 x y) (-.f64 x y)) x)
(fma.f64 (+.f64 x y) (/.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64))) (neg.f64 (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64)))))
(fma.f64 (+.f64 x y) (pow.f64 (*.f64 (-.f64 x y) (/.f64 #s(literal 1 binary64) (-.f64 x y))) #s(literal 1 binary64)) x)
(fma.f64 (+.f64 x y) (pow.f64 (/.f64 (-.f64 x y) (-.f64 x y)) #s(literal 1 binary64)) x)
(fma.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x))) x)
(fma.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (*.f64 (+.f64 x y) (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x)))) x)
(fma.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (/.f64 (+.f64 x y) (fma.f64 y (-.f64 y x) (*.f64 x x))) x)
(fma.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (/.f64 #s(literal 1 binary64) (+.f64 y #s(literal 0 binary64))) (neg.f64 (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64)))))
(fma.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (/.f64 #s(literal 1 binary64) (-.f64 x y)) x)
(fma.f64 #s(literal 2 binary64) x y)
(fma.f64 (neg.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) (/.f64 #s(literal 1 binary64) (neg.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)))) x)
(fma.f64 (neg.f64 (*.f64 (+.f64 x y) (-.f64 x y))) (/.f64 #s(literal 1 binary64) (neg.f64 (-.f64 x y))) x)
(fma.f64 #s(literal 1 binary64) (+.f64 x y) x)
(fma.f64 (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x))) (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) x)
(fma.f64 (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x))) (pow.f64 (/.f64 #s(literal 1 binary64) (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) #s(literal -1 binary64)) x)
(fma.f64 (/.f64 #s(literal 1 binary64) (-.f64 x y)) (*.f64 (+.f64 x y) (-.f64 x y)) x)
(fma.f64 (/.f64 #s(literal 1 binary64) (-.f64 x y)) (pow.f64 (/.f64 #s(literal 1 binary64) (*.f64 (+.f64 x y) (-.f64 x y))) #s(literal -1 binary64)) x)
(fma.f64 (*.f64 (+.f64 x y) (-.f64 y x)) (/.f64 #s(literal 1 binary64) (-.f64 y x)) x)
(fma.f64 (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (*.f64 (+.f64 x y) (-.f64 x y))) (+.f64 x y) x)
(fma.f64 (/.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (fma.f64 (*.f64 y (*.f64 y y)) (*.f64 (*.f64 (-.f64 y x) (-.f64 y x)) (-.f64 y x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))))) (fma.f64 (*.f64 y (-.f64 y x)) (-.f64 (*.f64 y (-.f64 y x)) (*.f64 x x)) (*.f64 x (*.f64 x (*.f64 x x)))) x)
(fma.f64 (/.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (-.f64 (*.f64 x x) (*.f64 y (-.f64 y x))))) (-.f64 (*.f64 x x) (*.f64 y (-.f64 y x))) x)
(fma.f64 (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))) (fma.f64 x x (*.f64 y (+.f64 x y))) x)
(fma.f64 (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64)))) (+.f64 x (+.f64 x y)) (neg.f64 (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64)))))
(fma.f64 (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))) (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (neg.f64 (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64)))))
(fma.f64 (pow.f64 (/.f64 (-.f64 x y) (*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y)))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (fma.f64 x (*.f64 x (*.f64 x x)) (*.f64 (*.f64 y y) (fma.f64 x x (*.f64 y y))))) x)
(fma.f64 (pow.f64 (/.f64 (-.f64 x y) (*.f64 (fma.f64 x x (*.f64 y y)) (*.f64 (+.f64 x y) (-.f64 x y)))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (fma.f64 x x (*.f64 y y))) x)
(fma.f64 (pow.f64 (/.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (fma.f64 (*.f64 x (*.f64 x x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))) (*.f64 (*.f64 y (*.f64 y y)) (*.f64 (*.f64 y (*.f64 y y)) (*.f64 y (*.f64 y y)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (fma.f64 x (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) (*.f64 (*.f64 y (*.f64 y y)) (-.f64 (*.f64 y (*.f64 y y)) (*.f64 x (*.f64 x x)))))) x)
(fma.f64 (pow.f64 (/.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y)))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))) x)
(fma.f64 (pow.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x))) #s(literal 1 binary64)) x)
(fma.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x))) #s(literal 1 binary64)) (pow.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) #s(literal 1 binary64)) x)
(fma.f64 (pow.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) #s(literal 1 binary64)) (pow.f64 (*.f64 (+.f64 x y) (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x)))) #s(literal 1 binary64)) x)
(fma.f64 (pow.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) #s(literal 1 binary64)) (pow.f64 (/.f64 (+.f64 x y) (fma.f64 y (-.f64 y x) (*.f64 x x))) #s(literal 1 binary64)) x)
(fma.f64 (pow.f64 (*.f64 (+.f64 x y) (-.f64 x y)) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 x y)) #s(literal 1 binary64)) x)
(fma.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 x y)) #s(literal 1 binary64)) (pow.f64 (*.f64 (+.f64 x y) (-.f64 x y)) #s(literal 1 binary64)) x)
(fma.f64 (pow.f64 (neg.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (neg.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)))) #s(literal 1 binary64)) x)
(fma.f64 (pow.f64 (neg.f64 (*.f64 (+.f64 x y) (-.f64 x y))) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (neg.f64 (-.f64 x y))) #s(literal 1 binary64)) x)
(fma.f64 (pow.f64 (*.f64 (+.f64 x y) (-.f64 y x)) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 y x)) #s(literal 1 binary64)) x)
(fma.f64 (pow.f64 (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (*.f64 (+.f64 x y) (-.f64 x y))) #s(literal 1 binary64)) (+.f64 x y) x)
(fma.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (fma.f64 (*.f64 y (*.f64 y y)) (*.f64 (*.f64 (-.f64 y x) (-.f64 y x)) (-.f64 y x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))))) #s(literal 1 binary64)) (pow.f64 (fma.f64 (*.f64 y (-.f64 y x)) (-.f64 (*.f64 y (-.f64 y x)) (*.f64 x x)) (*.f64 x (*.f64 x (*.f64 x x)))) #s(literal 1 binary64)) x)
(fma.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (-.f64 (*.f64 x x) (*.f64 y (-.f64 y x))))) #s(literal 1 binary64)) (pow.f64 (-.f64 (*.f64 x x) (*.f64 y (-.f64 y x))) #s(literal 1 binary64)) x)
(fma.f64 (pow.f64 (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))) #s(literal 1 binary64)) (pow.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) #s(literal 1 binary64)) x)
(fma.f64 (exp.f64 (log.f64 (*.f64 (+.f64 x y) (-.f64 x y)))) (exp.f64 (neg.f64 (log.f64 (-.f64 x y)))) x)
(fma.f64 (exp.f64 (log.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))))) (exp.f64 (neg.f64 (log.f64 (fma.f64 y (-.f64 y x) (*.f64 x x))))) x)
(neg.f64 (/.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (neg.f64 (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))))
(neg.f64 (/.f64 (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (+.f64 (neg.f64 y) #s(literal 0 binary64))))
(neg.f64 (/.f64 (neg.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))))
(neg.f64 (/.f64 (*.f64 (+.f64 x (+.f64 x y)) (+.f64 (neg.f64 y) #s(literal 0 binary64))) (+.f64 y #s(literal 0 binary64))))
(/.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (+.f64 y #s(literal 0 binary64)))
(/.f64 (neg.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))) (neg.f64 (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))))
(/.f64 (*.f64 (+.f64 x (+.f64 x y)) (+.f64 (neg.f64 y) #s(literal 0 binary64))) (+.f64 (neg.f64 y) #s(literal 0 binary64)))
(/.f64 (fma.f64 (*.f64 x (*.f64 x x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y)))))) (*.f64 (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)) (fma.f64 (+.f64 x y) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (*.f64 x (*.f64 x x)) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))))))))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 x (+.f64 x y))))
(/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) (+.f64 x (+.f64 x y))) #s(literal 1 binary64)))
(/.f64 #s(literal 1 binary64) (/.f64 (neg.f64 y) (*.f64 (+.f64 x (+.f64 x y)) (neg.f64 y))))
(/.f64 (*.f64 (+.f64 x (+.f64 x y)) (neg.f64 y)) (neg.f64 y))
(/.f64 (*.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))) (*.f64 (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))))
(/.f64 (*.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))) (*.f64 (+.f64 y #s(literal 0 binary64)) (fma.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (*.f64 x x) (fma.f64 x x (*.f64 (+.f64 x y) (+.f64 x y)))))))
(/.f64 (*.f64 (fma.f64 x x (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64)))) (*.f64 (+.f64 y #s(literal 0 binary64)) (fma.f64 x x (*.f64 (+.f64 x y) (+.f64 x y)))))
(/.f64 #s(literal -1 binary64) (neg.f64 (/.f64 #s(literal 1 binary64) (+.f64 x (+.f64 x y)))))
(/.f64 (-.f64 (*.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (*.f64 (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (+.f64 y #s(literal 0 binary64)) (+.f64 y #s(literal 0 binary64))))
(/.f64 (*.f64 (fma.f64 (*.f64 x (*.f64 x x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y)))))) #s(literal 1 binary64)) (*.f64 (fma.f64 (+.f64 x y) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (*.f64 x (*.f64 x x)) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y)))))) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))))
(/.f64 (*.f64 (*.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))) #s(literal 1 binary64)) (*.f64 (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64))) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))))
(/.f64 (*.f64 (*.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))) #s(literal 1 binary64)) (*.f64 (fma.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (*.f64 x x) (fma.f64 x x (*.f64 (+.f64 x y) (+.f64 x y))))) (+.f64 y #s(literal 0 binary64))))
(/.f64 (*.f64 (*.f64 (fma.f64 x x (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64)))) #s(literal 1 binary64)) (*.f64 (fma.f64 x x (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64))))
(/.f64 (neg.f64 (neg.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))))) (neg.f64 (neg.f64 (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))))
(/.f64 (neg.f64 (*.f64 (+.f64 x (+.f64 x y)) (+.f64 (neg.f64 y) #s(literal 0 binary64)))) (neg.f64 (+.f64 (neg.f64 y) #s(literal 0 binary64))))
(/.f64 (neg.f64 (*.f64 (+.f64 x (+.f64 x y)) (neg.f64 y))) (neg.f64 (neg.f64 y)))
(/.f64 (fma.f64 y (*.f64 y y) (*.f64 #s(literal 8 binary64) (*.f64 x (*.f64 x x)))) (fma.f64 y y (-.f64 (*.f64 (+.f64 x x) (+.f64 x x)) (*.f64 y (+.f64 x x)))))
(/.f64 (fma.f64 #s(literal 8 binary64) (*.f64 x (*.f64 x x)) (*.f64 y (*.f64 y y))) (fma.f64 (+.f64 x x) (+.f64 x x) (-.f64 (*.f64 y y) (*.f64 (+.f64 x x) y))))
(/.f64 (-.f64 (*.f64 (*.f64 (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (+.f64 y #s(literal 0 binary64)))) (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (+.f64 y #s(literal 0 binary64)))) (*.f64 (*.f64 (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64))) (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64)))) (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64))))) (fma.f64 (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (fma.f64 (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64))) (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64))) (*.f64 (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64)))))))
(/.f64 (-.f64 (*.f64 y y) (*.f64 (+.f64 x x) (+.f64 x x))) (-.f64 y (+.f64 x x)))
(/.f64 (-.f64 (*.f64 (+.f64 x x) (+.f64 x x)) (*.f64 y y)) (-.f64 (+.f64 x x) y))
(/.f64 (-.f64 (*.f64 (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (+.f64 y #s(literal 0 binary64)))) (*.f64 (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64))) (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64))))) (fma.f64 (+.f64 x y) (/.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64))) (/.f64 (*.f64 x x) (+.f64 y #s(literal 0 binary64)))))
(/.f64 (*.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) #s(literal 1 binary64)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))
(/.f64 (*.f64 (fma.f64 (*.f64 x (*.f64 x x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y)))))) (/.f64 #s(literal 1 binary64) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))) (fma.f64 (+.f64 x y) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (*.f64 x (*.f64 x x)) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y)))))))
(/.f64 (*.f64 (*.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))) (/.f64 #s(literal 1 binary64) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64))))
(/.f64 (*.f64 (*.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 y #s(literal 0 binary64)))) (fma.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (*.f64 x x) (fma.f64 x x (*.f64 (+.f64 x y) (+.f64 x y))))))
(/.f64 (*.f64 (*.f64 (fma.f64 x x (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 y #s(literal 0 binary64)))) (fma.f64 x x (*.f64 (+.f64 x y) (+.f64 x y))))
(pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 x (+.f64 x y))) #s(literal -1 binary64))
(pow.f64 (/.f64 (/.f64 #s(literal 1 binary64) (+.f64 x (+.f64 x y))) #s(literal 1 binary64)) #s(literal -1 binary64))
(pow.f64 (/.f64 (neg.f64 y) (*.f64 (+.f64 x (+.f64 x y)) (neg.f64 y))) #s(literal -1 binary64))
(*.f64 (+.f64 x (+.f64 x y)) (*.f64 (+.f64 y #s(literal 0 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 y #s(literal 0 binary64)))))
(*.f64 (+.f64 x (+.f64 x y)) (/.f64 (+.f64 y #s(literal 0 binary64)) (+.f64 y #s(literal 0 binary64))))
(*.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (/.f64 #s(literal 1 binary64) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))))
(*.f64 (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)) (*.f64 (+.f64 x (+.f64 x y)) (/.f64 #s(literal 1 binary64) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))))
(*.f64 (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)) (/.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))))
(*.f64 (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 y #s(literal 0 binary64))))
(*.f64 (neg.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))) (/.f64 #s(literal 1 binary64) (neg.f64 (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))))
(*.f64 (*.f64 (+.f64 x (+.f64 x y)) (+.f64 (neg.f64 y) #s(literal 0 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 (neg.f64 y) #s(literal 0 binary64))))
(*.f64 #s(literal 1 binary64) (+.f64 x (+.f64 x y)))
(*.f64 (/.f64 #s(literal 1 binary64) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))))
(*.f64 (/.f64 #s(literal 1 binary64) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (pow.f64 (/.f64 #s(literal 1 binary64) (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))) #s(literal -1 binary64)))
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 y #s(literal 0 binary64))) (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64))))
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 y #s(literal 0 binary64))) (pow.f64 (/.f64 #s(literal 1 binary64) (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64)))) #s(literal -1 binary64)))
(*.f64 (*.f64 (+.f64 x (+.f64 x y)) (neg.f64 y)) (/.f64 #s(literal 1 binary64) (neg.f64 y)))
(*.f64 (/.f64 (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64)))) (+.f64 x (+.f64 x y)))
(*.f64 (/.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (fma.f64 (*.f64 x (*.f64 x x)) (*.f64 #s(literal -1 binary64) (*.f64 y (*.f64 y y))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y)))))) (fma.f64 (neg.f64 (*.f64 x y)) (-.f64 (neg.f64 (*.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))))))
(*.f64 (/.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)) (-.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (neg.f64 (*.f64 x y))))) (-.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (neg.f64 (*.f64 x y))))
(*.f64 (/.f64 (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64))) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))) (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))))
(*.f64 (pow.f64 (/.f64 (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)) (fma.f64 (*.f64 x (*.f64 x x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (fma.f64 (+.f64 x y) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (*.f64 x (*.f64 x x)) (-.f64 (*.f64 x (*.f64 x x)) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))))))))
(*.f64 (pow.f64 (/.f64 (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)) (*.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))))
(*.f64 (pow.f64 (/.f64 (+.f64 y #s(literal 0 binary64)) (*.f64 (*.f64 (+.f64 x (+.f64 x y)) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (+.f64 x (+.f64 x y)) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (fma.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (*.f64 x x) (fma.f64 x x (*.f64 (+.f64 x y) (+.f64 x y)))))))
(*.f64 (pow.f64 (/.f64 (+.f64 y #s(literal 0 binary64)) (*.f64 (fma.f64 x x (*.f64 (+.f64 x y) (+.f64 x y))) (*.f64 (+.f64 x (+.f64 x y)) (+.f64 y #s(literal 0 binary64))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (fma.f64 x x (*.f64 (+.f64 x y) (+.f64 x y)))))
(+.f64 x y)
(+.f64 y x)
(+.f64 (*.f64 x (/.f64 x (-.f64 x y))) (neg.f64 (/.f64 (*.f64 y y) (-.f64 x y))))
(exp.f64 (log.f64 (+.f64 x y)))
(exp.f64 (*.f64 (neg.f64 (log.f64 (+.f64 x y))) #s(literal -1 binary64)))
(exp.f64 (*.f64 (log.f64 (+.f64 x y)) #s(literal 1 binary64)))
(-.f64 (*.f64 x (/.f64 x (-.f64 x y))) (/.f64 (*.f64 y y) (-.f64 x y)))
(-.f64 (/.f64 (*.f64 y y) (-.f64 y x)) (/.f64 (*.f64 x x) (-.f64 y x)))
(fma.f64 x (/.f64 x (-.f64 x y)) (neg.f64 (/.f64 (*.f64 y y) (-.f64 x y))))
(fma.f64 (*.f64 x x) (/.f64 #s(literal 1 binary64) (-.f64 x y)) (neg.f64 (/.f64 (*.f64 y y) (-.f64 x y))))
(fma.f64 (/.f64 (*.f64 x x) (*.f64 (+.f64 x y) (-.f64 x y))) (+.f64 x y) (neg.f64 (/.f64 (*.f64 y y) (-.f64 x y))))
(fma.f64 (/.f64 (*.f64 x x) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))) (fma.f64 x x (*.f64 y (+.f64 x y))) (neg.f64 (/.f64 (*.f64 y y) (-.f64 x y))))
(neg.f64 (neg.f64 (+.f64 x y)))
(/.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (fma.f64 y (-.f64 y x) (*.f64 x x)))
(/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (-.f64 x y))
(/.f64 (neg.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) (neg.f64 (fma.f64 y (-.f64 y x) (*.f64 x x))))
(/.f64 (neg.f64 (*.f64 (+.f64 x y) (-.f64 x y))) (neg.f64 (-.f64 x y)))
(/.f64 (fma.f64 (*.f64 x (*.f64 x x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))) (*.f64 (*.f64 y (*.f64 y y)) (*.f64 (*.f64 y (*.f64 y y)) (*.f64 y (*.f64 y y))))) (*.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (fma.f64 x (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) (*.f64 (*.f64 y (*.f64 y y)) (-.f64 (*.f64 y (*.f64 y y)) (*.f64 x (*.f64 x x)))))))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 x y)))
(/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) (+.f64 x y)) #s(literal 1 binary64)))
(/.f64 #s(literal 1 binary64) (/.f64 (-.f64 y x) (*.f64 (+.f64 x y) (-.f64 y x))))
(/.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 (log.f64 (+.f64 x y)))))
(/.f64 (*.f64 (+.f64 x y) (-.f64 y x)) (-.f64 y x))
(/.f64 (*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))) (*.f64 (-.f64 x y) (fma.f64 x (*.f64 x (*.f64 x x)) (*.f64 (*.f64 y y) (fma.f64 x x (*.f64 y y))))))
(/.f64 (*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))) (*.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))))
(/.f64 (*.f64 (fma.f64 x x (*.f64 y y)) (*.f64 (+.f64 x y) (-.f64 x y))) (*.f64 (-.f64 x y) (fma.f64 x x (*.f64 y y))))
(/.f64 #s(literal -1 binary64) (neg.f64 (/.f64 #s(literal 1 binary64) (+.f64 x y))))
(/.f64 (-.f64 (*.f64 (*.f64 x x) (-.f64 x y)) (*.f64 (-.f64 x y) (*.f64 y y))) (*.f64 (-.f64 x y) (-.f64 x y)))
(/.f64 (*.f64 (*.f64 (fma.f64 x x (*.f64 y y)) (*.f64 (+.f64 x y) (-.f64 x y))) #s(literal 1 binary64)) (*.f64 (fma.f64 x x (*.f64 y y)) (-.f64 x y)))
(/.f64 (*.f64 (fma.f64 (*.f64 x (*.f64 x x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))) (*.f64 (*.f64 y (*.f64 y y)) (*.f64 (*.f64 y (*.f64 y y)) (*.f64 y (*.f64 y y))))) #s(literal 1 binary64)) (*.f64 (fma.f64 x (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) (*.f64 (*.f64 y (*.f64 y y)) (-.f64 (*.f64 y (*.f64 y y)) (*.f64 x (*.f64 x x))))) (fma.f64 y (-.f64 y x) (*.f64 x x))))
(/.f64 (*.f64 (*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))) #s(literal 1 binary64)) (*.f64 (fma.f64 x (*.f64 x (*.f64 x x)) (*.f64 (*.f64 y y) (fma.f64 x x (*.f64 y y)))) (-.f64 x y)))
(/.f64 (*.f64 (*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))) #s(literal 1 binary64)) (*.f64 (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y)) (fma.f64 y (-.f64 y x) (*.f64 x x))))
(/.f64 (*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) #s(literal 1 binary64)) (fma.f64 y (-.f64 y x) (*.f64 x x)))
(/.f64 (neg.f64 (neg.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))))) (neg.f64 (neg.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)))))
(/.f64 (neg.f64 (neg.f64 (*.f64 (+.f64 x y) (-.f64 x y)))) (neg.f64 (neg.f64 (-.f64 x y))))
(/.f64 (neg.f64 (*.f64 (+.f64 x y) (-.f64 y x))) (neg.f64 (-.f64 y x)))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))) (/.f64 #s(literal 1 binary64) (*.f64 (-.f64 x y) (*.f64 (-.f64 x y) (-.f64 x y))))) (*.f64 (*.f64 (*.f64 y (*.f64 y y)) (*.f64 y (*.f64 y y))) (/.f64 #s(literal 1 binary64) (*.f64 (-.f64 x y) (*.f64 (-.f64 x y) (-.f64 x y)))))) (fma.f64 (*.f64 x (/.f64 x (-.f64 x y))) (*.f64 x (/.f64 x (-.f64 x y))) (fma.f64 (/.f64 (*.f64 y y) (-.f64 x y)) (/.f64 (*.f64 y y) (-.f64 x y)) (*.f64 (*.f64 x (/.f64 x (-.f64 x y))) (/.f64 (*.f64 y y) (-.f64 x y))))))
(/.f64 (-.f64 (*.f64 (*.f64 x (/.f64 x (-.f64 x y))) (*.f64 x (/.f64 x (-.f64 x y)))) (*.f64 (/.f64 (*.f64 y y) (-.f64 x y)) (/.f64 (*.f64 y y) (-.f64 x y)))) (fma.f64 x (/.f64 x (-.f64 x y)) (/.f64 (*.f64 y y) (-.f64 x y))))
(/.f64 (*.f64 (fma.f64 (*.f64 x (*.f64 x x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))) (*.f64 (*.f64 y (*.f64 y y)) (*.f64 (*.f64 y (*.f64 y y)) (*.f64 y (*.f64 y y))))) (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x)))) (fma.f64 x (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) (*.f64 (*.f64 y (*.f64 y y)) (-.f64 (*.f64 y (*.f64 y y)) (*.f64 x (*.f64 x x))))))
(/.f64 (*.f64 (*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))) (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x)))) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y)))
(/.f64 (*.f64 (*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))) (/.f64 #s(literal 1 binary64) (-.f64 x y))) (fma.f64 x (*.f64 x (*.f64 x x)) (*.f64 (*.f64 y y) (fma.f64 x x (*.f64 y y)))))
(/.f64 (*.f64 (*.f64 (fma.f64 x x (*.f64 y y)) (*.f64 (+.f64 x y) (-.f64 x y))) (/.f64 #s(literal 1 binary64) (-.f64 x y))) (fma.f64 x x (*.f64 y y)))
(/.f64 (exp.f64 (log.f64 (*.f64 (+.f64 x y) (-.f64 x y)))) (exp.f64 (log.f64 (-.f64 x y))))
(/.f64 (exp.f64 (log.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))))) (exp.f64 (log.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)))))
(/.f64 (exp.f64 (log.f64 (neg.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))))) (exp.f64 (log.f64 (neg.f64 (fma.f64 y (-.f64 y x) (*.f64 x x))))))
(/.f64 (exp.f64 (log.f64 (neg.f64 (*.f64 (+.f64 x y) (-.f64 x y))))) (exp.f64 (log.f64 (neg.f64 (-.f64 x y)))))
(/.f64 (exp.f64 (log.f64 (*.f64 (+.f64 x y) (-.f64 y x)))) (exp.f64 (log.f64 (-.f64 y x))))
(pow.f64 (+.f64 x y) #s(literal 1 binary64))
(pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 x y)) #s(literal -1 binary64))
(pow.f64 (/.f64 (/.f64 #s(literal 1 binary64) (+.f64 x y)) #s(literal 1 binary64)) #s(literal -1 binary64))
(pow.f64 (/.f64 (-.f64 y x) (*.f64 (+.f64 x y) (-.f64 y x))) #s(literal -1 binary64))
(*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (/.f64 #s(literal 1 binary64) (-.f64 x y))))
(*.f64 (+.f64 x y) (/.f64 (-.f64 x y) (-.f64 x y)))
(*.f64 (+.f64 x y) (pow.f64 (*.f64 (-.f64 x y) (/.f64 #s(literal 1 binary64) (-.f64 x y))) #s(literal 1 binary64)))
(*.f64 (+.f64 x y) (pow.f64 (/.f64 (-.f64 x y) (-.f64 x y)) #s(literal 1 binary64)))
(*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x))))
(*.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (*.f64 (+.f64 x y) (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x)))))
(*.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (/.f64 (+.f64 x y) (fma.f64 y (-.f64 y x) (*.f64 x x))))
(*.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (/.f64 #s(literal 1 binary64) (-.f64 x y)))
(*.f64 (neg.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) (/.f64 #s(literal 1 binary64) (neg.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)))))
(*.f64 (neg.f64 (*.f64 (+.f64 x y) (-.f64 x y))) (/.f64 #s(literal 1 binary64) (neg.f64 (-.f64 x y))))
(*.f64 #s(literal 1 binary64) (+.f64 x y))
(*.f64 (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x))) (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))))
(*.f64 (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x))) (pow.f64 (/.f64 #s(literal 1 binary64) (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) #s(literal -1 binary64)))
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 x y)) (*.f64 (+.f64 x y) (-.f64 x y)))
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 x y)) (pow.f64 (/.f64 #s(literal 1 binary64) (*.f64 (+.f64 x y) (-.f64 x y))) #s(literal -1 binary64)))
(*.f64 (*.f64 (+.f64 x y) (-.f64 y x)) (/.f64 #s(literal 1 binary64) (-.f64 y x)))
(*.f64 (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (*.f64 (+.f64 x y) (-.f64 x y))) (+.f64 x y))
(*.f64 (/.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (fma.f64 (*.f64 y (*.f64 y y)) (*.f64 (*.f64 (-.f64 y x) (-.f64 y x)) (-.f64 y x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))))) (fma.f64 (*.f64 y (-.f64 y x)) (-.f64 (*.f64 y (-.f64 y x)) (*.f64 x x)) (*.f64 x (*.f64 x (*.f64 x x)))))
(*.f64 (/.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (-.f64 (*.f64 x x) (*.f64 y (-.f64 y x))))) (-.f64 (*.f64 x x) (*.f64 y (-.f64 y x))))
(*.f64 (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))) (fma.f64 x x (*.f64 y (+.f64 x y))))
(*.f64 (pow.f64 (/.f64 (-.f64 x y) (*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y)))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (fma.f64 x (*.f64 x (*.f64 x x)) (*.f64 (*.f64 y y) (fma.f64 x x (*.f64 y y))))))
(*.f64 (pow.f64 (/.f64 (-.f64 x y) (*.f64 (fma.f64 x x (*.f64 y y)) (*.f64 (+.f64 x y) (-.f64 x y)))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (fma.f64 x x (*.f64 y y))))
(*.f64 (pow.f64 (/.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (fma.f64 (*.f64 x (*.f64 x x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))) (*.f64 (*.f64 y (*.f64 y y)) (*.f64 (*.f64 y (*.f64 y y)) (*.f64 y (*.f64 y y)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (fma.f64 x (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x x)) (*.f64 (*.f64 y (*.f64 y y)) (-.f64 (*.f64 y (*.f64 y y)) (*.f64 x (*.f64 x x)))))))
(*.f64 (pow.f64 (/.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y)))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))))
(*.f64 (pow.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x))) #s(literal 1 binary64)))
(*.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x))) #s(literal 1 binary64)) (pow.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) #s(literal 1 binary64)))
(*.f64 (pow.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) #s(literal 1 binary64)) (pow.f64 (*.f64 (+.f64 x y) (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x)))) #s(literal 1 binary64)))
(*.f64 (pow.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) #s(literal 1 binary64)) (pow.f64 (/.f64 (+.f64 x y) (fma.f64 y (-.f64 y x) (*.f64 x x))) #s(literal 1 binary64)))
(*.f64 (pow.f64 (*.f64 (+.f64 x y) (-.f64 x y)) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 x y)) #s(literal 1 binary64)))
(*.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 x y)) #s(literal 1 binary64)) (pow.f64 (*.f64 (+.f64 x y) (-.f64 x y)) #s(literal 1 binary64)))
(*.f64 (pow.f64 (neg.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (neg.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)))) #s(literal 1 binary64)))
(*.f64 (pow.f64 (neg.f64 (*.f64 (+.f64 x y) (-.f64 x y))) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (neg.f64 (-.f64 x y))) #s(literal 1 binary64)))
(*.f64 (pow.f64 (*.f64 (+.f64 x y) (-.f64 y x)) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 y x)) #s(literal 1 binary64)))
(*.f64 (pow.f64 (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (*.f64 (+.f64 x y) (-.f64 x y))) #s(literal 1 binary64)) (+.f64 x y))
(*.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (fma.f64 (*.f64 y (*.f64 y y)) (*.f64 (*.f64 (-.f64 y x) (-.f64 y x)) (-.f64 y x)) (*.f64 (*.f64 x (*.f64 x x)) (*.f64 x (*.f64 x x))))) #s(literal 1 binary64)) (pow.f64 (fma.f64 (*.f64 y (-.f64 y x)) (-.f64 (*.f64 y (-.f64 y x)) (*.f64 x x)) (*.f64 x (*.f64 x (*.f64 x x)))) #s(literal 1 binary64)))
(*.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (*.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (-.f64 (*.f64 x x) (*.f64 y (-.f64 y x))))) #s(literal 1 binary64)) (pow.f64 (-.f64 (*.f64 x x) (*.f64 y (-.f64 y x))) #s(literal 1 binary64)))
(*.f64 (pow.f64 (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (-.f64 x y))) #s(literal 1 binary64)) (pow.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) #s(literal 1 binary64)))
(*.f64 (exp.f64 (log.f64 (*.f64 (+.f64 x y) (-.f64 x y)))) (exp.f64 (neg.f64 (log.f64 (-.f64 x y)))))
(*.f64 (exp.f64 (log.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))))) (exp.f64 (neg.f64 (log.f64 (fma.f64 y (-.f64 y x) (*.f64 x x))))))

simplify295.0ms (10.4%)

Memory
16.2MiB live, 422.6MiB allocated
Algorithm
egg-herbie
Rules
8 404×accelerator-lowering-fma.f32
8 404×accelerator-lowering-fma.f64
2 172×*-lowering-*.f32
2 172×*-lowering-*.f64
1 692×/-lowering-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035162
1102162
2231162
3691162
41802162
52753162
63810162
74278162
84562162
94657162
106558162
08343144
Stop Event
iter limit
node limit
Counts
48 → 48
Calls
Call 1
Inputs
y
(+ y (* 2 x))
(+ y (* 2 x))
(+ y (* 2 x))
(* 2 x)
(* x (+ 2 (/ y x)))
(* x (+ 2 (/ y x)))
(* x (+ 2 (/ y x)))
(* 2 x)
(* -1 (* x (- (* -1 (/ y x)) 2)))
(* -1 (* x (- (* -1 (/ y x)) 2)))
(* -1 (* x (- (* -1 (/ y x)) 2)))
(* 2 x)
(+ y (* 2 x))
(+ y (* 2 x))
(+ y (* 2 x))
y
(* y (+ 1 (* 2 (/ x y))))
(* y (+ 1 (* 2 (/ x y))))
(* y (+ 1 (* 2 (/ x y))))
y
(* -1 (* y (- (* -2 (/ x y)) 1)))
(* -1 (* y (- (* -2 (/ x y)) 1)))
(* -1 (* y (- (* -2 (/ x y)) 1)))
y
(+ x y)
(+ x y)
(+ x y)
x
(* x (+ 1 (/ y x)))
(* x (+ 1 (/ y x)))
(* x (+ 1 (/ y x)))
x
(* -1 (* x (- (* -1 (/ y x)) 1)))
(* -1 (* x (- (* -1 (/ y x)) 1)))
(* -1 (* x (- (* -1 (/ y x)) 1)))
x
(+ x y)
(+ x y)
(+ x y)
y
(* y (+ 1 (/ x y)))
(* y (+ 1 (/ x y)))
(* y (+ 1 (/ x y)))
y
(* -1 (* y (- (* -1 (/ x y)) 1)))
(* -1 (* y (- (* -1 (/ x y)) 1)))
(* -1 (* y (- (* -1 (/ x y)) 1)))
Outputs
y
(+ y (* 2 x))
(fma.f64 x #s(literal 2 binary64) y)
(+ y (* 2 x))
(fma.f64 x #s(literal 2 binary64) y)
(+ y (* 2 x))
(fma.f64 x #s(literal 2 binary64) y)
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* x (+ 2 (/ y x)))
(fma.f64 x #s(literal 2 binary64) y)
(* x (+ 2 (/ y x)))
(fma.f64 x #s(literal 2 binary64) y)
(* x (+ 2 (/ y x)))
(fma.f64 x #s(literal 2 binary64) y)
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* -1 (* x (- (* -1 (/ y x)) 2)))
(fma.f64 x #s(literal 2 binary64) y)
(* -1 (* x (- (* -1 (/ y x)) 2)))
(fma.f64 x #s(literal 2 binary64) y)
(* -1 (* x (- (* -1 (/ y x)) 2)))
(fma.f64 x #s(literal 2 binary64) y)
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(+ y (* 2 x))
(fma.f64 x #s(literal 2 binary64) y)
(+ y (* 2 x))
(fma.f64 x #s(literal 2 binary64) y)
(+ y (* 2 x))
(fma.f64 x #s(literal 2 binary64) y)
y
(* y (+ 1 (* 2 (/ x y))))
(fma.f64 x #s(literal 2 binary64) y)
(* y (+ 1 (* 2 (/ x y))))
(fma.f64 x #s(literal 2 binary64) y)
(* y (+ 1 (* 2 (/ x y))))
(fma.f64 x #s(literal 2 binary64) y)
y
(* -1 (* y (- (* -2 (/ x y)) 1)))
(fma.f64 x #s(literal 2 binary64) y)
(* -1 (* y (- (* -2 (/ x y)) 1)))
(fma.f64 x #s(literal 2 binary64) y)
(* -1 (* y (- (* -2 (/ x y)) 1)))
(fma.f64 x #s(literal 2 binary64) y)
y
(+ x y)
(+.f64 y x)
(+ x y)
(+.f64 y x)
(+ x y)
(+.f64 y x)
x
(* x (+ 1 (/ y x)))
(+.f64 y x)
(* x (+ 1 (/ y x)))
(+.f64 y x)
(* x (+ 1 (/ y x)))
(+.f64 y x)
x
(* -1 (* x (- (* -1 (/ y x)) 1)))
(+.f64 y x)
(* -1 (* x (- (* -1 (/ y x)) 1)))
(+.f64 y x)
(* -1 (* x (- (* -1 (/ y x)) 1)))
(+.f64 y x)
x
(+ x y)
(+.f64 y x)
(+ x y)
(+.f64 y x)
(+ x y)
(+.f64 y x)
y
(* y (+ 1 (/ x y)))
(+.f64 y x)
(* y (+ 1 (/ x y)))
(+.f64 y x)
(* y (+ 1 (/ x y)))
(+.f64 y x)
y
(* -1 (* y (- (* -1 (/ x y)) 1)))
(+.f64 y x)
(* -1 (* y (- (* -1 (/ x y)) 1)))
(+.f64 y x)
(* -1 (* y (- (* -1 (/ x y)) 1)))
(+.f64 y x)

eval29.0ms (1%)

Memory
-1.2MiB live, 74.1MiB allocated
Compiler

Compiled 6 209 to 608 computations (90.2% saved)

prune29.0ms (1%)

Memory
-4.7MiB live, 75.6MiB allocated
Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New2494253
Fresh000
Picked101
Done000
Total2504254
Accuracy
100.0%
Counts
254 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x #s(literal 2 binary64) y)
55.1%
(+.f64 y x)
54.7%
(+.f64 x x)
46.8%
y
Compiler

Compiled 19 to 12 computations (36.8% saved)

simplify4.0ms (0.1%)

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

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(fma.f64 x #s(literal 2 binary64) y)
cost-diff0
(+.f64 y x)
cost-diff0
(+.f64 x x)
Rules
14×+-lowering-+.f64
14×+-lowering-+.f32
*-lowering-*.f32
*-lowering-*.f64
accelerator-lowering-fma.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0718
11018
21218
01217
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
y
(+ x x)
x
(+ y x)
y
x
(+ (* x 2) y)
x
2
y
Outputs
y
(+ x x)
(+.f64 x x)
x
(+ y x)
(+.f64 y x)
y
x
(+ (* x 2) y)
(+.f64 y (+.f64 x x))
x
2
#s(literal 2 binary64)
y

localize22.0ms (0.8%)

Memory
-18.3MiB live, 60.4MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(fma.f64 x #s(literal 2 binary64) y)
accuracy100.0%
(+.f64 y x)
accuracy100.0%
(+.f64 x x)
Samples
13.0ms256×0valid
Compiler

Compiled 19 to 9 computations (52.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-add: 4.0ms (72.9% of total)
ival-mult: 2.0ms (36.5% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series1.0ms (0%)

Memory
3.1MiB live, 3.1MiB allocated
Counts
3 → 60
Calls
Call 1
Inputs
#<alt (+ x x)>
#<alt (+ y x)>
#<alt (+ (* x 2) y)>
Outputs
#<alt (* 2 x)>
#<alt (* 2 x)>
#<alt (* 2 x)>
#<alt (* 2 x)>
#<alt (* 2 x)>
#<alt (* 2 x)>
#<alt (* 2 x)>
#<alt (* 2 x)>
#<alt (* 2 x)>
#<alt (* 2 x)>
#<alt (* 2 x)>
#<alt (* 2 x)>
#<alt x>
#<alt (+ x y)>
#<alt (+ x y)>
#<alt (+ x y)>
#<alt y>
#<alt (* y (+ 1 (/ x y)))>
#<alt (* y (+ 1 (/ x y)))>
#<alt (* y (+ 1 (/ x y)))>
#<alt y>
#<alt (* -1 (* y (- (* -1 (/ x y)) 1)))>
#<alt (* -1 (* y (- (* -1 (/ x y)) 1)))>
#<alt (* -1 (* y (- (* -1 (/ x y)) 1)))>
#<alt y>
#<alt (+ x y)>
#<alt (+ x y)>
#<alt (+ x y)>
#<alt x>
#<alt (* x (+ 1 (/ y x)))>
#<alt (* x (+ 1 (/ y x)))>
#<alt (* x (+ 1 (/ y x)))>
#<alt x>
#<alt (* -1 (* x (- (* -1 (/ y x)) 1)))>
#<alt (* -1 (* x (- (* -1 (/ y x)) 1)))>
#<alt (* -1 (* x (- (* -1 (/ y x)) 1)))>
#<alt y>
#<alt (+ y (* 2 x))>
#<alt (+ y (* 2 x))>
#<alt (+ y (* 2 x))>
#<alt (* 2 x)>
#<alt (* x (+ 2 (/ y x)))>
#<alt (* x (+ 2 (/ y x)))>
#<alt (* x (+ 2 (/ y x)))>
#<alt (* 2 x)>
#<alt (* -1 (* x (- (* -1 (/ y x)) 2)))>
#<alt (* -1 (* x (- (* -1 (/ y x)) 2)))>
#<alt (* -1 (* x (- (* -1 (/ y x)) 2)))>
#<alt (* 2 x)>
#<alt (+ y (* 2 x))>
#<alt (+ y (* 2 x))>
#<alt (+ y (* 2 x))>
#<alt y>
#<alt (* y (+ 1 (* 2 (/ x y))))>
#<alt (* y (+ 1 (* 2 (/ x y))))>
#<alt (* y (+ 1 (* 2 (/ x y))))>
#<alt y>
#<alt (* -1 (* y (- (* -2 (/ x y)) 1)))>
#<alt (* -1 (* y (- (* -2 (/ x y)) 1)))>
#<alt (* -1 (* y (- (* -2 (/ x y)) 1)))>
Calls

15 calls:

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

rewrite54.0ms (1.9%)

Memory
30.0MiB live, 111.1MiB allocated
Algorithm
batch-egg-rewrite
Rules
458×accelerator-lowering-fma.f32
458×accelerator-lowering-fma.f64
160×*-lowering-*.f32
160×*-lowering-*.f64
140×/-lowering-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
13911
038210
Stop Event
iter limit
iter limit
iter limit
unsound
Counts
3 → 79
Calls
Call 1
Inputs
(+ x x)
(+ y x)
(+ (* x 2) y)
Outputs
(+.f64 x x)
(+.f64 (*.f64 (+.f64 x x) x) (*.f64 (+.f64 x x) x))
(+.f64 (*.f64 x (+.f64 x x)) (*.f64 x (+.f64 x x)))
(exp.f64 (*.f64 (log.f64 (+.f64 x x)) #s(literal 3 binary64)))
(-.f64 (/.f64 (*.f64 x x) #s(literal 0 binary64)) (/.f64 (*.f64 x x) #s(literal 0 binary64)))
(fma.f64 x (+.f64 x x) (*.f64 x (+.f64 x x)))
(fma.f64 (+.f64 x x) x (*.f64 (+.f64 x x) x))
(/.f64 (*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x)) (fma.f64 x x #s(literal 0 binary64)))
(/.f64 #s(literal 0 binary64) #s(literal 0 binary64))
(/.f64 (pow.f64 (*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x)) #s(literal 3 binary64)) (pow.f64 (fma.f64 x x #s(literal 0 binary64)) #s(literal 3 binary64)))
(/.f64 (*.f64 (*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x)) (*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x))) (*.f64 (fma.f64 x x #s(literal 0 binary64)) (fma.f64 x x #s(literal 0 binary64))))
(/.f64 (*.f64 (*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x)) #s(literal 0 binary64)) (*.f64 (fma.f64 x x #s(literal 0 binary64)) #s(literal 0 binary64)))
(/.f64 (*.f64 #s(literal 0 binary64) (*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x))) (*.f64 #s(literal 0 binary64) (fma.f64 x x #s(literal 0 binary64))))
(/.f64 (neg.f64 (*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x))) (neg.f64 (fma.f64 x x #s(literal 0 binary64))))
(/.f64 #s(literal 1 binary64) (+.f64 x x))
(/.f64 #s(literal 1 binary64) (/.f64 (fma.f64 x x #s(literal 0 binary64)) (*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x))))
(/.f64 (*.f64 (+.f64 x x) (*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x))) (fma.f64 x x #s(literal 0 binary64)))
(/.f64 (*.f64 (*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x)) (+.f64 x x)) (fma.f64 x x #s(literal 0 binary64)))
(/.f64 (*.f64 #s(literal 0 binary64) (+.f64 x x)) #s(literal 0 binary64))
(pow.f64 (+.f64 x x) #s(literal 2 binary64))
(pow.f64 (+.f64 x x) #s(literal 3 binary64))
(*.f64 x #s(literal 2 binary64))
(*.f64 x (*.f64 #s(literal 2 binary64) (+.f64 x x)))
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) (*.f64 x (+.f64 x x)))
(*.f64 (+.f64 x x) (+.f64 x x))
(*.f64 (*.f64 x (*.f64 x x)) #s(literal 8 binary64))
(*.f64 (*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x)) (/.f64 #s(literal 1 binary64) (fma.f64 x x #s(literal 0 binary64))))
(*.f64 (*.f64 x x) #s(literal 4 binary64))
(*.f64 #s(literal 0 binary64) (/.f64 #s(literal 1 binary64) #s(literal 0 binary64)))
(*.f64 #s(literal 8 binary64) (*.f64 x (*.f64 x x)))
(*.f64 (pow.f64 (+.f64 x x) #s(literal 3/2 binary64)) (pow.f64 (+.f64 x x) #s(literal 3/2 binary64)))
(*.f64 #s(literal 4 binary64) (*.f64 x x))
(*.f64 (*.f64 (+.f64 x x) x) #s(literal 2 binary64))
(*.f64 (*.f64 (+.f64 x x) #s(literal 2 binary64)) x)
(+.f64 x y)
(+.f64 y x)
(-.f64 (/.f64 (*.f64 y y) (-.f64 y x)) (/.f64 (*.f64 x x) (-.f64 y x)))
(/.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (fma.f64 x (-.f64 x y) (*.f64 y y)))
(/.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (fma.f64 x x (-.f64 (*.f64 y y) (*.f64 x y))))
(/.f64 (*.f64 (+.f64 x y) (-.f64 y x)) (-.f64 y x))
(/.f64 (neg.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) (neg.f64 (fma.f64 x (-.f64 x y) (*.f64 y y))))
(/.f64 (neg.f64 (*.f64 (+.f64 x y) (-.f64 y x))) (neg.f64 (-.f64 y x)))
(/.f64 #s(literal 1 binary64) (/.f64 (fma.f64 x (-.f64 x y) (*.f64 y y)) (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))))
(/.f64 #s(literal 1 binary64) (/.f64 (-.f64 y x) (*.f64 (+.f64 x y) (-.f64 y x))))
(/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (-.f64 x y))
(*.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (/.f64 #s(literal 1 binary64) (fma.f64 x (-.f64 x y) (*.f64 y y))))
(*.f64 (*.f64 (+.f64 x y) (-.f64 y x)) (/.f64 #s(literal 1 binary64) (-.f64 y x)))
(+.f64 x (+.f64 x y))
(+.f64 y (+.f64 x x))
(+.f64 (+.f64 x y) x)
(+.f64 (+.f64 x x) y)
(-.f64 (/.f64 (+.f64 x x) (+.f64 x (-.f64 x y))) (/.f64 (*.f64 y y) (+.f64 x (-.f64 x y))))
(fma.f64 x #s(literal 2 binary64) y)
(fma.f64 x (*.f64 #s(literal 2 binary64) (+.f64 x x)) y)
(fma.f64 #s(literal 2 binary64) x y)
(fma.f64 #s(literal 2 binary64) (*.f64 x (+.f64 x x)) y)
(fma.f64 (+.f64 x x) (+.f64 x x) y)
(fma.f64 (*.f64 x (*.f64 x x)) #s(literal 8 binary64) y)
(fma.f64 (*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x)) (/.f64 #s(literal 1 binary64) (fma.f64 x x #s(literal 0 binary64))) y)
(fma.f64 (*.f64 x x) #s(literal 4 binary64) y)
(fma.f64 #s(literal 0 binary64) (/.f64 #s(literal 1 binary64) #s(literal 0 binary64)) y)
(fma.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))) (/.f64 #s(literal 1 binary64) (fma.f64 x (-.f64 x y) (*.f64 y y))) x)
(fma.f64 (*.f64 (+.f64 x y) (-.f64 y x)) (/.f64 #s(literal 1 binary64) (-.f64 y x)) x)
(fma.f64 #s(literal 8 binary64) (*.f64 x (*.f64 x x)) y)
(fma.f64 (pow.f64 (+.f64 x x) #s(literal 3/2 binary64)) (pow.f64 (+.f64 x x) #s(literal 3/2 binary64)) y)
(fma.f64 #s(literal 4 binary64) (*.f64 x x) y)
(fma.f64 (*.f64 (+.f64 x x) x) #s(literal 2 binary64) y)
(fma.f64 (*.f64 (+.f64 x x) #s(literal 2 binary64)) x y)
(/.f64 (fma.f64 y (*.f64 y y) (+.f64 x x)) (fma.f64 y (-.f64 y (+.f64 x x)) (+.f64 x x)))
(/.f64 (fma.f64 y (*.f64 y y) (+.f64 x x)) (fma.f64 y y (-.f64 (+.f64 x x) (*.f64 y (+.f64 x x)))))
(/.f64 (-.f64 (+.f64 x x) (*.f64 y y)) (+.f64 x (-.f64 x y)))
(/.f64 (neg.f64 (fma.f64 y (*.f64 y y) (+.f64 x x))) (neg.f64 (fma.f64 y (-.f64 y (+.f64 x x)) (+.f64 x x))))
(/.f64 (neg.f64 (-.f64 (+.f64 x x) (*.f64 y y))) (neg.f64 (+.f64 x (-.f64 x y))))
(/.f64 #s(literal 1 binary64) (/.f64 (fma.f64 y (-.f64 y (+.f64 x x)) (+.f64 x x)) (fma.f64 y (*.f64 y y) (+.f64 x x))))
(/.f64 #s(literal 1 binary64) (/.f64 (+.f64 x (-.f64 x y)) (-.f64 (+.f64 x x) (*.f64 y y))))
(/.f64 (-.f64 (*.f64 y y) (+.f64 x x)) (-.f64 y (+.f64 x x)))
(*.f64 (fma.f64 y (*.f64 y y) (+.f64 x x)) (/.f64 #s(literal 1 binary64) (fma.f64 y (-.f64 y (+.f64 x x)) (+.f64 x x))))
(*.f64 (-.f64 (+.f64 x x) (*.f64 y y)) (/.f64 #s(literal 1 binary64) (+.f64 x (-.f64 x y))))

simplify263.0ms (9.3%)

Memory
-41.9MiB live, 497.1MiB allocated
Algorithm
egg-herbie
Rules
8 404×accelerator-lowering-fma.f32
8 404×accelerator-lowering-fma.f64
2 172×*-lowering-*.f32
2 172×*-lowering-*.f64
1 692×/-lowering-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035198
1102198
2231198
3686198
41794198
52754198
63814198
74280198
84570198
94654198
106527198
08311180
Stop Event
iter limit
node limit
Counts
60 → 60
Calls
Call 1
Inputs
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
x
(+ x y)
(+ x y)
(+ x y)
y
(* y (+ 1 (/ x y)))
(* y (+ 1 (/ x y)))
(* y (+ 1 (/ x y)))
y
(* -1 (* y (- (* -1 (/ x y)) 1)))
(* -1 (* y (- (* -1 (/ x y)) 1)))
(* -1 (* y (- (* -1 (/ x y)) 1)))
y
(+ x y)
(+ x y)
(+ x y)
x
(* x (+ 1 (/ y x)))
(* x (+ 1 (/ y x)))
(* x (+ 1 (/ y x)))
x
(* -1 (* x (- (* -1 (/ y x)) 1)))
(* -1 (* x (- (* -1 (/ y x)) 1)))
(* -1 (* x (- (* -1 (/ y x)) 1)))
y
(+ y (* 2 x))
(+ y (* 2 x))
(+ y (* 2 x))
(* 2 x)
(* x (+ 2 (/ y x)))
(* x (+ 2 (/ y x)))
(* x (+ 2 (/ y x)))
(* 2 x)
(* -1 (* x (- (* -1 (/ y x)) 2)))
(* -1 (* x (- (* -1 (/ y x)) 2)))
(* -1 (* x (- (* -1 (/ y x)) 2)))
(* 2 x)
(+ y (* 2 x))
(+ y (* 2 x))
(+ y (* 2 x))
y
(* y (+ 1 (* 2 (/ x y))))
(* y (+ 1 (* 2 (/ x y))))
(* y (+ 1 (* 2 (/ x y))))
y
(* -1 (* y (- (* -2 (/ x y)) 1)))
(* -1 (* y (- (* -2 (/ x y)) 1)))
(* -1 (* y (- (* -2 (/ x y)) 1)))
Outputs
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
x
(+ x y)
(+.f64 x y)
(+ x y)
(+.f64 x y)
(+ x y)
(+.f64 x y)
y
(* y (+ 1 (/ x y)))
(+.f64 x y)
(* y (+ 1 (/ x y)))
(+.f64 x y)
(* y (+ 1 (/ x y)))
(+.f64 x y)
y
(* -1 (* y (- (* -1 (/ x y)) 1)))
(+.f64 x y)
(* -1 (* y (- (* -1 (/ x y)) 1)))
(+.f64 x y)
(* -1 (* y (- (* -1 (/ x y)) 1)))
(+.f64 x y)
y
(+ x y)
(+.f64 x y)
(+ x y)
(+.f64 x y)
(+ x y)
(+.f64 x y)
x
(* x (+ 1 (/ y x)))
(+.f64 x y)
(* x (+ 1 (/ y x)))
(+.f64 x y)
(* x (+ 1 (/ y x)))
(+.f64 x y)
x
(* -1 (* x (- (* -1 (/ y x)) 1)))
(+.f64 x y)
(* -1 (* x (- (* -1 (/ y x)) 1)))
(+.f64 x y)
(* -1 (* x (- (* -1 (/ y x)) 1)))
(+.f64 x y)
y
(+ y (* 2 x))
(fma.f64 x #s(literal 2 binary64) y)
(+ y (* 2 x))
(fma.f64 x #s(literal 2 binary64) y)
(+ y (* 2 x))
(fma.f64 x #s(literal 2 binary64) y)
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* x (+ 2 (/ y x)))
(fma.f64 x #s(literal 2 binary64) y)
(* x (+ 2 (/ y x)))
(fma.f64 x #s(literal 2 binary64) y)
(* x (+ 2 (/ y x)))
(fma.f64 x #s(literal 2 binary64) y)
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* -1 (* x (- (* -1 (/ y x)) 2)))
(fma.f64 x #s(literal 2 binary64) y)
(* -1 (* x (- (* -1 (/ y x)) 2)))
(fma.f64 x #s(literal 2 binary64) y)
(* -1 (* x (- (* -1 (/ y x)) 2)))
(fma.f64 x #s(literal 2 binary64) y)
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(+ y (* 2 x))
(fma.f64 x #s(literal 2 binary64) y)
(+ y (* 2 x))
(fma.f64 x #s(literal 2 binary64) y)
(+ y (* 2 x))
(fma.f64 x #s(literal 2 binary64) y)
y
(* y (+ 1 (* 2 (/ x y))))
(fma.f64 x #s(literal 2 binary64) y)
(* y (+ 1 (* 2 (/ x y))))
(fma.f64 x #s(literal 2 binary64) y)
(* y (+ 1 (* 2 (/ x y))))
(fma.f64 x #s(literal 2 binary64) y)
y
(* -1 (* y (- (* -2 (/ x y)) 1)))
(fma.f64 x #s(literal 2 binary64) y)
(* -1 (* y (- (* -2 (/ x y)) 1)))
(fma.f64 x #s(literal 2 binary64) y)
(* -1 (* y (- (* -2 (/ x y)) 1)))
(fma.f64 x #s(literal 2 binary64) y)

eval14.0ms (0.5%)

Memory
-2.2MiB live, 36.4MiB allocated
Compiler

Compiled 1 065 to 156 computations (85.4% saved)

prune12.0ms (0.4%)

Memory
-3.2MiB live, 39.2MiB allocated
Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New1381139
Fresh000
Picked044
Done000
Total1385143
Accuracy
100.0%
Counts
143 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x #s(literal 2 binary64) y)
55.1%
(+.f64 y x)
54.7%
(+.f64 x x)
46.8%
y
11.7%
x
Compiler

Compiled 22 to 14 computations (36.4% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
011
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
x
Outputs
x

localize6.0ms (0.2%)

Memory
8.7MiB live, 8.7MiB allocated
Samples
4.0ms256×0valid
Compiler

Compiled 3 to 4 computations (-33.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated
Counts
0 → 0
Calls
Call 1
Inputs
Outputs

rewrite7.0ms (0.3%)

Memory
15.0MiB live, 15.0MiB allocated
Algorithm
batch-egg-rewrite
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
000
Stop Event
saturated
saturated
Counts
0 → 0
Calls
Call 1
Inputs
Outputs

simplify5.0ms (0.2%)

Memory
-29.9MiB live, 8.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
000
Stop Event
saturated
saturated
Counts
0 → 0
Calls
Call 1
Inputs
Outputs

eval0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Memory
7.3MiB live, 7.3MiB allocated
Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done044
Total055
Accuracy
100.0%
Counts
5 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x #s(literal 2 binary64) y)
55.1%
(+.f64 y x)
54.7%
(+.f64 x x)
46.8%
y
11.7%
x
Compiler

Compiled 41 to 22 computations (46.3% saved)

regimes9.0ms (0.3%)

Memory
21.8MiB live, 21.8MiB allocated
Counts
6 → 1
Calls
Call 1
Inputs
x
y
(+.f64 x x)
(+.f64 y x)
(+.f64 (+.f64 x y) x)
(fma.f64 x #s(literal 2 binary64) y)
Outputs
(fma.f64 x #s(literal 2 binary64) y)
Calls

3 calls:

3.0ms
(+.f64 (+.f64 x y) x)
3.0ms
x
3.0ms
y
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(+.f64 (+.f64 x y) x)
Compiler

Compiled 13 to 8 computations (38.5% saved)

regimes9.0ms (0.3%)

Memory
-13.4MiB live, 25.8MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
x
y
(+.f64 x x)
(+.f64 y x)
(+.f64 (+.f64 x y) x)
Outputs
(+.f64 (+.f64 x y) x)
Calls

3 calls:

3.0ms
(+.f64 (+.f64 x y) x)
2.0ms
y
2.0ms
x
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(+.f64 (+.f64 x y) x)
Compiler

Compiled 13 to 8 computations (38.5% saved)

regimes7.0ms (0.2%)

Memory
17.2MiB live, 17.2MiB allocated
Counts
4 → 3
Calls
Call 1
Inputs
x
y
(+.f64 x x)
(+.f64 y x)
Outputs
(+.f64 y x)
(+.f64 x x)
(+.f64 y x)
Calls

3 calls:

2.0ms
(+.f64 (+.f64 x y) x)
2.0ms
x
2.0ms
y
Results
AccuracySegmentsBranch
76.0%3x
81.3%3y
61.7%3(+.f64 (+.f64 x y) x)
Compiler

Compiled 13 to 8 computations (38.5% saved)

regimes3.0ms (0.1%)

Memory
-33.5MiB live, 5.7MiB allocated
Counts
3 → 3
Calls
Call 1
Inputs
x
y
(+.f64 x x)
Outputs
y
(+.f64 x x)
y
Calls

1 calls:

3.0ms
y
Results
AccuracySegmentsBranch
79.4%3y
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes5.0ms (0.2%)

Memory
15.6MiB live, 15.6MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
x
y
Outputs
y
Calls

3 calls:

2.0ms
(+.f64 (+.f64 x y) x)
2.0ms
y
2.0ms
x
Results
AccuracySegmentsBranch
46.8%1(+.f64 (+.f64 x y) x)
46.8%1x
46.8%1y
Compiler

Compiled 13 to 8 computations (38.5% saved)

regimes4.0ms (0.1%)

Memory
16.1MiB live, 16.1MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
x
Outputs
x
Calls

3 calls:

1.0ms
(+.f64 (+.f64 x y) x)
1.0ms
y
1.0ms
x
Results
AccuracySegmentsBranch
11.7%1y
11.7%1x
11.7%1(+.f64 (+.f64 x y) x)
Compiler

Compiled 13 to 8 computations (38.5% saved)

bsearch19.0ms (0.7%)

Memory
-6.4MiB live, 35.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
9.732471090020018e-29
9.593539009953319e-24
9.0ms
-2.064181403474551
-0.00017555946696705405
Samples
10.0ms272×0valid
Compiler

Compiled 214 to 145 computations (32.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-add: 3.0ms (108.5% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch18.0ms (0.6%)

Memory
-3.2MiB live, 34.9MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
7.0ms
8.093475506992079e-11
1.7305043961516486e-7
9.0ms
-2.064181403474551
-0.00017555946696705405
Samples
7.0ms256×0valid
Compiler

Compiled 170 to 121 computations (28.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-add: 2.0ms (75.4% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify9.0ms (0.3%)

Memory
-17.6MiB live, 20.7MiB allocated
Algorithm
egg-herbie
Rules
+-commutative_binary64
if-if-or-not_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02039
12839
Stop Event
saturated
Calls
Call 1
Inputs
(fma.f64 x #s(literal 2 binary64) y)
(+.f64 (+.f64 x y) x)
(if (<=.f64 y #s(literal -6456360425798343/4611686018427387904 binary64)) (+.f64 y x) (if (<=.f64 y #s(literal 5172291977198265/1361129467683753853853498429727072845824 binary64)) (+.f64 x x) (+.f64 y x)))
(if (<=.f64 y #s(literal -5/4 binary64)) y (if (<=.f64 y #s(literal 6576556458703583/77371252455336267181195264 binary64)) (+.f64 x x) y))
y
x
Outputs
(fma.f64 x #s(literal 2 binary64) y)
(+.f64 (+.f64 x y) x)
(+.f64 x (+.f64 x y))
(if (<=.f64 y #s(literal -6456360425798343/4611686018427387904 binary64)) (+.f64 y x) (if (<=.f64 y #s(literal 5172291977198265/1361129467683753853853498429727072845824 binary64)) (+.f64 x x) (+.f64 y x)))
(if (<=.f64 y #s(literal -6456360425798343/4611686018427387904 binary64)) (+.f64 x y) (if (<=.f64 y #s(literal 5172291977198265/1361129467683753853853498429727072845824 binary64)) (+.f64 x x) (+.f64 x y)))
(if (<=.f64 y #s(literal -5/4 binary64)) y (if (<=.f64 y #s(literal 6576556458703583/77371252455336267181195264 binary64)) (+.f64 x x) y))
y
x

soundness1.1s (38.7%)

Memory
21.3MiB live, 347.1MiB allocated
Rules
8 404×accelerator-lowering-fma.f32
8 404×accelerator-lowering-fma.f64
8 404×accelerator-lowering-fma.f32
8 404×accelerator-lowering-fma.f64
2 172×*-lowering-*.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035198
1102198
2231198
3686198
41794198
52754198
63814198
74280198
84570198
94654198
106527198
08311180
035162
1102162
2231162
3691162
41802162
52753162
63810162
74278162
84562162
94657162
106558162
08343144
Stop Event
done
iter limit
node limit
iter limit
node limit
Compiler

Compiled 78 to 41 computations (47.4% saved)

preprocess48.0ms (1.7%)

Memory
-8.9MiB live, 150.3MiB allocated
Compiler

Compiled 114 to 56 computations (50.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...