Graphics.Rasterific.CubicBezier:cachedBezierAt from Rasterific-0.6.1

Time bar (total: 6.5s)

analyze1.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)

sample6.2s (95.8%)

Results
1.5s8256×0valid-rival
1.1s8253×0valid-sollya
15.0ms0exit-sollya
Bogosity

preprocess189.0ms (2.9%)

Algorithm
egg-herbie
Rules
599×sub-neg
437×neg-sub0
425×associate-+r+
401×neg-mul-1
376×distribute-neg-in
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01302031
13981627
213321586
333941582
459651582
576531582
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 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 y (neg.f64 z)) (*.f64 t a))))
(+.f64 (-.f64 x (*.f64 y z)) (*.f64 a (+.f64 t (*.f64 z b))))
(+.f64 x (+.f64 (*.f64 z (-.f64 (*.f64 a b) y)) (*.f64 t a)))
(+.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 (-.f64 x (*.f64 y z)) (*.f64 a (-.f64 (*.f64 z b) t)))
(+.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 (-.f64 x (*.f64 y z)) (*.f64 a (+.f64 t (*.f64 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 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 y (neg.f64 z)) (*.f64 t a)))))
(-.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)))
(+.f64 (*.f64 y z) (-.f64 (*.f64 a (-.f64 (*.f64 z b) t)) x))
(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 y (*.f64 x z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b))))
(+.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 t (+.f64 (*.f64 y z) (*.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 (+.f64 x (*.f64 z t)) (*.f64 y a)))
(+.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 (+.f64 x (*.f64 z t)) (*.f64 y a)))
(+.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 (*.f64 y z) (*.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 21 to 13 computations (38.1% saved)

eval0.0ms (0%)

Compiler

Compiled 6 to 6 computations (0% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
94.2%
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 42 to 26 computations (38.1% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02267
12967
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Outputs
(+.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 z a) b))

soundness1.0ms (0%)

Stop Event
fuel
Compiler

Compiled 21 to 13 computations (38.1% saved)

preprocess81.0ms (1.2%)

Compiler

Compiled 190 to 100 computations (47.4% saved)

end0.0ms (0%)

Profiling

Loading profile data...