phonetic-languages-general 0.1.0.0 → 0.2.0.0
raw patch · 3 files changed
+21/−9 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +4/−0
- Languages/UniquenessPeriods/Vector/General/DebugG.hs +16/−8
- phonetic-languages-general.cabal +1/−1
CHANGELOG.md view
@@ -3,3 +3,7 @@ ## 0.1.0.0 -- 2020-10-30 * First version. Released on an unsuspecting world.++## 0.2.0.0 -- 2020-11-12++* Second version. Fixed issues with empty second elements in the tuples.
Languages/UniquenessPeriods/Vector/General/DebugG.hs view
@@ -6,8 +6,8 @@ -- Maintainer : olexandr543@yahoo.com -- -- Generalization of the functionality of the DobutokO.Poetry.General.Debug--- module from the @dobutokO-poetry-general-languages@ package. --- +-- module from the @dobutokO-poetry-general-languages@ package.+-- {-# LANGUAGE BangPatterns, FlexibleContexts #-} module Languages.UniquenessPeriods.Vector.General.DebugG (@@ -58,6 +58,7 @@ -> UniqG2T2 t t2 a b -- ^ The data to be analyzed. -> UniquenessG1T2 t t2 a b -- ^ The maximum element in respect with the given parameters. maximumElBy k vN y+ | VB.null . snd . get22 $ y = error "Languages.UniquenessPeriods.Vector.General.DebugG.maximumElBy: undefined for the empty second element in the tuple. " | compare k (VB.length vN) == GT = error "Languages.UniquenessPeriods.Vector.General.DebugG.maximumElBy: undefined for that amount of norms. " | compare k 0 == GT = let !maxK = VB.maximumBy (\(_,vN0,_) (_,vN1,_) -> compare (VB.unsafeIndex vN0 (k - 1)) (VB.unsafeIndex vN1 (k - 1))) . snd . get22 $ y@@ -249,17 +250,24 @@ uniquenessVariantsGN hd whspss f1 f2 f3 perms K vN frep data1 = uniquenessVariants2GNB hd f1 f2 f3 perms vN frep (subG whspss data1) {-# INLINE uniquenessVariantsGN #-} --- | Finds out the group of maximum elements with respect of the @k@ \"properties\" (the most significant of which is the rightest one, then to the left less significant etc.),--- which is given as the first argument, and then rearranges the input moving the elements equal by the first element in the triple to the maximum element--- to the first element in the tuple.+-- | Rearranges the last argument.+-- Finds out the group of maximum elements with respect of the @k@ \"properties\" (the most significant of which is the rightest one,+-- then to the left less significant etc.) of the second argument. The number of \"properties\" is given as the first argument. Then the function+-- rearranges the last argument by moving the elements equal by the second element in the triple to the maximum element to the first element in+-- the resulting tuple. The elements that are not equal to the maximum one are moved to the second element in the tuple.+-- If the second element of the tuple is empty, then just returns the last argument. ----- The last \"property\" is the first element in the 'VB.Vector' of \"properties\" (@[b] -> b@).+-- The last by significance \"property\" is the first element in the 'VB.Vector' of \"properties\" (@[b] -> b@) (so that the order of significance is+-- from the right to the left in the respective 'VB.Vector'). If the length of the vector of properties is greater than the first argument then+-- the last element(s) in the vector do not participate in producing the result (are ignored). maximumElByVec :: (Eq a, Foldable t, InsertLeft t a, Monoid (t a), Monoid (t (t a)), Foldable t2, Ord b, Show a, Show b) => Int -- ^ The quantity of the represented as functions \"properties\" to be applied from the second argument. The order is from the right to the left. -> VB.Vector (t2 b -> b) -- ^ 'VB.Vector' of the represented as functions \"properties\" to be applied consequently. -> UniqG2T2 t t2 a b -- ^ The data to be analyzed. -> UniqG2T2 t t2 a b-maximumElByVec k vN x = let !uniq = maximumElBy k vN x in let !snD = secondFrom3 uniq in UL2 ((\(!v1,!v2) -> ((fst . get22 $ x) `mappend` v1,v2)) .+maximumElByVec k vN x+ | VB.null . snd . get22 $ x = x+ | otherwise = let !uniq = maximumElBy k vN x in let !snD = secondFrom3 uniq in UL2 ((\(!v1,!v2) -> ((fst . get22 $ x) `mappend` v1,v2)) . VB.unstablePartition (equalSnDs snD . secondFrom3) . snd . get22 $ x) {-# NOINLINE maximumElByVec #-} @@ -318,7 +326,7 @@ -> Int -- ^ The quantity of the represented as functions \"properties\" to be applied from the second argument. The order is from the right to the left. -> VB.Vector (t2 b -> b) -- ^ 'VB.Vector' of the represented as functions \"properties\" to be applied consequently. -> FuncRep (t a) (VB.Vector c) (t2 b) -- ^ It includes the defined earlier variant with data constructor 'D2', but additionally allows to use just single argument with data constructor 'U1'- -> t a -- ^ The data to be processed. + -> t a -- ^ The data to be processed. -> UniqG2T2 t t2 a b uniqNProperties2GN hd whspss f1 f2 f3 perms rr n k vN frep v | n <= 0 = UL2 (VB.empty,VB.empty)
phonetic-languages-general.cabal view
@@ -2,7 +2,7 @@ -- further documentation, see http://haskell.org/cabal/users-guide/ name: phonetic-languages-general-version: 0.1.0.0+version: 0.2.0.0 synopsis: A generalization of the uniqueness-periods-vector-general functionality. description: Is intended to use more functionality of the Data.Foldable, Data.SubG, Data.Monoid and Data.Vector modules. homepage: https://hackage.haskell.org/phonetic-languages-general