Linear.Matrix:fromQuaternion from linear-1.19.1.3, A

Time bar (total: 1.9s)

analyze0.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 12 to 8 computations (33.3% saved)

sample1.0s (54.9%)

Results
762.0ms5946×body256valid
197.0ms2310×body256infinite
Bogosity

preprocess78.0ms (4.2%)

Algorithm
egg-herbie
Rules
2344×fma-def
306×unsub-neg
300×associate-*r*
254×distribute-lft-in
188×associate-*l*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02384
17476
217176
355276
4131976
5249476
6275976
7281976
8281976
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
(*.f64 2 (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (neg.f64 x) y)))
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x (neg.f64 y))))
(*.f64 2 (-.f64 (*.f64 y y) (*.f64 y x)))
Outputs
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
(*.f64 2 (*.f64 x (-.f64 x y)))
(*.f64 2 (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (neg.f64 x) y)))
(*.f64 2 (*.f64 x (-.f64 x (neg.f64 y))))
(*.f64 2 (*.f64 x (+.f64 x y)))
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x (neg.f64 y))))
(*.f64 2 (*.f64 x (-.f64 x (neg.f64 y))))
(*.f64 2 (*.f64 x (+.f64 x y)))
(*.f64 2 (-.f64 (*.f64 y y) (*.f64 y x)))
(*.f64 2 (*.f64 y (-.f64 y x)))
(*.f64 (*.f64 2 y) (-.f64 y x))
(*.f64 (*.f64 y -2) (-.f64 x y))
(*.f64 (-.f64 x y) (*.f64 y -2))
Compiler

Compiled 13 to 9 computations (30.8% saved)

simplify39.0ms (2.1%)

Algorithm
egg-herbie
Rules
1232×fma-def
158×associate-*r*
124×distribute-lft-in
116×fma-neg
116×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
12119
24619
310519
421219
529619
650219
786019
8125519
9144319
10149319
Stop Event
saturated
Counts
1 → 3
Calls
Call 1
Inputs
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
Outputs
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
(*.f64 2 (*.f64 x (-.f64 x y)))
(*.f64 (-.f64 x y) (*.f64 2 x))

eval1.0ms (0%)

Compiler

Compiled 25 to 14 computations (44% saved)

prune1.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New213
Fresh101
Picked000
Done000
Total314
Accurracy
100.0%
Counts
4 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (-.f64 x y) (*.f64 2 x))
100.0%
(*.f64 (-.f64 x y) (*.f64 2 x))
Compiler

Compiled 18 to 12 computations (33.3% saved)

localize59.0ms (3.2%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(*.f64 (-.f64 x y) (*.f64 2 x))
Compiler

Compiled 19 to 10 computations (47.4% saved)

series3.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(*.f64 (-.f64 x y) (*.f64 2 x))
1.0ms
x
@-inf
(*.f64 (-.f64 x y) (*.f64 2 x))
1.0ms
y
@0
(*.f64 (-.f64 x y) (*.f64 2 x))
0.0ms
x
@0
(*.f64 (-.f64 x y) (*.f64 2 x))
0.0ms
y
@inf
(*.f64 (-.f64 x y) (*.f64 2 x))

rewrite119.0ms (6.4%)

Algorithm
batch-egg-rewrite
Rules
1838×pow1
1704×add-exp-log
1702×log1p-expm1-u
1702×expm1-log1p-u
1672×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
117319
2228019
Stop Event
node limit
Counts
1 → 19
Calls
Call 1
Inputs
(*.f64 (-.f64 x y) (*.f64 2 x))
Outputs
(+.f64 (*.f64 (*.f64 x 2) x) (*.f64 (*.f64 x 2) (neg.f64 y)))
(+.f64 (*.f64 x (*.f64 x 2)) (*.f64 (neg.f64 y) (*.f64 x 2)))
(-.f64 (+.f64 1 (*.f64 x (*.f64 (-.f64 x y) 2))) 1)
(/.f64 (*.f64 (*.f64 x 2) (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (fma.f64 x x (*.f64 y (+.f64 x y))))
(/.f64 (*.f64 (*.f64 x 2) (-.f64 (*.f64 x x) (*.f64 y y))) (+.f64 x y))
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (*.f64 x 2)) (fma.f64 x x (*.f64 y (+.f64 x y))))
(/.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (*.f64 x 2)) (+.f64 x y))
(pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 (-.f64 x y) 2))) 3)
(pow.f64 (pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 (-.f64 x y) 2))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 2))
(log.f64 (pow.f64 (exp.f64 (-.f64 x y)) (*.f64 x 2)))
(cbrt.f64 (pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 3))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 (*.f64 x 2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 x 2) 3) (pow.f64 (-.f64 x y) 3)))
(expm1.f64 (log1p.f64 (*.f64 x (*.f64 (-.f64 x y) 2))))
(exp.f64 (log.f64 (*.f64 x (*.f64 (-.f64 x y) 2))))
(log1p.f64 (expm1.f64 (*.f64 x (*.f64 (-.f64 x y) 2))))

