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

Time bar (total: 3.4s)

analyze14.0ms (0.4%)

Memory
4.1MiB live, 4.1MiB allocated
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 36 to 21 computations (41.7% saved)

sample3.2s (92.6%)

Memory
23.4MiB live, 1 052.7MiB allocated
Samples
366.0ms5 716×0valid-baseline
357.0ms5 716×0valid-sollya
337.0ms1 643×1valid-baseline
324.0ms5 716×0valid-rival
268.0ms896×2valid-baseline
165.0ms1 643×1valid-rival
130.0ms1 643×1valid-sollya
126.0ms896×2valid-rival
87.0ms896×2valid-sollya
0.0ms3valid-baseline
0.0ms3valid-rival
0.0ms3valid-sollya
Precisions
Click to see Rival histograms. Total time spent on operations: 396.0ms
ival-mult: 210.0ms (53.1% of total)
ival-sub: 89.0ms (22.5% of total)
ival-add: 47.0ms (11.9% of total)
adjust: 40.0ms (10.1% of total)
ival-true: 7.0ms (1.8% of total)
ival-assert: 3.0ms (0.8% of total)
Precisions
Click to see Base histograms. Total time spent on operations: 513.0ms
ival-mult: 297.0ms (57.9% of total)
ival-sub: 130.0ms (25.3% of total)
ival-add: 75.0ms (14.6% of total)
const: 11.0ms (2.1% of total)
Bogosity

preprocess210.0ms (6.1%)

