Data.HyperLogLog.Config:hll from hyperloglog-0.3.4

Time bar (total: 2.9s)

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 8 to 5 computations (37.5% 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)

sample735.0ms (25.6%)

Results
580.0ms8256×0valid
Precisions
Click to see histograms. Total time spent on operations: 216.0ms
ival-mult: 205.0ms (95% of total)
const: 8.0ms (3.7% of total)
backward-pass: 3.0ms (1.4% of total)
Bogosity

preprocess45.0ms (1.6%)

Algorithm
egg-herbie
Rules
324×fma-define
288×fnmadd-define
208×fnmsub-define
208×fmsub-define
132×sum3-define
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01432
15026
211326
324326
446126
584026
697826
7100226
045
184
2104
0104
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
(* (* x y) y)
Outputs
(* (* x y) y)
(*.f64 x (*.f64 y y))
Call 2
Inputs
(* (* x y) y)
(* (* (neg x) y) y)
(* (* x (neg y)) (neg y))
(neg (* (* (neg x) y) y))
(neg (* (* x (neg y)) (neg y)))
(* (* y x) x)
Outputs
(* (* x y) y)
(* x (square y))
(* (* (neg x) y) y)
(fnmsub x (square y) 0)
(* (* x (neg y)) (neg y))
(* x (square y))
(neg (* (* (neg x) y) y))
(* x (square y))
(neg (* (* x (neg y)) (neg y)))
(fnmsub x (square y) 0)
(* (* y x) x)
(* y (square x))
Symmetry

(abs y)

(negabs x)

explain85.0ms (3%)

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

Compiled 33 to 14 computations (57.6% saved)

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

eval0.0ms (0%)

Compiler

Compiled 7 to 4 computations (42.9% saved)

prune1.0ms (0%)

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

Compiled 14 to 8 computations (42.9% saved)

simplify16.0ms (0.6%)

Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x y)
cost-diff0
(*.f64 (*.f64 x y) y)
cost-diff0
(*.f64 y y)
cost-diff0
(*.f64 x (*.f64 y y))
Rules
14×*-lowering-*.f32
14×*-lowering-*.f64
*-commutative
associate-*r*
square-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0617
11017
01017
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(* x (* y y))
x
(* y y)
y
(* (* x y) y)
(* x y)
x
y
Outputs
(* x (* y y))
(*.f64 x (*.f64 y y))
x
(* y y)
(*.f64 y y)
y
(* (* x y) y)
(*.f64 x (*.f64 y y))
(* x y)
(*.f64 x y)
x
y

localize35.0ms (1.2%)

Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 x y)
accuracy99.8%
(*.f64 (*.f64 x y) y)
accuracy100.0%
(*.f64 y y)
accuracy89.6%
(*.f64 x (*.f64 y y))
Results
28.0ms256×0valid
Compiler

Compiled 23 to 7 computations (69.6% saved)

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

series5.0ms (0.2%)

Counts
4 → 84
Calls
Call 1
Inputs
#<alt (* x (* y y))>
#<alt (* y y)>
#<alt (* (* x y) y)>
#<alt (* x y)>
Outputs
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
Calls

21 calls:

TimeVariablePointExpression
1.0ms
x
@0
(* x (* y y))
1.0ms
y
@inf
(* x (* y y))
0.0ms
x
@inf
(* x (* y y))
0.0ms
y
@0
(* x (* y y))
0.0ms
y
@-inf
(* x y)

rewrite163.0ms (5.7%)

