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)

sample634.0ms (21.6%)

Results
405.0ms8256×0valid
Precisions
Click to see histograms. Total time spent on operations: 159.0ms
ival-mult: 150.0ms (94.3% of total)
const: 7.0ms (4.4% of total)
backward-pass: 3.0ms (1.9% of total)
Bogosity

preprocess41.0ms (1.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01432
15032
211032
324032
445832
583632
697432
799832
045
185
295
095
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 (* y y))
(* (* (neg x) y) y)
(* x (* y (neg y)))
(* (* x (neg y)) (neg y))
(* x (* y y))
(neg (* (* (neg x) y) y))
(* x (* y y))
(neg (* (* x (neg y)) (neg y)))
(* x (* y (neg y)))
(* (* y x) x)
(* y (* x x))
Symmetry

(abs y)

(negabs x)

explain66.0ms (2.2%)

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
41.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 (95.4% 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)
86.9%
(*.f64 x (*.f64 y y))
Compiler

Compiled 14 to 8 computations (42.9% saved)

simplify4.0ms (0.1%)

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*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0620
1920
0920
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

localize51.0ms (1.7%)

Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 x y)
accuracy99.8%
(*.f64 (*.f64 x y) y)
accuracy100.0%
(*.f64 y y)
accuracy86.9%
(*.f64 x (*.f64 y y))
Results
43.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 (93.6% 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
x
@inf
(* x y)

rewrite147.0ms (5%)

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

Useful iterations: 6 (0.0ms)

IterNodesCost
0618
11118
21818
33418
49018
528310
618214
718504
819804
932614
085474
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))

simplify11.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06348
19348
211348
011348
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)

eval9.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)
86.9%
(*.f64 x (*.f64 y y))
34.1%
(*.f64 x y)
5.0%
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

localize15.0ms (0.5%)

Localize:

Found 1 expressions of interest:

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

Compiled 9 to 4 computations (55.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-mult: 2.0ms (77.4% 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)

rewrite10.0ms (0.3%)

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)

simplify14.0ms (0.5%)

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)
86.9%
(*.f64 x (*.f64 y y))
34.1%
(*.f64 x y)
5.0%
x
Compiler

Compiled 38 to 19 computations (50% saved)

regimes29.0ms (1%)

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:

24.0ms
x
2.0ms
y
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)

regimes4.0ms (0.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:

2.0ms
y
2.0ms
x
Results
AccuracySegmentsBranch
86.9%1x
86.9%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
x
2.0ms
y
Results
AccuracySegmentsBranch
34.1%1x
34.1%1y
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes4.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:

2.0ms
y
1.0ms
x
Results
AccuracySegmentsBranch
5.0%1y
5.0%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.8s (62.3%)

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

Useful iterations: 6 (0.0ms)

IterNodesCost
045
185
295
095
0618
11118
21818
33418
49018
528310
618214
718504
819804
932614
085474
Stop Event
done
iter limit
node limit
iter limit
saturated
Compiler

Compiled 39 to 20 computations (48.7% saved)

preprocess41.0ms (1.4%)

Remove

(negabs x)

(abs y)

Compiler

Compiled 130 to 68 computations (47.7% saved)

end0.0ms (0%)

Profiling

Loading profile data...