| Copyright | (c) OleksandrZhabenko 2020-2023 |
|---|---|
| License | MIT |
| Maintainer | oleksandr.zhabenko@yahoo.com |
| Stability | Experimental |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
| Extensions |
|
Phladiprelio.ConstraintsEncoded
Description
Provides a way to encode the needed constraint with possibly less symbols. Uses arrays instead of vectors.
Synopsis
- data EncodedContraints a b
- type EncodedCnstrs = EncodedContraints Int (Array Int Int)
- readMaybeEC :: Int -> String -> Maybe EncodedCnstrs
- readMaybeECG :: Int -> String -> Maybe EncodedCnstrs
- decodeConstraint1 :: (InsertLeft t (Array Int Int), Monoid (t (Array Int Int))) => EncodedCnstrs -> t (Array Int Int) -> t (Array Int Int)
- decodeLConstraints :: (InsertLeft t (Array Int Int), Monoid (t (Array Int Int))) => [EncodedCnstrs] -> t (Array Int Int) -> t (Array Int Int)
- getIEl :: EncodedCnstrs -> Int
- setIEl :: Int -> EncodedCnstrs -> EncodedCnstrs
- isE :: EncodedCnstrs -> Bool
- isP :: EncodedCnstrs -> Bool
- isF :: EncodedCnstrs -> Bool
- isQ :: EncodedCnstrs -> Bool
- isT :: EncodedCnstrs -> Bool
- isSA :: EncodedCnstrs -> Bool
- isSB :: EncodedCnstrs -> Bool
Data types
data EncodedContraints a b Source #
Instances
| (Eq a, Eq b) => Eq (EncodedContraints a b) Source # | |
Defined in Phladiprelio.ConstraintsEncoded Methods (==) :: EncodedContraints a b -> EncodedContraints a b -> Bool # (/=) :: EncodedContraints a b -> EncodedContraints a b -> Bool # | |
| (Ord a, Ord b) => Ord (EncodedContraints a b) Source # | |
Defined in Phladiprelio.ConstraintsEncoded Methods compare :: EncodedContraints a b -> EncodedContraints a b -> Ordering # (<) :: EncodedContraints a b -> EncodedContraints a b -> Bool # (<=) :: EncodedContraints a b -> EncodedContraints a b -> Bool # (>) :: EncodedContraints a b -> EncodedContraints a b -> Bool # (>=) :: EncodedContraints a b -> EncodedContraints a b -> Bool # max :: EncodedContraints a b -> EncodedContraints a b -> EncodedContraints a b # min :: EncodedContraints a b -> EncodedContraints a b -> EncodedContraints a b # | |
type EncodedCnstrs = EncodedContraints Int (Array Int Int) Source #
Functions to work with them
Read functions
readMaybeEC :: Int -> String -> Maybe EncodedCnstrs Source #
Inspired by the: https://hackage.haskell.org/package/base-4.14.0.0/docs/Data-Maybe.html
Is provided here as a more general way to read the String into a EncodedCnstrs than more restricted
but safer readMaybeECG. It is up to user to check whether the parameters are in the correct form, the function does
not do the full checking. For phonetic-languages applications, it is better to use readMaybeECG function instead.
readMaybeECG :: Int -> String -> Maybe EncodedCnstrs Source #
A safer variant of the readMaybeEC more suitable for applications, e. g. for phonetic-languages series of packages.
Process-encoding functions
decodeConstraint1 :: (InsertLeft t (Array Int Int), Monoid (t (Array Int Int))) => EncodedCnstrs -> t (Array Int Int) -> t (Array Int Int) Source #
Must be applied to the correct array of permutation indeces. Otherwise, it gives runtime error (exception). All the integers inside the
EncodedCnstrs must be in the range [0..n] where n corresponds to the maximum element in the permutation Array Int Int. Besides,
n is (probably must be) not greater than 6.
decodeLConstraints :: (InsertLeft t (Array Int Int), Monoid (t (Array Int Int))) => [EncodedCnstrs] -> t (Array Int Int) -> t (Array Int Int) Source #
Must be applied to the correct array of permutation indeces. Otherwise, it gives runtime error (exception). All the integers inside the
EncodedCnstrs must be in the range [0..n] where n corresponds to the maximum element in the permutation Array Int Int. Besides,
n is (probably must be) not greater than 6.
Modifiers and getters
getIEl :: EncodedCnstrs -> Int Source #
Works only with the correctly defined argument though it is not checked. Use with this caution.
setIEl :: Int -> EncodedCnstrs -> EncodedCnstrs Source #
Works only with the correctly defined arguments though it is not checked. Use with this caution.
Predicates
isE :: EncodedCnstrs -> Bool Source #
isP :: EncodedCnstrs -> Bool Source #
isF :: EncodedCnstrs -> Bool Source #
isQ :: EncodedCnstrs -> Bool Source #
isT :: EncodedCnstrs -> Bool Source #
isSA :: EncodedCnstrs -> Bool Source #
isSB :: EncodedCnstrs -> Bool Source #