Linear.Quaternion:$c/ from linear-1.19.1.3, A

Time bar (total: 20.3s)

analyze1.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 19 to 9 computations (52.6% saved)

sample19.5s (95.9%)

Results
1.9s8256×0valid-rival
927.0ms8150×0valid-sollya
530.0ms106×0exit-sollya
Bogosity

preprocess574.0ms (2.8%)

Algorithm
egg-herbie
Rules
1324×fma-neg
560×fma-define
361×unsub-neg
154×associate-+l-
142×sub-neg
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
047721
1124545
2291383
3815375
41776375
52657375
63410375
73927375
83994375
93994375
104609375
114609375
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z z)) (*.f64 z z)) (*.f64 z z))
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z z)) (*.f64 z z)) (*.f64 z z))
(+.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 z z)) (*.f64 z z)) (*.f64 z z))
(+.f64 (+.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 z z)) (*.f64 z z)) (*.f64 z z))
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 (neg.f64 z) (neg.f64 z))) (*.f64 (neg.f64 z) (neg.f64 z))) (*.f64 (neg.f64 z) (neg.f64 z)))
(neg.f64 (+.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 z z)) (*.f64 z z)) (*.f64 z z)))
(neg.f64 (+.f64 (+.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 z z)) (*.f64 z z)) (*.f64 z z)))
(neg.f64 (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 (neg.f64 z) (neg.f64 z))) (*.f64 (neg.f64 z) (neg.f64 z))) (*.f64 (neg.f64 z) (neg.f64 z))))
(+.f64 (+.f64 (+.f64 (*.f64 y x) (*.f64 z z)) (*.f64 z z)) (*.f64 z z))
(+.f64 (+.f64 (+.f64 (*.f64 z y) (*.f64 x x)) (*.f64 x x)) (*.f64 x x))
(+.f64 (+.f64 (+.f64 (*.f64 x z) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
Outputs
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z z)) (*.f64 z z)) (*.f64 z z))
(+.f64 (*.f64 z z) (+.f64 (*.f64 z z) (fma.f64 x y (*.f64 z z))))
(fma.f64 z z (fma.f64 x y (*.f64 #s(literal 2 binary64) (*.f64 z z))))
(fma.f64 x y (*.f64 (*.f64 z z) #s(literal 3 binary64)))
(fma.f64 x y (*.f64 z (*.f64 z #s(literal 3 binary64))))
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z z)) (*.f64 z z)) (*.f64 z z))
(+.f64 (*.f64 z z) (+.f64 (*.f64 z z) (fma.f64 x y (*.f64 z z))))
(fma.f64 z z (fma.f64 x y (*.f64 #s(literal 2 binary64) (*.f64 z z))))
(fma.f64 x y (*.f64 (*.f64 z z) #s(literal 3 binary64)))
(fma.f64 x y (*.f64 z (*.f64 z #s(literal 3 binary64))))
(+.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 z z)) (*.f64 z z)) (*.f64 z z))
(+.f64 (*.f64 z z) (+.f64 (*.f64 z z) (fma.f64 x (neg.f64 y) (*.f64 z z))))
(fma.f64 z z (fma.f64 x (neg.f64 y) (*.f64 #s(literal 2 binary64) (*.f64 z z))))
(-.f64 (*.f64 (*.f64 z z) #s(literal 3 binary64)) (*.f64 x y))
(fma.f64 x (neg.f64 y) (*.f64 z (*.f64 z #s(literal 3 binary64))))
(+.f64 (+.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 z z)) (*.f64 z z)) (*.f64 z z))
(+.f64 (*.f64 z z) (+.f64 (*.f64 z z) (fma.f64 x (neg.f64 y) (*.f64 z z))))
(fma.f64 z z (fma.f64 x (neg.f64 y) (*.f64 #s(literal 2 binary64) (*.f64 z z))))
(-.f64 (*.f64 (*.f64 z z) #s(literal 3 binary64)) (*.f64 x y))
(fma.f64 x (neg.f64 y) (*.f64 z (*.f64 z #s(literal 3 binary64))))
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 (neg.f64 z) (neg.f64 z))) (*.f64 (neg.f64 z) (neg.f64 z))) (*.f64 (neg.f64 z) (neg.f64 z)))
(+.f64 (*.f64 z z) (+.f64 (*.f64 z z) (fma.f64 x y (*.f64 z z))))
(fma.f64 z z (fma.f64 x y (*.f64 #s(literal 2 binary64) (*.f64 z z))))
(fma.f64 x y (*.f64 (*.f64 z z) #s(literal 3 binary64)))
(fma.f64 x y (*.f64 z (*.f64 z #s(literal 3 binary64))))
(neg.f64 (+.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 z z)) (*.f64 z z)) (*.f64 z z)))
(neg.f64 (+.f64 (*.f64 z z) (+.f64 (*.f64 z z) (fma.f64 x (neg.f64 y) (*.f64 z z)))))
(neg.f64 (fma.f64 z z (fma.f64 x (neg.f64 y) (*.f64 #s(literal 2 binary64) (*.f64 z z)))))
(-.f64 (*.f64 x y) (*.f64 (*.f64 z z) #s(literal 3 binary64)))
(fma.f64 x y (*.f64 z (*.f64 z #s(literal -3 binary64))))
(neg.f64 (+.f64 (+.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 z z)) (*.f64 z z)) (*.f64 z z)))
(neg.f64 (+.f64 (*.f64 z z) (+.f64 (*.f64 z z) (fma.f64 x (neg.f64 y) (*.f64 z z)))))
(neg.f64 (fma.f64 z z (fma.f64 x (neg.f64 y) (*.f64 #s(literal 2 binary64) (*.f64 z z)))))
(-.f64 (*.f64 x y) (*.f64 (*.f64 z z) #s(literal 3 binary64)))
(fma.f64 x y (*.f64 z (*.f64 z #s(literal -3 binary64))))
(neg.f64 (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 (neg.f64 z) (neg.f64 z))) (*.f64 (neg.f64 z) (neg.f64 z))) (*.f64 (neg.f64 z) (neg.f64 z))))
(neg.f64 (+.f64 (*.f64 z z) (+.f64 (*.f64 z z) (fma.f64 x y (*.f64 z z)))))
(neg.f64 (fma.f64 z z (fma.f64 x y (*.f64 #s(literal 2 binary64) (*.f64 z z)))))
(neg.f64 (fma.f64 x y (*.f64 (*.f64 z z) #s(literal 3 binary64))))
(-.f64 (*.f64 z (*.f64 z #s(literal -3 binary64))) (*.f64 x y))
(+.f64 (+.f64 (+.f64 (*.f64 y x) (*.f64 z z)) (*.f64 z z)) (*.f64 z z))
(+.f64 (*.f64 z z) (+.f64 (*.f64 z z) (fma.f64 x y (*.f64 z z))))
(fma.f64 z z (fma.f64 x y (*.f64 #s(literal 2 binary64) (*.f64 z z))))
(fma.f64 x y (*.f64 (*.f64 z z) #s(literal 3 binary64)))
(fma.f64 x y (*.f64 z (*.f64 z #s(literal 3 binary64))))
(+.f64 (+.f64 (+.f64 (*.f64 z y) (*.f64 x x)) (*.f64 x x)) (*.f64 x x))
(+.f64 (*.f64 x x) (+.f64 (*.f64 x x) (fma.f64 z y (*.f64 x x))))
(fma.f64 x x (fma.f64 y z (*.f64 #s(literal 2 binary64) (*.f64 x x))))
(fma.f64 y z (*.f64 #s(literal 3 binary64) (*.f64 x x)))
(fma.f64 x (*.f64 #s(literal 3 binary64) x) (*.f64 y z))
(fma.f64 x (*.f64 x #s(literal 3 binary64)) (*.f64 y z))
(+.f64 (+.f64 (+.f64 (*.f64 x z) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
(+.f64 (*.f64 y y) (+.f64 (*.f64 y y) (fma.f64 x z (*.f64 y y))))
(fma.f64 y y (fma.f64 x z (*.f64 #s(literal 2 binary64) (*.f64 y y))))
(fma.f64 x z (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(fma.f64 x z (*.f64 y (*.f64 #s(literal 3 binary64) y)))
(fma.f64 x z (*.f64 y (*.f64 y #s(literal 3 binary64))))
Symmetry

(abs z)

(sort x y)

Compiler

Compiled 18 to 8 computations (55.6% saved)

eval1.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0%)

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

Compiled 36 to 16 computations (55.6% saved)

simplify6.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01467
11867
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z z)) (*.f64 z z)) (*.f64 z z))
Outputs
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z z)) (*.f64 z z)) (*.f64 z z))
(+.f64 (*.f64 z z) (+.f64 (*.f64 z z) (+.f64 (*.f64 x y) (*.f64 z z))))

soundness13.0ms (0.1%)

Stop Event
fuel
Compiler

Compiled 18 to 8 computations (55.6% saved)

preprocess245.0ms (1.2%)

Remove

(sort x y)

(abs z)

Compiler

Compiled 240 to 112 computations (53.3% saved)

end0.0ms (0%)

Profiling

Loading profile data...