From Rump in a 1983 paper, rewritten

Time bar (total: 4.0s)

analyze0.0ms (0%)

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

Compiled 24 to 16 computations (33.3% 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-mult, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time
Operation ival-pow, time spent: 0.0ms, 0.0% of total-time
Operation ival-and, time spent: 0.0ms, 0.0% of total-time
Operation ival-==, time spent: 0.0ms, 0.0% of total-time

sample1.4s (35.7%)

Results
1.3s8255×0valid
0.0ms0valid
Precisions
Click to see histograms. Total time spent on operations: 723.0ms
Operation ival-sub, time spent: 289.0ms, 40.0% of total-time
Operation ival-mult, time spent: 179.0ms, 25.0% of total-time
Operation ival-==, time spent: 108.0ms, 15.0% of total-time
Operation ival-pow, time spent: 102.0ms, 14.0% of total-time
Operation const, time spent: 33.0ms, 5.0% of total-time
Operation ival-and, time spent: 13.0ms, 2.0% of total-time
Bogosity

preprocess1.1s (27.7%)

Algorithm
egg-herbie
Rules
1006×fma-neg
882×distribute-lft-neg-in
756×distribute-rgt-neg-in
734×unswap-sqr
694×sub-neg
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-x
00-0-(pow.f64 x 4)
00-0-(*.f64 y y)
00-0-y
00-0-(*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))
00-0-9
00-0-(*.f64 9 (pow.f64 x 4))
00-0-4
00-0-(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
00-0-2
00-0-(-.f64 (*.f64 y y) 2)
Iterations

Useful iterations: 10 (0.0ms)

IterNodesCost
034378
199357
2274357
3914336
42508336
54520336
65967336
76558336
87091336
97451336
107780308
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
(-.f64 (*.f64 9 (pow.f64 (neg.f64 x) 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) 2)))
(neg.f64 (-.f64 (*.f64 9 (pow.f64 (neg.f64 x) 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))))
(neg.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) 2))))
(-.f64 (*.f64 9 (pow.f64 y 4)) (*.f64 (*.f64 x x) (-.f64 (*.f64 x x) 2)))
Outputs
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 y (*.f64 y (fma.f64 y y -2))))
(fma.f64 9 (pow.f64 x 4) (*.f64 (pow.f64 y 2) (neg.f64 (fma.f64 y y -2))))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (fma.f64 y y -2) (pow.f64 y 2)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 2) -2 (pow.f64 y 4)))
(-.f64 (fma.f64 2 (pow.f64 y 2) (*.f64 9 (pow.f64 x 4))) (pow.f64 y 4))
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 y (*.f64 y (fma.f64 y y -2))))
(fma.f64 9 (pow.f64 x 4) (*.f64 (pow.f64 y 2) (neg.f64 (fma.f64 y y -2))))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (fma.f64 y y -2) (pow.f64 y 2)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 2) -2 (pow.f64 y 4)))
(-.f64 (fma.f64 2 (pow.f64 y 2) (*.f64 9 (pow.f64 x 4))) (pow.f64 y 4))
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4)))
(-.f64 (*.f64 9 (pow.f64 (neg.f64 x) 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 y (*.f64 y (fma.f64 y y -2))))
(fma.f64 9 (pow.f64 x 4) (*.f64 (pow.f64 y 2) (neg.f64 (fma.f64 y y -2))))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (fma.f64 y y -2) (pow.f64 y 2)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 2) -2 (pow.f64 y 4)))
(-.f64 (fma.f64 2 (pow.f64 y 2) (*.f64 9 (pow.f64 x 4))) (pow.f64 y 4))
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) 2)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 y (*.f64 y (fma.f64 y y -2))))
(fma.f64 9 (pow.f64 x 4) (*.f64 (pow.f64 y 2) (neg.f64 (fma.f64 y y -2))))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (fma.f64 y y -2) (pow.f64 y 2)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 2) -2 (pow.f64 y 4)))
(-.f64 (fma.f64 2 (pow.f64 y 2) (*.f64 9 (pow.f64 x 4))) (pow.f64 y 4))
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4)))
(neg.f64 (-.f64 (*.f64 9 (pow.f64 (neg.f64 x) 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 y (*.f64 y (fma.f64 y y -2))))
(fma.f64 9 (pow.f64 x 4) (*.f64 (pow.f64 y 2) (neg.f64 (fma.f64 y y -2))))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (fma.f64 y y -2) (pow.f64 y 2)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 2) -2 (pow.f64 y 4)))
(-.f64 (fma.f64 2 (pow.f64 y 2) (*.f64 9 (pow.f64 x 4))) (pow.f64 y 4))
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4)))
(neg.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) 2))))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 y (*.f64 y (fma.f64 y y -2))))
(fma.f64 9 (pow.f64 x 4) (*.f64 (pow.f64 y 2) (neg.f64 (fma.f64 y y -2))))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (fma.f64 y y -2) (pow.f64 y 2)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 2) -2 (pow.f64 y 4)))
(-.f64 (fma.f64 2 (pow.f64 y 2) (*.f64 9 (pow.f64 x 4))) (pow.f64 y 4))
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4)))
(-.f64 (*.f64 9 (pow.f64 y 4)) (*.f64 (*.f64 x x) (-.f64 (*.f64 x x) 2)))
(-.f64 (*.f64 9 (pow.f64 y 4)) (*.f64 x (*.f64 x (fma.f64 x x -2))))
(-.f64 (*.f64 9 (pow.f64 y 4)) (*.f64 (pow.f64 x 2) (fma.f64 x x -2)))
(fma.f64 9 (pow.f64 y 4) (-.f64 (*.f64 2 (pow.f64 x 2)) (pow.f64 x 4)))
(-.f64 (fma.f64 9 (pow.f64 y 4) (*.f64 2 (pow.f64 x 2))) (pow.f64 x 4))
(fma.f64 9 (pow.f64 y 4) (fma.f64 2 (pow.f64 x 2) (pow.f64 x 4)))
Symmetry

