Graphics.Rendering.Chart.Plot.Vectors:renderPlotVectors from Chart-1.5.3

Time bar (total: 3.3s)

analyze0.0ms (0%)

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

Compiled 12 to 9 computations (25% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
Operation ival-sub, time spent: 0.0ms, 0.0% of total-time
Operation ival-add, time spent: 0.0ms, 0.0% of total-time
Operation ival-mult, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

sample1.1s (32.6%)

Results
624.0ms5912×256valid
111.0ms1018×256infinite
118.0ms733×512valid
129.0ms591×1024valid
0.0ms512valid
0.0ms2048valid
Precisions
Click to see histograms. Total time spent on operations: 320.0ms
Operation ival-sub, time spent: 141.0ms, 44.0% of total-time
Operation ival-mult, time spent: 92.0ms, 29.0% of total-time
Operation ival-add, time spent: 65.0ms, 20.0% of total-time
Operation const, time spent: 22.0ms, 7.0% of total-time
Bogosity

preprocess356.0ms (10.8%)

Algorithm
egg-herbie
Rules
1450×fma-neg
1138×unsub-neg
1042×sub-neg
864×distribute-lft-out
830×distribute-lft-out--
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
590-0-(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
00-0-x
00-0-(*.f64 (-.f64 1 x) (-.f64 1 y))
00-0-(-.f64 1 y)
00-0-(-.f64 1 x)
00-0-y
00-0-1
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
025270
157222
2167218
3709218
42707175
55011175
66069175
76595175
86843175
96993175
107082175
117202175
127543175
Stop Event
node limit
Calls
Call 1
Inputs
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
(+.f64 (neg.f64 x) (*.f64 (-.f64 1 (neg.f64 x)) (-.f64 1 y)))
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 (neg.f64 y))))
(neg.f64 (+.f64 (neg.f64 x) (*.f64 (-.f64 1 (neg.f64 x)) (-.f64 1 y))))
(neg.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 (neg.f64 y)))))
(+.f64 y (*.f64 (-.f64 1 y) (-.f64 1 x)))
Outputs
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
(fma.f64 (-.f64 1 x) (-.f64 1 y) x)
(+.f64 1 (*.f64 y (+.f64 x -1)))
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
(fma.f64 (-.f64 1 x) (-.f64 1 y) x)
(+.f64 1 (*.f64 y (+.f64 x -1)))
(+.f64 (neg.f64 x) (*.f64 (-.f64 1 (neg.f64 x)) (-.f64 1 y)))
(+.f64 (neg.f64 x) (*.f64 (-.f64 1 y) (-.f64 1 (neg.f64 x))))
(fma.f64 (-.f64 1 y) (+.f64 x 1) (neg.f64 x))
(-.f64 (*.f64 (-.f64 1 y) (+.f64 x 1)) x)
(+.f64 1 (*.f64 y (-.f64 -1 x)))
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 (neg.f64 y))))
(fma.f64 (-.f64 1 x) (+.f64 1 y) x)
(+.f64 1 (*.f64 (-.f64 1 x) y))
(neg.f64 (+.f64 (neg.f64 x) (*.f64 (-.f64 1 (neg.f64 x)) (-.f64 1 y))))
(neg.f64 (+.f64 (neg.f64 x) (*.f64 (-.f64 1 y) (-.f64 1 (neg.f64 x)))))
(-.f64 x (*.f64 (-.f64 1 y) (+.f64 x 1)))
(fma.f64 (+.f64 x 1) (+.f64 y -1) x)
(fma.f64 (-.f64 1 y) (-.f64 -1 x) x)
(-.f64 -1 (*.f64 y (-.f64 -1 x)))
(neg.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 (neg.f64 y)))))
(neg.f64 (fma.f64 (-.f64 1 x) (+.f64 1 y) x))
(fma.f64 (+.f64 1 y) (+.f64 x -1) (neg.f64 x))
(+.f64 -1 (*.f64 y (+.f64 x -1)))
(+.f64 y (*.f64 (-.f64 1 y) (-.f64 1 x)))
(+.f64 y (*.f64 (-.f64 1 x) (-.f64 1 y)))
(fma.f64 (-.f64 1 x) (-.f64 1 y) y)
(+.f64 1 (*.f64 x (+.f64 y -1)))
Compiler

