FastMath repmul

Time bar (total: 1.6s)

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)

sample561.0ms (35.6%)

Results
348.0ms5210×body256valid
202.0ms3046×body256infinite
Bogosity

preprocess191.0ms (12.1%)

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
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 9 to 5 computations (44.4% saved)

simplify190.0ms (12.1%)

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

Useful iterations: 2 (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
Stop Event
node limit
Counts
1 → 4
Calls
Call 1
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)

eval1.0ms (0%)

Compiler

Compiled 23 to 10 computations (56.5% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New134
Fresh011
Picked000
Done000
Total145
Accurracy
100.0%
Counts
5 → 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)

localize37.0ms (2.4%)

Local Accuracy

Found 3 expressions with local accuracy:

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

Compiled 34 to 9 computations (73.5% saved)

series2.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite52.0ms (3.3%)

Algorithm
batch-egg-rewrite
Rules
968×pow1
924×add-sqr-sqrt
906×*-un-lft-identity
896×add-exp-log
896×log1p-expm1-u
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0733
114121
2139521
Stop Event
node limit
Counts
3 → 35
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 d1 d1) d1)
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Outputs
(-.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 (*.f64 d1 d1) 4))
(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)))
(-.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 (*.f64 (log.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 (*.f64 d1 d1) 4))
(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)))

simplify45.0ms (2.9%)

Algorithm
egg-herbie
Rules
1226×log-prod
996×fma-def
872×associate-*r*
870×unswap-sqr
752×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
053497
1119497
2419497
33011497
Stop Event
node limit
Counts
71 → 23
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)
(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 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 (*.f64 d1 d1) 4))
(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)))
(-.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 (*.f64 (log.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 (*.f64 d1 d1) 4))
(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 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)
(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 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 (*.f64 d1 d1) 4))
(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)
(-.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 (*.f64 (log.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 (*.f64 d1 d1) 4))
(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 107 computations (26.2% saved)

prune4.0ms (0.2%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New23023
Fresh000
Picked033
Done000
Total23326
Accurracy
100.0%
Counts
26 → 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 38 to 17 computations (55.3% saved)

regimes6.0ms (0.4%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.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 28 to 12 computations (57.1% saved)

regimes10.0ms (0.6%)

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:

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

regimes3.0ms (0.2%)

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:

2.0ms
d1
Results
AccuracySegmentsBranch
99.8%1d1
Compiler

Compiled 10 to 4 computations (60% saved)

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

soundness425.0ms (27%)

Rules
2472×sqr-pow
2472×sqr-pow
1372×associate-*r*
1372×associate-*r*
1202×cube-prod
Iterations

Useful iterations: 2 (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
0619
1913
2117
3207
4357
5627
61307
74287
824247
925227
1026757
1128907
1231817
1335467
1441337
1546867
1653727
1757797
1860537
1962697
2064377
2165457
2272887
Stop Event
node limit
node limit
Compiler

Compiled 36 to 18 computations (50% saved)

end36.0ms (2.3%)

Compiler

Compiled 60 to 28 computations (53.3% saved)

Profiling

Loading profile data...