Linear.Matrix:fromQuaternion from linear-1.19.1.3, B

Details

Time bar (total: 2.0s)

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)

sample996.0ms (49.6%)

Results
791.0ms5987×body256valid
194.0ms2269×body256infinite
Bogosity

preprocess16.0ms (0.8%)

Algorithm
egg-herbie
Rules
60×fma-def
42×*-commutative
16×distribute-rgt-in
16×associate-*r*
16×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01338
14138
28138
313638
414038
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x 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 y y) (*.f64 y x)))
(*.f64 2 (*.f64 y (+.f64 y x)))
(*.f64 2 (*.f64 y (+.f64 x y)))
Compiler

Compiled 13 to 9 computations (30.8% saved)

simplify14.0ms (0.7%)

Algorithm
egg-herbie
Rules
34×fma-def
26×*-commutative
10×associate-*r*
10×associate-*l*
distribute-rgt-in
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
12219
24519
37719
48119
Stop Event
saturated
Counts
1 → 2
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)))

eval1.0ms (0%)

Compiler

Compiled 18 to 11 computations (38.9% saved)

prune1.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Accurracy
100.0%
Counts
3 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 2 (*.f64 x (+.f64 x y)))
100.0%
(*.f64 2 (*.f64 x (+.f64 x y)))
Compiler

Compiled 18 to 12 computations (33.3% saved)

localize23.0ms (1.2%)

Local Accuracy

Found 1 expressions with local accuracy:

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

Compiled 21 to 8 computations (61.9% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite103.0ms (5.1%)

Algorithm
batch-egg-rewrite
Rules
1874×pow1
1742×add-exp-log
1740×log1p-expm1-u
1740×expm1-log1p-u
1712×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

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

simplify71.0ms (3.5%)

Algorithm
egg-herbie
Rules
1162×associate-*r*
1024×associate-*l*
976×log-prod
724×fma-neg
558×exp-sum
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
073843
1198843
2614839
33863839
47230839
Stop Event
node limit
Counts
43 → 34
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 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.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 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 2 (*.f64 x x)) (*.f64 2 (*.f64 x y)))
(+.f64 (*.f64 (*.f64 2 x) x) (*.f64 (*.f64 2 x) y))
(+.f64 (*.f64 (*.f64 2 x) y) (*.f64 (*.f64 2 x) x))
(+.f64 (*.f64 (*.f64 x x) 2) (*.f64 (*.f64 x y) 2))
(+.f64 (*.f64 x (*.f64 2 x)) (*.f64 y (*.f64 2 x)))
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 x (*.f64 2 x)))
(-.f64 (+.f64 1 (*.f64 2 (*.f64 x (+.f64 x y)))) 1)
(/.f64 (*.f64 (*.f64 2 x) (+.f64 (pow.f64 y 3) (pow.f64 x 3))) (fma.f64 x x (*.f64 y (-.f64 y x))))
(/.f64 (*.f64 (*.f64 2 x) (fma.f64 x x (neg.f64 (*.f64 y y)))) (-.f64 x y))
(pow.f64 (*.f64 2 (*.f64 x (+.f64 x y))) 1)
(pow.f64 (cbrt.f64 (*.f64 2 (*.f64 x (+.f64 x y)))) 3)
(pow.f64 (pow.f64 (*.f64 2 (*.f64 x (+.f64 x y))) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 2 (*.f64 x (+.f64 x y)))) 2)
(sqrt.f64 (*.f64 4 (pow.f64 (*.f64 x (+.f64 x y)) 2)))
(log.f64 (pow.f64 (exp.f64 2) (*.f64 x (+.f64 x y))))
(cbrt.f64 (pow.f64 (*.f64 2 (*.f64 x (+.f64 x y))) 3))
(expm1.f64 (log1p.f64 (*.f64 2 (*.f64 x (+.f64 x y)))))
(exp.f64 (log.f64 (*.f64 2 (*.f64 x (+.f64 x y)))))
(log1p.f64 (expm1.f64 (*.f64 2 (*.f64 x (+.f64 x y)))))
Outputs
(*.f64 2 (*.f64 y x))
(*.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 2 (*.f64 y x))
(*.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 2 (*.f64 y x))
(*.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 (*.f64 x x)) (*.f64 2 (*.f64 x y)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 (*.f64 2 x) x) (*.f64 (*.f64 2 x) y))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 (*.f64 2 x) y) (*.f64 (*.f64 2 x) x))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 (*.f64 x x) 2) (*.f64 (*.f64 x y) 2))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 x (*.f64 2 x)) (*.f64 y (*.f64 2 x)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 x (*.f64 2 x)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(-.f64 (+.f64 1 (*.f64 2 (*.f64 x (+.f64 x y)))) 1)
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 (*.f64 2 x) (+.f64 (pow.f64 y 3) (pow.f64 x 3))) (fma.f64 x x (*.f64 y (-.f64 y x))))
(/.f64 (*.f64 2 x) (/.f64 (fma.f64 x x (*.f64 y (-.f64 y x))) (+.f64 (pow.f64 y 3) (pow.f64 x 3))))
(/.f64 (*.f64 2 (fma.f64 x (pow.f64 y 3) (pow.f64 x 4))) (fma.f64 y (-.f64 y x) (*.f64 x x)))
(*.f64 (/.f64 (fma.f64 x (pow.f64 y 3) (pow.f64 x 4)) (fma.f64 y (-.f64 y x) (*.f64 x x))) 2)
(/.f64 (*.f64 (*.f64 2 x) (fma.f64 x x (neg.f64 (*.f64 y y)))) (-.f64 x y))
(/.f64 (*.f64 2 x) (/.f64 (-.f64 x y) (fma.f64 x x (*.f64 y (neg.f64 y)))))
(*.f64 (/.f64 (*.f64 2 x) (-.f64 x y)) (-.f64 (*.f64 x x) (*.f64 y y)))
(*.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 2 x) (-.f64 x y)))
(*.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (/.f64 2 (-.f64 x y)) x))
(pow.f64 (*.f64 2 (*.f64 x (+.f64 x y))) 1)
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(pow.f64 (cbrt.f64 (*.f64 2 (*.f64 x (+.f64 x y)))) 3)
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(pow.f64 (pow.f64 (*.f64 2 (*.f64 x (+.f64 x y))) 3) 1/3)
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(pow.f64 (sqrt.f64 (*.f64 2 (*.f64 x (+.f64 x y)))) 2)
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(sqrt.f64 (*.f64 4 (pow.f64 (*.f64 x (+.f64 x y)) 2)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(log.f64 (pow.f64 (exp.f64 2) (*.f64 x (+.f64 x y))))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(cbrt.f64 (pow.f64 (*.f64 2 (*.f64 x (+.f64 x y))) 3))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(expm1.f64 (log1p.f64 (*.f64 2 (*.f64 x (+.f64 x y)))))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(exp.f64 (log.f64 (*.f64 2 (*.f64 x (+.f64 x y)))))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(log1p.f64 (expm1.f64 (*.f64 2 (*.f64 x (+.f64 x y)))))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 y x)))