(abs x)

(abs y)

(negabs x)

(negabs y)

Compiler

Compiled 113 to 63 computations (44.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 588.0ms
Operation ival-sub, time spent: 272.0ms, 46.0% of total-time
Operation ival-mult, time spent: 146.0ms, 25.0% of total-time
Operation ival-pow, time spent: 140.0ms, 24.0% of total-time
Operation const, time spent: 30.0ms, 5.0% of total-time

eval2.0ms (0%)

Compiler

Compiled 85 to 63 computations (25.9% saved)

prune2.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
9.6%
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4)))
3.1%
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
Compiler

Compiled 32 to 23 computations (28.1% saved)

localize708.0ms (17.8%)

Compiler

Compiled 83 to 51 computations (38.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 490.0ms
Operation ival-pow, time spent: 202.0ms, 41.0% of total-time
Operation ival-sub, time spent: 128.0ms, 26.0% of total-time
Operation ival-mult, time spent: 67.0ms, 14.0% of total-time
Operation ival-fma, time spent: 63.0ms, 13.0% of total-time
Operation const, time spent: 30.0ms, 6.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done000
Total022
Accuracy
9.6%
Counts
2 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
9.6%
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4)))
3.1%
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
Compiler

Compiled 62 to 44 computations (29% saved)

regimes13.0ms (0.3%)

Counts
2 → 1
Calls
Call 1
Inputs
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4)))
Outputs
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4)))
Calls

7 calls:

3.0ms
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
2.0ms
(*.f64 9 (pow.f64 x 4))
2.0ms
(*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))
2.0ms
(*.f64 y y)
2.0ms
(pow.f64 x 4)
Results
AccuracySegmentsBranch
9.6%1x
9.6%1y
9.6%1(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
9.6%1(*.f64 9 (pow.f64 x 4))
9.6%1(pow.f64 x 4)
9.6%1(*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))
9.6%1(*.f64 y y)
Compiler

Compiled 51 to 34 computations (33.3% saved)

regimes11.0ms (0.3%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

7 calls:

2.0ms
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
2.0ms
(*.f64 9 (pow.f64 x 4))
2.0ms
(*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))
1.0ms
(pow.f64 x 4)
1.0ms
(*.f64 y y)
Results
AccuracySegmentsBranch
3.1%1x
3.1%1y
3.1%1(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
3.1%1(*.f64 9 (pow.f64 x 4))
3.1%1(pow.f64 x 4)
3.1%1(*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))
3.1%1(*.f64 y y)
Compiler

Compiled 51 to 34 computations (33.3% saved)

simplify12.0ms (0.3%)

Algorithm
egg-herbie
Rules
148×unsub-neg
82×neg-mul-1
42×distribute-lft-neg-in
38×distribute-neg-out
28×distribute-lft-neg-out
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021102
131102
249102
362102
482102
588102
693102
7122102
8164102
9168102
10185102
11253102
12314102
13315102
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
Outputs
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4)))
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))
(+.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 2 (*.f64 y y))))
Compiler

Compiled 32 to 23 computations (28.1% saved)

soundness656.0ms (16.5%)

Rules
1006×fma-neg
882×distribute-lft-neg-in
756×distribute-rgt-neg-in
734×unswap-sqr
694×sub-neg
Iterations

Useful iterations: 10 (0.0ms)

IterNodesCost
034378
199357
2274357
3914336
42508336
54520336
65967336
76558336
87091336
97451336
107780308
Stop Event
node limit

end0.0ms (0%)

preprocess50.0ms (1.3%)

Remove

(negabs y)

(negabs x)

(abs y)

(abs x)

Compiler

Compiled 454 to 352 computations (22.5% saved)

Profiling

Loading profile data...