Skip to content

Instantly share code, notes, and snippets.

View jweinst1's full-sized avatar
🎯
Focusing

Josh Weinstein jweinst1

🎯
Focusing
View GitHub Profile
@jweinst1
jweinst1 / next_ge_bitset.cpp
Created September 26, 2025 22:02
get the next greatest neighbor in bitset
#include <iostream>
#include <bitset>
int next_ge(uint64_t S, int k) {
uint64_t mask = ~((1ULL << k) - 1);
uint64_t candidates = S & mask;
return __builtin_ctzll(candidates);
}
@jweinst1
jweinst1 / add_not_bits.txt
Last active September 26, 2025 00:26
closest sub mask in a mash set
>>> bin(0b10100 & ~0b1111)
'0b10000'
>>> bin(0b11000 & 0b1111)
'0b1000'
>>> bin(0b11000 & ~0b1111)
'0b10000'
>>> bin(0b01000 & ~0b1111)
'0b0'
>>> bin(0b11000 & ~0b1111)
'0b10000'
@jweinst1
jweinst1 / down_up_submask_iter_bench.cpp
Last active September 21, 2025 08:23
Bench mark of neighbor iteration in submasks
#include <array>
#include <vector>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <ctime>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <random>
@jweinst1
jweinst1 / iter_by_trail_zeros.txt
Last active September 20, 2025 19:22
a way to check for nearest neighbor with bit ops and xor sets with mash
>>> bin(8)
'0b1000'
>>> bin(12)
'0b1100'
>>> bin(16)
'0b10000'
>>> bin(16 + 0b100)
'0b10100'
>>> bin(16 + 0b100 + 0b100)
'0b11000'
@jweinst1
jweinst1 / bit_state_machine.txt
Created September 16, 2025 22:34
bit state machine
>>> bin(0b11011 & (~(1 << 0) | (1 << 1)))
'0b11010'
>>> bin(0b11011 & ~((1 << 0) | (1 << 1)))
'0b11000'
>>> bin(0b11011 & ~((1 << 0) | (1 << 1)))
'0b11000'
>>> bin(0b11011 & ~(1 << 3))
'0b10011'
>>> bin(0b11011 & ~((1 << 3) | (1 << 0)))
'0b10010'
@jweinst1
jweinst1 / bit_maybe_set.rs
Last active September 15, 2025 22:10
Bit set in rust that stores vectors for membership
fn sub_distance<const S: usize>(v1:&[u64;S], v2:&[u64;S]) -> u64 {
let mut total = 0;
for i in 0..S {
total += v1[i] - v2[i];
}
return total;
}
@jweinst1
jweinst1 / absolute_dist_therm.cpp
Last active September 13, 2025 20:48
transform raw floats into thermometer encoding
#include <array>
#include <vector>
#include <cstdint>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <numeric>
@jweinst1
jweinst1 / preserved_euc_vs_hamming_dist.cpp
Last active September 6, 2025 04:09
proves euclidean distance can be preserved in hamming space
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cstdint>
#include <array>
#include <bitset>
#include <iostream>
#include <cmath>
@jweinst1
jweinst1 / bitset1024_existence_check.cpp
Last active September 4, 2025 00:39
Runtime calculation of hamming neighbor benchmark
#include <array>
#include <cstdint>
#include <iostream>
#include <random>
#include <chrono>
class RegisterBitset1024 {
public:
static constexpr size_t NUM_BITS = 1024;
static constexpr size_t NUM_REGS = NUM_BITS / 64;
@jweinst1
jweinst1 / 1vs2bitvs4_quantize_test.cpp
Last active September 3, 2025 00:03
compares quantization of means vs 1-2 dim per bit quantize
// bucket_stats.cpp
#include <array>
#include <vector>
#include <unordered_map>
#include <random>
#include <iostream>
#include <algorithm>
#include <chrono>
#include <cstdint>
#include <numeric>