Linear.Matrix:fromQuaternion from linear-1.19.1.3, B

Time bar (total: 2.1s)

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.2s (56.6%)

Results
854.0ms5930×body256valid
300.0ms2326×body256infinite
Bogosity

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

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

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

localize25.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)))
1.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)))

rewrite62.0ms (3%)

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.4%)

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

eval6.0ms (0.3%)

Compiler

Compiled 384 to 195 computations (49.2% saved)

prune8.0ms (0.4%)

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
57.4%
(*.f64 y (*.f64 2 x))
100.0%
(*.f64 x (*.f64 2 (+.f64 y x)))
57.8%
(*.f64 2 (*.f64 x x))
57.4%
(*.f64 y (*.f64 2 x))
100.0%
(*.f64 x (*.f64 2 (+.f64 y x)))
57.8%
(*.f64 2 (*.f64 x x))
Compiler

Compiled 46 to 32 computations (30.4% saved)

localize53.0ms (2.6%)

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

rewrite65.0ms (3.2%)

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

simplify62.0ms (3%)

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
57.4%
(*.f64 y (*.f64 2 x))
100.0%
(*.f64 x (*.f64 2 (+.f64 y x)))
57.8%
(*.f64 2 (*.f64 x x))
Compiler

Compiled 58 to 36 computations (37.9% saved)

regimes18.0ms (0.9%)

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:

4.0ms
(+.f64 (*.f64 x x) (*.f64 x y))
4.0ms
x
4.0ms
y
4.0ms
(*.f64 2 (+.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
y
3.0ms
x
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
Compiler

Compiled 25 to 16 computations (36% saved)

regimes33.0ms (1.6%)

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

2 calls:

19.0ms
x
13.0ms
y
Results
AccuracySegmentsBranch
84.5%5x
83.9%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 2 (*.f64 x x))
Outputs
(*.f64 2 (*.f64 x x))
Calls

2 calls:

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

Compiled 13 to 9 computations (30.8% saved)

bsearch52.0ms (2.5%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
11.0ms
5.250533302515675e+68
6.3200792880852054e+69
11.0ms
5.007853395731566e+29
9.975571143855091e+30
18.0ms
2.985139958665515e-22
5.751442846556949e-12
12.0ms
-1.2984981503725995e+30
-9.037958698119125e+27
Results
43.0ms460×body256valid
2.0ms20×body256infinite
Compiler

Compiled 496 to 371 computations (25.2% saved)

simplify8.0ms (0.4%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
030146
143140
246134
352130
456130
560130
661130
762130
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 x y)))
(if (<=.f64 x -9599999999999999907658203136) (*.f64 2 (*.f64 x x)) (if (<=.f64 x 3486039150627631/1267650600228229401496703205376) (*.f64 y (*.f64 2 x)) (if (<=.f64 x 3199999999999999725860827430912) (*.f64 2 (*.f64 x x)) (if (<=.f64 x 1000000000000000072531436381529235126158374409646521955518210155479040) (*.f64 y (*.f64 2 x)) (*.f64 2 (*.f64 x 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 x -9599999999999999907658203136) (*.f64 2 (*.f64 x x)) (if (<=.f64 x 3486039150627631/1267650600228229401496703205376) (*.f64 y (*.f64 2 x)) (if (<=.f64 x 3199999999999999725860827430912) (*.f64 2 (*.f64 x x)) (if (<=.f64 x 1000000000000000072531436381529235126158374409646521955518210155479040) (*.f64 y (*.f64 2 x)) (*.f64 2 (*.f64 x x))))))
(if (<=.f64 x -9599999999999999907658203136) (*.f64 2 (*.f64 x x)) (if (<=.f64 x 3486039150627631/1267650600228229401496703205376) (*.f64 y (*.f64 x 2)) (if (or (<=.f64 x 3199999999999999725860827430912) (not (<=.f64 x 1000000000000000072531436381529235126158374409646521955518210155479040))) (*.f64 2 (*.f64 x x)) (*.f64 y (*.f64 x 2)))))
(if (<=.f64 x -9599999999999999907658203136) (*.f64 2 (*.f64 x x)) (if (or (<=.f64 x 3486039150627631/1267650600228229401496703205376) (not (or (<=.f64 x 3199999999999999725860827430912) (not (<=.f64 x 1000000000000000072531436381529235126158374409646521955518210155479040))))) (*.f64 y (*.f64 x 2)) (*.f64 2 (*.f64 x x))))
(if (or (<=.f64 x -9599999999999999907658203136) (not (or (<=.f64 x 3486039150627631/1267650600228229401496703205376) (not (or (<=.f64 x 3199999999999999725860827430912) (not (<=.f64 x 1000000000000000072531436381529235126158374409646521955518210155479040))))))) (*.f64 2 (*.f64 x x)) (*.f64 y (*.f64 x 2)))
(if (or (<=.f64 x -9599999999999999907658203136) (not (or (<=.f64 x 3486039150627631/1267650600228229401496703205376) (and (not (<=.f64 x 3199999999999999725860827430912)) (<=.f64 x 1000000000000000072531436381529235126158374409646521955518210155479040))))) (*.f64 2 (*.f64 x x)) (*.f64 y (*.f64 x 2)))
(*.f64 2 (*.f64 x x))
Compiler

Compiled 55 to 39 computations (29.1% saved)

soundness320.0ms (15.6%)

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)

end54.0ms (2.6%)

Compiler

Compiled 138 to 88 computations (36.2% saved)

Profiling

Loading profile data...