Copyright | (c) OleksandrZhabenko 2020-2023 |
---|---|
License | MIT |
Maintainer | [email protected] |
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
- isV :: EncodedCnstrs -> Bool
- isW :: EncodedCnstrs -> Bool
- isH :: EncodedCnstrs -> Bool
- isR :: EncodedCnstrs -> Bool
- isM :: EncodedCnstrs -> Bool
Data types
data EncodedContraints a b Source #
Constructors
E a | |
P a b | |
Q a a a a a | |
T a a a a | |
SA a a b | |
SB a a b | |
F a a a | |
V a a a | |
W a a a | |
H a a a a | |
R a a a a | |
M a a a a |
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 #
isV :: EncodedCnstrs -> Bool Source #
isW :: EncodedCnstrs -> Bool Source #
isH :: EncodedCnstrs -> Bool Source #
isR :: EncodedCnstrs -> Bool Source #
isM :: EncodedCnstrs -> Bool Source #