Graphics.Rasterific.CubicBezier:cachedBezierAt from Rasterific-0.6.1

Time bar (total: 1.5s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.7%0.3%0%0%0%0
100%99.7%0%0.3%0%0%0%1
Compiler

Compiled 22 to 14 computations (36.4% saved)

sample1.4s (89.4%)

Results
1.0s5618×body256valid
338.0ms2638×body256infinite
Bogosity

preprocess161.0ms (10.6%)

Algorithm
egg-herbie
Rules
497×*-commutative
495×associate--l+
474×associate--r-
420×+-commutative
415×distribute-lft-out--
Problems
216×No Errors
28×(*.f64 (*.f64 a z) b)
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01302031
13911627
212961586
332241582
467401582
Stop Event
node limit
Calls
Call 1
Inputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 (neg.f64 x) (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 (neg.f64 y) z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y (neg.f64 z))) (*.f64 t a)) (*.f64 (*.f64 a (neg.f64 z)) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 (neg.f64 t) a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t (neg.f64 a))) (*.f64 (*.f64 (neg.f64 a) z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) (neg.f64 b)))
(neg.f64 (+.f64 (+.f64 (+.f64 (neg.f64 x) (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))
(neg.f64 (+.f64 (+.f64 (+.f64 x (*.f64 (neg.f64 y) z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))
(neg.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y (neg.f64 z))) (*.f64 t a)) (*.f64 (*.f64 a (neg.f64 z)) b)))
(neg.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 (neg.f64 t) a)) (*.f64 (*.f64 a z) b)))
(neg.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t (neg.f64 a))) (*.f64 (*.f64 (neg.f64 a) z) b)))
(neg.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) (neg.f64 b))))
(+.f64 (+.f64 (+.f64 y (*.f64 x z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 z (*.f64 y x)) (*.f64 t a)) (*.f64 (*.f64 a x) b))
(+.f64 (+.f64 (+.f64 t (*.f64 y z)) (*.f64 x a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 a (*.f64 y z)) (*.f64 t x)) (*.f64 (*.f64 x z) b))
(+.f64 (+.f64 (+.f64 b (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) x))
(+.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 t a)) (*.f64 (*.f64 a y) b))
(+.f64 (+.f64 (+.f64 x (*.f64 t z)) (*.f64 y a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 a z)) (*.f64 t y)) (*.f64 (*.f64 y z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 b z)) (*.f64 t a)) (*.f64 (*.f64 a z) y))
(+.f64 (+.f64 (+.f64 x (*.f64 y t)) (*.f64 z a)) (*.f64 (*.f64 a t) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y a)) (*.f64 t z)) (*.f64 (*.f64 z a) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y b)) (*.f64 t a)) (*.f64 (*.f64 a b) z))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a t)) (*.f64 (*.f64 t z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 b a)) (*.f64 (*.f64 a z) t))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t b)) (*.f64 (*.f64 b z) a))
Outputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b))))
(+.f64 (fma.f64 y z x) (*.f64 a (+.f64 t (*.f64 z b))))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b))))
(+.f64 (fma.f64 y z x) (*.f64 a (+.f64 t (*.f64 z b))))
(+.f64 (+.f64 (+.f64 (neg.f64 x) (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (*.f64 y z) (neg.f64 x)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b))))
(+.f64 (-.f64 (*.f64 y z) x) (*.f64 a (+.f64 t (*.f64 z b))))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (-.f64 (*.f64 t a) x))
(+.f64 (+.f64 (+.f64 x (*.f64 (neg.f64 y) z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 x (*.f64 y (neg.f64 z))) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b))))
(+.f64 (-.f64 x (*.f64 y z)) (*.f64 a (+.f64 t (*.f64 z b))))
(+.f64 (*.f64 t a) (+.f64 x (*.f64 z (-.f64 (*.f64 a b) y))))
(+.f64 (+.f64 (+.f64 x (*.f64 y (neg.f64 z))) (*.f64 t a)) (*.f64 (*.f64 a (neg.f64 z)) b))
(+.f64 (+.f64 x (*.f64 y (neg.f64 z))) (+.f64 (*.f64 t a) (*.f64 a (*.f64 (neg.f64 z) b))))
(+.f64 (-.f64 x (*.f64 y z)) (*.f64 a (+.f64 t (*.f64 z (neg.f64 b)))))
(+.f64 (-.f64 x (*.f64 y z)) (*.f64 a (-.f64 t (*.f64 z b))))
(+.f64 x (-.f64 (*.f64 t a) (*.f64 z (+.f64 y (*.f64 a b)))))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 (neg.f64 t) a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t (neg.f64 a)) (*.f64 a (*.f64 z b))))
(+.f64 (fma.f64 y z x) (*.f64 a (+.f64 (neg.f64 t) (*.f64 z b))))
(-.f64 (fma.f64 y z x) (*.f64 a (-.f64 t (*.f64 z b))))
(+.f64 (fma.f64 y z x) (*.f64 a (-.f64 (*.f64 z b) t)))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t (neg.f64 a))) (*.f64 (*.f64 (neg.f64 a) z) b))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t (neg.f64 a)) (*.f64 a (*.f64 (neg.f64 z) b))))
(+.f64 (fma.f64 y z x) (*.f64 (neg.f64 a) (+.f64 t (*.f64 z b))))
(-.f64 (fma.f64 y z x) (*.f64 a (+.f64 t (*.f64 z b))))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) (neg.f64 b)))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z (neg.f64 b)))))
(+.f64 (fma.f64 y z x) (*.f64 a (+.f64 t (*.f64 z (neg.f64 b)))))
(+.f64 (fma.f64 y z x) (*.f64 a (-.f64 t (*.f64 z b))))
(-.f64 (fma.f64 y z x) (*.f64 a (-.f64 (*.f64 z b) t)))
(neg.f64 (+.f64 (+.f64 (+.f64 (neg.f64 x) (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))
(neg.f64 (+.f64 (+.f64 (*.f64 y z) (neg.f64 x)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b)))))
(neg.f64 (+.f64 (-.f64 (*.f64 y z) x) (*.f64 a (+.f64 t (*.f64 z b)))))
(-.f64 x (+.f64 (*.f64 y z) (*.f64 a (+.f64 t (*.f64 z b)))))
(-.f64 (-.f64 x (*.f64 t a)) (*.f64 z (+.f64 y (*.f64 a b))))
(neg.f64 (+.f64 (+.f64 (+.f64 x (*.f64 (neg.f64 y) z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))
(neg.f64 (+.f64 (+.f64 x (*.f64 y (neg.f64 z))) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b)))))
(-.f64 (-.f64 (*.f64 y z) x) (*.f64 a (+.f64 t (*.f64 z b))))
(-.f64 (fma.f64 y z (neg.f64 x)) (*.f64 a (+.f64 t (*.f64 z b))))
(neg.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y (neg.f64 z))) (*.f64 t a)) (*.f64 (*.f64 a (neg.f64 z)) b)))
(neg.f64 (+.f64 (+.f64 x (*.f64 y (neg.f64 z))) (+.f64 (*.f64 t a) (*.f64 a (*.f64 (neg.f64 z) b)))))
(-.f64 (-.f64 (*.f64 y z) x) (*.f64 a (+.f64 t (*.f64 z (neg.f64 b)))))
(-.f64 (*.f64 y z) (+.f64 x (*.f64 a (-.f64 t (*.f64 z b)))))
(+.f64 (fma.f64 y z (neg.f64 x)) (*.f64 a (-.f64 (*.f64 z b) t)))
(neg.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 (neg.f64 t) a)) (*.f64 (*.f64 a z) b)))
(neg.f64 (+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t (neg.f64 a)) (*.f64 a (*.f64 z b)))))
(neg.f64 (+.f64 (fma.f64 y z x) (*.f64 a (+.f64 (neg.f64 t) (*.f64 z b)))))
(-.f64 (*.f64 a (-.f64 t (*.f64 z b))) (fma.f64 y z x))
(neg.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t (neg.f64 a))) (*.f64 (*.f64 (neg.f64 a) z) b)))
(neg.f64 (+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t (neg.f64 a)) (*.f64 a (*.f64 (neg.f64 z) b)))))
(neg.f64 (+.f64 (fma.f64 y z x) (*.f64 (neg.f64 a) (+.f64 t (*.f64 z b)))))
(-.f64 (*.f64 a (+.f64 t (*.f64 z b))) (fma.f64 y z x))
(neg.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) (neg.f64 b))))
(neg.f64 (+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z (neg.f64 b))))))
(-.f64 (*.f64 z (*.f64 a b)) (fma.f64 t a (fma.f64 y z x)))
(-.f64 (*.f64 a (+.f64 (neg.f64 t) (*.f64 z b))) (fma.f64 y z x))
(-.f64 (*.f64 a (-.f64 (*.f64 z b) t)) (fma.f64 y z x))
(+.f64 (+.f64 (+.f64 y (*.f64 x z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 y (+.f64 (*.f64 x z) (*.f64 t a))))
(+.f64 (fma.f64 x z y) (*.f64 a (+.f64 t (*.f64 z b))))
(+.f64 (+.f64 (+.f64 z (*.f64 y x)) (*.f64 t a)) (*.f64 (*.f64 a x) b))
(+.f64 (+.f64 z (*.f64 x y)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 x b))))
(+.f64 (fma.f64 x y z) (*.f64 a (+.f64 t (*.f64 x b))))
(+.f64 (+.f64 (+.f64 t (*.f64 y z)) (*.f64 x a)) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 (+.f64 (*.f64 y z) t) (*.f64 x a)))
(+.f64 (fma.f64 y z t) (*.f64 a (fma.f64 z b x)))
(+.f64 (+.f64 (+.f64 a (*.f64 y z)) (*.f64 t x)) (*.f64 (*.f64 x z) b))
(+.f64 (+.f64 (*.f64 y z) a) (+.f64 (*.f64 x t) (*.f64 x (*.f64 z b))))
(+.f64 (fma.f64 y z a) (*.f64 x (+.f64 t (*.f64 z b))))
(+.f64 (+.f64 (+.f64 b (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) x))
(+.f64 (+.f64 (*.f64 y z) b) (+.f64 (*.f64 t a) (*.f64 x (*.f64 z a))))
(+.f64 (fma.f64 y z b) (*.f64 a (+.f64 t (*.f64 x z))))
(+.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 t a)) (*.f64 (*.f64 a y) b))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 y b))))
(+.f64 (fma.f64 y z x) (*.f64 a (+.f64 t (*.f64 y b))))
(+.f64 (+.f64 (+.f64 x (*.f64 t z)) (*.f64 y a)) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 z t) (*.f64 y a))))
(+.f64 (fma.f64 y a x) (*.f64 z (+.f64 t (*.f64 a b))))
(+.f64 (fma.f64 z t x) (*.f64 a (+.f64 y (*.f64 z b))))
(+.f64 (+.f64 (+.f64 x (*.f64 a z)) (*.f64 t y)) (*.f64 (*.f64 y z) b))
(+.f64 (+.f64 x (*.f64 z a)) (+.f64 (*.f64 y t) (*.f64 y (*.f64 z b))))
(+.f64 (fma.f64 z a x) (*.f64 y (+.f64 t (*.f64 z b))))
(+.f64 (fma.f64 y t x) (*.f64 z (+.f64 a (*.f64 y b))))
(+.f64 (+.f64 (+.f64 x (*.f64 b z)) (*.f64 t a)) (*.f64 (*.f64 a z) y))
(+.f64 (+.f64 x (+.f64 (*.f64 z b) (*.f64 t a))) (*.f64 y (*.f64 z a)))
(+.f64 (fma.f64 z b x) (*.f64 a (fma.f64 y z t)))
(+.f64 (+.f64 (+.f64 x (*.f64 y t)) (*.f64 z a)) (*.f64 (*.f64 a t) b))
(+.f64 (+.f64 x (*.f64 y t)) (+.f64 (*.f64 z a) (*.f64 a (*.f64 t b))))
(+.f64 (fma.f64 y t x) (*.f64 a (+.f64 z (*.f64 t b))))
(+.f64 (+.f64 (+.f64 x (*.f64 y a)) (*.f64 t z)) (*.f64 (*.f64 z a) b))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 z t) (*.f64 y a))))
(+.f64 (fma.f64 y a x) (*.f64 z (+.f64 t (*.f64 a b))))
(+.f64 (fma.f64 z t x) (*.f64 a (+.f64 y (*.f64 z b))))
(+.f64 (+.f64 (+.f64 x (*.f64 y b)) (*.f64 t a)) (*.f64 (*.f64 a b) z))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 y b) (*.f64 t a))))
(+.f64 (fma.f64 y b x) (*.f64 a (+.f64 t (*.f64 z b))))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a t)) (*.f64 (*.f64 t z) b))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 t (*.f64 z b))))
(+.f64 (fma.f64 y z x) (*.f64 t (+.f64 a (*.f64 z b))))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 b a)) (*.f64 (*.f64 a z) t))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 a b) (*.f64 t (*.f64 z a))))
(+.f64 (fma.f64 y z x) (*.f64 a (+.f64 b (*.f64 z t))))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t b)) (*.f64 (*.f64 b z) a))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t b) (*.f64 a (*.f64 z b))))
(+.f64 (fma.f64 y z x) (*.f64 b (+.f64 t (*.f64 z a))))
Compiler

Compiled 56 to 14 computations (75% saved)

end0.0ms (0%)

Profiling

Loading profile data...