simplify59.0ms (3.2%)

Algorithm
egg-herbie
Rules
1478×log-prod
1154×associate-*r*
982×associate-*l*
540×associate-+l+
534×associate-+r+
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0711137
1202857
2689857
33964857
Stop Event
node limit
Counts
43 → 32
Calls
Call 1
Inputs
(*.f64 -2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(*.f64 -2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(*.f64 -2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 (*.f64 x 2) x) (*.f64 (*.f64 x 2) (neg.f64 y)))
(+.f64 (*.f64 x (*.f64 x 2)) (*.f64 (neg.f64 y) (*.f64 x 2)))
(-.f64 (+.f64 1 (*.f64 x (*.f64 (-.f64 x y) 2))) 1)
(/.f64 (*.f64 (*.f64 x 2) (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (fma.f64 x x (*.f64 y (+.f64 x y))))
(/.f64 (*.f64 (*.f64 x 2) (-.f64 (*.f64 x x) (*.f64 y y))) (+.f64 x y))
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (*.f64 x 2)) (fma.f64 x x (*.f64 y (+.f64 x y))))
(/.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (*.f64 x 2)) (+.f64 x y))
(pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 (-.f64 x y) 2))) 3)
(pow.f64 (pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 (-.f64 x y) 2))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 2))
(log.f64 (pow.f64 (exp.f64 (-.f64 x y)) (*.f64 x 2)))
(cbrt.f64 (pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 3))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 (*.f64 x 2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 x 2) 3) (pow.f64 (-.f64 x y) 3)))
(expm1.f64 (log1p.f64 (*.f64 x (*.f64 (-.f64 x y) 2))))
(exp.f64 (log.f64 (*.f64 x (*.f64 (-.f64 x y) 2))))
(log1p.f64 (expm1.f64 (*.f64 x (*.f64 (-.f64 x y) 2))))
Outputs
(*.f64 -2 (*.f64 y x))
(*.f64 x (*.f64 -2 y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 x (*.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 x (*.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 x (*.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(*.f64 -2 (*.f64 y x))
(*.f64 x (*.f64 -2 y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(*.f64 -2 (*.f64 y x))
(*.f64 x (*.f64 -2 y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 (*.f64 x 2) x) (*.f64 (*.f64 x 2) (neg.f64 y)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(+.f64 (*.f64 x (*.f64 x 2)) (*.f64 (neg.f64 y) (*.f64 x 2)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(-.f64 (+.f64 1 (*.f64 x (*.f64 (-.f64 x y) 2))) 1)
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(/.f64 (*.f64 (*.f64 x 2) (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (fma.f64 x x (*.f64 y (+.f64 x y))))
(/.f64 (*.f64 x 2) (/.f64 (fma.f64 x x (*.f64 y (+.f64 y x))) (-.f64 (pow.f64 x 3) (pow.f64 y 3))))
(*.f64 (/.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (fma.f64 x x (*.f64 y (+.f64 y x)))) (*.f64 x 2))
(*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (*.f64 x 2) (fma.f64 y (+.f64 y x) (*.f64 x x))))
(*.f64 x (/.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (fma.f64 y (+.f64 y x) (*.f64 x x)) 2)))
(/.f64 (*.f64 (*.f64 x 2) (-.f64 (*.f64 x x) (*.f64 y y))) (+.f64 x y))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (*.f64 x 2)) (fma.f64 x x (*.f64 y (+.f64 x y))))
(/.f64 (*.f64 x 2) (/.f64 (fma.f64 x x (*.f64 y (+.f64 y x))) (-.f64 (pow.f64 x 3) (pow.f64 y 3))))
(*.f64 (/.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (fma.f64 x x (*.f64 y (+.f64 y x)))) (*.f64 x 2))
(*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (*.f64 x 2) (fma.f64 y (+.f64 y x) (*.f64 x x))))
(*.f64 x (/.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (fma.f64 y (+.f64 y x) (*.f64 x x)) 2)))
(/.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (*.f64 x 2)) (+.f64 x y))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 1)
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 (-.f64 x y) 2))) 3)
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(pow.f64 (pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 3) 1/3)
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(pow.f64 (sqrt.f64 (*.f64 x (*.f64 (-.f64 x y) 2))) 2)
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(sqrt.f64 (pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 2))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(log.f64 (pow.f64 (exp.f64 (-.f64 x y)) (*.f64 x 2)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(cbrt.f64 (pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 3))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 (*.f64 x 2) 3)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 x 2) 3) (pow.f64 (-.f64 x y) 3)))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(expm1.f64 (log1p.f64 (*.f64 x (*.f64 (-.f64 x y) 2))))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(exp.f64 (log.f64 (*.f64 x (*.f64 (-.f64 x y) 2))))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))
(log1p.f64 (expm1.f64 (*.f64 x (*.f64 (-.f64 x y) 2))))
(fma.f64 2 (*.f64 x x) (*.f64 -2 (*.f64 y x)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 (*.f64 x 2) (-.f64 x y))

eval8.0ms (0.4%)

Compiler

Compiled 367 to 201 computations (45.2% saved)

prune6.0ms (0.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New30232
Fresh000
Picked011
Done000
Total30333
Accurracy
100.0%
Counts
33 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (-.f64 x y) (*.f64 2 x))
55.1%
(*.f64 x (*.f64 x 2))
61.7%
(*.f64 x (*.f64 -2 y))
100.0%
(*.f64 (-.f64 x y) (*.f64 2 x))
55.1%
(*.f64 x (*.f64 x 2))
61.7%
(*.f64 x (*.f64 -2 y))
Compiler

Compiled 46 to 32 computations (30.4% saved)

localize38.0ms (2.1%)

Compiler

Compiled 24 to 15 computations (37.5% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done011
Total033
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (-.f64 x y) (*.f64 2 x))
55.1%
(*.f64 x (*.f64 x 2))
61.7%
(*.f64 x (*.f64 -2 y))
Compiler

Compiled 51 to 33 computations (35.3% saved)

regimes20.0ms (1.1%)

Counts
4 → 1
Calls
Call 1
Inputs
(*.f64 x (*.f64 -2 y))
(*.f64 x (*.f64 x 2))
(*.f64 (-.f64 x y) (*.f64 2 x))
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
Outputs
(*.f64 (-.f64 x y) (*.f64 2 x))
Calls

4 calls:

8.0ms
y
4.0ms
x
4.0ms
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
3.0ms
(-.f64 (*.f64 x x) (*.f64 x y))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
100.0%1(-.f64 (*.f64 x x) (*.f64 x y))
Compiler

Compiled 54 to 33 computations (38.9% saved)

regimes27.0ms (1.5%)

Counts
2 → 5
Calls
Call 1
Inputs
(*.f64 x (*.f64 -2 y))
(*.f64 x (*.f64 x 2))
Outputs
(*.f64 x (*.f64 -2 y))
(*.f64 x (*.f64 x 2))
(*.f64 x (*.f64 -2 y))
(*.f64 x (*.f64 x 2))
(*.f64 x (*.f64 -2 y))
Calls

2 calls:

15.0ms
y
11.0ms
x
Results
AccuracySegmentsBranch
80.7%3x
88.0%5y
Compiler

Compiled 18 to 12 computations (33.3% saved)

regimes6.0ms (0.3%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 x (*.f64 -2 y))
Outputs
(*.f64 x (*.f64 -2 y))
Calls

2 calls:

2.0ms
y
2.0ms
x
Results
AccuracySegmentsBranch
61.7%1x
61.7%1y
Compiler

Compiled 13 to 9 computations (30.8% saved)

bsearch45.0ms (2.4%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
10.0ms
1.2845748516776482e+126
1.3910912712588284e+127
9.0ms
1.1142700886942532e+100
4.442628940059363e+100
13.0ms
3.5930090947828464e-12
3.097334409616473e-8
13.0ms
-1.0162883704093513e-33
-9.84118632879022e-35
Results
27.0ms307×body256valid
11.0ms93×body256infinite
Compiler

Compiled 416 to 311 computations (25.2% saved)

simplify9.0ms (0.5%)

Algorithm
egg-herbie
Rules
12×*-commutative
not-or
not-not
if-if-or-not
if-not
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
028127
141121
249115
357111
462111
566111
667111
768111
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (-.f64 x y) (*.f64 2 x))
(if (<=.f64 y -5553706221857431/5846006549323611672814739330865132078623730171904) (*.f64 x (*.f64 -2 y)) (if (<=.f64 y 870426590122533/19342813113834066795298816) (*.f64 x (*.f64 x 2)) (if (<=.f64 y 44000000000000001476794765719728022428572320410766800772000576874946299098274640563140982019853385728) (*.f64 x (*.f64 -2 y)) (if (<=.f64 y 1299999999999999977481452753453409947771451228044074875892835328959118322601842023614801345559133140715357024250350688989609984) (*.f64 x (*.f64 x 2)) (*.f64 x (*.f64 -2 y))))))
(*.f64 x (*.f64 -2 y))
Outputs
(*.f64 (-.f64 x y) (*.f64 2 x))
(*.f64 (-.f64 x y) (*.f64 x 2))
(if (<=.f64 y -5553706221857431/5846006549323611672814739330865132078623730171904) (*.f64 x (*.f64 -2 y)) (if (<=.f64 y 870426590122533/19342813113834066795298816) (*.f64 x (*.f64 x 2)) (if (<=.f64 y 44000000000000001476794765719728022428572320410766800772000576874946299098274640563140982019853385728) (*.f64 x (*.f64 -2 y)) (if (<=.f64 y 1299999999999999977481452753453409947771451228044074875892835328959118322601842023614801345559133140715357024250350688989609984) (*.f64 x (*.f64 x 2)) (*.f64 x (*.f64 -2 y))))))
(if (<=.f64 y -5553706221857431/5846006549323611672814739330865132078623730171904) (*.f64 x (*.f64 y -2)) (if (<=.f64 y 870426590122533/19342813113834066795298816) (*.f64 x (*.f64 x 2)) (if (or (<=.f64 y 44000000000000001476794765719728022428572320410766800772000576874946299098274640563140982019853385728) (not (<=.f64 y 1299999999999999977481452753453409947771451228044074875892835328959118322601842023614801345559133140715357024250350688989609984))) (*.f64 x (*.f64 y -2)) (*.f64 x (*.f64 x 2)))))
(if (<=.f64 y -5553706221857431/5846006549323611672814739330865132078623730171904) (*.f64 x (*.f64 y -2)) (if (or (<=.f64 y 870426590122533/19342813113834066795298816) (not (or (<=.f64 y 44000000000000001476794765719728022428572320410766800772000576874946299098274640563140982019853385728) (not (<=.f64 y 1299999999999999977481452753453409947771451228044074875892835328959118322601842023614801345559133140715357024250350688989609984))))) (*.f64 x (*.f64 x 2)) (*.f64 x (*.f64 y -2))))
(if (or (<=.f64 y -5553706221857431/5846006549323611672814739330865132078623730171904) (not (or (<=.f64 y 870426590122533/19342813113834066795298816) (not (or (<=.f64 y 44000000000000001476794765719728022428572320410766800772000576874946299098274640563140982019853385728) (not (<=.f64 y 1299999999999999977481452753453409947771451228044074875892835328959118322601842023614801345559133140715357024250350688989609984))))))) (*.f64 x (*.f64 y -2)) (*.f64 x (*.f64 x 2)))
(if (or (<=.f64 y -5553706221857431/5846006549323611672814739330865132078623730171904) (not (or (<=.f64 y 870426590122533/19342813113834066795298816) (and (not (<=.f64 y 44000000000000001476794765719728022428572320410766800772000576874946299098274640563140982019853385728)) (<=.f64 y 1299999999999999977481452753453409947771451228044074875892835328959118322601842023614801345559133140715357024250350688989609984))))) (*.f64 x (*.f64 y -2)) (*.f64 x (*.f64 x 2)))
(if (or (<=.f64 y -5553706221857431/5846006549323611672814739330865132078623730171904) (and (not (<=.f64 y 870426590122533/19342813113834066795298816)) (or (<=.f64 y 44000000000000001476794765719728022428572320410766800772000576874946299098274640563140982019853385728) (not (<=.f64 y 1299999999999999977481452753453409947771451228044074875892835328959118322601842023614801345559133140715357024250350688989609984))))) (*.f64 x (*.f64 y -2)) (*.f64 x (*.f64 x 2)))
(*.f64 x (*.f64 -2 y))
(*.f64 x (*.f64 y -2))
Compiler

Compiled 46 to 33 computations (28.3% saved)

soundness248.0ms (13.4%)

Rules
1478×log-prod
1478×log-prod
1232×fma-def
1154×associate-*r*
1154×associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
12119
24619
310519
421219
529619
650219
786019
8125519
9144319
10149319
0711137
1202857
2689857
33964857
0711137
1202857
2689857
33964857
Stop Event
node limit
node limit
saturated
Compiler

Compiled 81 to 49 computations (39.5% saved)

end0.0ms (0%)

preprocess68.0ms (3.7%)

Compiler

Compiled 124 to 84 computations (32.3% saved)

Profiling

Loading profile data...