FastMath dist4

Time bar (total: 1.6s)

analyze0.0ms (0%)

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

Compiled 20 to 12 computations (40% saved)

sample1.3s (80%)

Results
840.0ms5495×body256valid
420.0ms2761×body256infinite
Bogosity

preprocess126.0ms (7.9%)

Algorithm
egg-herbie
Rules
1374×sub-neg
1342×fma-def
830×distribute-lft-neg-in
690×distribute-rgt-neg-in
672×+-commutative
Problems
219×No Errors
25×(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
073984
1289776
2998664
34162644
47107640
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 (neg.f64 d1) d2) (*.f64 (neg.f64 d1) d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 (neg.f64 d1) (neg.f64 d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 (neg.f64 d2)) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3))) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 (neg.f64 d4) d1)) (*.f64 d1 d1))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 (neg.f64 d1) d2) (*.f64 (neg.f64 d1) d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 (neg.f64 d1) (neg.f64 d1))))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 d1 (neg.f64 d2)) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3))) (*.f64 d4 d1)) (*.f64 d1 d1)))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 (neg.f64 d4) d1)) (*.f64 d1 d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d2 d3)) (*.f64 d4 d2)) (*.f64 d2 d2))
(-.f64 (+.f64 (-.f64 (*.f64 d3 d2) (*.f64 d3 d1)) (*.f64 d4 d3)) (*.f64 d3 d3))
(-.f64 (+.f64 (-.f64 (*.f64 d4 d2) (*.f64 d4 d3)) (*.f64 d1 d4)) (*.f64 d4 d4))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (*.f64 d2 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d3 d1)) (*.f64 d1 d1))
Outputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d4 d3) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d4 d3) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (-.f64 (*.f64 (neg.f64 d1) d2) (*.f64 (neg.f64 d1) d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 (neg.f64 d1) (neg.f64 d1)))
(-.f64 (+.f64 (*.f64 (neg.f64 d1) (-.f64 d2 d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d3 d2)) (*.f64 d1 (-.f64 (neg.f64 d4) d1)))
(*.f64 d1 (+.f64 (-.f64 (neg.f64 d4) d1) (-.f64 d3 d2)))
(*.f64 d1 (-.f64 (neg.f64 (+.f64 d1 d4)) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (-.f64 d3 d2) (+.f64 d1 d4)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 (neg.f64 d2)) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 (neg.f64 d2) d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 (neg.f64 d2) d3) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 (-.f64 (-.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 (-.f64 d4 d1) (+.f64 d2 d3)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3))) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d2 (neg.f64 d3))) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d2 (neg.f64 d3)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (+.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 (neg.f64 d4) d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 d1 d1))
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 (neg.f64 d4) d1)))
(*.f64 d1 (-.f64 (-.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (-.f64 (-.f64 d2 d3) (+.f64 d1 d4)))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 (neg.f64 d1) d2) (*.f64 (neg.f64 d1) d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 (neg.f64 d1) (neg.f64 d1))))
(neg.f64 (-.f64 (+.f64 (*.f64 (neg.f64 d1) (-.f64 d2 d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 d1 d1)))
(+.f64 (neg.f64 (*.f64 (neg.f64 d1) (+.f64 (-.f64 d2 d3) d4))) (*.f64 d1 d1))
(neg.f64 (*.f64 d1 (+.f64 (-.f64 (neg.f64 d4) d1) (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (+.f64 d1 d4)))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 d1 (neg.f64 d2)) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)))
(neg.f64 (+.f64 (*.f64 d1 (-.f64 (neg.f64 d2) d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1))))
(neg.f64 (fma.f64 d1 (-.f64 (neg.f64 d2) d3) (*.f64 d1 (-.f64 d4 d1))))
(neg.f64 (*.f64 d1 (-.f64 (-.f64 (-.f64 d4 d2) d3) d1)))
(*.f64 d1 (-.f64 d1 (-.f64 d4 (+.f64 d2 d3))))
(*.f64 d1 (+.f64 d1 (+.f64 d2 (-.f64 d3 d4))))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3))) (*.f64 d4 d1)) (*.f64 d1 d1)))
(neg.f64 (+.f64 (*.f64 d1 (-.f64 d2 (neg.f64 d3))) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1))))
(neg.f64 (fma.f64 d1 (-.f64 d2 (neg.f64 d3)) (*.f64 d1 (-.f64 d4 d1))))
(neg.f64 (*.f64 d1 (+.f64 (+.f64 d2 d3) (-.f64 d4 d1))))
(*.f64 d1 (-.f64 d1 (+.f64 d3 (+.f64 d2 d4))))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 (neg.f64 d4) d1)) (*.f64 d1 d1)))
(neg.f64 (-.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 d1 d1)))
(neg.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 (neg.f64 d4) d1))))
(neg.f64 (*.f64 d1 (-.f64 (-.f64 (-.f64 d2 d3) d4) d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d3 (-.f64 d4 d2))))
(-.f64 (+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d2 d3)) (*.f64 d4 d2)) (*.f64 d2 d2))
(+.f64 (*.f64 d2 (-.f64 d1 d3)) (-.f64 (*.f64 d2 d4) (*.f64 d2 d2)))
(fma.f64 d2 (-.f64 d1 d3) (*.f64 d2 (-.f64 d4 d2)))
(*.f64 d2 (+.f64 (-.f64 d1 d3) (-.f64 d4 d2)))
(-.f64 (+.f64 (-.f64 (*.f64 d3 d2) (*.f64 d3 d1)) (*.f64 d4 d3)) (*.f64 d3 d3))
(+.f64 (*.f64 d3 (-.f64 d2 d1)) (-.f64 (*.f64 d3 d4) (*.f64 d3 d3)))
(fma.f64 d3 (-.f64 d2 d1) (*.f64 d3 (-.f64 d4 d3)))
(*.f64 d3 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 d3 (+.f64 (-.f64 d2 d1) (-.f64 d4 d3)))
(-.f64 (+.f64 (-.f64 (*.f64 d4 d2) (*.f64 d4 d3)) (*.f64 d1 d4)) (*.f64 d4 d4))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d4 (-.f64 d2 d3))) (*.f64 d4 d4))
(fma.f64 d4 (-.f64 d2 d3) (*.f64 d4 (-.f64 d1 d4)))
(*.f64 d4 (+.f64 (-.f64 d2 d3) (-.f64 d1 d4)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d3 d2)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d3 d2) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d3 d2) (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d3 d2)))
(*.f64 d1 (+.f64 (-.f64 d3 d1) (-.f64 d4 d2)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (*.f64 d2 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d4 d3) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d3 d1)) (*.f64 d1 d1))
(-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 (-.f64 d4 d3))) (*.f64 d1 d1))
(fma.f64 d1 (-.f64 d2 d4) (*.f64 d1 (-.f64 d3 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d4) (-.f64 d3 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (-.f64 d3 d4)))
Symmetry

(sort d2 d4)

Compiler

Compiled 73 to 23 computations (68.5% saved)

eval1.0ms (0%)

Compiler

Compiled 45 to 19 computations (57.8% saved)

prune2.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
100.0%
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
Compiler

Compiled 26 to 16 computations (38.5% saved)

localize35.0ms (2.2%)

Compiler

Compiled 31 to 9 computations (71% saved)

eval0.0ms (0%)

Compiler

Compiled 4 to 4 computations (0% saved)

prune1.0ms (0.1%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done000
Total011
Accuracy
100.0%
Counts
1 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
Compiler

Compiled 41 to 23 computations (43.9% saved)

regimes16.0ms (1%)

Accuracy

Total -9.3b remaining (-∞%)

Threshold costs -9.3b (-∞%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Outputs
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
Calls

5 calls:

4.0ms
d2
3.0ms
d1
3.0ms
d3
3.0ms
d4
3.0ms
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Results
AccuracySegmentsBranch
100.0%1d1
100.0%1d2
100.0%1d3
100.0%1d4
100.0%1(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Compiler

Compiled 67 to 42 computations (37.3% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Rules
10×+-commutative
sub-neg
*-commutative
neg-mul-1
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01540
12240
23040
33440
43640
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
Outputs
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
Compiler

Compiled 13 to 8 computations (38.5% saved)

soundness102.0ms (6.4%)

Rules
1374×sub-neg
1342×fma-def
830×distribute-lft-neg-in
690×distribute-rgt-neg-in
672×+-commutative
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
073984
1289776
2998664
34162644
47107640
Stop Event
node limit
Compiler

Compiled 82 to 22 computations (73.2% saved)

end0.0ms (0%)

preprocess33.0ms (2.1%)

Remove

(sort d2 d4)

Compiler

Compiled 142 to 86 computations (39.4% saved)

Profiling

Loading profile data...