Safe Haskell | Safe |
---|---|
Language | Haskell98 |
Z-n functions with modulo function as parameter.
- type Z t = t -> t
- is_z_n :: (Num a, Ord a) => a -> a -> Bool
- mod5 :: Integral i => Z i
- mod7 :: Integral i => Z i
- mod12 :: Integral i => Z i
- lift_unary_Z :: Z i -> (t -> i) -> t -> i
- lift_binary_Z :: Z i -> (s -> t -> i) -> s -> t -> i
- z_add :: Integral i => Z i -> i -> i -> i
- z_sub :: Integral i => Z i -> i -> i -> i
- z_mul :: Integral i => Z i -> i -> i -> i
- z_negate :: Integral i => Z i -> i -> i
- z_fromInteger :: Integral i => Z i -> Integer -> i
- z_signum :: t -> u -> v
- z_abs :: t -> u -> v
- to_Z :: Integral i => Z i -> i -> i
- from_Z :: (Integral i, Num n) => i -> n
- z_modulus :: Integral i => Z i -> i
- z_univ :: Integral i => Z i -> [i]
- z_complement :: Integral i => Z i -> [i] -> [i]
- z_quot :: Integral i => Z i -> i -> i -> i
- z_rem :: Integral i => Z i -> i -> i -> i
- div_err :: Integral i => String -> i -> i -> i
- z_div :: Integral i => Z i -> i -> i -> i
- z_mod :: Integral i => Z i -> i -> i -> i
- z_quotRem :: Integral i => Z i -> i -> i -> (i, i)
- z_divMod :: Integral i => Z i -> i -> i -> (i, i)
- z_toInteger :: Integral i => Z i -> i -> i
- mod16 :: Integral i => Z i
- integral_to_digit :: Integral t => t -> Char
- is_z16 :: Integral t => t -> Bool
- z16_to_char :: Integral t => t -> Char
- z16_set_pp :: Integral t => [t] -> String
- z16_seq_pp :: Integral t => [t] -> String
- z16_vec_pp :: Integral t => [t] -> String
Documentation
lift_unary_Z :: Z i -> (t -> i) -> t -> i Source #
lift_binary_Z :: Z i -> (s -> t -> i) -> s -> t -> i Source #
z_sub :: Integral i => Z i -> i -> i -> i Source #
The underlying type i is presumed to be signed...
z_sub mod12 0 8 == 4
import Data.Word z_sub mod12 (0::Word8) 8 == 8 ((0 - 8) :: Word8) == 248 248 `mod` 12 == 8
z_mul :: Integral i => Z i -> i -> i -> i Source #
Allowing unsigned i is rather inefficient... z_sub :: Integral i => Z i -> i -> i -> i z_sub z p q = if p > q then z (p - q) else let m = z_modulus z in z (p + m - q)
z_complement :: Integral i => Z i -> [i] -> [i] Source #
Z of z_univ
not in given set.
z_complement mod5 [0,2,3] == [1,4] z_complement mod12 [0,2,4,5,7,9,11] == [1,3,6,8,10]
z_toInteger :: Integral i => Z i -> i -> i Source #
Z16
integral_to_digit :: Integral t => t -> Char Source #
z16_to_char :: Integral t => t -> Char Source #
z16_set_pp :: Integral t => [t] -> String Source #
z16_seq_pp :: Integral t => [t] -> String Source #
z16_vec_pp :: Integral t => [t] -> String Source #