Eccentricity of an ellipse

Time bar (total: 2.4s)

analyze35.0ms (1.4%)

Memory
-4.4MiB live, 11.4MiB allocated
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
50%18.7%18.7%62.5%0%0%0%2
50%18.7%18.7%62.5%0%0%0%3
75%28.1%9.4%62.5%0%0%0%4
75%28.1%9.4%62.5%0%0%0%5
87.5%32.8%4.7%62.5%0%0%0%6
87.5%32.8%4.7%62.5%0%0%0%7
93.8%35.1%2.3%62.5%0%0%0%8
93.8%35.1%2.3%62.5%0%0%0%9
96.9%36.3%1.2%62.5%0%0%0%10
96.9%36.3%1.2%62.5%0%0%0%11
98.4%36.9%0.6%62.5%0%0%0%12
Compiler

Compiled 31 to 19 computations (38.7% saved)

sample2.3s (93.6%)

Memory
26.4MiB live, 684.2MiB allocated
Samples
530.0ms8 256×0valid-baseline
480.0ms8 256×0valid-rival
369.0ms8 256×0valid-sollya
Precisions
Click to see Rival histograms. Total time spent on operations: 300.0ms
ival-mult: 115.0ms (38.3% of total)
ival-sqrt: 55.0ms (18.3% of total)
ival-div: 48.0ms (16% of total)
ival-fabs: 39.0ms (13% of total)
ival-sub: 34.0ms (11.3% of total)
ival-true: 7.0ms (2.3% of total)
ival-assert: 3.0ms (1% of total)
Precisions
Click to see Base histograms. Total time spent on operations: 299.0ms
ival-mult: 115.0ms (38.5% of total)
ival-sqrt: 50.0ms (16.7% of total)
ival-div: 47.0ms (15.7% of total)
ival-fabs: 42.0ms (14.1% of total)
ival-sub: 38.0ms (12.7% of total)
const: 6.0ms (2% of total)
Bogosity

preprocess94.0ms (3.9%)

Memory
-9.8MiB live, 20.6MiB allocated
Algorithm
egg-herbie
Rules
707×times-frac
477×div-sub
450×fmm-def
320×fabs-mul
295×associate-*l/
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
032407
1106323
2390295
32599295
47059295
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 #s(literal 1 binary64) (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) #s(literal -1 binary64))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 #s(literal 1 binary64) (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) #s(literal -1 binary64))))
(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 #s(literal 1 binary64) (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) #s(literal -1 binary64))))
(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 #s(literal 1 binary64) (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) #s(literal -1 binary64))))
(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 #s(literal 1 binary64) (*.f64 b (/.f64 b (*.f64 a a)))))))
(neg.f64 (sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) #s(literal -1 binary64)))))
(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 #s(literal 1 binary64) (*.f64 b (/.f64 b (*.f64 a a)))))))
(neg.f64 (sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) #s(literal -1 binary64)))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 b b))))
(sqrt.f64 (fabs.f64 (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 a b) (/.f64 a b)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 a b) (/.f64 a b) #s(literal -1 binary64))))
(sqrt.f64 (fabs.f64 (fma.f64 a (/.f64 a (*.f64 b b)) #s(literal -1 binary64))))
Symmetry

(abs a)

(abs b)

Compiler

Compiled 15 to 8 computations (46.7% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
51.4%
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
Compiler

Compiled 30 to 16 computations (46.7% saved)

simplify3.0ms (0.1%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
egg-herbie
Rules
sub-neg
+-commutative
*-commutative
neg-sub0
neg-mul-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01457
12257
23557
34957
46057
56657
66957
Stop Event
saturated
Calls
Call 1
Inputs
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
Outputs
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (/.f64 (fabs.f64 (-.f64 (*.f64 a a) (*.f64 b b))) (*.f64 a a)))

soundness0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Stop Event
fuel
Compiler

Compiled 15 to 8 computations (46.7% saved)

preprocess21.0ms (0.9%)

Memory
6.7MiB live, 24.7MiB allocated
Remove

(abs b)

(abs a)

Compiler

Compiled 180 to 96 computations (46.7% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...