INNER CODE UNIT · Rust
seed_mask
bluenote-1577/skani · src/avx2_seeding.rs:83
let seed_mask = (MarkerBits::MAX >> (std::mem::size_of::<MarkerBits>() * 8 - 2 * k)) as i64;
let mm256_seed_mask = _mm256_set_epi64x(seed_mask, seed_mask, seed_mask, seed_mask);
let marker_mask =
(MarkerBits::MAX >> (std::mem::size_of::<MarkerBits>() * 8 - 2 * marker_k)) as i64;
let rev_marker_mask: u64 = !(3 << (2 * marker_k - 2));
let rev_marker_mask = i64::from_le_bytes(rev_marker_mask.to_le_bytes());
// dbg!(u64::MAX / (c as u64));
// dbg!((u64::MAX / (c as u64)) as i64);
let threshold = i64::MIN + (u64::MAX / (c as u64)) as i64;
let _threshold_marker = i64::MIN + (u64::MAX / marker_c as u64) as i64;
let threshold_unsigned = u64::MAX / c as u64;
let threshold_marker_unsigned = u64::MAX / marker_c as u64;
let _cmp_thresh = _mm256_set_epi64x(threshold, threshold, threshold, threshold);
let mm256_marker_mask = _mm256_set_epi64x(marker_mask, marker_mask, marker_mask, marker_mask);
let mm256_rev_marker_mask = _mm256_set_epi64x(
rev_marker_mask,
rev_marker_mask,