diff --git a/lightmotif/src/pli/platform/avx2.rs b/lightmotif/src/pli/platform/avx2.rs index e9faab288a3b76514827b7092e78de1054f0a795..2c6164ec09789c093265ae32ba95a306fb82d4a8 100644 --- a/lightmotif/src/pli/platform/avx2.rs +++ b/lightmotif/src/pli/platform/avx2.rs @@ -479,7 +479,7 @@ unsafe fn stripe_avx2<A>( $a = _mm256_unpacklo_epi64(t, $b); $b = _mm256_unpackhi_epi64(t, $b); }}; - }; + } // Compute sequence and matrix dimensions let s = seq.as_ref(); @@ -777,7 +777,7 @@ impl Avx2 { } #[allow(unused)] - pub fn stripe<A, S>(seq: S, matrix: &mut StripedSequence<A, <Avx2 as Backend>::LANES>) + pub fn stripe_into<A, S>(seq: S, matrix: &mut StripedSequence<A, <Avx2 as Backend>::LANES>) where A: Alphabet, S: AsRef<[A::Symbol]>, diff --git a/lightmotif/src/pli/platform/generic.rs b/lightmotif/src/pli/platform/generic.rs index ba40689007d7aa94f753b93bf8ad306dbd4d8146..dd8a86e99413689d39e36a1c5899f83f2f5977c1 100644 --- a/lightmotif/src/pli/platform/generic.rs +++ b/lightmotif/src/pli/platform/generic.rs @@ -4,10 +4,13 @@ use typenum::marker_traits::Unsigned; use super::Backend; use crate::abc::Alphabet; +use crate::num::StrictlyPositive; use crate::pli::Encode; use crate::pli::Maximum; use crate::pli::Score; +use crate::pli::Stripe; +use crate::pli::Threshold; /// A marker type for the generic implementation of the pipeline. #[derive(Clone, Debug, Default)] @@ -19,6 +22,10 @@ impl Backend for Generic { impl<A: Alphabet> Encode<A> for Generic {} -impl<A: Alphabet, C: NonZero + Unsigned> Score<A, C> for Generic {} +impl<A: Alphabet, C: StrictlyPositive> Score<A, C> for Generic {} -impl<C: NonZero + Unsigned> Maximum<C> for Generic {} +impl<C: StrictlyPositive> Maximum<C> for Generic {} + +impl<A: Alphabet, C: StrictlyPositive> Stripe<A, C> for Generic {} + +impl<C: StrictlyPositive> Threshold<C> for Generic {}