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

Time bar (total: 3.1s)

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)

sample540.0ms (17.4%)

Memory
29.7MiB live, 612.4MiB allocated
Samples
371.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 127.0ms
ival-add: 119.0ms (93.3% of total)
ival-true: 6.0ms (4.7% of total)
ival-assert: 3.0ms (2.4% of total)
Bogosity

preprocess23.0ms (0.7%)

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

explain49.0ms (1.6%)

Memory
17.3MiB live, 94.9MiB 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: 5.0ms
ival-add: 5.0ms (92.3% 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.2MiB live, 1.2MiB 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
5.8MiB live, 5.8MiB 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

localize14.0ms (0.5%)

Memory
-12.7MiB live, 26.0MiB allocated
Localize:

Found 2 expressions of interest:

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

series2.0ms (0.1%)

Memory
5.8MiB live, 5.8MiB 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
x
@0
(+ (+ x y) x)
0.0ms
y
@0
(+ (+ x y) x)
0.0ms
y
@inf
(+ (+ x y) x)
0.0ms
x
@-inf
(+ (+ x y) x)

rewrite370.0ms (11.9%)

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

simplify303.0ms (9.7%)

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

eval50.0ms (1.6%)

Memory
6.4MiB live, 83.7MiB allocated
Compiler

Compiled 6 208 to 608 computations (90.2% saved)

prune31.0ms (1%)

Memory
-6.1MiB live, 74.3MiB 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)
60.7%
(+.f64 y x)
48.8%
(+.f64 x x)
53.4%
y
Compiler

Compiled 19 to 12 computations (36.8% saved)

simplify4.0ms (0.1%)

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

localize23.0ms (0.7%)

Memory
-20.5MiB live, 57.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
14.0ms256×0valid
Compiler

Compiled 19 to 9 computations (52.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-add: 4.0ms (59.1% of total)
ival-mult: 3.0ms (44.3% 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.7MiB live, 3.7MiB 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)

rewrite59.0ms (1.9%)

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

simplify278.0ms (8.9%)

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

eval20.0ms (0.6%)

Memory
-27.3MiB live, 49.9MiB allocated
Compiler

Compiled 1 080 to 157 computations (85.5% saved)

prune11.0ms (0.3%)

Memory
31.8MiB live, 31.8MiB 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)
60.7%
(+.f64 y x)
48.8%
(+.f64 x x)
53.4%
y
10.8%
x
Compiler

Compiled 22 to 14 computations (36.4% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

localize8.0ms (0.3%)

Memory
-23.7MiB live, 15.6MiB allocated
Samples
5.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

rewrite8.0ms (0.2%)

Memory
17.2MiB live, 17.2MiB 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
6.5MiB live, 6.5MiB 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.7MiB live, 0.7MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune4.0ms (0.1%)

Memory
-29.1MiB live, 10.2MiB 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)
60.7%
(+.f64 y x)
48.8%
(+.f64 x x)
53.4%
y
10.8%
x
Compiler

Compiled 41 to 22 computations (46.3% saved)

regimes9.0ms (0.3%)

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

regimes8.0ms (0.3%)

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

regimes5.0ms (0.2%)

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

2 calls:

2.0ms
x
2.0ms
y
Results
AccuracySegmentsBranch
78.5%3x
77.9%3y
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes4.0ms (0.1%)

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

2 calls:

2.0ms
y
2.0ms
x
Results
AccuracySegmentsBranch
75.2%3y
76.9%3x
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes5.0ms (0.2%)

Memory
-33.0MiB live, 10.6MiB allocated
Counts
2 → 2
Calls
Call 1
Inputs
x
y
Outputs
x
y
Calls

2 calls:

3.0ms
x
2.0ms
y
Results
AccuracySegmentsBranch
53.4%1y
55.1%2x
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes3.0ms (0.1%)

Memory
8.4MiB live, 8.4MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

2 calls:

1.0ms
x
1.0ms
y
Results
AccuracySegmentsBranch
10.8%1y
10.8%1x
Compiler

Compiled 6 to 4 computations (33.3% saved)

bsearch20.0ms (0.7%)

Memory
13.7MiB live, 52.9MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
2.121711279293218e+85
2.527704957101334e+93
10.0ms
-3.473650132100129e-50
-7.305505805461267e-60
Samples
9.0ms304×0valid
Compiler

Compiled 238 to 161 computations (32.4% saved)

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

bsearch21.0ms (0.7%)

Memory
-1.8MiB live, 37.5MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
2.121711279293218e+85
2.527704957101334e+93
10.0ms
-3.473650132100129e-50
-7.305505805461267e-60
Samples
10.0ms304×0valid
Compiler

Compiled 200 to 142 computations (29% saved)

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

bsearch9.0ms (0.3%)

Memory
-20.9MiB live, 18.1MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
9.0ms
-2.538027627168832e+187
-3.009083899381047e+184
Samples
5.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 (76.3% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify8.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02344
13144
Stop Event
saturated
Calls
Call 1
Inputs
(fma.f64 x #s(literal 2 binary64) y)
(+.f64 (+.f64 x y) x)
(if (<=.f64 x #s(literal -1237419427105547/52656145834278593348959013841835216159447547700274555627155488768 binary64)) (+.f64 x x) (if (<=.f64 x #s(literal 40000000000000000585227809226994921238801719514586202371144431486791854570045928636416 binary64)) (+.f64 y x) (+.f64 x x)))
(if (<=.f64 x #s(literal -7076986000127043/1684996666696914987166688442938726917102321526408785780068975640576 binary64)) (+.f64 x x) (if (<=.f64 x #s(literal 260000000000000007116819006434937606020893990737782532588971111305932601183310163560366080 binary64)) y (+.f64 x x)))
(if (<=.f64 x #s(literal -2499999999999999767892414030450303020173203742230197366156861717404480574906000363300468820452845062562423469951453088306726772920176395464809174713410151283561928068585532969623855562752 binary64)) x y)
x
Outputs
(fma.f64 x #s(literal 2 binary64) y)
(+.f64 (+.f64 x y) x)
(+.f64 x (+.f64 x y))
(if (<=.f64 x #s(literal -1237419427105547/52656145834278593348959013841835216159447547700274555627155488768 binary64)) (+.f64 x x) (if (<=.f64 x #s(literal 40000000000000000585227809226994921238801719514586202371144431486791854570045928636416 binary64)) (+.f64 y x) (+.f64 x x)))
(if (<=.f64 x #s(literal -1237419427105547/52656145834278593348959013841835216159447547700274555627155488768 binary64)) (+.f64 x x) (if (<=.f64 x #s(literal 40000000000000000585227809226994921238801719514586202371144431486791854570045928636416 binary64)) (+.f64 x y) (+.f64 x x)))
(if (<=.f64 x #s(literal -7076986000127043/1684996666696914987166688442938726917102321526408785780068975640576 binary64)) (+.f64 x x) (if (<=.f64 x #s(literal 260000000000000007116819006434937606020893990737782532588971111305932601183310163560366080 binary64)) y (+.f64 x x)))
(if (<=.f64 x #s(literal -2499999999999999767892414030450303020173203742230197366156861717404480574906000363300468820452845062562423469951453088306726772920176395464809174713410151283561928068585532969623855562752 binary64)) x y)
x

soundness1.1s (36.9%)

Memory
-21.9MiB live, 301.0MiB 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 93 to 49 computations (47.3% saved)

preprocess62.0ms (2%)

Memory
-0.6MiB live, 157.1MiB allocated
Compiler

Compiled 128 to 62 computations (51.6% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...