sketch_hll.nx
buildroot/runtime/sketch_hll.nx
about
dependencies 8 imports · 26 importers
diagram shows first 10 each side; +0 more imports, +16 more importers in the complete lists below.
imports: syscalls.nxmurmur3.nxnx_xxhash.nxnx_bit.nxnx_bits.nxsketch_types.nxhll_bias_table.nxnx_i128.nx
imported by: _a2a_hll_i64_x100.nx_a2a_hll_x100.nx_a2a_subst.nx_py_head2head_substrate.nxbench_emit.nxbench_hll_vs_cpc.nxbench_hll_vs_cpcd.nxbench_multiseed.nxgen_hll_bias_nx.nxsketch_cms.nxsketch_hll4.nxsketch_hll4_vs_hll8_bench.nxsketch_hll_lgk12_vs_lgk8_bench.nxsketch_hll_packed.nxsketch_hll_packed_test.nxsketch_hll_packed_vs_hll8_bench.nxsketch_hll_test.nxsketch_hll_vs_materialized_set_bench.nxsketch_hllmap.nxsketch_hllmap_merge_capability_bench.nxsketch_hllmap_test.nxsketch_lc_vs_hll_small_n_bench.nxsketch_observability_dashboard_bench.nxsketch_robust_hll.nxsketch_robust_hll_vs_hll_adv_bench.nxsketch_theta_intersect_vs_hll_bench.nx
structs
| 69 | struct Hll { |
consts
| 39 | const NX_HLL_LGK_MIN: i64 = 4 |
| 40 | const NX_HLL_LGK_MAX: i64 = 12 // bits-up scale 2026-05-20 (was 10). |
| 49 | const NX_HLL_SEED_HI: i64 = 0x9747B28C |
| 50 | const NX_HLL_SEED_LO: i64 = 0x36185EC0 |
| 57 | const NX_HLL_PPM_SCALE: i64 = 1000000 |
| 58 | const NX_HLL_LN2_PPM: i64 = 693147 // ln(2) * 1e6 |
| 64 | const NX_HLL_LC_PEG_NUM: i64 = 7 |
| 65 | const NX_HLL_LC_PEG_DEN: i64 = 10 |
| 216 | const NX_HLL_HEULE_THRESH_LGK4: i64 = 10 |
| 217 | const NX_HLL_HEULE_THRESH_LGK5: i64 = 20 |
| 218 | const NX_HLL_HEULE_THRESH_LGK6: i64 = 40 |
| 219 | const NX_HLL_HEULE_THRESH_LGK7: i64 = 80 |
| 220 | const NX_HLL_HEULE_THRESH_LGK8: i64 = 220 |
| 221 | const NX_HLL_HEULE_THRESH_LGK9: i64 = 400 |
| 222 | const NX_HLL_HEULE_THRESH_LGK10: i64 = 900 |
| 223 | const NX_HLL_HEULE_THRESH_LGK11: i64 = 1800 // bits-up extrapolation (2x trend) |
| 224 | const NX_HLL_HEULE_THRESH_LGK12: i64 = 3100 // Heule paper canonical for lg_k=12 |
| 313 | const NX_HLL_LAGRANGE_Q: i64 = 24 // 24-bit fractional Q-format |
| 314 | const NX_HLL_LAGRANGE_Q_SCALE: i64 = 16777216 // 1 << 24 |
functions
| 82 | func _sketch_hll_clz32_superseded(x: i64) -> i64 {
calls 1: nx_bits_clz32 |
| 88 | func nx_hll_alloc(lg_k: i64, seed: i64) -> *Hll { |
| 130 | func nx_hll_add(h: *Hll, key: *u8, len: i64) -> i64 { |
| 186 | func nx_hll_alpha_m_sq_q64(lg_k: i64) -> i64 { |
| 205 | func nx_hll_pow2_neg_q32(r: i64) -> i64 { |
| 226 | func nx_hll_heule_threshold(lg_k: i64) -> i64 {
called by 1: main |
| 254 | func nx_hll_log2_ppm(x: i64) -> i64 {
called by 1: nx_hll_estimate |
| 281 | func nx_hll_bias_table_get(lg_k: i64, i: i64) -> i64 { |
| 292 | func nx_hll_bias_table_n(lg_k: i64) -> i64 { |
| 316 | func nx_hll_bias_correct(lg_k: i64, raw_est: i64) -> i64 { |
| 394 | func nx_hll_estimate(h: *Hll) -> i64 { |
| 467 | func nx_hll_stddev_rel_ppb(lg_k: i64) -> i64 { |
| 483 | func nx_hll_query(h: *Hll) -> *ApproxI64 { |
| 521 | func nx_hll_add_i64(h: *Hll, key: i64) -> i64 { |
| 550 | func nx_hll_merge(a: *Hll, b: *Hll) -> *Hll {
calls 1: nx_hll_alloc |