Data.Array.Repa.Algorithms.Pixel:doubleRmsOfRGB8 from repa-algorithms-3.4.0.1

Time bar (total: 1.3s)

analyze1.0ms (0.1%)

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 18 to 12 computations (33.3% saved)

sample1.1s (85.8%)

Results
1.1s8256×body256valid
Bogosity

preprocess186.0ms (14.1%)

Algorithm
egg-herbie
Rules
652×fma-def
256×associate-*r*
168×*-commutative
161×associate-+r+
156×associate-+r-
Problems
151×(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) 3))
105×No Errors
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
050617
197573
2171573
3429573
4924573
51474573
62222573
73100573
83210573
Stop Event
saturated
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) 3))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) 3))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 y y)) (*.f64 z z)) 3))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 z z)) 3))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (neg.f64 z) (neg.f64 z))) 3))
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 y y)) (*.f64 z z)) 3)))
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 z z)) 3)))
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (neg.f64 z) (neg.f64 z))) 3)))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 z z)) 3))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 z z) (*.f64 y y)) (*.f64 x x)) 3))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 z z)) (*.f64 y y)) 3))
Outputs
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) 3))
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) 3))
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 3))
(sqrt.f64 (*.f64 1/3 (fma.f64 x x (fma.f64 y y (*.f64 z z)))))
(sqrt.f64 (*.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 1/3))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) 3))
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) 3))
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 3))
(sqrt.f64 (*.f64 1/3 (fma.f64 x x (fma.f64 y y (*.f64 z z)))))
(sqrt.f64 (*.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 1/3))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 y y)) (*.f64 z z)) 3))
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) 3))
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 3))
(sqrt.f64 (*.f64 1/3 (fma.f64 x x (fma.f64 y y (*.f64 z z)))))
(sqrt.f64 (*.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 1/3))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 z z)) 3))
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) 3))
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 3))
(sqrt.f64 (*.f64 1/3 (fma.f64 x x (fma.f64 y y (*.f64 z z)))))
(sqrt.f64 (*.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 1/3))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (neg.f64 z) (neg.f64 z))) 3))
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) 3))
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 3))
(sqrt.f64 (*.f64 1/3 (fma.f64 x x (fma.f64 y y (*.f64 z z)))))
(sqrt.f64 (*.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 1/3))
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 y y)) (*.f64 z z)) 3)))
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) 3)))
(neg.f64 (sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 3)))
(neg.f64 (sqrt.f64 (*.f64 1/3 (fma.f64 x x (fma.f64 y y (*.f64 z z))))))
(neg.f64 (sqrt.f64 (*.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 1/3)))
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 z z)) 3)))
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) 3)))
(neg.f64 (sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 3)))
(neg.f64 (sqrt.f64 (*.f64 1/3 (fma.f64 x x (fma.f64 y y (*.f64 z z))))))
(neg.f64 (sqrt.f64 (*.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 1/3)))
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (neg.f64 z) (neg.f64 z))) 3)))
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) 3)))
(neg.f64 (sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 3)))
(neg.f64 (sqrt.f64 (*.f64 1/3 (fma.f64 x x (fma.f64 y y (*.f64 z z))))))
(neg.f64 (sqrt.f64 (*.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 1/3)))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 z z)) 3))
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) 3))
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 3))
(sqrt.f64 (*.f64 1/3 (fma.f64 x x (fma.f64 y y (*.f64 z z)))))
(sqrt.f64 (*.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 1/3))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 z z) (*.f64 y y)) (*.f64 x x)) 3))
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) 3))
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 3))
(sqrt.f64 (*.f64 1/3 (fma.f64 x x (fma.f64 y y (*.f64 z z)))))
(sqrt.f64 (*.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 1/3))
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 z z)) (*.f64 y y)) 3))
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) 3))
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 3))
(sqrt.f64 (*.f64 1/3 (fma.f64 x x (fma.f64 y y (*.f64 z z)))))
(sqrt.f64 (*.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) 1/3))
Symmetry

(abs x)

(abs y)

(abs z)

(sort x y z)

Compiler

Compiled 62 to 15 computations (75.8% saved)

end0.0ms (0%)

Profiling

Loading profile data...