Graphics.Rasterific.Shading:$sradialGradientWithFocusShader from Rasterific-0.6.1, B

Time bar (total: 6.3s)

analyze1.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
100%99.8%0%0.2%0%0%0%1
Compiler

Compiled 18 to 12 computations (33.3% saved)

sample5.9s (93.8%)

Results
1.3s8256×0valid-rival
1.1s8251×0valid-sollya
25.0ms0exit-sollya
Bogosity

preprocess303.0ms (4.8%)

Algorithm
egg-herbie
Rules
618×unsub-neg
556×sub-neg
547×fma-neg
469×*-commutative
382×distribute-lft-neg-in
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
061912
1195824
2657824
33085824
45790824
57169824
67606824
77715824
87732824
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 (neg.f64 y) #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 (neg.f64 z) (neg.f64 z)) t)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) (neg.f64 t))))
(neg.f64 (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 (neg.f64 y) #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 (neg.f64 z) (neg.f64 z)) t))))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) (neg.f64 t)))))
(-.f64 (*.f64 y y) (*.f64 (*.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(-.f64 (*.f64 z z) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 x x) t)))
(-.f64 (*.f64 t t) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) x)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 z #s(literal 4 binary64)) (-.f64 (*.f64 y y) t)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 t #s(literal 4 binary64)) (-.f64 (*.f64 z z) y)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 t t) z)))
Outputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(fma.f64 x x (*.f64 (-.f64 (*.f64 z z) t) (*.f64 y #s(literal -4 binary64))))
(fma.f64 (*.f64 y #s(literal 4 binary64)) (fma.f64 z (neg.f64 z) t) (*.f64 x x))
(fma.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 t (*.f64 z z)) (*.f64 x x))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(fma.f64 x x (*.f64 (-.f64 (*.f64 z z) t) (*.f64 y #s(literal -4 binary64))))
(fma.f64 (*.f64 y #s(literal 4 binary64)) (fma.f64 z (neg.f64 z) t) (*.f64 x x))
(fma.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 t (*.f64 z z)) (*.f64 x x))
(-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(fma.f64 x x (*.f64 (-.f64 (*.f64 z z) t) (*.f64 y #s(literal -4 binary64))))
(fma.f64 (*.f64 y #s(literal 4 binary64)) (fma.f64 z (neg.f64 z) t) (*.f64 x x))
(fma.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 t (*.f64 z z)) (*.f64 x x))
(-.f64 (*.f64 x x) (*.f64 (*.f64 (neg.f64 y) #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(-.f64 (*.f64 x x) (*.f64 (-.f64 (*.f64 z z) t) (*.f64 #s(literal 4 binary64) (neg.f64 y))))
(fma.f64 x x (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(fma.f64 y (*.f64 #s(literal 4 binary64) (-.f64 (*.f64 z z) t)) (*.f64 x x))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 (neg.f64 z) (neg.f64 z)) t)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(fma.f64 x x (*.f64 (-.f64 (*.f64 z z) t) (*.f64 y #s(literal -4 binary64))))
(fma.f64 (*.f64 y #s(literal 4 binary64)) (fma.f64 z (neg.f64 z) t) (*.f64 x x))
(fma.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 t (*.f64 z z)) (*.f64 x x))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) (neg.f64 t))))
(fma.f64 x x (*.f64 (fma.f64 z z t) (*.f64 y #s(literal -4 binary64))))
(fma.f64 x x (*.f64 y (*.f64 (fma.f64 z z t) #s(literal -4 binary64))))
(neg.f64 (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))))
(neg.f64 (fma.f64 x x (*.f64 (-.f64 (*.f64 z z) t) (*.f64 y #s(literal -4 binary64)))))
(-.f64 (*.f64 y (*.f64 #s(literal 4 binary64) (-.f64 (*.f64 z z) t))) (*.f64 x x))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 (neg.f64 y) #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (-.f64 (*.f64 z z) t) (*.f64 #s(literal 4 binary64) (neg.f64 y)))))
(neg.f64 (fma.f64 x x (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))))
(neg.f64 (fma.f64 y (*.f64 #s(literal 4 binary64) (-.f64 (*.f64 z z) t)) (*.f64 x x)))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 (neg.f64 z) (neg.f64 z)) t))))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))))
(neg.f64 (fma.f64 x x (*.f64 (-.f64 (*.f64 z z) t) (*.f64 y #s(literal -4 binary64)))))
(-.f64 (*.f64 y (*.f64 #s(literal 4 binary64) (-.f64 (*.f64 z z) t))) (*.f64 x x))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) (neg.f64 t)))))
(neg.f64 (fma.f64 x x (*.f64 (fma.f64 z z t) (*.f64 y #s(literal -4 binary64)))))
(-.f64 (*.f64 #s(literal 4 binary64) (*.f64 y (fma.f64 z z t))) (*.f64 x x))
(-.f64 (*.f64 y y) (*.f64 (*.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(-.f64 (*.f64 y y) (*.f64 (-.f64 (*.f64 z z) t) (*.f64 x #s(literal 4 binary64))))
(fma.f64 y y (*.f64 (-.f64 (*.f64 z z) t) (*.f64 x #s(literal -4 binary64))))
(fma.f64 (-.f64 (*.f64 z z) t) (*.f64 x #s(literal -4 binary64)) (*.f64 y y))
(-.f64 (*.f64 z z) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 x x) t)))
(fma.f64 z z (*.f64 (-.f64 (*.f64 x x) t) (*.f64 y #s(literal -4 binary64))))
(fma.f64 (-.f64 (*.f64 x x) t) (*.f64 y #s(literal -4 binary64)) (*.f64 z z))
(-.f64 (*.f64 t t) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) x)))
(fma.f64 t t (*.f64 (-.f64 (*.f64 z z) x) (*.f64 y #s(literal -4 binary64))))
(fma.f64 y (*.f64 #s(literal 4 binary64) (fma.f64 z (neg.f64 z) x)) (*.f64 t t))
(fma.f64 y (*.f64 #s(literal 4 binary64) (-.f64 x (*.f64 z z))) (*.f64 t t))
(-.f64 (*.f64 x x) (*.f64 (*.f64 z #s(literal 4 binary64)) (-.f64 (*.f64 y y) t)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 #s(literal 4 binary64) z) (-.f64 (*.f64 y y) t)))
(fma.f64 x x (*.f64 (-.f64 (*.f64 y y) t) (*.f64 z #s(literal -4 binary64))))
(fma.f64 x x (*.f64 #s(literal 4 binary64) (*.f64 z (-.f64 t (*.f64 y y)))))
(-.f64 (*.f64 x x) (*.f64 (*.f64 t #s(literal 4 binary64)) (-.f64 (*.f64 z z) y)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 #s(literal 4 binary64) t) (-.f64 (*.f64 z z) y)))
(fma.f64 x x (*.f64 (-.f64 (*.f64 z z) y) (*.f64 t #s(literal -4 binary64))))
(fma.f64 t (*.f64 #s(literal 4 binary64) (fma.f64 z (neg.f64 z) y)) (*.f64 x x))
(fma.f64 t (*.f64 #s(literal 4 binary64) (-.f64 y (*.f64 z z))) (*.f64 x x))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 t t) z)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (fma.f64 t t (neg.f64 z))))
(fma.f64 x x (*.f64 (-.f64 (*.f64 t t) z) (*.f64 y #s(literal -4 binary64))))
(fma.f64 (-.f64 (*.f64 t t) z) (*.f64 y #s(literal -4 binary64)) (*.f64 x x))
(fma.f64 y (*.f64 #s(literal 4 binary64) (-.f64 z (*.f64 t t))) (*.f64 x x))
Symmetry

(abs x)

(abs z)

Compiler

Compiled 17 to 11 computations (35.3% saved)

eval0.0ms (0%)

Compiler

Compiled 4 to 4 computations (0% saved)

prune3.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
93.1%
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
Compiler

Compiled 34 to 22 computations (35.3% saved)

simplify11.0ms (0.2%)

Algorithm
egg-herbie
Rules
109×unsub-neg
66×neg-mul-1
35×distribute-lft-neg-in
30×distribute-neg-out
24×distribute-lft-neg-out
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01855
12855
24955
36555
49255
511955
613555
720155
836355
946555
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
Outputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 t (*.f64 z z))))

soundness1.0ms (0%)

Stop Event
fuel
Compiler

Compiled 17 to 11 computations (35.3% saved)

preprocess71.0ms (1.1%)

Remove

(abs z)

(abs x)

Compiler

Compiled 238 to 154 computations (35.3% saved)

end0.0ms (0%)

Profiling

Loading profile data...