Graphics.Rasterific.QuadraticFormula:discriminant from Rasterific-0.6.1

Time bar (total: 2.6s)

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 13 to 9 computations (30.8% saved)

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

sample1.6s (61.1%)

Results
922.0ms5486×0valid
628.0ms2769×0infinite
0.0ms0valid
Precisions
Click to see histograms. Total time spent on operations: 832.0ms
Operation ival-sub, time spent: 569.0ms, 68.0% of total-time
Operation ival-mult, time spent: 243.0ms, 29.0% of total-time
Operation const, time spent: 20.0ms, 2.0% of total-time
Bogosity

preprocess528.0ms (20%)

Algorithm
egg-herbie
Rules
1190×fma-def
192×distribute-lft-neg-in
188×associate-*r*
188×cancel-sign-sub-inv
124×distribute-rgt-neg-in
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-x
00-0-(*.f64 x x)
00-0-z
00-0-(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
00-0-(*.f64 (*.f64 y 4) z)
00-0-4
00-0-y
00-0-(*.f64 y 4)
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
038435
1116375
2284375
3713375
41184375
51623375
61717375
71725375
81725375
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
(-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (*.f64 y 4) z))
(-.f64 (*.f64 x x) (*.f64 (*.f64 (neg.f64 y) 4) z))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) (neg.f64 z)))
(neg.f64 (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (*.f64 y 4) z)))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 (neg.f64 y) 4) z)))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) (neg.f64 z))))
(-.f64 (*.f64 y y) (*.f64 (*.f64 x 4) z))
(-.f64 (*.f64 z z) (*.f64 (*.f64 y 4) x))
(-.f64 (*.f64 x x) (*.f64 (*.f64 z 4) y))
Outputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
(fma.f64 x x (*.f64 (*.f64 y 4) (neg.f64 z)))
(fma.f64 x x (*.f64 y (*.f64 z -4)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
(fma.f64 x x (*.f64 (*.f64 y 4) (neg.f64 z)))
(fma.f64 x x (*.f64 y (*.f64 z -4)))
(-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (*.f64 y 4) z))
(fma.f64 x x (*.f64 (*.f64 y 4) (neg.f64 z)))
(fma.f64 x x (*.f64 y (*.f64 z -4)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 (neg.f64 y) 4) z))
(-.f64 (*.f64 x x) (*.f64 z (neg.f64 (*.f64 y 4))))
(fma.f64 x x (*.f64 y (*.f64 4 z)))
(fma.f64 x x (*.f64 (*.f64 y 4) z))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) (neg.f64 z)))
(-.f64 (*.f64 x x) (*.f64 z (neg.f64 (*.f64 y 4))))
(fma.f64 x x (*.f64 y (*.f64 4 z)))
(fma.f64 x x (*.f64 (*.f64 y 4) z))
(neg.f64 (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (*.f64 y 4) z)))
(neg.f64 (fma.f64 x x (*.f64 (*.f64 y 4) (neg.f64 z))))
(neg.f64 (fma.f64 x x (*.f64 y (*.f64 z -4))))
(-.f64 (*.f64 (*.f64 y 4) z) (*.f64 x x))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 (neg.f64 y) 4) z)))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 z (neg.f64 (*.f64 y 4)))))
(neg.f64 (fma.f64 x x (*.f64 y (*.f64 4 z))))
(-.f64 (*.f64 y (*.f64 z -4)) (*.f64 x x))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) (neg.f64 z))))
(neg.f64 (-.f64 (*.f64 x x) (*.f64 z (neg.f64 (*.f64 y 4)))))
(neg.f64 (fma.f64 x x (*.f64 y (*.f64 4 z))))
(-.f64 (*.f64 y (*.f64 z -4)) (*.f64 x x))
(-.f64 (*.f64 y y) (*.f64 (*.f64 x 4) z))
(-.f64 (*.f64 y y) (*.f64 z (*.f64 x 4)))
(fma.f64 y y (*.f64 x (*.f64 z -4)))
(fma.f64 x (*.f64 z -4) (*.f64 y y))
(-.f64 (*.f64 z z) (*.f64 (*.f64 y 4) x))
(-.f64 (*.f64 z z) (*.f64 y (*.f64 x 4)))
(fma.f64 z z (*.f64 x (*.f64 y -4)))
(fma.f64 y (*.f64 x -4) (*.f64 z z))
(-.f64 (*.f64 x x) (*.f64 (*.f64 z 4) y))
(fma.f64 x x (*.f64 (*.f64 y 4) (neg.f64 z)))
(fma.f64 x x (*.f64 y (*.f64 z -4)))
Symmetry

(abs x)

(sort y z)

Compiler

Compiled 68 to 38 computations (44.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 199.0ms
Operation ival-mult, time spent: 134.0ms, 67.0% of total-time
Operation ival-sub, time spent: 52.0ms, 26.0% of total-time
Operation const, time spent: 13.0ms, 7.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 20 to 12 computations (40% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (*.f64 y (*.f64 z -4)))
99.6%
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Compiler

Compiled 23 to 15 computations (34.8% saved)

localize312.0ms (11.8%)

Compiler

Compiled 48 to 25 computations (47.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 190.0ms
Operation ival-mult, time spent: 127.0ms, 67.0% of total-time
Operation ival-fma, time spent: 28.0ms, 15.0% of total-time
Operation ival-sub, time spent: 25.0ms, 13.0% of total-time
Operation const, time spent: 10.0ms, 5.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0.1%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done000
Total022
Accuracy
100.0%
Counts
2 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (*.f64 y (*.f64 z -4)))
99.6%
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Compiler

Compiled 43 to 27 computations (37.2% saved)

regimes19.0ms (0.7%)

Counts
2 → 1
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
(fma.f64 x x (*.f64 y (*.f64 z -4)))
Outputs
(fma.f64 x x (*.f64 y (*.f64 z -4)))
Calls

7 calls:

3.0ms
x
3.0ms
(*.f64 y 4)
3.0ms
z
3.0ms
y
2.0ms
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1z
100.0%1(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
100.0%1(*.f64 x x)
100.0%1(*.f64 (*.f64 y 4) z)
100.0%1(*.f64 y 4)
Compiler

Compiled 44 to 32 computations (27.3% saved)

regimes17.0ms (0.6%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Outputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Calls

7 calls:

3.0ms
z
3.0ms
y
3.0ms
(*.f64 y 4)
2.0ms
x
2.0ms
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Results
AccuracySegmentsBranch
99.6%1x
99.6%1y
99.6%1z
99.6%1(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
99.6%1(*.f64 x x)
99.6%1(*.f64 (*.f64 y 4) z)
99.6%1(*.f64 y 4)
Compiler

Compiled 44 to 32 computations (27.3% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01970
12970
24770
35770
46570
56870
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 x x (*.f64 y (*.f64 z -4)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Outputs
(fma.f64 x x (*.f64 y (*.f64 z -4)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
(-.f64 (*.f64 x x) (*.f64 z (*.f64 y 4)))
Compiler

Compiled 23 to 15 computations (34.8% saved)

soundness110.0ms (4.2%)

Rules
1190×fma-def
192×distribute-lft-neg-in
188×associate-*r*
188×cancel-sign-sub-inv
124×distribute-rgt-neg-in
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
038435
1116375
2284375
3713375
41184375
51623375
61717375
71725375
81725375
Stop Event
saturated
Compiler

Compiled 65 to 37 computations (43.1% saved)

end0.0ms (0%)

preprocess33.0ms (1.3%)

Remove

(sort y z)

(abs x)

Compiler

Compiled 196 to 124 computations (36.7% saved)

Profiling

Loading profile data...