mirror of
https://github.com/metabarcoding/obitools4.git
synced 2026-11-10 01:24:41 +00:00
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:
1 parent
a0d8187fd6
commit
f76e7f03c6
6 files changed
+190
-144
No files matched your search
@@ -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)
|
||||
}
|
||||
Reference in new issue
Block a user