FastMath repmul

Details

Time bar (total: 1.4s)

analyze0.0ms (0%)

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

Compiled 9 to 5 computations (44.4% saved)

sample599.0ms (44.3%)

Results
363.0ms5213×body256valid
226.0ms3043×body256infinite
Bogosity

preprocess210.0ms (15.5%)

Algorithm
egg-herbie
Rules
2472×sqr-pow
1372×associate-*r*
1202×cube-prod
924×associate-*l*
680×*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0619
1913
2117
3207
4357
5627
61307
74287
824247
925227
1026757
1128907
1231817
1335467
1441337
1546867
1653727
1757797
1860537
1962697
2064377
2165457
2272887
011
Stop Event
saturated
node limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Outputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 (pow.f64 d1 3))
(pow.f64 d1 4)
Compiler

Compiled 25 to 13 computations (48% saved)

localize19.0ms (1.4%)

Local Accuracy

Found 2 expressions with local accuracy:

NewAccuracyProgram
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.9%
(*.f64 (*.f64 d1 d1) d1)
Compiler

Compiled 18 to 5 computations (72.2% saved)

series2.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
d1
@-inf
(*.f64 (*.f64 d1 d1) d1)
0.0ms
d1
@0
(*.f64 (*.f64 d1 d1) d1)
0.0ms
d1
@inf
(*.f64 (*.f64 d1 d1) d1)
0.0ms
d1
@0
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
0.0ms
d1
@inf
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)

rewrite49.0ms (3.6%)

Algorithm
batch-egg-rewrite
Rules
964×pow1
922×add-sqr-sqrt
904×*-un-lft-identity
892×add-exp-log
892×log1p-expm1-u
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0620
112114
2136814
Stop Event
node limit
Counts
2 → 23
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) d1)
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Outputs
(-.f64 (+.f64 1 (pow.f64 d1 3)) 1)
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 3) 1)
(pow.f64 (pow.f64 (pow.f64 d1 3) 3) 1/3)
(pow.f64 (pow.f64 d1 3/2) 2)
(sqrt.f64 (pow.f64 d1 6))
(log.f64 (exp.f64 (pow.f64 d1 3)))
(cbrt.f64 (pow.f64 (pow.f64 d1 3) 3))
(expm1.f64 (log1p.f64 (pow.f64 d1 3)))
(exp.f64 (log.f64 (pow.f64 d1 3)))
(log1p.f64 (expm1.f64 (pow.f64 d1 3)))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 d1) 2)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)
(pow.f64 (pow.f64 (pow.f64 d1 4) 3) 1/3)
(sqrt.f64 (pow.f64 (pow.f64 d1 4) 2))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 (pow.f64 d1 4) 3))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(exp.f64 (log.f64 (pow.f64 d1 4)))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))

simplify46.0ms (3.4%)