eval7.0ms (0.4%)

Compiler

Compiled 384 to 195 computations (49.2% saved)

prune6.0ms (0.3%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New31334
Fresh000
Picked101
Done000
Total32335
Accurracy
100.0%
Counts
35 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.8%
(*.f64 y (*.f64 2 x))
100.0%
(*.f64 x (*.f64 2 (+.f64 y x)))
59.1%
(*.f64 2 (*.f64 x x))
54.8%
(*.f64 y (*.f64 2 x))
100.0%
(*.f64 x (*.f64 2 (+.f64 y x)))
59.1%
(*.f64 2 (*.f64 x x))
Compiler

Compiled 46 to 32 computations (30.4% saved)

localize48.0ms (2.4%)

Local Accuracy

Found 1 expressions with local accuracy:

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

Compiled 42 to 20 computations (52.4% saved)

series1.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

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

rewrite49.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
1042×pow1
1004×add-sqr-sqrt
956×add-exp-log
956×log1p-expm1-u
956×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
112113
2136213
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 2 (*.f64 x x))
Outputs
(-.f64 (+.f64 1 (*.f64 2 (*.f64 x x))) 1)
(pow.f64 (*.f64 2 (*.f64 x x)) 1)
(pow.f64 (cbrt.f64 (*.f64 2 (*.f64 x x))) 3)
(pow.f64 (pow.f64 (*.f64 2 (*.f64 x x)) 3) 1/3)
(pow.f64 (*.f64 x (sqrt.f64 2)) 2)
(sqrt.f64 (*.f64 4 (pow.f64 x 4)))
(log.f64 (pow.f64 (exp.f64 2) (*.f64 x x)))
(cbrt.f64 (pow.f64 (*.f64 2 (*.f64 x x)) 3))
(expm1.f64 (log1p.f64 (*.f64 2 (*.f64 x x))))
(exp.f64 (log.f64 (*.f64 2 (*.f64 x x))))
(log1p.f64 (expm1.f64 (*.f64 2 (*.f64 x x))))

simplify58.0ms (2.9%)

