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

Time bar (total: 3.2s)

analyze0.0ms (0%)

Memory
0.4MiB live, 0.4MiB 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)

sample414.0ms (13.1%)

Memory
17.8MiB live, 679.8MiB allocated
Samples
274.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 100.0ms
ival-add: 92.0ms (92.3% of total)
ival-true: 5.0ms (5% of total)
ival-assert: 3.0ms (3% of total)
Bogosity

preprocess28.0ms (0.9%)

Memory
-16.0MiB live, 29.8MiB 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)
(fma.f64 x #s(literal 2 binary64) 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))

explain53.0ms (1.7%)

Memory
5.4MiB live, 81.7MiB 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
22.0ms512×0valid
Compiler

Compiled 38 to 20 computations (47.4% saved)

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

eval0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Memory
1.3MiB live, 1.3MiB 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)

simplify4.0ms (0.1%)

Memory
6.1MiB live, 6.1MiB 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)
(fma.f64 x #s(literal 2 binary64) y)
(+ x y)
(+.f64 x y)
x
y

localize16.0ms (0.5%)

Memory
-16.3MiB live, 21.9MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(+.f64 x y)
accuracy100.0%
(+.f64 (+.f64 x y) x)
Samples
11.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 (73.5% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series2.0ms (0.1%)

Memory
3.0MiB live, 3.0MiB 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)

rewrite380.0ms (12%)

Memory
-29.8MiB live, 593.0MiB 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) (fma.f64 #s(literal 2 binary64) 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) (-.f64 #s(literal 0 binary64) y)) (/.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (-.f64 #s(literal 0 binary64) 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 (-.f64 #s(literal 0 binary64) (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x)))) x)
(fma.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 x y)) (-.f64 x y)) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.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 (fma.f64 #s(literal 2 binary64) x y) (+.f64 y #s(literal 0 binary64)))) (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) x y) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))) (fma.f64 x (fma.f64 #s(literal 2 binary64) 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 (-.f64 #s(literal 0 binary64) (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x)))) #s(literal 1 binary64)) x)
(fma.f64 (pow.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 x y)) (-.f64 x y)) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.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 (-.f64 #s(literal 0 binary64) (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 (-.f64 #s(literal 0 binary64) (log.f64 (fma.f64 y (-.f64 y x) (*.f64 x x))))) x)
(neg.f64 (/.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (-.f64 #s(literal 0 binary64) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))))
(neg.f64 (/.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (+.f64 y #s(literal 0 binary64))) (+.f64 (-.f64 #s(literal 0 binary64) y) #s(literal 0 binary64))))
(neg.f64 (/.f64 (-.f64 #s(literal 0 binary64) (*.f64 (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) x y) (+.f64 (-.f64 #s(literal 0 binary64) y) #s(literal 0 binary64))) (+.f64 y #s(literal 0 binary64))))
(/.f64 (*.f64 (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) x y) (+.f64 y #s(literal 0 binary64))) (+.f64 y #s(literal 0 binary64)))
(/.f64 (-.f64 #s(literal 0 binary64) (*.f64 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))) (-.f64 #s(literal 0 binary64) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))))
(/.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (+.f64 (-.f64 #s(literal 0 binary64) y) #s(literal 0 binary64))) (+.f64 (-.f64 #s(literal 0 binary64) 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) (fma.f64 #s(literal 2 binary64) x y)))
(/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) x y)) #s(literal 1 binary64)))
(/.f64 #s(literal 1 binary64) (/.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 (fma.f64 #s(literal 2 binary64) x y) (-.f64 #s(literal 0 binary64) y))))
(/.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (-.f64 #s(literal 0 binary64) y)) (-.f64 #s(literal 0 binary64) y))
(/.f64 (*.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) x y) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))))
(/.f64 (*.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) 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) (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (fma.f64 #s(literal 2 binary64) x y) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))) #s(literal 1 binary64)) (*.f64 (*.f64 (fma.f64 x (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) 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 (-.f64 #s(literal 0 binary64) (*.f64 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))))) (neg.f64 (-.f64 #s(literal 0 binary64) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))))
(/.f64 (neg.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (+.f64 (-.f64 #s(literal 0 binary64) y) #s(literal 0 binary64)))) (neg.f64 (+.f64 (-.f64 #s(literal 0 binary64) y) #s(literal 0 binary64))))
(/.f64 (neg.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (-.f64 #s(literal 0 binary64) y))) (neg.f64 (-.f64 #s(literal 0 binary64) 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 (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) x y) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64))))
(/.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) 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) (fma.f64 #s(literal 2 binary64) x y)) #s(literal -1 binary64))
(pow.f64 (/.f64 (/.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) x y)) #s(literal 1 binary64)) #s(literal -1 binary64))
(pow.f64 (/.f64 (-.f64 #s(literal 0 binary64) y) (*.f64 (fma.f64 #s(literal 2 binary64) x y) (-.f64 #s(literal 0 binary64) y))) #s(literal -1 binary64))
(*.f64 (fma.f64 #s(literal 2 binary64) x y) (*.f64 (+.f64 y #s(literal 0 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 y #s(literal 0 binary64)))))
(*.f64 (fma.f64 #s(literal 2 binary64) x y) (/.f64 (+.f64 y #s(literal 0 binary64)) (+.f64 y #s(literal 0 binary64))))
(*.f64 (*.f64 (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))))
(*.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (+.f64 y #s(literal 0 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 y #s(literal 0 binary64))))
(*.f64 (-.f64 #s(literal 0 binary64) (*.f64 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x)))))
(*.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (+.f64 (-.f64 #s(literal 0 binary64) y) #s(literal 0 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 (-.f64 #s(literal 0 binary64) y) #s(literal 0 binary64))))
(*.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) x y))
(*.f64 (/.f64 #s(literal 1 binary64) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) x y) (+.f64 y #s(literal 0 binary64)))) #s(literal -1 binary64)))
(*.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (-.f64 #s(literal 0 binary64) y)) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) y)))
(*.f64 (/.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (+.f64 y #s(literal 0 binary64))) (*.f64 (fma.f64 #s(literal 2 binary64) x y) (+.f64 y #s(literal 0 binary64)))) (fma.f64 #s(literal 2 binary64) x y))
(*.f64 (/.f64 (*.f64 (fma.f64 #s(literal 2 binary64) 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 (-.f64 #s(literal 0 binary64) (*.f64 x y)) (-.f64 (-.f64 #s(literal 0 binary64) (*.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 (fma.f64 #s(literal 2 binary64) 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)) (-.f64 #s(literal 0 binary64) (*.f64 x y))))) (-.f64 (*.f64 (+.f64 x y) (+.f64 x y)) (-.f64 #s(literal 0 binary64) (*.f64 x y))))
(*.f64 (/.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x y) (+.f64 y #s(literal 0 binary64))) (*.f64 (fma.f64 x (fma.f64 #s(literal 2 binary64) x y) (*.f64 (+.f64 x y) (+.f64 x y))) (+.f64 y #s(literal 0 binary64)))) (fma.f64 x (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) x y) (fma.f64 (+.f64 x y) (+.f64 y #s(literal 0 binary64)) (*.f64 x x))) (*.f64 (fma.f64 x (fma.f64 #s(literal 2 binary64) 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 (fma.f64 #s(literal 2 binary64) 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 (-.f64 #s(literal 0 binary64) (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 (-.f64 #s(literal 0 binary64) (+.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 (-.f64 #s(literal 0 binary64) (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) (-.f64 #s(literal 0 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x))))
(/.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 x y)) (-.f64 x y)) (-.f64 #s(literal 0 binary64) (-.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 (-.f64 #s(literal 0 binary64) (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 (-.f64 #s(literal 0 binary64) (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))))) (neg.f64 (-.f64 #s(literal 0 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x)))))
(/.f64 (neg.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 x y)) (-.f64 x y))) (neg.f64 (-.f64 #s(literal 0 binary64) (-.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 (-.f64 #s(literal 0 binary64) (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))))) (exp.f64 (log.f64 (-.f64 #s(literal 0 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x))))))
(/.f64 (exp.f64 (log.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 x y)) (-.f64 x y)))) (exp.f64 (log.f64 (-.f64 #s(literal 0 binary64) (-.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 (-.f64 #s(literal 0 binary64) (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x)))))
(*.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 x y)) (-.f64 x y)) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.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 (-.f64 #s(literal 0 binary64) (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y)))) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (fma.f64 y (-.f64 y x) (*.f64 x x)))) #s(literal 1 binary64)))
(*.f64 (pow.f64 (*.f64 (-.f64 #s(literal 0 binary64) (+.f64 x y)) (-.f64 x y)) #s(literal 1 binary64)) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.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 (-.f64 #s(literal 0 binary64) (log.f64 (-.f64 x y)))))
(*.f64 (exp.f64 (log.f64 (fma.f64 x (*.f64 x x) (*.f64 y (*.f64 y y))))) (exp.f64 (-.f64 #s(literal 0 binary64) (log.f64 (fma.f64 y (-.f64 y x) (*.f64 x x))))))

simplify324.0ms (10.2%)

Memory
50.6MiB live, 398.3MiB 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)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 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)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 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)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 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)

eval33.0ms (1%)

Memory
-42.8MiB live, 48.6MiB allocated
Compiler

Compiled 6 208 to 608 computations (90.2% saved)

prune29.0ms (0.9%)

Memory
31.3MiB live, 69.0MiB 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)
54.2%
(+.f64 y x)
55.4%
(+.f64 x x)
45.9%
y
Compiler

Compiled 19 to 12 computations (36.8% saved)

simplify7.0ms (0.2%)

Memory
-31.0MiB live, 7.0MiB 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)
(fma.f64 x #s(literal 2 binary64) y)
x
2
#s(literal 2 binary64)
y

localize24.0ms (0.8%)

Memory
-3.4MiB live, 40.3MiB 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: 6.0ms
ival-add: 4.0ms (72% of total)
ival-mult: 2.0ms (36% 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
2.5MiB live, 2.5MiB 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 2) y)
0.0ms
y
@0
(+ (* x 2) y)

rewrite58.0ms (1.8%)

Memory
12.3MiB live, 87.6MiB 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))))

simplify295.0ms (9.3%)

Memory
5.1MiB live, 437.7MiB 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)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 binary64))
(* 2 x)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 binary64))
(* 2 x)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 binary64))
(* 2 x)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 binary64))
(* 2 x)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 binary64))
(* 2 x)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 binary64))
(* 2 x)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 binary64))
(* 2 x)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 binary64))
(* 2 x)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 binary64))
(* 2 x)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 binary64))
(* 2 x)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 binary64))
(* 2 x)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 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)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 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)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 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)
(fma.f64 x #s(literal 2 binary64) #s(literal 0 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)

eval19.0ms (0.6%)

Memory
-1.1MiB live, 35.4MiB allocated
Compiler

Compiled 1 080 to 157 computations (85.5% saved)

prune10.0ms (0.3%)

Memory
31.2MiB live, 31.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)
54.2%
(+.f64 y x)
55.4%
(+.f64 x x)
45.9%
y
11.8%
x
Compiler

Compiled 22 to 14 computations (36.4% saved)

simplify8.0ms (0.3%)

Memory
-33.2MiB live, 4.5MiB 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
10.4MiB live, 10.4MiB 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.2%)

Memory
16.4MiB live, 16.4MiB 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

simplify3.0ms (0.1%)

Memory
4.1MiB live, 4.1MiB 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
5.8MiB live, 5.8MiB 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)
54.2%
(+.f64 y x)
55.4%
(+.f64 x x)
45.9%
y
11.8%
x
Compiler

Compiled 41 to 22 computations (46.3% saved)

regimes253.0ms (8%)

Memory
-22.3MiB live, 23.6MiB 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:

247.0ms
(+.f64 (+.f64 x y) x)
3.0ms
y
3.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)

regimes9.0ms (0.3%)

Memory
-21.6MiB live, 17.7MiB 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:

2.0ms
(+.f64 (+.f64 x y) x)
2.0ms
x
2.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)

regimes7.0ms (0.2%)

Memory
18.5MiB live, 18.5MiB 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.5%3x
79.9%3y
63.8%4(+.f64 (+.f64 x y) x)
Compiler

Compiled 13 to 8 computations (38.5% saved)

regimes2.0ms (0.1%)

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

1 calls:

2.0ms
y
Results
AccuracySegmentsBranch
78.7%3y
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes5.0ms (0.2%)

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

3 calls:

2.0ms
y
2.0ms
(+.f64 (+.f64 x y) x)
2.0ms
x
Results
AccuracySegmentsBranch
45.9%1(+.f64 (+.f64 x y) x)
47.7%2x
45.9%1y
Compiler

Compiled 13 to 8 computations (38.5% saved)

regimes5.0ms (0.2%)

Memory
-27.5MiB live, 11.8MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

3 calls:

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

Compiled 13 to 8 computations (38.5% saved)

bsearch11.0ms (0.3%)

Memory
22.4MiB live, 22.4MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
7.0ms
1.4556081784137928e+48
9.536834300795325e+51
2.0ms
-6.384832272777584e+86
-5.313289226956957e+86
Samples
5.0ms160×0valid
Compiler

Compiled 130 to 89 computations (31.5% saved)

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

bsearch11.0ms (0.4%)

Memory
-16.8MiB live, 22.6MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
1.4556081784137928e+48
9.536834300795325e+51
2.0ms
-6.384832272777584e+86
-5.313289226956957e+86
Samples
5.0ms160×0valid
Compiler

Compiled 110 to 79 computations (28.2% saved)

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

bsearch8.0ms (0.3%)

Memory
17.6MiB live, 17.6MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
7.0ms
1.193247433013507e+192
8.88507667205678e+194
Samples
4.0ms128×0valid
Compiler

Compiled 74 to 57 computations (23% saved)

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

simplify9.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02144
12944
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 -550000000000000021850375070452307741903035367879611187505453877284161110663179966349312 binary64)) (+.f64 y x) (if (<=.f64 y #s(literal 13500000000000000510789242693921982591770638155776 binary64)) (+.f64 x x) (+.f64 y x)))
(if (<=.f64 y #s(literal -550000000000000021850375070452307741903035367879611187505453877284161110663179966349312 binary64)) y (if (<=.f64 y #s(literal 1550000000000000027396237512564765051788271288320 binary64)) (+.f64 x x) y))
(if (<=.f64 x #s(literal 141999999999999994410940089763461586674658634248471651211470516724935858975838052552015271735442378818866222280302096388902978344830601886193851549661952621774773525931940833305920844948343619584 binary64)) y x)
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 -550000000000000021850375070452307741903035367879611187505453877284161110663179966349312 binary64)) (+.f64 y x) (if (<=.f64 y #s(literal 13500000000000000510789242693921982591770638155776 binary64)) (+.f64 x x) (+.f64 y x)))
(if (<=.f64 y #s(literal -550000000000000021850375070452307741903035367879611187505453877284161110663179966349312 binary64)) (+.f64 x y) (if (<=.f64 y #s(literal 13500000000000000510789242693921982591770638155776 binary64)) (+.f64 x x) (+.f64 x y)))
(if (<=.f64 y #s(literal -550000000000000021850375070452307741903035367879611187505453877284161110663179966349312 binary64)) y (if (<=.f64 y #s(literal 1550000000000000027396237512564765051788271288320 binary64)) (+.f64 x x) y))
(if (<=.f64 x #s(literal 141999999999999994410940089763461586674658634248471651211470516724935858975838052552015271735442378818866222280302096388902978344830601886193851549661952621774773525931940833305920844948343619584 binary64)) y x)
x

soundness1.1s (34.2%)

Memory
-0.8MiB live, 321.7MiB 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 91 to 47 computations (48.4% saved)

preprocess40.0ms (1.3%)

Memory
22.9MiB live, 99.9MiB allocated
Compiler

Compiled 124 to 58 computations (53.2% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...