FastMath repmul

Details

Time bar (total: 1.2s)

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)

sample804.0ms (65.4%)

Results
446.0ms5176×body256valid
348.0ms3080×body256infinite
Bogosity

preprocess207.0ms (16.9%)

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)

localize20.0ms (1.6%)

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)

series6.0ms (0.5%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
3.0ms
d1
@inf
(*.f64 (*.f64 d1 d1) d1)
2.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 (4%)

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

simplify47.0ms (3.8%)

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

Compiler

Compiled 145 to 109 computations (24.8% saved)

prune4.0ms (0.3%)

Pruning

2 alts after pruning (1 fresh and 1 done)

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

Compiled 24 to 14 computations (41.7% saved)

localize19.0ms (1.6%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune1.0ms (0.1%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done011
Total022
Accurracy
100.0%
Counts
2 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 4)
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 23 to 13 computations (43.5% saved)

regimes5.0ms (0.4%)

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

2 calls:

3.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 21 to 11 computations (47.6% saved)

regimes26.0ms (2.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

2 calls:

23.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 18 to 9 computations (50% saved)

simplify4.0ms (0.4%)

Algorithm
egg-herbie
Rules
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 12 to 7 computations (41.7% saved)

soundness0.0ms (0%)

end32.0ms (2.6%)

Compiler

Compiled 46 to 26 computations (43.5% saved)

Profiling

Loading profile data...