Compiled 67 to 46 computations (31.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 40.0ms
Operation ival-sub, time spent: 23.0ms, 57.0% of total-time
Operation ival-mult, time spent: 10.0ms, 25.0% of total-time
Operation ival-add, time spent: 4.0ms, 10.0% of total-time
Operation const, time spent: 3.0ms, 7.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 17 to 12 computations (29.4% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
Compiler

Compiled 9 to 7 computations (22.2% saved)

localize41.0ms (1.2%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
Compiler

Compiled 22 to 15 computations (31.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 14.0ms
Operation ival-add, time spent: 9.0ms, 66.0% of total-time
Operation ival-mult, time spent: 4.0ms, 30.0% of total-time
Operation const, time spent: 1.0ms, 7.0% of total-time

series4.0ms (0.1%)

Counts
1 → 24
Calls
Call 1
Inputs
#<alt (+.f64 1 (*.f64 y (+.f64 x -1)))>
Outputs
#<alt 1>
#<alt (+.f64 1 (*.f64 y (-.f64 x 1)))>
#<alt (+.f64 1 (*.f64 y (-.f64 x 1)))>
#<alt (+.f64 1 (*.f64 y (-.f64 x 1)))>
#<alt (*.f64 y (-.f64 x 1))>
#<alt (*.f64 y (-.f64 (+.f64 x (/.f64 1 y)) 1))>
#<alt (*.f64 y (-.f64 (+.f64 x (/.f64 1 y)) 1))>
#<alt (*.f64 y (-.f64 (+.f64 x (/.f64 1 y)) 1))>
#<alt (*.f64 y (-.f64 x 1))>
#<alt (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 x 1)) (/.f64 1 y))))>
#<alt (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 x 1)) (/.f64 1 y))))>
#<alt (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 x 1)) (/.f64 1 y))))>
#<alt (+.f64 1 (*.f64 -1 y))>
#<alt (+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 x y)))>
#<alt (+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 x y)))>
#<alt (+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 x y)))>
#<alt (*.f64 x y)>
#<alt (*.f64 x (+.f64 y (+.f64 (*.f64 -1 (/.f64 y x)) (/.f64 1 x))))>
#<alt (*.f64 x (+.f64 y (+.f64 (*.f64 -1 (/.f64 y x)) (/.f64 1 x))))>
#<alt (*.f64 x (+.f64 y (+.f64 (*.f64 -1 (/.f64 y x)) (/.f64 1 x))))>
#<alt (*.f64 x y)>
#<alt (*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 y) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 y)) x)))))>
#<alt (*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 y) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 y)) x)))))>
#<alt (*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 y) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 y)) x)))))>
Calls

6 calls:

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

rewrite197.0ms (5.9%)

Algorithm
batch-egg-rewrite
Rules
1444×prod-diff
705×log1p-expm1-u
705×expm1-log1p-u
684×fma-define
636×log-prod
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01225
114021
2194321
Stop Event
node limit
Counts
1 → 64
Calls
Call 1
Inputs
(+.f64 1 (*.f64 y (+.f64 x -1)))
Outputs
(-.f64 (exp.f64 (log1p.f64 (fma.f64 y (+.f64 x -1) 1))) 1)
(-.f64 (/.f64 1 (-.f64 1 (*.f64 y (+.f64 x -1)))) (/.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2) (-.f64 1 (*.f64 y (+.f64 x -1)))))
(*.f64 1 (fma.f64 y (+.f64 x -1) 1))
(*.f64 (fma.f64 y (+.f64 x -1) 1) 1)
(*.f64 (fma.f64 y (+.f64 x -1) 1) (log.f64 (exp.f64 1)))
(*.f64 (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)) (pow.f64 (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)) 2) (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)))
(*.f64 (sqrt.f64 (fma.f64 y (+.f64 x -1) 1)) (sqrt.f64 (fma.f64 y (+.f64 x -1) 1)))
(*.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (/.f64 1 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1)))
(*.f64 (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2)) (/.f64 1 (-.f64 1 (*.f64 y (+.f64 x -1)))))
(/.f64 1 (/.f64 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1) (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3))))
(/.f64 1 (/.f64 (-.f64 1 (*.f64 y (+.f64 x -1))) (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2))))
(/.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1))
(/.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (+.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2) (-.f64 1 (*.f64 y (+.f64 x -1)))))
(/.f64 (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2)) (-.f64 1 (*.f64 y (+.f64 x -1))))
(/.f64 (neg.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3))) (neg.f64 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1)))
(/.f64 (neg.f64 (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2))) (neg.f64 (-.f64 1 (*.f64 y (+.f64 x -1)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2) 1) (fma.f64 y (+.f64 x -1) -1))
(pow.f64 (fma.f64 y (+.f64 x -1) 1) 1)
(pow.f64 (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)) 3)
(pow.f64 (pow.f64 (fma.f64 y (+.f64 x -1) 1) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 y (+.f64 x -1) 1)) 2)
(pow.f64 (/.f64 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1) (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3))) -1)
(pow.f64 (/.f64 (-.f64 1 (*.f64 y (+.f64 x -1))) (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2))) -1)
(sqrt.f64 (pow.f64 (fma.f64 y (+.f64 x -1) 1) 2))
(log.f64 (exp.f64 (fma.f64 y (+.f64 x -1) 1)))
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 y (+.f64 x -1) 1))))
(cbrt.f64 (pow.f64 (fma.f64 y (+.f64 x -1) 1) 3))
(expm1.f64 (log1p.f64 (fma.f64 y (+.f64 x -1) 1)))
(log1p.f64 (expm1.f64 (fma.f64 y (+.f64 x -1) 1)))
(exp.f64 (log1p.f64 (*.f64 y (+.f64 x -1))))
(exp.f64 (*.f64 (*.f64 1/3 (log1p.f64 (*.f64 y (+.f64 x -1)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log1p.f64 (*.f64 y (+.f64 x -1)))) 1/3))
(exp.f64 (*.f64 (*.f64 1/2 (log1p.f64 (*.f64 y (+.f64 x -1)))) 2))
(fma.f64 1 (*.f64 y (+.f64 x -1)) 1)
(fma.f64 1 (*.f64 y x) (fma.f64 y -1 1))
(fma.f64 y x (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 x y (fma.f64 y -1 1))
(fma.f64 (+.f64 x -1) y 1)
(fma.f64 (*.f64 y (+.f64 x -1)) 1 1)
(fma.f64 (pow.f64 (cbrt.f64 (+.f64 x -1)) 2) (*.f64 (cbrt.f64 (+.f64 x -1)) y) 1)
(fma.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) (pow.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) 2) 1)
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) 2) (cbrt.f64 (*.f64 y (+.f64 x -1))) 1)
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) x) (fma.f64 y -1 1))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (+.f64 x -1)) 1)
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) y) (fma.f64 y -1 1))
(fma.f64 (sqrt.f64 (+.f64 x -1)) (*.f64 (sqrt.f64 (+.f64 x -1)) y) 1)
(fma.f64 (sqrt.f64 (*.f64 y (+.f64 x -1))) (sqrt.f64 (*.f64 y (+.f64 x -1))) 1)
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (fma.f64 y -1 1))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (+.f64 x -1)) 1)
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (fma.f64 y -1 1))
(fma.f64 (*.f64 (cbrt.f64 (*.f64 y x)) (cbrt.f64 (*.f64 y x))) (cbrt.f64 (*.f64 y x)) (fma.f64 y -1 1))
(fma.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)) (fma.f64 y -1 1))
(fma.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 x)) (*.f64 (sqrt.f64 y) (sqrt.f64 x)) (fma.f64 y -1 1))
(fma.f64 (*.f64 (sqrt.f64 x) (sqrt.f64 y)) (*.f64 (sqrt.f64 x) (sqrt.f64 y)) (fma.f64 y -1 1))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (fma.f64 y -1 1))
(fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x) (fma.f64 y -1 1))
(fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (fma.f64 y -1 1))
(fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (fma.f64 y -1 1))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 (+.f64 x -1)) 2)) (cbrt.f64 (+.f64 x -1)) 1)
(fma.f64 (*.f64 y (sqrt.f64 (+.f64 x -1))) (sqrt.f64 (+.f64 x -1)) 1)
(fma.f64 (*.f64 (+.f64 x -1) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) 1)
(fma.f64 (*.f64 (+.f64 x -1) (sqrt.f64 y)) (sqrt.f64 y) 1)

