bug366 (missed optimization)

Time bar (total: 2.7s)

analyze16.0ms (0.6%)

Memory
4.8MiB live, 4.8MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
100%99.9%0%0.1%0%0%0%4
Compiler

Compiled 30 to 21 computations (30% saved)

sample2.6s (95.7%)

Memory
19.5MiB live, 785.6MiB allocated
Samples
565.0ms8 256×0valid-baseline
500.0ms8 256×0valid-sollya
500.0ms8 256×0valid-rival
Precisions
Click to see Rival histograms. Total time spent on operations: 299.0ms
ival-mult: 166.0ms (55.5% of total)
ival-add: 64.0ms (21.4% of total)
ival-sqrt: 59.0ms (19.7% 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: 306.0ms
ival-mult: 170.0ms (55.5% of total)
ival-add: 74.0ms (24.2% of total)
ival-sqrt: 56.0ms (18.3% of total)
const: 7.0ms (2.3% of total)
Bogosity

preprocess66.0ms (2.4%)

Memory
4.3MiB live, 22.3MiB allocated
Algorithm
egg-herbie
Rules
212×fmm-def
120×fma-define
31×unsub-neg
31×neg-sub0
30×sub-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042507
191507
2179507
3398507
4682507
5832507
6848507
Stop Event
saturated
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 y y) (*.f64 z z))))
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 y y) (*.f64 z z))))
(sqrt.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (+.f64 (*.f64 y y) (*.f64 z z))))
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 z z))))
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 y y) (*.f64 (neg.f64 z) (neg.f64 z)))))
(neg.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (+.f64 (*.f64 y y) (*.f64 z z)))))
(neg.f64 (sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 z z)))))
(neg.f64 (sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 y y) (*.f64 (neg.f64 z) (neg.f64 z))))))
(sqrt.f64 (+.f64 (*.f64 y y) (+.f64 (*.f64 x x) (*.f64 z z))))
(sqrt.f64 (+.f64 (*.f64 z z) (+.f64 (*.f64 y y) (*.f64 x x))))
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 z z) (*.f64 y y))))
Outputs
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 y y) (*.f64 z z))))
(sqrt.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))))
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 y y) (*.f64 z z))))
(sqrt.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))))
(sqrt.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (+.f64 (*.f64 y y) (*.f64 z z))))
(sqrt.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))))
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 z z))))
(sqrt.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))))
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 y y) (*.f64 (neg.f64 z) (neg.f64 z)))))
(sqrt.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))))
(neg.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (+.f64 (*.f64 y y) (*.f64 z z)))))
(neg.f64 (sqrt.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z)))))
(neg.f64 (sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 z z)))))
(neg.f64 (sqrt.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z)))))
(neg.f64 (sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 y y) (*.f64 (neg.f64 z) (neg.f64 z))))))
(neg.f64 (sqrt.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z)))))
(sqrt.f64 (+.f64 (*.f64 y y) (+.f64 (*.f64 x x) (*.f64 z z))))
(sqrt.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))))
(sqrt.f64 (+.f64 (*.f64 z z) (+.f64 (*.f64 y y) (*.f64 x x))))
(sqrt.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))))
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 z z) (*.f64 y y))))
(sqrt.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))))
Symmetry

(abs x)

(abs y)

(abs z)

(sort x y z)

Compiler

Compiled 15 to 9 computations (40% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
45.1%
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 y y) (*.f64 z z))))
Compiler

Compiled 30 to 18 computations (40% saved)

simplify2.0ms (0.1%)

Memory
0.4MiB live, 0.4MiB allocated
Algorithm
egg-herbie
Rules
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01653
11853
Stop Event
saturated
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 y y) (*.f64 z z))))
Outputs
(sqrt.f64 (+.f64 (*.f64 x x) (+.f64 (*.f64 y y) (*.f64 z z))))

soundness0.0ms (0%)

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

Compiled 15 to 9 computations (40% saved)

preprocess32.0ms (1.2%)

Memory
-5.2MiB live, 41.9MiB allocated
Remove

(sort x y z)

(abs z)

(abs y)

(abs x)

Compiler

Compiled 316 to 190 computations (39.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...