Difference of squares

Time bar (total: 874.0ms)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 10 to 6 computations (40% saved)

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

sample558.0ms (63.9%)

Results
388.0ms8256×256valid
Precisions
Click to see histograms. Total time spent on operations: 176.0ms
ival-mult: 127.0ms (72.2% of total)
ival-sub: 44.0ms (25% of total)
const: 5.0ms (2.8% of total)
Bogosity

preprocess227.0ms (25.9%)

Algorithm
egg-herbie
Rules
890×fma-define
612×sub-neg
575×fma-neg
564×distribute-lft-in
514×distribute-rgt-in
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
020229
166217
2174217
3440217
41065217
52042217
63011217
73853217
85641217
96242217
106355217
116469217
126549217
136549217
147930217
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (*.f64 a a) (*.f64 b b))
(-.f64 (*.f64 a a) (*.f64 b b))
(-.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b))
(-.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b)))
(neg.f64 (-.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)))
(neg.f64 (-.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))))
(-.f64 (*.f64 b b) (*.f64 a a))
Outputs
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b)))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(neg.f64 (-.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)))
(neg.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(-.f64 (*.f64 b b) (*.f64 a a))
(fma.f64 a (neg.f64 a) (*.f64 b b))
(*.f64 (-.f64 b a) (+.f64 a b))
(neg.f64 (-.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))))
(neg.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(-.f64 (*.f64 b b) (*.f64 a a))
(fma.f64 a (neg.f64 a) (*.f64 b b))
(*.f64 (-.f64 b a) (+.f64 a b))
(-.f64 (*.f64 b b) (*.f64 a a))
(neg.f64 (-.f64 (*.f64 a a) (*.f64 b b)))
(fma.f64 a (neg.f64 a) (*.f64 b b))
(*.f64 (-.f64 b a) (+.f64 a b))
Symmetry

(abs a)

(abs b)

explain53.0ms (6.1%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
140-0-(-.f64 (*.f64 a a) (*.f64 b b))
00-0-(*.f64 b b)
00-0-b
00-0-a
00-0-(*.f64 a a)
Results
32.0ms512×256valid
Compiler

Compiled 45 to 17 computations (62.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 7.0ms (66.7% of total)
ival-sub: 3.0ms (28.6% of total)
const: 0.0ms (0% of total)

eval6.0ms (0.7%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
94.5%
(-.f64 (*.f64 a a) (*.f64 b b))
Compiler

Compiled 18 to 10 computations (44.4% saved)

simplify2.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01031
11631
22431
32831
43031
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 a a) (*.f64 b b))
Outputs
(-.f64 (*.f64 a a) (*.f64 b b))

soundness0.0ms (0%)

Stop Event
fuel
Compiler

Compiled 9 to 5 computations (44.4% saved)

preprocess26.0ms (3%)

Remove

(abs b)

(abs a)

Compiler

Compiled 126 to 70 computations (44.4% saved)

end0.0ms (0%)

Profiling

Loading profile data...