simplify81.0ms (2.4%)

Algorithm
egg-herbie
Rules
1688×fma-neg
952×distribute-lft-neg-in
898×fma-define
746×associate-*r*
718×associate-*l*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01802207
14222169
211442169
351522169
Stop Event
node limit
Counts
88 → 78
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 y (-.f64 x 1)))
(+.f64 1 (*.f64 y (-.f64 x 1)))
(+.f64 1 (*.f64 y (-.f64 x 1)))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 (+.f64 x (/.f64 1 y)) 1))
(*.f64 y (-.f64 (+.f64 x (/.f64 1 y)) 1))
(*.f64 y (-.f64 (+.f64 x (/.f64 1 y)) 1))
(*.f64 y (-.f64 x 1))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 x 1)) (/.f64 1 y))))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 x 1)) (/.f64 1 y))))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 x 1)) (/.f64 1 y))))
(+.f64 1 (*.f64 -1 y))
(+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 x y)))
(+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 x y)))
(+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 x y)))
(*.f64 x y)
(*.f64 x (+.f64 y (+.f64 (*.f64 -1 (/.f64 y x)) (/.f64 1 x))))
(*.f64 x (+.f64 y (+.f64 (*.f64 -1 (/.f64 y x)) (/.f64 1 x))))
(*.f64 x (+.f64 y (+.f64 (*.f64 -1 (/.f64 y x)) (/.f64 1 x))))
(*.f64 x y)
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 y) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 y)) x)))))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 y) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 y)) x)))))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 y) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 y)) x)))))
(-.f64 (exp.f64 (log1p.f64 (fma.f64 y (+.f64 x -1) 1))) 1)
(-.f64 (/.f64 1 (-.f64 1 (*.f64 y (+.f64 x -1)))) (/.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2) (-.f64 1 (*.f64 y (+.f64 x -1)))))
(*.f64 1 (fma.f64 y (+.f64 x -1) 1))
(*.f64 (fma.f64 y (+.f64 x -1) 1) 1)
(*.f64 (fma.f64 y (+.f64 x -1) 1) (log.f64 (exp.f64 1)))
(*.f64 (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)) (pow.f64 (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)) 2) (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)))
(*.f64 (sqrt.f64 (fma.f64 y (+.f64 x -1) 1)) (sqrt.f64 (fma.f64 y (+.f64 x -1) 1)))
(*.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (/.f64 1 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1)))
(*.f64 (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2)) (/.f64 1 (-.f64 1 (*.f64 y (+.f64 x -1)))))
(/.f64 1 (/.f64 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1) (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3))))
(/.f64 1 (/.f64 (-.f64 1 (*.f64 y (+.f64 x -1))) (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2))))
(/.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1))
(/.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (+.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2) (-.f64 1 (*.f64 y (+.f64 x -1)))))
(/.f64 (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2)) (-.f64 1 (*.f64 y (+.f64 x -1))))
(/.f64 (neg.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3))) (neg.f64 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1)))
(/.f64 (neg.f64 (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2))) (neg.f64 (-.f64 1 (*.f64 y (+.f64 x -1)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2) 1) (fma.f64 y (+.f64 x -1) -1))
(pow.f64 (fma.f64 y (+.f64 x -1) 1) 1)
(pow.f64 (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)) 3)
(pow.f64 (pow.f64 (fma.f64 y (+.f64 x -1) 1) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 y (+.f64 x -1) 1)) 2)
(pow.f64 (/.f64 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1) (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3))) -1)
(pow.f64 (/.f64 (-.f64 1 (*.f64 y (+.f64 x -1))) (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2))) -1)
(sqrt.f64 (pow.f64 (fma.f64 y (+.f64 x -1) 1) 2))
(log.f64 (exp.f64 (fma.f64 y (+.f64 x -1) 1)))
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 y (+.f64 x -1) 1))))
(cbrt.f64 (pow.f64 (fma.f64 y (+.f64 x -1) 1) 3))
(expm1.f64 (log1p.f64 (fma.f64 y (+.f64 x -1) 1)))
(log1p.f64 (expm1.f64 (fma.f64 y (+.f64 x -1) 1)))
(exp.f64 (log1p.f64 (*.f64 y (+.f64 x -1))))
(exp.f64 (*.f64 (*.f64 1/3 (log1p.f64 (*.f64 y (+.f64 x -1)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log1p.f64 (*.f64 y (+.f64 x -1)))) 1/3))
(exp.f64 (*.f64 (*.f64 1/2 (log1p.f64 (*.f64 y (+.f64 x -1)))) 2))
(fma.f64 1 (*.f64 y (+.f64 x -1)) 1)
(fma.f64 1 (*.f64 y x) (fma.f64 y -1 1))
(fma.f64 y x (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 x y (fma.f64 y -1 1))
(fma.f64 (+.f64 x -1) y 1)
(fma.f64 (*.f64 y (+.f64 x -1)) 1 1)
(fma.f64 (pow.f64 (cbrt.f64 (+.f64 x -1)) 2) (*.f64 (cbrt.f64 (+.f64 x -1)) y) 1)
(fma.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) (pow.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) 2) 1)
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) 2) (cbrt.f64 (*.f64 y (+.f64 x -1))) 1)
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) x) (fma.f64 y -1 1))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (+.f64 x -1)) 1)
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) y) (fma.f64 y -1 1))
(fma.f64 (sqrt.f64 (+.f64 x -1)) (*.f64 (sqrt.f64 (+.f64 x -1)) y) 1)
(fma.f64 (sqrt.f64 (*.f64 y (+.f64 x -1))) (sqrt.f64 (*.f64 y (+.f64 x -1))) 1)
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (fma.f64 y -1 1))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (+.f64 x -1)) 1)
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (fma.f64 y -1 1))
(fma.f64 (*.f64 (cbrt.f64 (*.f64 y x)) (cbrt.f64 (*.f64 y x))) (cbrt.f64 (*.f64 y x)) (fma.f64 y -1 1))
(fma.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)) (fma.f64 y -1 1))
(fma.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 x)) (*.f64 (sqrt.f64 y) (sqrt.f64 x)) (fma.f64 y -1 1))
(fma.f64 (*.f64 (sqrt.f64 x) (sqrt.f64 y)) (*.f64 (sqrt.f64 x) (sqrt.f64 y)) (fma.f64 y -1 1))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (fma.f64 y -1 1))
(fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x) (fma.f64 y -1 1))
(fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (fma.f64 y -1 1))
(fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (fma.f64 y -1 1))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 (+.f64 x -1)) 2)) (cbrt.f64 (+.f64 x -1)) 1)
(fma.f64 (*.f64 y (sqrt.f64 (+.f64 x -1))) (sqrt.f64 (+.f64 x -1)) 1)
(fma.f64 (*.f64 (+.f64 x -1) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) 1)
(fma.f64 (*.f64 (+.f64 x -1) (sqrt.f64 y)) (sqrt.f64 y) 1)
Outputs
1
(+.f64 1 (*.f64 y (-.f64 x 1)))
(fma.f64 y (+.f64 x -1) 1)
(+.f64 1 (*.f64 y (-.f64 x 1)))
(fma.f64 y (+.f64 x -1) 1)
(+.f64 1 (*.f64 y (-.f64 x 1)))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(*.f64 y (-.f64 (+.f64 x (/.f64 1 y)) 1))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 y (-.f64 (+.f64 x (/.f64 1 y)) 1))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 y (-.f64 (+.f64 x (/.f64 1 y)) 1))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 x 1)) (/.f64 1 y))))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 x 1)) (/.f64 1 y))))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 x 1)) (/.f64 1 y))))
(fma.f64 y (+.f64 x -1) 1)
(+.f64 1 (*.f64 -1 y))
(fma.f64 y -1 1)
(-.f64 1 y)
(+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 x y)))
(fma.f64 y (+.f64 x -1) 1)
(+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 x y)))
(fma.f64 y (+.f64 x -1) 1)
(+.f64 1 (+.f64 (*.f64 -1 y) (*.f64 x y)))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 x y)
(*.f64 y x)
(*.f64 x (+.f64 y (+.f64 (*.f64 -1 (/.f64 y x)) (/.f64 1 x))))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 x (+.f64 y (+.f64 (*.f64 -1 (/.f64 y x)) (/.f64 1 x))))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 x (+.f64 y (+.f64 (*.f64 -1 (/.f64 y x)) (/.f64 1 x))))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 x y)
(*.f64 y x)
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 y) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 y)) x)))))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 y) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 y)) x)))))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 y) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 y)) x)))))
(fma.f64 y (+.f64 x -1) 1)
(-.f64 (exp.f64 (log1p.f64 (fma.f64 y (+.f64 x -1) 1))) 1)
(fma.f64 y (+.f64 x -1) 1)
(-.f64 (/.f64 1 (-.f64 1 (*.f64 y (+.f64 x -1)))) (/.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2) (-.f64 1 (*.f64 y (+.f64 x -1)))))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 1 (fma.f64 y (+.f64 x -1) 1))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 (fma.f64 y (+.f64 x -1) 1) 1)
(fma.f64 y (+.f64 x -1) 1)
(*.f64 (fma.f64 y (+.f64 x -1) 1) (log.f64 (exp.f64 1)))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)) (pow.f64 (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)) 2))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)) 2) (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 (sqrt.f64 (fma.f64 y (+.f64 x -1) 1)) (sqrt.f64 (fma.f64 y (+.f64 x -1) 1)))
(fma.f64 y (+.f64 x -1) 1)
(*.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (/.f64 1 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1)))
(/.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1))
(*.f64 (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2)) (/.f64 1 (-.f64 1 (*.f64 y (+.f64 x -1)))))
(fma.f64 y (+.f64 x -1) 1)
(/.f64 1 (/.f64 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1) (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3))))
(*.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (/.f64 1 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1)))
(/.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1))
(/.f64 1 (/.f64 (-.f64 1 (*.f64 y (+.f64 x -1))) (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2))))
(fma.f64 y (+.f64 x -1) 1)
(/.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1))
(*.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (/.f64 1 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1)))
(/.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (+.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2) (-.f64 1 (*.f64 y (+.f64 x -1)))))
(*.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (/.f64 1 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1)))
(/.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1))
(/.f64 (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2)) (-.f64 1 (*.f64 y (+.f64 x -1))))
(fma.f64 y (+.f64 x -1) 1)
(/.f64 (neg.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3))) (neg.f64 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1)))
(*.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (/.f64 1 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1)))
(/.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1))
(/.f64 (neg.f64 (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2))) (neg.f64 (-.f64 1 (*.f64 y (+.f64 x -1)))))
(fma.f64 y (+.f64 x -1) 1)
(/.f64 (-.f64 (pow.f64 (*.f64 y (+.f64 x -1)) 2) 1) (fma.f64 y (+.f64 x -1) -1))
(fma.f64 y (+.f64 x -1) 1)
(pow.f64 (fma.f64 y (+.f64 x -1) 1) 1)
(fma.f64 y (+.f64 x -1) 1)
(pow.f64 (cbrt.f64 (fma.f64 y (+.f64 x -1) 1)) 3)
(fma.f64 y (+.f64 x -1) 1)
(pow.f64 (pow.f64 (fma.f64 y (+.f64 x -1) 1) 3) 1/3)
(fma.f64 y (+.f64 x -1) 1)
(pow.f64 (sqrt.f64 (fma.f64 y (+.f64 x -1) 1)) 2)
(fma.f64 y (+.f64 x -1) 1)
(pow.f64 (/.f64 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1) (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3))) -1)
(*.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (/.f64 1 (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1)))
(/.f64 (+.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 3)) (fma.f64 (*.f64 y (+.f64 x -1)) (fma.f64 y (+.f64 x -1) -1) 1))
(pow.f64 (/.f64 (-.f64 1 (*.f64 y (+.f64 x -1))) (-.f64 1 (pow.f64 (*.f64 y (+.f64 x -1)) 2))) -1)
(fma.f64 y (+.f64 x -1) 1)
(sqrt.f64 (pow.f64 (fma.f64 y (+.f64 x -1) 1) 2))
(fma.f64 y (+.f64 x -1) 1)
(log.f64 (exp.f64 (fma.f64 y (+.f64 x -1) 1)))
(fma.f64 y (+.f64 x -1) 1)
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 y (+.f64 x -1) 1))))
(fma.f64 y (+.f64 x -1) 1)
(cbrt.f64 (pow.f64 (fma.f64 y (+.f64 x -1) 1) 3))
(fma.f64 y (+.f64 x -1) 1)
(expm1.f64 (log1p.f64 (fma.f64 y (+.f64 x -1) 1)))
(fma.f64 y (+.f64 x -1) 1)
(log1p.f64 (expm1.f64 (fma.f64 y (+.f64 x -1) 1)))
(fma.f64 y (+.f64 x -1) 1)
(exp.f64 (log1p.f64 (*.f64 y (+.f64 x -1))))
(fma.f64 y (+.f64 x -1) 1)
(exp.f64 (*.f64 (*.f64 1/3 (log1p.f64 (*.f64 y (+.f64 x -1)))) 3))
(fma.f64 y (+.f64 x -1) 1)
(exp.f64 (*.f64 (*.f64 3 (log1p.f64 (*.f64 y (+.f64 x -1)))) 1/3))
(fma.f64 y (+.f64 x -1) 1)
(exp.f64 (*.f64 (*.f64 1/2 (log1p.f64 (*.f64 y (+.f64 x -1)))) 2))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 1 (*.f64 y (+.f64 x -1)) 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 1 (*.f64 y x) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 y x (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 x y (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (+.f64 x -1) y 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (*.f64 y (+.f64 x -1)) 1 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (pow.f64 (cbrt.f64 (+.f64 x -1)) 2) (*.f64 (cbrt.f64 (+.f64 x -1)) y) 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) (pow.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) 2) 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 y (+.f64 x -1))) 2) (cbrt.f64 (*.f64 y (+.f64 x -1))) 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) x) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (+.f64 x -1)) 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) y) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (sqrt.f64 (+.f64 x -1)) (*.f64 (sqrt.f64 (+.f64 x -1)) y) 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (sqrt.f64 (*.f64 y (+.f64 x -1))) (sqrt.f64 (*.f64 y (+.f64 x -1))) 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (+.f64 x -1)) 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (*.f64 (cbrt.f64 (*.f64 y x)) (cbrt.f64 (*.f64 y x))) (cbrt.f64 (*.f64 y x)) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 x)) (*.f64 (sqrt.f64 y) (sqrt.f64 x)) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (*.f64 (sqrt.f64 x) (sqrt.f64 y)) (*.f64 (sqrt.f64 x) (sqrt.f64 y)) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (fma.f64 y -1 1))
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 (+.f64 x -1)) 2)) (cbrt.f64 (+.f64 x -1)) 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (*.f64 y (sqrt.f64 (+.f64 x -1))) (sqrt.f64 (+.f64 x -1)) 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (*.f64 (+.f64 x -1) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) 1)
(fma.f64 y (+.f64 x -1) 1)
(fma.f64 (*.f64 (+.f64 x -1) (sqrt.f64 y)) (sqrt.f64 y) 1)
(fma.f64 y (+.f64 x -1) 1)