Algorithm
egg-herbie
Rules
1876×log-prod
1302×fma-def
886×distribute-rgt-in
870×associate-*r*
870×unswap-sqr
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
052329
1116329
2424329
33143329
Stop Event
node limit
Counts
47 → 23
Calls
Call 1
Inputs
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(-.f64 (+.f64 1 (pow.f64 d1 3)) 1)
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 3) 1)
(pow.f64 (pow.f64 (pow.f64 d1 3) 3) 1/3)
(pow.f64 (pow.f64 d1 3/2) 2)
(sqrt.f64 (pow.f64 d1 6))
(log.f64 (exp.f64 (pow.f64 d1 3)))
(cbrt.f64 (pow.f64 (pow.f64 d1 3) 3))
(expm1.f64 (log1p.f64 (pow.f64 d1 3)))
(exp.f64 (log.f64 (pow.f64 d1 3)))
(log1p.f64 (expm1.f64 (pow.f64 d1 3)))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 d1) 2)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)
(pow.f64 (pow.f64 (pow.f64 d1 4) 3) 1/3)
(sqrt.f64 (pow.f64 (pow.f64 d1 4) 2))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 (pow.f64 d1 4) 3))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(exp.f64 (log.f64 (pow.f64 d1 4)))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
Outputs
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(-.f64 (+.f64 1 (pow.f64 d1 3)) 1)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 3) 1)
(pow.f64 d1 3)
(pow.f64 (pow.f64 (pow.f64 d1 3) 3) 1/3)
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 3/2) 2)
(pow.f64 d1 3)
(sqrt.f64 (pow.f64 d1 6))
(pow.f64 d1 3)
(log.f64 (exp.f64 (pow.f64 d1 3)))
(pow.f64 d1 3)
(cbrt.f64 (pow.f64 (pow.f64 d1 3) 3))
(pow.f64 d1 3)
(expm1.f64 (log1p.f64 (pow.f64 d1 3)))
(pow.f64 d1 3)
(exp.f64 (log.f64 (pow.f64 d1 3)))
(pow.f64 d1 3)
(log1p.f64 (expm1.f64 (pow.f64 d1 3)))
(pow.f64 d1 3)
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 d1) 2)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)
(pow.f64 d1 4)
(pow.f64 (pow.f64 (pow.f64 d1 4) 3) 1/3)
(pow.f64 d1 4)
(sqrt.f64 (pow.f64 (pow.f64 d1 4) 2))
(pow.f64 d1 4)
(log.f64 (exp.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(cbrt.f64 (pow.f64 (pow.f64 d1 4) 3))
(pow.f64 d1 4)
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(exp.f64 (log.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)

eval4.0ms (0.3%)

Compiler

Compiled 145 to 109 computations (24.8% saved)

prune4.0ms (0.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New21223
Fresh000
Picked011
Done000
Total21324
Accurracy
100.0%
Counts
24 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(pow.f64 (*.f64 d1 d1) 2)
100.0%
(pow.f64 d1 4)
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.8%
(pow.f64 (*.f64 d1 d1) 2)
100.0%
(pow.f64 d1 4)
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 36 to 22 computations (38.9% saved)

localize27.0ms (2%)

Local Accuracy

Found 2 expressions with local accuracy:

NewAccuracyProgram
99.8%
(pow.f64 (*.f64 d1 d1) 2)
100.0%
(pow.f64 d1 4)
Compiler

Compiled 17 to 9 computations (47.1% saved)

series2.0ms (0.1%)

Counts
2 → 12
Calls

6 calls:

TimeVariablePointExpression
1.0ms
d1
@-inf
(pow.f64 d1 4)
0.0ms
d1
@inf
(pow.f64 d1 4)
0.0ms
d1
@inf
(pow.f64 (*.f64 d1 d1) 2)
0.0ms
d1
@0
(pow.f64 (*.f64 d1 d1) 2)
0.0ms
d1
@0
(pow.f64 d1 4)

rewrite58.0ms (4.3%)

Algorithm
batch-egg-rewrite
Rules
1054×pow1
1016×add-sqr-sqrt
974×add-exp-log
974×log1p-expm1-u
974×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
116614
2148114
Stop Event
node limit
Counts
2 → 36
Calls
Call 1
Inputs
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 d1) 2)
Outputs
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(*.f64 d1 (pow.f64 d1 3))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (pow.f64 d1 4) 1)
(*.f64 1 (pow.f64 d1 4))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (cbrt.f64 (pow.f64 d1 8)))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (*.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 d1 d1)))
(*.f64 (cbrt.f64 (pow.f64 d1 8)) (cbrt.f64 (pow.f64 d1 4)))
(*.f64 (pow.f64 d1 3) d1)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 d1) 2) 4) (pow.f64 (cbrt.f64 d1) 4))
(*.f64 (pow.f64 (sqrt.f64 d1) 4) (pow.f64 (sqrt.f64 d1) 4))
(*.f64 (*.f64 (*.f64 d1 d1) (cbrt.f64 (pow.f64 d1 4))) (pow.f64 (cbrt.f64 d1) 2))
(sqrt.f64 (pow.f64 d1 8))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 (pow.f64 d1 4) 3))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 4 (log.f64 d1)))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(*.f64 d1 (pow.f64 d1 3))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (pow.f64 d1 4) 1)
(*.f64 1 (pow.f64 d1 4))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (cbrt.f64 (pow.f64 d1 8)))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (*.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 d1 d1)))
(*.f64 (cbrt.f64 (pow.f64 d1 8)) (cbrt.f64 (pow.f64 d1 4)))
(*.f64 (pow.f64 d1 3) d1)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 d1) 2) 4) (pow.f64 (cbrt.f64 d1) 4))
(*.f64 (pow.f64 (sqrt.f64 d1) 4) (pow.f64 (sqrt.f64 d1) 4))
(*.f64 (*.f64 (*.f64 d1 d1) (cbrt.f64 (pow.f64 d1 4))) (pow.f64 (cbrt.f64 d1) 2))
(sqrt.f64 (pow.f64 d1 8))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 (pow.f64 d1 4) 3))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 4 (log.f64 d1)))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))

