{-# LANGUAGE NoImplicitPrelude, Strict, MagicHash #-} {-# OPTIONS_HADDOCK show-extensions #-} -- | -- Module : Rhythmicity.BasicF -- Copyright : (c) Oleksandr Zhabenko 2023 -- License : MIT -- Stability : Experimental -- Maintainer : oleksandr.zhabenko@yahoo.com -- -- Functions for Rhythmicity.MarkerSeqs module that additionally \"catches\" some hashing logics -- so that they can influence in the predictable way the peculiarities of the results -- for PhLADiPreLiO. module Rhythmicity.BasicF where import Data.Bits import GHC.Num import GHC.Base import GHC.Real import GHC.List import GHC.Int hashPosLF2 :: Int8 -> [Integer] -> Integer hashPosLF2 (I8# i) ns = shift (sum ns) (I# i) {-# INLINE hashPosLF2 #-} hashBalancingLF2 :: Int8 -> [Integer] -> Integer hashBalancingLF2 _ = sum . zipWith (\pos n -> shiftR n (20*pos)) [6,5..0] {-# INLINE hashBalancingLF2 #-} hashBasicLF2 :: Int8 -> [Integer] -> Integer hashBasicLF2 _ = sum {-# INLINE hashBasicLF2 #-}