Feature: Introduce k-mer distance and SIMD LCS logic

Introduces k-mer distance structures and SIMD implementation for LCS simulation.

Adds support for concurrent, read-only k-mer partners, implements data preparation for SIMD alignment, and adds comprehensive testing and benchmarking capabilities.
This commit is contained in:
Eric Coissac committed 2026-11-03 09:24:00 +11:00
1 parent a0d8187fd6
commit f76e7f03c6
6 files changed
+190 -144

No files matched your search

+14
View File
@@ -5,3 +5,17 @@ package obikmer
func kmerLCSBatch(query uint64, partners []uint64, k int, out []KmerLCSResult) {
kmerLCSBatchScalar(query, partners, k, out)
}
// kmerLCSPrepared has nothing to precompute without SIMD.
type kmerLCSPrepared struct {
k int
partners []uint64
}
func prepareKmerLCS(partners []uint64, k int) kmerLCSPrepared {
return kmerLCSPrepared{k: k, partners: partners}
}
func (p *kmerLCSPrepared) align(query uint64, out []KmerLCSResult) {
kmerLCSBatchScalar(query, p.partners, p.k, out)
}