simplify69.0ms (5.1%)

Algorithm
egg-herbie
Rules
1246×fma-neg
894×unswap-sqr
558×associate-+r+
546×associate-/l*
542×exp-prod
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048416
1100416
2265416
3874416
42893416
56990416
Stop Event
node limit
Counts
48 → 20
Calls
Call 1
Inputs
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(*.f64 d1 (pow.f64 d1 3))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (pow.f64 d1 4) 1)
(*.f64 1 (pow.f64 d1 4))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (cbrt.f64 (pow.f64 d1 8)))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (*.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 d1 d1)))
(*.f64 (cbrt.f64 (pow.f64 d1 8)) (cbrt.f64 (pow.f64 d1 4)))
(*.f64 (pow.f64 d1 3) d1)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 d1) 2) 4) (pow.f64 (cbrt.f64 d1) 4))
(*.f64 (pow.f64 (sqrt.f64 d1) 4) (pow.f64 (sqrt.f64 d1) 4))
(*.f64 (*.f64 (*.f64 d1 d1) (cbrt.f64 (pow.f64 d1 4))) (pow.f64 (cbrt.f64 d1) 2))
(sqrt.f64 (pow.f64 d1 8))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 (pow.f64 d1 4) 3))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 4 (log.f64 d1)))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(*.f64 d1 (pow.f64 d1 3))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (pow.f64 d1 4) 1)
(*.f64 1 (pow.f64 d1 4))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (cbrt.f64 (pow.f64 d1 8)))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (*.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 d1 d1)))
(*.f64 (cbrt.f64 (pow.f64 d1 8)) (cbrt.f64 (pow.f64 d1 4)))
(*.f64 (pow.f64 d1 3) d1)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 d1) 2) 4) (pow.f64 (cbrt.f64 d1) 4))
(*.f64 (pow.f64 (sqrt.f64 d1) 4) (pow.f64 (sqrt.f64 d1) 4))
(*.f64 (*.f64 (*.f64 d1 d1) (cbrt.f64 (pow.f64 d1 4))) (pow.f64 (cbrt.f64 d1) 2))
(sqrt.f64 (pow.f64 d1 8))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 (pow.f64 d1 4) 3))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 4 (log.f64 d1)))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
Outputs
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(*.f64 d1 (pow.f64 d1 3))
(pow.f64 d1 4)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(pow.f64 d1 4)
(*.f64 (pow.f64 d1 4) 1)
(pow.f64 d1 4)
(*.f64 1 (pow.f64 d1 4))
(pow.f64 d1 4)
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (cbrt.f64 (pow.f64 d1 8)))
(*.f64 (cbrt.f64 (pow.f64 d1 8)) (cbrt.f64 (pow.f64 d1 4)))
(*.f64 (cbrt.f64 (pow.f64 d1 8)) (*.f64 d1 (cbrt.f64 d1)))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (*.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 d1 d1)))
(pow.f64 d1 4)
(*.f64 (cbrt.f64 (pow.f64 d1 8)) (cbrt.f64 (pow.f64 d1 4)))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (cbrt.f64 (pow.f64 d1 8)))
(*.f64 (cbrt.f64 (pow.f64 d1 8)) (*.f64 d1 (cbrt.f64 d1)))
(*.f64 (pow.f64 d1 3) d1)
(pow.f64 d1 4)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 d1) 2) 4) (pow.f64 (cbrt.f64 d1) 4))
(pow.f64 d1 4)
(*.f64 (pow.f64 (sqrt.f64 d1) 4) (pow.f64 (sqrt.f64 d1) 4))
(pow.f64 d1 4)
(*.f64 (*.f64 (*.f64 d1 d1) (cbrt.f64 (pow.f64 d1 4))) (pow.f64 (cbrt.f64 d1) 2))
(pow.f64 d1 4)
(sqrt.f64 (pow.f64 d1 8))
(pow.f64 d1 4)
(log.f64 (exp.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(cbrt.f64 (pow.f64 (pow.f64 d1 4) 3))
(pow.f64 d1 4)
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(exp.f64 (*.f64 4 (log.f64 d1)))
(pow.f64 d1 4)
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(*.f64 d1 (pow.f64 d1 3))
(pow.f64 d1 4)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(pow.f64 d1 4)
(*.f64 (pow.f64 d1 4) 1)
(pow.f64 d1 4)
(*.f64 1 (pow.f64 d1 4))
(pow.f64 d1 4)
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (cbrt.f64 (pow.f64 d1 8)))
(*.f64 (cbrt.f64 (pow.f64 d1 8)) (cbrt.f64 (pow.f64 d1 4)))
(*.f64 (cbrt.f64 (pow.f64 d1 8)) (*.f64 d1 (cbrt.f64 d1)))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (*.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 d1 d1)))
(pow.f64 d1 4)
(*.f64 (cbrt.f64 (pow.f64 d1 8)) (cbrt.f64 (pow.f64 d1 4)))
(*.f64 (cbrt.f64 (pow.f64 d1 4)) (cbrt.f64 (pow.f64 d1 8)))
(*.f64 (cbrt.f64 (pow.f64 d1 8)) (*.f64 d1 (cbrt.f64 d1)))
(*.f64 (pow.f64 d1 3) d1)
(pow.f64 d1 4)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 d1) 2) 4) (pow.f64 (cbrt.f64 d1) 4))
(pow.f64 d1 4)
(*.f64 (pow.f64 (sqrt.f64 d1) 4) (pow.f64 (sqrt.f64 d1) 4))
(pow.f64 d1 4)
(*.f64 (*.f64 (*.f64 d1 d1) (cbrt.f64 (pow.f64 d1 4))) (pow.f64 (cbrt.f64 d1) 2))
(pow.f64 d1 4)
(sqrt.f64 (pow.f64 d1 8))
(pow.f64 d1 4)
(log.f64 (exp.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(cbrt.f64 (pow.f64 (pow.f64 d1 4) 3))
(pow.f64 d1 4)
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(exp.f64 (*.f64 4 (log.f64 d1)))
(pow.f64 d1 4)
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)

eval4.0ms (0.3%)

Compiler

Compiled 141 to 96 computations (31.9% saved)

prune4.0ms (0.3%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New19120
Fresh000
Picked112
Done011
Total20323
Accurracy
100.0%
Counts
23 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 4)
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
100.0%
(pow.f64 d1 4)
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 40 to 20 computations (50% saved)

localize16.0ms (1.2%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 13 to 4 computations (69.2% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
d1
@0
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
0.0ms
d1
@inf
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
0.0ms
d1
@-inf
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))

rewrite47.0ms (3.5%)

Algorithm
batch-egg-rewrite
Rules
850×pow1
808×add-sqr-sqrt
796×*-un-lft-identity
782×add-exp-log
782×log1p-expm1-u
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0513
11017
212107
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Outputs
(+.f64 0 (pow.f64 d1 4))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) (cbrt.f64 (exp.f64 (pow.f64 d1 4))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 d1) 2)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)
(pow.f64 (cbrt.f64 (*.f64 d1 d1)) 6)
(pow.f64 (pow.f64 (*.f64 d1 d1) 6) 1/3)
(pow.f64 (pow.f64 d1 6) 2/3)
(pow.f64 (pow.f64 d1 3) 4/3)
(sqrt.f64 (pow.f64 d1 8))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 (*.f64 d1 d1) 6))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 4 (log.f64 d1)))
(exp.f64 (*.f64 (log.f64 d1) 4))
(exp.f64 (*.f64 (log.f64 (*.f64 d1 (cbrt.f64 d1))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 d1 d1) 6)) 1/3))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))