Memory
6.7MiB live, 22.3MiB allocated
Algorithm
egg-herbie
Rules
615×sub-neg
476×unsub-neg
421×distribute-lft-out
374×distribute-lft-out--
367×fma-define
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
049617
1193480
2637440
32690250
45740250
56671250
67134250
77247250
87287250
97294250
107729250
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (-.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (-.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) z)) (*.f64 (neg.f64 y) (neg.f64 y)))
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y (neg.f64 z))) (*.f64 y y))
(neg.f64 (-.f64 (-.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y)))
(neg.f64 (-.f64 (-.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) z)) (*.f64 (neg.f64 y) (neg.f64 y))))
(neg.f64 (-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y (neg.f64 z))) (*.f64 y y)))
(-.f64 (-.f64 (+.f64 (*.f64 y x) (*.f64 x x)) (*.f64 x z)) (*.f64 x x))
(-.f64 (-.f64 (+.f64 (*.f64 z y) (*.f64 y y)) (*.f64 y x)) (*.f64 y y))
(-.f64 (-.f64 (+.f64 (*.f64 x z) (*.f64 z z)) (*.f64 z y)) (*.f64 z z))
Outputs
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (*.f64 y (+.f64 x y)) (*.f64 y (+.f64 z y)))
(*.f64 y (-.f64 (+.f64 x y) (+.f64 y z)))
(*.f64 y (+.f64 x (-.f64 y (+.f64 y z))))
(*.f64 y (-.f64 x z))
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (*.f64 y (+.f64 x y)) (*.f64 y (+.f64 z y)))
(*.f64 y (-.f64 (+.f64 x y) (+.f64 y z)))
(*.f64 y (+.f64 x (-.f64 y (+.f64 y z))))
(*.f64 y (-.f64 x z))
(-.f64 (-.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (*.f64 y (+.f64 (neg.f64 x) y)) (*.f64 y (+.f64 z y)))
(*.f64 y (-.f64 (fma.f64 #s(literal -1 binary64) x y) (+.f64 y z)))
(*.f64 y (-.f64 (-.f64 y x) (+.f64 y z)))
(*.f64 y (neg.f64 (+.f64 x z)))
(*.f64 (neg.f64 y) (+.f64 x z))
(-.f64 (-.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) z)) (*.f64 (neg.f64 y) (neg.f64 y)))
(-.f64 (+.f64 (*.f64 y (+.f64 (neg.f64 x) y)) (*.f64 y z)) (*.f64 y y))
(*.f64 y (-.f64 (+.f64 y z) (+.f64 x y)))
(*.f64 y (-.f64 z x))
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y (neg.f64 z))) (*.f64 y y))
(-.f64 (*.f64 y (+.f64 x y)) (+.f64 (*.f64 y (neg.f64 z)) (*.f64 y y)))
(fma.f64 y (+.f64 x y) (neg.f64 (*.f64 y (-.f64 y z))))
(*.f64 y (-.f64 (+.f64 x y) (-.f64 y z)))
(*.f64 y (+.f64 x z))
(neg.f64 (-.f64 (-.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y)))
(-.f64 (*.f64 y (+.f64 x y)) (+.f64 (*.f64 y (neg.f64 z)) (*.f64 y y)))
(fma.f64 y (+.f64 x y) (neg.f64 (*.f64 y (-.f64 y z))))
(*.f64 y (-.f64 (+.f64 x y) (-.f64 y z)))
(*.f64 y (+.f64 x z))
(neg.f64 (-.f64 (-.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) z)) (*.f64 (neg.f64 y) (neg.f64 y))))
(-.f64 (*.f64 y (+.f64 x y)) (*.f64 y (+.f64 z y)))
(*.f64 y (-.f64 (+.f64 x y) (+.f64 y z)))
(*.f64 y (+.f64 x (-.f64 y (+.f64 y z))))
(*.f64 y (-.f64 x z))
(neg.f64 (-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y (neg.f64 z))) (*.f64 y y)))
(-.f64 (*.f64 y (+.f64 (neg.f64 x) y)) (*.f64 y (+.f64 z y)))
(*.f64 y (-.f64 (fma.f64 #s(literal -1 binary64) x y) (+.f64 y z)))
(*.f64 y (-.f64 (-.f64 y x) (+.f64 y z)))
(*.f64 y (neg.f64 (+.f64 x z)))
(*.f64 (neg.f64 y) (+.f64 x z))
(-.f64 (-.f64 (+.f64 (*.f64 y x) (*.f64 x x)) (*.f64 x z)) (*.f64 x x))
(-.f64 (*.f64 x (+.f64 y x)) (+.f64 (*.f64 x z) (*.f64 x x)))
(-.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x z)))
(*.f64 x (-.f64 (+.f64 x y) (+.f64 x z)))
(*.f64 x (-.f64 y z))
(-.f64 (-.f64 (+.f64 (*.f64 z y) (*.f64 y y)) (*.f64 y x)) (*.f64 y y))
(-.f64 (+.f64 (*.f64 y (+.f64 (neg.f64 x) y)) (*.f64 y z)) (*.f64 y y))
(*.f64 y (-.f64 (+.f64 y z) (+.f64 x y)))
(*.f64 y (-.f64 z x))
(-.f64 (-.f64 (+.f64 (*.f64 x z) (*.f64 z z)) (*.f64 z y)) (*.f64 z z))
(-.f64 (*.f64 z (+.f64 x z)) (+.f64 (*.f64 y z) (*.f64 z z)))
(-.f64 (*.f64 z (-.f64 (+.f64 x z) y)) (*.f64 z z))
(*.f64 z (-.f64 (+.f64 x z) (+.f64 y z)))
(*.f64 z (-.f64 x y))
Symmetry

(negabs y)

Compiler

Compiled 18 to 9 computations (50% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
62.2%
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Compiler

Compiled 36 to 18 computations (50% saved)

simplify3.0ms (0.1%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
egg-herbie
Rules
+-commutative
sub-neg
*-commutative
neg-sub0
neg-mul-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01567
12867
24467
35267
45767
55867
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Outputs
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))

soundness0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Stop Event
fuel
Compiler

Compiled 18 to 9 computations (50% saved)

preprocess25.0ms (0.7%)

Memory
-0.4MiB live, 32.7MiB allocated
Remove

(negabs y)

Compiler

Compiled 160 to 82 computations (48.8% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...