Algorithm
egg-herbie
Rules
2150×log-prod
1058×distribute-lft-in
1054×distribute-rgt-in
808×associate-*r*
692×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036299
189299
2318299
32143299
47034299
Stop Event
node limit
Counts
23 → 13
Calls
Call 1
Inputs
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(-.f64 (+.f64 1 (*.f64 2 (*.f64 x x))) 1)
(pow.f64 (*.f64 2 (*.f64 x x)) 1)
(pow.f64 (cbrt.f64 (*.f64 2 (*.f64 x x))) 3)
(pow.f64 (pow.f64 (*.f64 2 (*.f64 x x)) 3) 1/3)
(pow.f64 (*.f64 x (sqrt.f64 2)) 2)
(sqrt.f64 (*.f64 4 (pow.f64 x 4)))
(log.f64 (pow.f64 (exp.f64 2) (*.f64 x x)))
(cbrt.f64 (pow.f64 (*.f64 2 (*.f64 x x)) 3))
(expm1.f64 (log1p.f64 (*.f64 2 (*.f64 x x))))
(exp.f64 (log.f64 (*.f64 2 (*.f64 x x))))
(log1p.f64 (expm1.f64 (*.f64 2 (*.f64 x x))))
Outputs
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 x x))
(-.f64 (+.f64 1 (*.f64 2 (*.f64 x x))) 1)
(*.f64 2 (*.f64 x x))
(pow.f64 (*.f64 2 (*.f64 x x)) 1)
(*.f64 2 (*.f64 x x))
(pow.f64 (cbrt.f64 (*.f64 2 (*.f64 x x))) 3)
(*.f64 2 (*.f64 x x))
(pow.f64 (pow.f64 (*.f64 2 (*.f64 x x)) 3) 1/3)
(*.f64 2 (*.f64 x x))
(pow.f64 (*.f64 x (sqrt.f64 2)) 2)
(*.f64 2 (*.f64 x x))
(sqrt.f64 (*.f64 4 (pow.f64 x 4)))
(*.f64 2 (*.f64 x x))
(log.f64 (pow.f64 (exp.f64 2) (*.f64 x x)))
(*.f64 2 (*.f64 x x))
(cbrt.f64 (pow.f64 (*.f64 2 (*.f64 x x)) 3))
(*.f64 2 (*.f64 x x))
(expm1.f64 (log1p.f64 (*.f64 2 (*.f64 x x))))
(*.f64 2 (*.f64 x x))
(exp.f64 (log.f64 (*.f64 2 (*.f64 x x))))
(*.f64 2 (*.f64 x x))
(log1p.f64 (expm1.f64 (*.f64 2 (*.f64 x x))))
(*.f64 2 (*.f64 x x))

eval2.0ms (0.1%)

Compiler

Compiled 93 to 61 computations (34.4% saved)

prune4.0ms (0.2%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New13013
Fresh000
Picked033
Done000
Total13316
Accurracy
100.0%
Counts
16 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.8%
(*.f64 y (*.f64 2 x))
100.0%
(*.f64 x (*.f64 2 (+.f64 y x)))
59.1%
(*.f64 2 (*.f64 x x))
Compiler

Compiled 58 to 36 computations (37.9% saved)

regimes22.0ms (1.1%)

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

4 calls:

10.0ms
y
4.0ms
x
4.0ms
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y)))
4.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 61 to 36 computations (41% saved)

regimes8.0ms (0.4%)

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

2 calls:

4.0ms
x
3.0ms
y
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
Compiler

Compiled 25 to 16 computations (36% saved)

regimes23.0ms (1.1%)

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

2 calls:

14.0ms
x
8.0ms
y
Results
AccuracySegmentsBranch
83.7%5x
84.4%3y
Compiler

Compiled 18 to 12 computations (33.3% saved)

regimes60.0ms (3%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

2 calls:

57.0ms
x
2.0ms
y
Results
AccuracySegmentsBranch
59.1%1x
59.1%1y
Compiler

Compiled 13 to 9 computations (30.8% saved)

bsearch21.0ms (1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
6.0ms
6.18429082268484e-44
9.650760608161025e-44
14.0ms
-3.3457085171269704e+44
-2.7845980283748844e+39
Results
14.0ms156×body256valid
5.0ms52×body256infinite
Compiler

Compiled 224 to 167 computations (25.4% saved)

simplify6.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
024102
137102
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 x y)))
(if (<=.f64 y -3549999999999999702853890520685528219648) (*.f64 y (*.f64 2 x)) (if (<=.f64 y 4770597318893877/50216813883093446110686315385661331328818843555712276103168) (*.f64 2 (*.f64 x x)) (*.f64 y (*.f64 2 x))))
(*.f64 2 (*.f64 x x))
Outputs
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 x (*.f64 2 (+.f64 x y)))
(*.f64 2 (*.f64 x (+.f64 x y)))
(if (<=.f64 y -3549999999999999702853890520685528219648) (*.f64 y (*.f64 2 x)) (if (<=.f64 y 4770597318893877/50216813883093446110686315385661331328818843555712276103168) (*.f64 2 (*.f64 x x)) (*.f64 y (*.f64 2 x))))
(if (or (<=.f64 y -3549999999999999702853890520685528219648) (not (<=.f64 y 4770597318893877/50216813883093446110686315385661331328818843555712276103168))) (*.f64 y (*.f64 x 2)) (*.f64 2 (*.f64 x x)))
(*.f64 2 (*.f64 x x))
Compiler

Compiled 46 to 32 computations (30.4% saved)

soundness369.0ms (18.4%)

Rules
1162×associate-*r*
1162×associate-*r*
1162×associate-*r*
1024×associate-*l*
1024×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
12219
24519
37719
48119
073843
1198843
2614839
33863839
47230839
073843
1198843
2614839
33863839
47230839
073843
1198843
2614839
33863839
47230839
Stop Event
node limit
node limit
node limit
saturated
Compiler

Compiled 125 to 83 computations (33.6% saved)

end94.0ms (4.7%)

Compiler

Compiled 120 to 74 computations (38.3% saved)

Profiling

Loading profile data...