simplify67.0ms (5%)

Algorithm
egg-herbie
Rules
1370×log-prod
1124×fma-def
860×exp-prod
746×distribute-lft-in
706×distribute-rgt-in
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
060305
1128291
2312267
31442267
45962267
Stop Event
node limit
Counts
33 → 26
Calls
Call 1
Inputs
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(+.f64 0 (pow.f64 d1 4))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) (cbrt.f64 (exp.f64 (pow.f64 d1 4))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 d1) 2)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)
(pow.f64 (cbrt.f64 (*.f64 d1 d1)) 6)
(pow.f64 (pow.f64 (*.f64 d1 d1) 6) 1/3)
(pow.f64 (pow.f64 d1 6) 2/3)
(pow.f64 (pow.f64 d1 3) 4/3)
(sqrt.f64 (pow.f64 d1 8))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 (*.f64 d1 d1) 6))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 4 (log.f64 d1)))
(exp.f64 (*.f64 (log.f64 d1) 4))
(exp.f64 (*.f64 (log.f64 (*.f64 d1 (cbrt.f64 d1))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 d1 d1) 6)) 1/3))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
Outputs
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(+.f64 0 (pow.f64 d1 4))
(pow.f64 d1 4)
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) (cbrt.f64 (exp.f64 (pow.f64 d1 4))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))) 3)
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 2 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) 2)
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 d1) 2)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 (cbrt.f64 d1)) 3)
(pow.f64 d1 4)
(pow.f64 (cbrt.f64 (*.f64 d1 d1)) 6)
(pow.f64 d1 4)
(pow.f64 (pow.f64 (*.f64 d1 d1) 6) 1/3)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 6) 2/3)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 3) 4/3)
(pow.f64 d1 4)
(sqrt.f64 (pow.f64 d1 8))
(pow.f64 d1 4)
(log.f64 (exp.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(cbrt.f64 (pow.f64 (*.f64 d1 d1) 6))
(pow.f64 d1 4)
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(exp.f64 (*.f64 4 (log.f64 d1)))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 d1) 4))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 (*.f64 d1 (cbrt.f64 d1))) 3))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 d1 d1) 6)) 1/3))
(pow.f64 d1 4)
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)

