FastMath repmul

Time bar (total: 956.0ms)

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)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-mult: 0.0ms (0% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

sample648.0ms (67.8%)

Results
484.0ms8256×0valid
Precisions
Click to see histograms. Total time spent on operations: 284.0ms
ival-mult: 274.0ms (96.5% of total)
const: 7.0ms (2.5% of total)
backward-pass: 3.0ms (1.1% of total)
Bogosity

preprocess18.0ms (1.9%)

Algorithm
egg-herbie
Rules
114×fnmadd-define
112×fnmsub-define
112×fmsub-define
110×fma-define
38×associate-*r*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0916
13510
211010
320210
427610
541410
649810
045
183
2113
3153
4173
0173
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
(* (* (* d1 d1) d1) d1)
Outputs
(* (* (* d1 d1) d1) d1)
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
Call 2
Inputs
(* (* (* d1 d1) d1) d1)
(* (* (* (neg d1) (neg d1)) (neg d1)) (neg d1))
(neg (* (* (* (neg d1) (neg d1)) (neg d1)) (neg d1)))
Outputs
(* (* (* d1 d1) d1) d1)
(pow d1 4)
(* (* (* (neg d1) (neg d1)) (neg d1)) (neg d1))
(pow d1 4)
(neg (* (* (* (neg d1) (neg d1)) (neg d1)) (neg d1)))
(neg (pow d1 4))
Symmetry

(abs d1)

explain57.0ms (6%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(*.f64 d1 d1)
00-0-(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
00-0-(*.f64 (*.f64 d1 d1) d1)
00-0-d1
Results
38.0ms512×0valid
Compiler

Compiled 44 to 14 computations (68.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 11.0ms (98.7% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

eval0.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

prune1.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 8 to 4 computations (50% saved)

simplify4.0ms (0.4%)

Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 d1 d1)
cost-diff0
(*.f64 (*.f64 d1 d1) d1)
cost-diff0
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Rules
12×*-lowering-*.f32
12×*-lowering-*.f64
pow-lowering-pow.f64
pow-lowering-pow.f32
square-define
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0412
189
2119
3159
4179
0179
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(* (* (* d1 d1) d1) d1)
(* (* d1 d1) d1)
(* d1 d1)
d1
Outputs
(* (* (* d1 d1) d1) d1)
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(* (* d1 d1) d1)
(*.f64 d1 (*.f64 d1 d1))
(* d1 d1)
(*.f64 d1 d1)
d1

localize24.0ms (2.5%)

Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 d1 d1)
accuracy99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
accuracy99.9%
(*.f64 (*.f64 d1 d1) d1)
Results
18.0ms256×0valid
Compiler

Compiled 18 to 5 computations (72.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-mult: 5.0ms (88.5% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series2.0ms (0.2%)

Counts
3 → 36
Calls
Call 1
Inputs
#<alt (* (* (* d1 d1) d1) d1)>
#<alt (* (* d1 d1) d1)>
#<alt (* d1 d1)>
Outputs
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 3)>
#<alt (pow d1 3)>
#<alt (pow d1 3)>
#<alt (pow d1 3)>
#<alt (pow d1 3)>
#<alt (pow d1 3)>
#<alt (pow d1 3)>
#<alt (pow d1 3)>
#<alt (pow d1 3)>
#<alt (pow d1 3)>
#<alt (pow d1 3)>
#<alt (pow d1 3)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
Calls

9 calls:

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

rewrite29.0ms (3%)

Algorithm
batch-egg-rewrite
Rules
30×*-lowering-*.f32
30×*-lowering-*.f64
26×prod-exp
22×pow-to-exp
18×pow-lowering-pow.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0410
1128
2258
3438
4668
5918
61378
71388
01388
Stop Event
iter limit
saturated
Counts
3 → 17
Calls
Call 1
Inputs
(* (* (* d1 d1) d1) d1)
(* (* d1 d1) d1)
(* d1 d1)
Outputs
(exp.f64 (*.f64 (log.f64 d1) #s(literal 4 binary64)))
(pow.f64 d1 #s(literal 4 binary64))
(pow.f64 (*.f64 d1 d1) #s(literal 2 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (log.f64 d1)))
(pow.f64 (exp.f64 #s(literal 4 binary64)) (log.f64 d1))
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 d1 (*.f64 d1 d1)) d1)
(exp.f64 (*.f64 #s(literal 3 binary64) (log.f64 d1)))
(pow.f64 d1 #s(literal 3 binary64))
(pow.f64 (exp.f64 #s(literal 3 binary64)) (log.f64 d1))
(*.f64 d1 (*.f64 d1 d1))
(*.f64 (*.f64 d1 d1) d1)
(exp.f64 (*.f64 #s(literal 2 binary64) (log.f64 d1)))
(pow.f64 d1 #s(literal 2 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (log.f64 d1))
(*.f64 d1 d1)

simplify7.0ms (0.7%)

Algorithm
egg-herbie
Rules
pow-lowering-pow.f64
pow-lowering-pow.f32
*-lowering-*.f32
*-lowering-*.f64
cube-mult
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
07108
11096
21396
31596
01596
Stop Event
iter limit
saturated
Counts
36 → 36
Calls
Call 1
Inputs
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
Outputs
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)

eval5.0ms (0.5%)

Compiler

Compiled 316 to 38 computations (88% saved)

prune3.0ms (0.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New51253
Fresh000
Picked011
Done000
Total51354
Accuracy
100.0%
Counts
54 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 #s(literal 4 binary64))
99.8%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 20 to 10 computations (50% saved)

simplify4.0ms (0.4%)

Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff6080
(pow.f64 d1 #s(literal 4 binary64))
cost-diff0
(*.f64 d1 d1)
cost-diff0
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Rules
12×*-lowering-*.f32
12×*-lowering-*.f64
pow-lowering-pow.f64
pow-lowering-pow.f32
associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0511
11111
21411
31611
41811
01811
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(* (* d1 d1) (* d1 d1))
(* d1 d1)
d1
(pow d1 4)
d1
4
Outputs
(* (* d1 d1) (* d1 d1))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(* d1 d1)
(*.f64 d1 d1)
d1
(pow d1 4)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
d1
4
#s(literal 4 binary64)

localize31.0ms (3.2%)

Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(pow.f64 d1 #s(literal 4 binary64))
accuracy100.0%
(*.f64 d1 d1)
accuracy99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Results
21.0ms256×0valid
Compiler

Compiled 18 to 6 computations (66.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-mult: 4.0ms (56.5% of total)
ival-pow: 3.0ms (42.3% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series0.0ms (0%)

Counts
3 → 36
Calls
Call 1
Inputs
#<alt (* (* d1 d1) (* d1 d1))>
#<alt (* d1 d1)>
#<alt (pow d1 4)>
Outputs
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 2)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
#<alt (pow d1 4)>
Calls

9 calls:

TimeVariablePointExpression
0.0ms
d1
@0
(* (* d1 d1) (* d1 d1))
0.0ms
d1
@inf
(* (* d1 d1) (* d1 d1))
0.0ms
d1
@-inf
(pow d1 4)
0.0ms
d1
@inf
(pow d1 4)
0.0ms
d1
@-inf
(* (* d1 d1) (* d1 d1))

rewrite14.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
30×*-lowering-*.f32
30×*-lowering-*.f64
24×pow-to-exp
24×prod-exp
22×exp-prod
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
058
1178
2328
3548
4768
51008
61358
71438
01438
Stop Event
iter limit
saturated
Counts
3 → 20
Calls
Call 1
Inputs
(* (* d1 d1) (* d1 d1))
(* d1 d1)
(pow d1 4)
Outputs
(exp.f64 (*.f64 #s(literal 4 binary64) (log.f64 d1)))
(pow.f64 d1 #s(literal 4 binary64))
(pow.f64 (*.f64 d1 d1) #s(literal 2 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (*.f64 (log.f64 d1) #s(literal 2 binary64)))
(pow.f64 (exp.f64 #s(literal 4 binary64)) (log.f64 d1))
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 d1 (*.f64 d1 d1)) d1)
(exp.f64 (*.f64 (log.f64 d1) #s(literal 2 binary64)))
(pow.f64 d1 #s(literal 2 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (log.f64 d1))
(*.f64 d1 d1)
(exp.f64 (*.f64 #s(literal 4 binary64) (log.f64 d1)))
(pow.f64 d1 #s(literal 4 binary64))
(pow.f64 (*.f64 d1 d1) #s(literal 2 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (*.f64 (log.f64 d1) #s(literal 2 binary64)))
(pow.f64 (exp.f64 #s(literal 4 binary64)) (log.f64 d1))
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 d1 (*.f64 d1 d1)) d1)

simplify5.0ms (0.6%)

Algorithm
egg-herbie
Rules
pow-lowering-pow.f64
pow-lowering-pow.f32
*-lowering-*.f32
*-lowering-*.f64
unpow2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05108
1696
2796
0796
Stop Event
iter limit
saturated
Counts
36 → 36
Calls
Call 1
Inputs
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
Outputs
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))

eval6.0ms (0.6%)

Compiler

Compiled 397 to 27 computations (93.2% saved)

prune3.0ms (0.3%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New72072
Fresh000
Picked022
Done011
Total72375
Accuracy
100.0%
Counts
75 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 #s(literal 4 binary64))
99.8%
(*.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)

regimes34.0ms (3.5%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(pow.f64 d1 #s(literal 4 binary64))
Outputs
(pow.f64 d1 #s(literal 4 binary64))
Calls

2 calls:

30.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
3.0ms
d1
Results
AccuracySegmentsBranch
100.0%1d1
100.0%1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 10 to 5 computations (50% saved)

regimes3.0ms (0.3%)

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:

1.0ms
d1
1.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Results
AccuracySegmentsBranch
99.8%1d1
99.8%1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 10 to 5 computations (50% saved)

regimes1.0ms (0.1%)

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:

1.0ms
d1
Results
AccuracySegmentsBranch
99.8%1d1
Compiler

Compiled 2 to 1 computations (50% saved)

simplify7.0ms (0.7%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
1917
Stop Event
saturated
Calls
Call 1
Inputs
(pow.f64 d1 #s(literal 4 binary64))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Outputs
(pow.f64 d1 #s(literal 4 binary64))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))

soundness16.0ms (1.6%)

Rules
30×*-lowering-*.f32
30×*-lowering-*.f64
26×prod-exp
22×pow-to-exp
18×pow-lowering-pow.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0410
1128
2258
3438
4668
5918
61378
71388
01388
Stop Event
done
iter limit
saturated
Compiler

Compiled 30 to 13 computations (56.7% saved)

preprocess35.0ms (3.6%)

Remove

(abs d1)

Compiler

Compiled 76 to 40 computations (47.4% saved)

end0.0ms (0%)

Profiling

Loading profile data...