eval21.0ms (0.6%)

Compiler

Compiled 944 to 652 computations (30.9% saved)

prune17.0ms (0.5%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New73578
Fresh000
Picked011
Done000
Total73679
Accuracy
100.0%
Counts
79 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (+.f64 x -1) y 1)
62.7%
(-.f64 1 y)
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
63.9%
(*.f64 y (-.f64 x 1))
39.1%
(*.f64 y x)
36.9%
1
Compiler

Compiled 65 to 49 computations (24.6% saved)

localize67.0ms (2%)

Compiler

Compiled 38 to 22 computations (42.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 26.0ms
Operation ival-mult, time spent: 10.0ms, 38.0% of total-time
Operation ival-add, time spent: 5.0ms, 19.0% of total-time
Operation composed, time spent: 5.0ms, 19.0% of total-time
Operation ival-sub, time spent: 4.0ms, 15.0% of total-time
Operation const, time spent: 2.0ms, 8.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune4.0ms (0.1%)

Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New000
Fresh000
Picked055
Done011
Total066
Accuracy
100.0%
Counts
6 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (+.f64 x -1) y 1)
62.7%
(-.f64 1 y)
100.0%
(+.f64 1 (*.f64 y (+.f64 x -1)))
63.9%
(*.f64 y (-.f64 x 1))
39.1%
(*.f64 y x)
36.9%
1
Compiler

