code wiki / (root) / sketch_buglog_test.nx

sketch_buglog_test.nx source

↩ module page · 76 lines · 3305 B

1// sketch_buglog_test.nx -- ID-based G + L referencing docs/{genealogy,lineage}.md. 2 3import "syscalls.nx" 4import "sketch_buglog.nx" 5import "sketch_types.nx" 6 7func main() -> i64 { 8 let e: *BugLog = nx_buglog_alloc() 9 if e == (0 as *BugLog) { return __syscall(93, 5, 0, 0, 0, 0, 0) } 10 11 nx_buglog_set_who_z(e, "sketch_hll") 12 nx_buglog_set_what_z(e, "n=1000 lg_k=7, 100-seed mean error vs Apache DataSketches") 13 nx_buglog_set_when_z(e, "2026-05-12T-bb8d724") 14 nx_buglog_set_axis(e, NX_BUG_AXIS_ACCURACY) 15 nx_buglog_set_why_z(e, "alpha_m_sq_q64 table values were 877-995x too large") 16 nx_buglog_set_how_z(e, "compared estimate vs DS Java+Python; fix at commit bb8d724") 17 18 nx_buglog_add_genealogy_z(e, "aristotle") 19 nx_buglog_add_genealogy_z(e, "euclid") 20 nx_buglog_add_genealogy_z(e, "cantor") 21 nx_buglog_add_genealogy_z(e, "peano") 22 nx_buglog_add_genealogy_z(e, "zermelo") 23 nx_buglog_add_genealogy_z(e, "fraenkel") 24 nx_buglog_add_genealogy_z(e, "vonneumann") 25 nx_buglog_add_genealogy_z(e, "kolmogorov") 26 nx_buglog_add_genealogy_z(e, "shannon") 27 nx_buglog_add_genealogy_z(e, "carter_wegman") 28 nx_buglog_add_genealogy_z(e, "flajolet_martin") 29 nx_buglog_add_genealogy_z(e, "durand_flajolet") 30 nx_buglog_add_genealogy_z(e, "flajolet_2007") 31 nx_buglog_add_genealogy_z(e, "heule_2013") 32 nx_buglog_add_genealogy_z(e, "datasketches") 33 nx_buglog_add_genealogy_z(e, "ours") 34 35 nx_buglog_add_lineage_z(e, "identity") 36 nx_buglog_add_lineage_z(e, "noncontradiction") 37 nx_buglog_add_lineage_z(e, "membership") 38 nx_buglog_add_lineage_z(e, "empty_set") 39 nx_buglog_add_lineage_z(e, "pairing") 40 nx_buglog_add_lineage_z(e, "union_axiom") 41 nx_buglog_add_lineage_z(e, "infinity_axiom") 42 nx_buglog_add_lineage_z(e, "ordinal") 43 nx_buglog_add_lineage_z(e, "successor") 44 nx_buglog_add_lineage_z(e, "addition") 45 nx_buglog_add_lineage_z(e, "one_plus_one") 46 nx_buglog_add_lineage_z(e, "cardinality") 47 nx_buglog_add_lineage_z(e, "probability") 48 nx_buglog_add_lineage_z(e, "expectation") 49 nx_buglog_add_lineage_z(e, "geometric_dist") 50 nx_buglog_add_lineage_z(e, "harmonic_mean") 51 nx_buglog_add_lineage_z(e, "uniform_hash") 52 nx_buglog_add_lineage_z(e, "k_wise_indep") 53 nx_buglog_add_lineage_z(e, "murmur3_32") 54 nx_buglog_add_lineage_z(e, "leading_zero_rank") 55 nx_buglog_add_lineage_z(e, "fm85_max") 56 nx_buglog_add_lineage_z(e, "stochastic_avg") 57 nx_buglog_add_lineage_z(e, "loglog_2003") 58 nx_buglog_add_lineage_z(e, "hyperloglog_2007") 59 nx_buglog_add_lineage_z(e, "alpha_m_correction") 60 nx_buglog_add_lineage_z(e, "lc_fallback") 61 nx_buglog_add_lineage_z(e, "heule_bias_table") 62 63 nx_buglog_set_performance_z(e, 64 "{\"workload\":\"n=1000 distinct keys x 100 workloads\",\"our_mean_err\":57,\"ds_mean_err\":53,\"our_max_err\":198,\"ds_max_err\":175,\"our_memory_bytes\":152,\"ds_memory_bytes\":168,\"verdict_accuracy\":\"LOSES_BY_7_PCT\",\"verdict_memory\":\"BEATS_BY_10_PCT\"}") 65 66 nx_buglog_emit(e) 67 68 if nx_buglog_n_genealogy(e) != 16 { 69 return __syscall(93, 10, 0, 0, 0, 0, 0) 70 } 71 if nx_buglog_n_lineage(e) != 27 { 72 return __syscall(93, 11, 0, 0, 0, 0, 0) 73 } 74 75 return 0 76}