-- | -- Module : Languages.UniquenessPeriods.Vector.FuncRepRelated -- Copyright : (c) OleksandrZhabenko 2020 -- License : MIT -- Stability : Experimental -- Maintainer : olexandr543@yahoo.com -- -- Functions to choose from the 'FuncRep' variants. module Languages.UniquenessPeriods.Vector.FuncRepRelated where import Languages.UniquenessPeriods.Vector.Data import String.Languages.UniquenessPeriods.Vector import Languages.UniquenessPeriods.Vector.PropertiesFuncRep -- | Allows to choose the variant of the computations in case of usual processment. chooseMax :: String -> FuncRep String (UniquenessGeneral2 Char) [Float] chooseMax xs | xs == "y0" = procDiverse2F | xs == "0y" = procRhythmicity23F | xs == "y" = procBothF | otherwise = procBothInvF -- | Allows to choose the variant of the computations in case of minimum lookup. Uses @-neg@ variants. chooseMin :: String -> FuncRep String (UniquenessGeneral2 Char) [Float] chooseMin xs | xs == "y0" = procDiverse2Fneg | xs == "0y" = procRhythmicity23Fneg | xs == "y" = procBothFneg | otherwise = procBothInvFneg -- | Allows to choose precision in the Numeric.showFFloat function being given a choice parameter. precChoice :: String -> Maybe Int precChoice xs | xs == "y0" || xs == "y" || xs == "0y" = Just 0 | otherwise = Just 4