Details

Time bar (total: 1.2s)

analyze2.0ms (0.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%0%100%0
0%0%100%1
Compiler

Compiled 44 to 32 computations (27.3% saved)

sample1.1s (89.5%)

Results
1.1s8256×body128valid
Compiler

Compiled 88 to 64 computations (27.3% saved)

preprocess30.0ms (2.5%)

Algorithm
egg-herbie
Rules
100×fma-def_binary64
51×distribute-lft-in_binary64
51×distribute-rgt-in_binary64
30×+-commutative_binary64
24×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03391
17391
215591
329491
436891
044
144
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
0
2
0
3
0
Call 2
Inputs
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) 2)
(*.f64 (+.f64 b (+.f64 a (+.f64 c d))) 2)
(*.f64 (+.f64 c (+.f64 b (+.f64 a d))) 2)
(*.f64 (+.f64 d (+.f64 b (+.f64 c a))) 2)
(*.f64 (+.f64 a (+.f64 c (+.f64 b d))) 2)
(*.f64 (+.f64 a (+.f64 d (+.f64 c b))) 2)
(*.f64 (+.f64 a (+.f64 b (+.f64 d c))) 2)
Outputs
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) 2)
(*.f64 2 (+.f64 a (+.f64 c (+.f64 b d))))
(*.f64 2 (+.f64 a (+.f64 b (+.f64 c d))))
(*.f64 (+.f64 b (+.f64 a (+.f64 c d))) 2)
(*.f64 2 (+.f64 a (+.f64 c (+.f64 b d))))
(*.f64 2 (+.f64 a (+.f64 b (+.f64 c d))))
(*.f64 (+.f64 c (+.f64 b (+.f64 a d))) 2)
(*.f64 2 (+.f64 a (+.f64 c (+.f64 b d))))
(*.f64 2 (+.f64 a (+.f64 b (+.f64 c d))))
(*.f64 (+.f64 d (+.f64 b (+.f64 c a))) 2)
(*.f64 2 (+.f64 a (+.f64 c (+.f64 b d))))
(*.f64 2 (+.f64 a (+.f64 b (+.f64 c d))))
(*.f64 (+.f64 a (+.f64 c (+.f64 b d))) 2)
(*.f64 2 (+.f64 a (+.f64 c (+.f64 b d))))
(*.f64 2 (+.f64 a (+.f64 b (+.f64 c d))))
(*.f64 (+.f64 a (+.f64 d (+.f64 c b))) 2)
(*.f64 2 (+.f64 a (+.f64 c (+.f64 b d))))
(*.f64 2 (+.f64 a (+.f64 b (+.f64 c d))))
(*.f64 (+.f64 a (+.f64 b (+.f64 d c))) 2)
(*.f64 2 (+.f64 a (+.f64 c (+.f64 b d))))
(*.f64 2 (+.f64 a (+.f64 b (+.f64 c d))))
Symmetry

(sort a b c d)

Compiler

Compiled 13 to 9 computations (30.8% saved)

simplify8.0ms (0.7%)

Algorithm
egg-herbie
Rules
114×fma-def_binary64
49×distribute-rgt-in_binary64
46×distribute-lft-in_binary64
39×associate-+l+_binary64
31×associate-+r+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01013
11813
25413
316713
434113
541213
641413
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) 2)
Outputs
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) 2)
(*.f64 (+.f64 (+.f64 b c) (+.f64 d a)) 2)

prune3.0ms (0.3%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0b
Counts
3 → 1
Alt Table
StatusErrorProgram
0b
(*.f64 (+.f64 (+.f64 b c) (+.f64 d a)) 2)
Compiler

Compiled 48 to 32 computations (33.3% saved)

localize7.0ms (0.6%)

prune1.0ms (0.1%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done000
Total011
Error
0b
Counts
1 → 1
Alt Table
StatusErrorProgram
0b
(*.f64 (+.f64 (+.f64 b c) (+.f64 d a)) 2)
Compiler

Compiled 13 to 9 computations (30.8% saved)

regimes26.0ms (2.2%)

Accuracy

Total 0b remaining (0%)

Threshold costs 0b (0%)

Counts
2 → 1
Compiler

Compiled 82 to 57 computations (30.5% saved)

simplify2.0ms (0.2%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01013
11413
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (+.f64 (+.f64 b c) (+.f64 d a)) 2)
Outputs
(*.f64 (+.f64 (+.f64 b c) (+.f64 d a)) 2)

end46.0ms (3.9%)

Stop Event
done
Remove

(sort a b c d)

Compiler

Compiled 65 to 45 computations (30.8% saved)

Profiling

Loading profile data...