eval5.0ms (0.4%)

Compiler

Compiled 186 to 142 computations (23.7% saved)

prune4.0ms (0.3%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New26026
Fresh000
Picked011
Done022
Total26329
Accurracy
100.0%
Counts
29 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 4)
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 43 to 19 computations (55.8% saved)

regimes7.0ms (0.5%)

Counts
4 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(pow.f64 d1 4)
(pow.f64 (*.f64 d1 d1) 2)
Outputs
(pow.f64 d1 4)
Calls

2 calls:

4.0ms
d1
2.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Results
AccuracySegmentsBranch
100.0%1d1
100.0%1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 33 to 14 computations (57.6% saved)

regimes6.0ms (0.4%)

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

2 calls:

3.0ms
d1
2.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Results
AccuracySegmentsBranch
99.9%1d1
99.9%1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 25 to 10 computations (60% saved)

regimes4.0ms (0.3%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

1 calls:

3.0ms
d1
Results
AccuracySegmentsBranch
99.8%1d1
Compiler

Compiled 10 to 4 computations (60% saved)

simplify4.0ms (0.3%)

Algorithm
egg-herbie
Rules
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0945
11145
Stop Event
done
saturated
Calls
Call 1
Inputs
(pow.f64 d1 4)
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Outputs
(pow.f64 d1 4)
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 20 to 10 computations (50% saved)

soundness56.0ms (4.1%)

Rules
1054×pow1
1016×add-sqr-sqrt
974×add-exp-log
974×log1p-expm1-u
974×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
116614
2148114
Stop Event
node limit
Compiler

Compiled 30 to 17 computations (43.3% saved)

end39.0ms (2.8%)

Compiler

Compiled 60 to 28 computations (53.3% saved)

Profiling

Loading profile data...