Algorithm
batch-egg-rewrite
Rules
2200×pow-lowering-pow.f64
2200×pow-lowering-pow.f32
1432×prod-exp
1308×*-lowering-*.f32
1308×*-lowering-*.f64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
0614
11214
21914
33614
49414
528810
618734
719054
820394
933154
086754
Stop Event
iter limit
node limit
Counts
4 → 11
Calls
Call 1
Inputs
(* x (* y y))
(* y y)
(* (* x y) y)
(* x y)
Outputs
x
(*.f64 #s(literal 1 binary64) x)
(*.f64 x #s(literal 1 binary64))
#s(literal 1 binary64)
y
x
(*.f64 #s(literal 1 binary64) x)
(*.f64 x #s(literal 1 binary64))
x
(*.f64 #s(literal 1 binary64) x)
(*.f64 x #s(literal 1 binary64))

simplify10.0ms (0.3%)

Algorithm
egg-herbie
Rules
14×*-lowering-*.f32
14×*-lowering-*.f64
*-commutative
pow-lowering-pow.f64
pow-lowering-pow.f32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06348
19288
212288
012288
Stop Event
iter limit
saturated
Counts
84 → 84
Calls
Call 1
Inputs
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
Outputs
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)

eval10.0ms (0.3%)

Compiler

Compiled 455 to 12 computations (97.4% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New93295
Fresh000
Picked022
Done000
Total93497
Accuracy
99.9%
Counts
97 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(*.f64 (*.f64 x y) y)
89.6%
(*.f64 x (*.f64 y y))
29.6%
(*.f64 x y)
5.2%
x
Compiler

Compiled 22 to 13 computations (40.9% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Localize:

Found 1 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x y)
Rules
*-lowering-*.f32
*-lowering-*.f64
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036
146
046
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
x
(* x y)
x
y
Outputs
x
(* x y)
(*.f64 x y)
x
y

localize25.0ms (0.9%)

Localize:

Found 1 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 x y)
Results
20.0ms256×0valid
Compiler

Compiled 9 to 4 computations (55.6% saved)

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

series0.0ms (0%)

Counts
1 → 24
Calls
Call 1
Inputs
#<alt (* x y)>
Outputs
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(* x y)
0.0ms
x
@inf
(* x y)
0.0ms
x
@-inf
(* x y)
0.0ms
y
@-inf
(* x y)
0.0ms
y
@inf
(* x y)

rewrite13.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
*-lowering-*.f32
*-lowering-*.f64
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033
143
043
Stop Event
iter limit
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(* x y)
Outputs
(*.f64 x y)
(*.f64 y x)

simplify5.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-lowering-*.f32
*-lowering-*.f64
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0372
1472
0472
Stop Event
iter limit
saturated
Counts
24 → 24
Calls
Call 1
Inputs
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
Outputs
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)

eval2.0ms (0.1%)

Compiler

Compiled 80 to 4 computations (95% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New26026
Fresh000
Picked022
Done022
Total26430
Accuracy
99.9%
Counts
30 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(*.f64 (*.f64 x y) y)
89.6%
(*.f64 x (*.f64 y y))
29.6%
(*.f64 x y)
5.2%
x
Compiler

Compiled 38 to 19 computations (50% saved)

regimes7.0ms (0.2%)

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

3 calls:

2.0ms
y
2.0ms
x
2.0ms
(*.f64 (*.f64 x y) y)
Results
AccuracySegmentsBranch
99.8%1x
99.8%1y
99.8%1(*.f64 (*.f64 x y) y)
Compiler

Compiled 13 to 8 computations (38.5% saved)

regimes31.0ms (1.1%)

Counts
3 → 1
Calls
Call 1
Inputs
x
(*.f64 x y)
(*.f64 x (*.f64 y y))
Outputs
(*.f64 x (*.f64 y y))
Calls

2 calls:

28.0ms
y
2.0ms
x
Results
AccuracySegmentsBranch
89.6%1x
89.6%1y
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes3.0ms (0.1%)

Counts
2 → 1
Calls
Call 1
Inputs
x
(*.f64 x y)
Outputs
(*.f64 x y)
Calls

2 calls:

2.0ms
y
2.0ms
x
Results
AccuracySegmentsBranch
29.6%1x
29.6%1y
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes3.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
x
Outputs
x
Calls

2 calls:

1.0ms
x
1.0ms
y
Results
AccuracySegmentsBranch
5.2%1y
5.2%1x
Compiler

Compiled 6 to 4 computations (33.3% saved)

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0614
1914
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 x y) y)
(*.f64 x (*.f64 y y))
(*.f64 x y)
x
Outputs
(*.f64 (*.f64 x y) y)
(*.f64 y (*.f64 x y))
(*.f64 x (*.f64 y y))
(*.f64 x y)
x

soundness1.6s (56%)

Rules
2200×pow-lowering-pow.f64
2200×pow-lowering-pow.f32
1432×prod-exp
1308×*-lowering-*.f32
1308×*-lowering-*.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
045
184
2104
0104
0614
11214
21914
33614
49414
528810
618734
719054
820394
933154
086754
Stop Event
done
iter limit
node limit
iter limit
saturated
Compiler

Compiled 42 to 21 computations (50% saved)

preprocess51.0ms (1.8%)

Remove

(negabs x)

(abs y)

Compiler

Compiled 130 to 68 computations (47.7% saved)

end0.0ms (0%)

Profiling

Loading profile data...