Files
obitools4/pkg/obikmer/kmer_lcs_scalar.go
Eric Coissac f76e7f03c6 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.
2026-11-03 09:24:00 +11:00

22 lines
539 B
Go

//go:build !goexperiment.simd
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)
}