Compiled 73 to 52 computations (28.8% saved)

regimes17.0ms (0.5%)

Counts
7 → 1
Calls
Call 1
Inputs
1
(*.f64 y x)
(-.f64 1 y)
(*.f64 y (-.f64 x 1))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
(fma.f64 (+.f64 x -1) y 1)
Outputs
(fma.f64 (+.f64 x -1) y 1)
Calls

4 calls:

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

Compiled 22 to 16 computations (27.3% saved)

regimes16.0ms (0.5%)

Counts
6 → 1
Calls
Call 1
Inputs
1
(*.f64 y x)
(-.f64 1 y)
(*.f64 y (-.f64 x 1))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
Outputs
(+.f64 1 (*.f64 y (+.f64 x -1)))
Calls

4 calls:

5.0ms
y
4.0ms
x
3.0ms
(-.f64 1 y)
3.0ms
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
100.0%1(-.f64 1 y)
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes35.0ms (1.1%)

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

3 calls:

17.0ms
x
10.0ms
y
8.0ms
(-.f64 1 y)
Results
AccuracySegmentsBranch
91.5%5x
88.7%3y
88.7%3(-.f64 1 y)
Compiler

Compiled 11 to 8 computations (27.3% saved)

regimes77.0ms (2.3%)

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

3 calls:

