ENA, Section 1.4, Exercise 4b, n=2

Time bar (total: 2.5s)

analyze0.0ms (0%)

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

Compiled 26 to 19 computations (26.9% saved)

sample1.5s (59.1%)

Results
869.0ms6097×body256valid
312.0ms1118×body512valid
285.0ms1020×body1024valid
10.0ms21×body2048valid
Bogosity

preprocess104.0ms (4.1%)

Algorithm
egg-herbie
Rules
1358×fma-def
852×unswap-sqr
758×distribute-lft-out
646×distribute-lft-neg-in
640×associate-*r*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
023116
164100
2168100
371476
4408276
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
(-.f64 (pow.f64 (+.f64 (neg.f64 x) eps) 2) (pow.f64 (neg.f64 x) 2))
(-.f64 (pow.f64 (+.f64 x (neg.f64 eps)) 2) (pow.f64 x 2))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 eps 2))
Outputs
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
(-.f64 (pow.f64 (+.f64 x eps) 2) (*.f64 x x))
(*.f64 eps (+.f64 x (+.f64 x eps)))
(-.f64 (pow.f64 (+.f64 (neg.f64 x) eps) 2) (pow.f64 (neg.f64 x) 2))
(-.f64 (pow.f64 (+.f64 eps (neg.f64 x)) 2) (pow.f64 (neg.f64 x) 2))
(-.f64 (pow.f64 (-.f64 eps x) 2) (*.f64 x x))
(*.f64 eps (+.f64 eps (*.f64 x -2)))
(-.f64 (pow.f64 (+.f64 x (neg.f64 eps)) 2) (pow.f64 x 2))
(-.f64 (pow.f64 (+.f64 eps (neg.f64 x)) 2) (pow.f64 (neg.f64 x) 2))
(-.f64 (pow.f64 (-.f64 eps x) 2) (*.f64 x x))
(*.f64 eps (+.f64 eps (*.f64 x -2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 eps 2))
(-.f64 (pow.f64 (+.f64 x eps) 2) (*.f64 eps eps))
(*.f64 x (+.f64 x (+.f64 eps eps)))
Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify30.0ms (1.2%)

Algorithm
egg-herbie
Rules
1174×distribute-lft-in
1074×distribute-rgt-in
1026×cancel-sign-sub-inv
942×fma-def
940×fma-neg
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0925
12125
25225
316425
465215
5289915
Stop Event
node limit
Counts
1 → 3
Calls
Call 1
Inputs
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
Outputs
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
(-.f64 (pow.f64 (+.f64 x eps) 2) (*.f64 x x))
(*.f64 eps (fma.f64 2 x eps))

eval1.0ms (0%)

Compiler

Compiled 26 to 15 computations (42.3% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New213
Fresh101
Picked000
Done000
Total314
Accurracy
100.0%
Counts
4 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 eps (fma.f64 2 x eps))
100.0%
(*.f64 eps (fma.f64 2 x eps))
Compiler

Compiled 16 to 10 computations (37.5% saved)

localize27.0ms (1.1%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(*.f64 eps (fma.f64 2 x eps))
Compiler

Compiled 16 to 9 computations (43.8% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
eps
@-inf
(*.f64 eps (fma.f64 2 x eps))
0.0ms
x
@0
(*.f64 eps (fma.f64 2 x eps))
0.0ms
eps
@inf
(*.f64 eps (fma.f64 2 x eps))
0.0ms
eps
@0
(*.f64 eps (fma.f64 2 x eps))
0.0ms
x
@inf
(*.f64 eps (fma.f64 2 x eps))

rewrite182.0ms (7.2%)

Algorithm
batch-egg-rewrite
Rules
1472×pow1
1344×add-exp-log
1344×log1p-expm1-u
1344×expm1-log1p-u
1314×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
115915
2181815
Stop Event
node limit
Counts
1 → 13
Calls
Call 1
Inputs
(*.f64 eps (fma.f64 2 x eps))
Outputs
(+.f64 (*.f64 (*.f64 2 x) eps) (*.f64 eps eps))
(+.f64 (*.f64 eps (*.f64 2 x)) (*.f64 eps eps))
(-.f64 (+.f64 1 (*.f64 eps (fma.f64 2 x eps))) 1)
(pow.f64 (*.f64 eps (fma.f64 2 x eps)) 1)
(pow.f64 (cbrt.f64 (*.f64 eps (fma.f64 2 x eps))) 3)
(pow.f64 (pow.f64 (*.f64 eps (fma.f64 2 x eps)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 eps (fma.f64 2 x eps))) 2)
(sqrt.f64 (pow.f64 (*.f64 eps (fma.f64 2 x eps)) 2))
(log.f64 (pow.f64 (exp.f64 eps) (fma.f64 2 x eps)))
(cbrt.f64 (pow.f64 (*.f64 eps (fma.f64 2 x eps)) 3))
(expm1.f64 (log1p.f64 (*.f64 eps (fma.f64 2 x eps))))
(exp.f64 (log.f64 (*.f64 eps (fma.f64 2 x eps))))
(log1p.f64 (expm1.f64 (*.f64 eps (fma.f64 2 x eps))))

simplify126.0ms (5%)

Algorithm
egg-herbie
Rules
1576×fma-def
1172×log-prod
650×*-commutative
638×associate-*r*
626×distribute-lft-out
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043525
1104525
2334525
32351525
45603525
Stop Event
node limit
Counts
37 → 19
Calls
Call 1
Inputs
(*.f64 2 (*.f64 eps x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 2 (*.f64 eps x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 2 (*.f64 eps x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 (*.f64 2 x) eps) (*.f64 eps eps))
(+.f64 (*.f64 eps (*.f64 2 x)) (*.f64 eps eps))
(-.f64 (+.f64 1 (*.f64 eps (fma.f64 2 x eps))) 1)
(pow.f64 (*.f64 eps (fma.f64 2 x eps)) 1)
(pow.f64 (cbrt.f64 (*.f64 eps (fma.f64 2 x eps))) 3)
(pow.f64 (pow.f64 (*.f64 eps (fma.f64 2 x eps)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 eps (fma.f64 2 x eps))) 2)
(sqrt.f64 (pow.f64 (*.f64 eps (fma.f64 2 x eps)) 2))
(log.f64 (pow.f64 (exp.f64 eps) (fma.f64 2 x eps)))
(cbrt.f64 (pow.f64 (*.f64 eps (fma.f64 2 x eps)) 3))
(expm1.f64 (log1p.f64 (*.f64 eps (fma.f64 2 x eps))))
(exp.f64 (log.f64 (*.f64 eps (fma.f64 2 x eps))))
(log1p.f64 (expm1.f64 (*.f64 eps (fma.f64 2 x eps))))
Outputs
(*.f64 2 (*.f64 eps x))
(*.f64 eps (*.f64 2 x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(pow.f64 eps 2)
(*.f64 eps eps)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(pow.f64 eps 2)
(*.f64 eps eps)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(pow.f64 eps 2)
(*.f64 eps eps)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(*.f64 2 (*.f64 eps x))
(*.f64 eps (*.f64 2 x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(*.f64 2 (*.f64 eps x))
(*.f64 eps (*.f64 2 x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (*.f64 (*.f64 2 x) eps) (*.f64 eps eps))
(*.f64 eps (fma.f64 2 x eps))
(+.f64 (*.f64 eps (*.f64 2 x)) (*.f64 eps eps))
(*.f64 eps (fma.f64 2 x eps))
(-.f64 (+.f64 1 (*.f64 eps (fma.f64 2 x eps))) 1)
(*.f64 eps (fma.f64 2 x eps))
(pow.f64 (*.f64 eps (fma.f64 2 x eps)) 1)
(*.f64 eps (fma.f64 2 x eps))
(pow.f64 (cbrt.f64 (*.f64 eps (fma.f64 2 x eps))) 3)
(*.f64 eps (fma.f64 2 x eps))
(pow.f64 (pow.f64 (*.f64 eps (fma.f64 2 x eps)) 3) 1/3)
(*.f64 eps (fma.f64 2 x eps))
(pow.f64 (sqrt.f64 (*.f64 eps (fma.f64 2 x eps))) 2)
(*.f64 eps (fma.f64 2 x eps))
(sqrt.f64 (pow.f64 (*.f64 eps (fma.f64 2 x eps)) 2))
(*.f64 eps (fma.f64 2 x eps))
(log.f64 (pow.f64 (exp.f64 eps) (fma.f64 2 x eps)))
(*.f64 eps (fma.f64 2 x eps))
(cbrt.f64 (pow.f64 (*.f64 eps (fma.f64 2 x eps)) 3))
(*.f64 eps (fma.f64 2 x eps))
(expm1.f64 (log1p.f64 (*.f64 eps (fma.f64 2 x eps))))
(*.f64 eps (fma.f64 2 x eps))
(exp.f64 (log.f64 (*.f64 eps (fma.f64 2 x eps))))
(*.f64 eps (fma.f64 2 x eps))
(log1p.f64 (expm1.f64 (*.f64 eps (fma.f64 2 x eps))))
(*.f64 eps (fma.f64 2 x eps))

eval3.0ms (0.1%)

Compiler

Compiled 147 to 90 computations (38.8% saved)

prune4.0ms (0.2%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New16319
Fresh000
Picked101
Done000
Total17320
Accurracy
100.0%
Counts
20 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 (*.f64 2 x) eps) (*.f64 eps eps))
65.5%
(*.f64 eps (*.f64 2 x))
70.2%
(*.f64 eps eps)
100.0%
(+.f64 (*.f64 (*.f64 2 x) eps) (*.f64 eps eps))
65.5%
(*.f64 eps (*.f64 2 x))
70.2%
(*.f64 eps eps)
Compiler

Compiled 46 to 30 computations (34.8% saved)

localize120.0ms (4.8%)

Compiler

Compiled 41 to 20 computations (51.2% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked033
Done000
Total033
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 (*.f64 2 x) eps) (*.f64 eps eps))
65.5%
(*.f64 eps (*.f64 2 x))
70.2%
(*.f64 eps eps)
Compiler

Compiled 57 to 34 computations (40.4% saved)

regimes13.0ms (0.5%)

Counts
5 → 1
Calls
Call 1
Inputs
(*.f64 eps eps)
(*.f64 eps (*.f64 2 x))
(+.f64 (*.f64 (*.f64 2 x) eps) (*.f64 eps eps))
(*.f64 eps (fma.f64 2 x eps))
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
Outputs
(+.f64 (*.f64 (*.f64 2 x) eps) (*.f64 eps eps))
Calls

3 calls:

5.0ms
eps
4.0ms
x
2.0ms
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1eps
100.0%1(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
Compiler

Compiled 51 to 31 computations (39.2% saved)

regimes20.0ms (0.8%)

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

2 calls:

10.0ms
eps
9.0ms
x
Results
AccuracySegmentsBranch
93.8%3x
88.3%3eps
Compiler

Compiled 16 to 10 computations (37.5% saved)

regimes7.0ms (0.3%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 eps eps)
Outputs
(*.f64 eps eps)
Calls

2 calls:

4.0ms
eps
3.0ms
x
Results
AccuracySegmentsBranch
70.2%1eps
70.2%1x
Compiler

Compiled 11 to 7 computations (36.4% saved)

bsearch41.0ms (1.6%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
24.0ms
9.51530025731175e-104
4.263092851582244e-100
17.0ms
-2.0138903734753365e-81
-8.925878385525517e-82
Results
20.0ms115×body256valid
11.0ms71×body512valid
8.0ms22×body1024valid
Compiler

Compiled 198 to 142 computations (28.3% saved)

simplify6.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative
+-commutative
if-if-or-not
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01977
12877
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 (*.f64 2 x) eps) (*.f64 eps eps))
(if (<=.f64 x -8202190217936295/8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746304) (*.f64 eps (*.f64 2 x)) (if (<=.f64 x 71416136230965/4925250774549309901534880012517951725634967408808180833493536675530715221437151326426783281860614455100828498788352) (*.f64 eps eps) (*.f64 eps (*.f64 2 x))))
(*.f64 eps eps)
Outputs
(+.f64 (*.f64 (*.f64 2 x) eps) (*.f64 eps eps))
(+.f64 (*.f64 eps eps) (*.f64 (*.f64 2 x) eps))
(if (<=.f64 x -8202190217936295/8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746304) (*.f64 eps (*.f64 2 x)) (if (<=.f64 x 71416136230965/4925250774549309901534880012517951725634967408808180833493536675530715221437151326426783281860614455100828498788352) (*.f64 eps eps) (*.f64 eps (*.f64 2 x))))
(if (or (<=.f64 x -8202190217936295/8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746304) (not (<=.f64 x 71416136230965/4925250774549309901534880012517951725634967408808180833493536675530715221437151326426783281860614455100828498788352))) (*.f64 (*.f64 2 x) eps) (*.f64 eps eps))
(*.f64 eps eps)
Compiler

Compiled 35 to 23 computations (34.3% saved)

soundness303.0ms (12%)

Rules
1576×fma-def
1576×fma-def
1472×pow1
1344×add-exp-log
1344×log1p-expm1-u
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0925
12125
25225
316425
465215
5289915
0815
115915
2181815
043525
1104525
2334525
32351525
45603525
043525
1104525
2334525
32351525
45603525
Stop Event
node limit
node limit
node limit
node limit
Compiler

Compiled 174 to 73 computations (58% saved)

end0.0ms (0%)

preprocess34.0ms (1.4%)

Compiler

Compiled 84 to 50 computations (40.5% saved)

Profiling

Loading profile data...