Eccentricity of an ellipse

Time bar (total: 2.2s)

analyze17.0ms (0.8%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%37.5%62.5%0%0%0%0
0%0%37.5%62.5%0%0%0%1
0%0%18.7%81.3%0%0%0%2
0%0%9.4%90.6%0%0%0%3
0%0%9.4%90.6%0%0%0%4
0%0%7%93%0%0%0%5
20%1.2%4.7%94.1%0%0%0%6
25%1.2%3.5%95.3%0%0%0%7
40%1.8%2.6%95.6%0%0%0%8
51.9%2%1.9%96%0%0%0%9
64.7%2.4%1.3%96.3%0%0%0%10
72.9%2.6%1%96.5%0%0%0%11
80.2%2.7%0.7%96.6%0%0%0%12
Compiler

Compiled 26 to 15 computations (42.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
Operation ival-sqrt, time spent: 2.0ms, 22.0% of total-time
Operation ival-mult, time spent: 2.0ms, 22.0% of total-time
Operation ival-<=, time spent: 2.0ms, 22.0% of total-time
Operation ival-fabs, time spent: 1.0ms, 11.0% of total-time
Operation ival-div, time spent: 1.0ms, 11.0% of total-time
Operation ival-sub, time spent: 1.0ms, 11.0% of total-time
Operation ival-and, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

sample1.5s (65.7%)

Results
1.2s8255×0valid
102.0ms735×0precondition
0.0ms0valid
Precisions
Click to see histograms. Total time spent on operations: 670.0ms
Operation ival-sub, time spent: 158.0ms, 24.0% of total-time
Operation ival-mult, time spent: 133.0ms, 20.0% of total-time
Operation ival-<=, time spent: 128.0ms, 19.0% of total-time
Operation ival-sqrt, time spent: 113.0ms, 17.0% of total-time
Operation ival-div, time spent: 76.0ms, 11.0% of total-time
Operation ival-and, time spent: 26.0ms, 4.0% of total-time
Operation const, time spent: 19.0ms, 3.0% of total-time
Operation ival-fabs, time spent: 18.0ms, 3.0% of total-time
Bogosity

preprocess155.0ms (6.9%)

Algorithm
egg-herbie
Rules
1380×div-sub
942×times-frac
760×associate-*r*
718×associate-*r/
582×associate-/r/
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
580-0-(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))
00-0-(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
00-0-(fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a)))
00-0-(-.f64 (*.f64 a a) (*.f64 b b))
00-0-(*.f64 b b)
00-0-b
00-0-a
00-0-(*.f64 a a)
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
032407
1106323
2376295
32248295
Stop Event
node limit
Calls
Call 1
Inputs
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)) (*.f64 (neg.f64 a) (neg.f64 a)))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))) (*.f64 a a))))
(neg.f64 (sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)) (*.f64 (neg.f64 a) (neg.f64 a))))))
(neg.f64 (sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 b b))))
Outputs
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)) (*.f64 (neg.f64 a) (neg.f64 a)))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(neg.f64 (sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)) (*.f64 (neg.f64 a) (neg.f64 a))))))
(neg.f64 (sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a)))))
(neg.f64 (sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a))))))
(neg.f64 (sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1))))
(neg.f64 (sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))) (*.f64 a a)))))
(neg.f64 (sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a)))))
(neg.f64 (sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a))))))
(neg.f64 (sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 b b))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 a b) (/.f64 a b)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 a b) (/.f64 a b) -1)))
Symmetry

(abs a)

(abs b)

Compiler

Compiled 123 to 26 computations (78.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 29.0ms
Operation ival-sub, time spent: 9.0ms, 31.0% of total-time
Operation ival-mult, time spent: 8.0ms, 28.0% of total-time
Operation ival-sqrt, time spent: 6.0ms, 21.0% of total-time
Operation ival-div, time spent: 4.0ms, 14.0% of total-time
Operation ival-fabs, time spent: 1.0ms, 3.0% of total-time
Operation const, time spent: 1.0ms, 3.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 23 to 12 computations (47.8% saved)

prune1.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
100.0%
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
Compiler

Compiled 25 to 15 computations (40% saved)

localize361.0ms (16.1%)

Compiler

Compiled 79 to 25 computations (68.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 233.0ms
Operation ival-sub, time spent: 72.0ms, 31.0% of total-time
Operation ival-fma, time spent: 62.0ms, 27.0% of total-time
Operation ival-sqrt, time spent: 36.0ms, 15.0% of total-time
Operation ival-fabs, time spent: 24.0ms, 10.0% of total-time
Operation ival-div, time spent: 16.0ms, 7.0% of total-time
Operation ival-mult, time spent: 13.0ms, 6.0% of total-time
Operation const, time spent: 10.0ms, 4.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done000
Total022
Accuracy
100.0%
Counts
2 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
100.0%
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
Compiler

Compiled 61 to 33 computations (45.9% saved)

regimes19.0ms (0.8%)

Counts
3 → 1
Calls
Call 1
Inputs
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
Outputs
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
Calls

7 calls:

5.0ms
b
3.0ms
a
3.0ms
(*.f64 a a)
2.0ms
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
2.0ms
(fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a)))
Results
AccuracySegmentsBranch
100.0%1a
100.0%1b
100.0%1(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
100.0%1(fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a)))
100.0%1(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))
100.0%1(*.f64 a a)
100.0%1(*.f64 b b)
Compiler

Compiled 58 to 31 computations (46.6% saved)

regimes17.0ms (0.7%)

Accuracy

Total -14.5b remaining (-123666.7%)

Threshold costs -14.5b (-123666.7%)

Counts
2 → 1
Calls
Call 1
Inputs
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
Outputs
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
Calls

7 calls:

4.0ms
a
3.0ms
b
2.0ms
(*.f64 a a)
2.0ms
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
2.0ms
(fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a)))
Results
AccuracySegmentsBranch
100.0%1a
100.0%1b
100.0%1(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
100.0%1(fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a)))
100.0%1(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))
100.0%1(*.f64 a a)
100.0%1(*.f64 b b)
Compiler

Compiled 58 to 31 computations (46.6% saved)

simplify4.0ms (0.2%)

Algorithm
egg-herbie
Rules
12×sub-neg
12×+-commutative
neg-mul-1
*-commutative
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01986
13186
24186
35086
45986
56086
Stop Event
done
saturated
Calls
Call 1
Inputs
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
Outputs
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
Compiler

Compiled 25 to 15 computations (40% saved)

soundness163.0ms (7.3%)

Rules
1380×div-sub
1380×div-sub
942×times-frac
942×times-frac
760×associate-*r*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
032407
1106323
2376295
32248295
032407
1106323
2376295
32248295
Stop Event
node limit
node limit
Compiler

Compiled 249 to 83 computations (66.7% saved)

end0.0ms (0%)

preprocess32.0ms (1.4%)

Remove

(abs b)

(abs a)

Compiler

Compiled 220 to 124 computations (43.6% saved)

Profiling

Loading profile data...