53.0ms
y
17.0ms
x
6.0ms
(-.f64 1 y)
Results
AccuracySegmentsBranch
91.1%5x
69.7%6y
65.7%2(-.f64 1 y)
Compiler

Compiled 11 to 8 computations (27.3% saved)

regimes23.0ms (0.7%)

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

2 calls:

15.0ms
x
8.0ms
y
Results
AccuracySegmentsBranch
62.9%3y
65.6%5x
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes5.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

2 calls:

2.0ms
y
2.0ms
x
Results
AccuracySegmentsBranch
36.9%1x
36.9%1y
Compiler

Compiled 6 to 4 computations (33.3% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.0000000294309022
1.0000003162178075
0.0ms
-29044154535.2118
-13308128.928689508
Compiler

Compiled 16 to 12 computations (25% saved)

bsearch123.0ms (3.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
22.0ms
6.41737638394667e-9
486200669243.86523
22.0ms
-28348054.285774134
-0.0038537666759041575
58.0ms
-2.6820590644645073e+69
-1.361662069239688e+64
19.0ms
-1.5885789511663753e+131
-1.170592649547085e+128
Results
92.0ms477×256valid
14.0ms85×512valid
5.0ms45×256infinite
0.0ms256valid
Compiler

Compiled 472 to 354 computations (25% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
Operation ival-sub, time spent: 8.0ms, 37.0% of total-time
Operation ival-add, time spent: 6.0ms, 28.0% of total-time
Operation ival-mult, time spent: 6.0ms, 28.0% of total-time
Operation const, time spent: 2.0ms, 9.0% of total-time

bsearch26.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
1.6142273916372127e-5
0.00010206844679162322
13.0ms
-3.1621780754930017e-7
-2.9430902197770102e-8
Results
21.0ms191×256valid
0.0ms256valid
Compiler

Compiled 136 to 108 computations (20.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
Operation ival-sub, time spent: 2.0ms, 37.0% of total-time
Operation ival-mult, time spent: 2.0ms, 37.0% of total-time
Operation ival-add, time spent: 1.0ms, 19.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

simplify11.0ms (0.3%)

Algorithm
egg-herbie
Rules
10×*-commutative
10×+-commutative
10×if-if-or-not
sub-neg
not-or
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
045265
171262
280256
393252
498252
5102252
6103252
7104252
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 (+.f64 x -1) y 1)
(+.f64 1 (*.f64 y (+.f64 x -1)))
(if (<=.f64 (-.f64 1 y) -20000000000) (*.f64 y (-.f64 x 1)) (if (<=.f64 (-.f64 1 y) 4503600528090421/4503599627370496) (-.f64 1 y) (*.f64 y (-.f64 x 1))))
(if (<=.f64 x -120000000000000009020938429982185035296571487722288985617949092282931911029089824559744932131730964251391914604662303159201300480) (*.f64 y x) (if (<=.f64 x -560000000000000002305215852009150211690013990644322704621719632478208) (-.f64 1 y) (if (<=.f64 x -28000000) (*.f64 y x) (if (<=.f64 x 67000000000) (-.f64 1 y) (*.f64 y x)))))
(if (<=.f64 y -4986819005910345/151115727451828646838272) (*.f64 y x) (if (<=.f64 y 2434970217729661/147573952589676412928) 1 (*.f64 y x)))
1
Outputs
(fma.f64 (+.f64 x -1) y 1)
(+.f64 1 (*.f64 y (+.f64 x -1)))
(+.f64 1 (*.f64 (+.f64 x -1) y))
(if (<=.f64 (-.f64 1 y) -20000000000) (*.f64 y (-.f64 x 1)) (if (<=.f64 (-.f64 1 y) 4503600528090421/4503599627370496) (-.f64 1 y) (*.f64 y (-.f64 x 1))))
(if (or (<=.f64 (-.f64 1 y) -20000000000) (not (<=.f64 (-.f64 1 y) 4503600528090421/4503599627370496))) (*.f64 y (-.f64 x 1)) (-.f64 1 y))
(if (or (<=.f64 (-.f64 1 y) -20000000000) (not (<=.f64 (-.f64 1 y) 4503600528090421/4503599627370496))) (*.f64 (+.f64 x -1) y) (-.f64 1 y))
(if (<=.f64 x -120000000000000009020938429982185035296571487722288985617949092282931911029089824559744932131730964251391914604662303159201300480) (*.f64 y x) (if (<=.f64 x -560000000000000002305215852009150211690013990644322704621719632478208) (-.f64 1 y) (if (<=.f64 x -28000000) (*.f64 y x) (if (<=.f64 x 67000000000) (-.f64 1 y) (*.f64 y x)))))
(if (<=.f64 x -120000000000000009020938429982185035296571487722288985617949092282931911029089824559744932131730964251391914604662303159201300480) (*.f64 x y) (if (<=.f64 x -560000000000000002305215852009150211690013990644322704621719632478208) (-.f64 1 y) (if (or (<=.f64 x -28000000) (not (<=.f64 x 67000000000))) (*.f64 x y) (-.f64 1 y))))
(if (<=.f64 x -120000000000000009020938429982185035296571487722288985617949092282931911029089824559744932131730964251391914604662303159201300480) (*.f64 x y) (if (or (<=.f64 x -560000000000000002305215852009150211690013990644322704621719632478208) (not (or (<=.f64 x -28000000) (not (<=.f64 x 67000000000))))) (-.f64 1 y) (*.f64 x y)))
(if (or (<=.f64 x -120000000000000009020938429982185035296571487722288985617949092282931911029089824559744932131730964251391914604662303159201300480) (not (or (<=.f64 x -560000000000000002305215852009150211690013990644322704621719632478208) (not (or (<=.f64 x -28000000) (not (<=.f64 x 67000000000))))))) (*.f64 x y) (-.f64 1 y))
(if (or (<=.f64 x -120000000000000009020938429982185035296571487722288985617949092282931911029089824559744932131730964251391914604662303159201300480) (not (or (<=.f64 x -560000000000000002305215852009150211690013990644322704621719632478208) (and (not (<=.f64 x -28000000)) (<=.f64 x 67000000000))))) (*.f64 x y) (-.f64 1 y))
(if (<=.f64 y -4986819005910345/151115727451828646838272) (*.f64 y x) (if (<=.f64 y 2434970217729661/147573952589676412928) 1 (*.f64 y x)))
(if (or (<=.f64 y -4986819005910345/151115727451828646838272) (not (<=.f64 y 2434970217729661/147573952589676412928))) (*.f64 x y) 1)
1
Compiler

Compiled 84 to 64 computations (23.8% saved)

soundness768.0ms (23.2%)

Rules
1688×fma-neg
1450×fma-neg
1444×prod-diff
1138×unsub-neg
1042×sub-neg
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01802207
14222169
211442169
351522169
01225
114021
2194321
025270
157222
2167218
3709218
42707175
55011175
66069175
76595175
86843175
96993175
107082175
117202175
127543175
Stop Event
node limit
node limit
node limit
Compiler

Compiled 254 to 167 computations (34.3% saved)

end0.0ms (0%)

preprocess338.0ms (10.2%)

Compiler

Compiled 188 to 134 computations (28.7% saved)

Profiling

Loading profile data...