Safe Haskell | None |
---|---|
Language | Haskell2010 |
Vector.Word16
Synopsis
- data Vector (a :: Nat) (b :: TYPE R) where
- data Vector# (a :: Nat) (b :: TYPE R) :: UnliftedType
- data MutableVector a (b :: Nat) (c :: TYPE R) where
- MutableVector :: forall a (b :: Nat) (c :: TYPE R). MutableVector# a b c -> MutableVector a b c
- data MutableVector# a (b :: Nat) (c :: TYPE R) :: UnliftedType
- data Bounded (a :: Nat) (b :: TYPE R) where
- data Vector_ (a :: TYPE R) where
- type family FromMutability# (m :: Mutability) :: Nat -> TYPE R -> UnliftedType where ...
- write# :: forall s (n :: Nat) (a :: TYPE R). MutableVector# s n a -> Fin# n -> a -> State# s -> State# s
- write :: forall s (n :: Nat) (a :: TYPE R). MutableVector s n a -> Fin# n -> a -> ST s ()
- read# :: forall s (n :: Nat) (a :: TYPE R). MutableVector# s n a -> Fin# n -> State# s -> (# State# s, a #)
- index# :: forall (n :: Nat) (a :: TYPE R). Vector# n a -> Fin# n -> a
- index :: forall (n :: Nat) (a :: TYPE R). Vector n a -> Fin# n -> a
- unlift :: forall (n :: Nat) (a :: TYPE R). Vector n a -> Vector# n a
- substitute :: forall (m :: Nat) (n :: Nat) (a :: TYPE R). (m :=:# n) -> Vector m a -> Vector n a
- substitute# :: forall (m :: Nat) (n :: Nat) (a :: TYPE R). (m :=:# n) -> Vector# m a -> Vector# n a
- initialized :: forall s (n :: Nat) (a :: TYPE R). Nat# n -> a -> ST s (MutableVector s n a)
- initialized# :: forall s (n :: Nat) (a :: TYPE R). Nat# n -> a -> State# s -> (# State# s, MutableVector# s n a #)
- unsafeCoerceLength :: forall (n :: Nat) (m :: Nat) (a :: TYPE R). Nat n -> Vector m a -> Vector n a
- expose :: forall (n :: Nat) (a :: TYPE R). Vector n a -> A# a
- expose# :: forall (n :: Nat) (a :: TYPE R). Vector# n a -> A# a
- set :: forall s (n :: Nat) (a :: TYPE R). MutableVector s n a -> Nat# n -> a -> ST s ()
- setSlice :: forall (i :: Natural) (n :: Natural) (m :: Nat) s (a :: TYPE R). ((i + n) <=# m) -> MutableVector s n a -> Nat# i -> Nat# m -> a -> ST s ()
- unsafeShrinkFreeze :: forall s (n0 :: Nat) (n1 :: Nat) (a :: TYPE R). (n1 <=# n0) -> MutableVector s n0 a -> Nat# n1 -> ST s (Vector n1 a)
- unsafeFreeze :: forall s (n :: Nat) (a :: TYPE R). MutableVector s n a -> ST s (Vector n a)
- freeze :: forall (n :: Nat) s (a :: TYPE R). Nat# n -> MutableVector s n a -> ST s (Vector n a)
- freezeSlice :: forall (i :: Natural) (n :: Natural) (m :: Nat) s (a :: TYPE R). ((i + n) <=# m) -> MutableVector s m a -> Nat# i -> Nat# n -> ST s (Vector n a)
- freeze# :: forall (n :: Nat) s (a :: TYPE R). Nat# n -> MutableVector# s n a -> State# s -> (# State# s, Vector# n a #)
- freezeSlice# :: forall (i :: Natural) (n :: Natural) (m :: Nat) s (a :: TYPE R). ((i + n) <=# m) -> MutableVector# s m a -> Nat# i -> Nat# n -> State# s -> (# State# s, Vector# n a #)
- thaw :: forall (n :: Nat) (a :: TYPE R) s. Nat# n -> Vector n a -> ST s (MutableVector s n a)
- any :: forall (a :: TYPE R) (n :: Nat). (a -> Bool) -> Nat# n -> Vector n a -> Bool
- all :: forall (a :: TYPE R) (n :: Nat). (a -> Bool) -> Nat# n -> Vector n a -> Bool
- map :: forall (a :: TYPE R) (n :: Nat). (a -> a) -> Vector n a -> Nat# n -> Vector n a
- traverse_ :: forall (n :: Nat) m (a :: TYPE R) b. Monad m => (a -> m b) -> Nat# n -> Vector n a -> m ()
- traverseZip_ :: forall (n :: Nat) m (a :: TYPE R) (b :: TYPE R) c. Monad m => (a -> b -> m c) -> Nat# n -> Vector n a -> Vector n b -> m ()
- traverseST# :: forall (n :: Nat) s (a :: TYPE R) (b :: TYPE R). (a -> State# s -> (# State# s, b #)) -> Nat# n -> Vector# n a -> State# s -> (# State# s, Vector# n b #)
- ifoldl' :: forall (n :: Nat) (a :: TYPE R) b. (b -> Fin# n -> a -> b) -> b -> Nat# n -> Vector n a -> b
- ifoldlSlice' :: forall (i :: Nat) (m :: Nat) (n :: Nat) (a :: TYPE R) b. ((i + n) <= m) -> (b -> Fin# (i + n) -> a -> b) -> b -> Vector m a -> Nat# i -> Nat# n -> b
- replicate :: forall (n :: Nat) (a :: TYPE R). Nat# n -> a -> Vector n a
- empty :: forall (a :: TYPE R). Vector 0 a
- empty_ :: forall (a :: TYPE R). Vector_ a
- construct1 :: forall (a :: TYPE R). a -> Vector 1 a
- construct3 :: forall (a :: TYPE R). a -> a -> a -> Vector 3 a
- construct4 :: forall (a :: TYPE R). a -> a -> a -> a -> Vector 4 a
- construct5 :: forall (a :: TYPE R). a -> a -> a -> a -> a -> Vector 5 a
- construct6 :: forall (a :: TYPE R). a -> a -> a -> a -> a -> a -> Vector 6 a
- construct7 :: forall (a :: TYPE R). a -> a -> a -> a -> a -> a -> a -> Vector 7 a
- append :: forall (n :: Nat) (m :: Nat) (a :: TYPE R). Nat# n -> Nat# m -> Vector n a -> Vector m a -> Vector (n + m) a
- clone :: forall (n :: Nat) (a :: TYPE R). Nat# n -> Vector n a -> Vector n a
- cloneSlice :: forall (i :: Natural) (n :: Natural) (m :: Nat) (a :: TYPE R). ((i + n) <=# m) -> Vector m a -> Nat# i -> Nat# n -> Vector n a
- index0 :: forall (n :: Natural) (a :: TYPE R). CmpNat 0 n ~ 'LT => Vector n a -> a
- index1 :: forall (n :: Natural) (a :: TYPE R). CmpNat 1 n ~ 'LT => Vector n a -> a
- index2 :: forall (n :: Natural) (a :: TYPE R). CmpNat 2 n ~ 'LT => Vector n a -> a
- index3 :: forall (n :: Natural) (a :: TYPE R). CmpNat 3 n ~ 'LT => Vector n a -> a
- index4 :: forall (n :: Natural) (a :: TYPE R). CmpNat 4 n ~ 'LT => Vector n a -> a
- index5 :: forall (n :: Natural) (a :: TYPE R). CmpNat 5 n ~ 'LT => Vector n a -> a
- index6 :: forall (n :: Natural) (a :: TYPE R). CmpNat 6 n ~ 'LT => Vector n a -> a
- index7 :: forall (n :: Natural) (a :: TYPE R). CmpNat 7 n ~ 'LT => Vector n a -> a
- index8 :: forall (n :: Natural) (a :: TYPE R). CmpNat 8 n ~ 'LT => Vector n a -> a
- unique :: forall (n :: Nat) (a :: TYPE R). Nat# n -> Vector n a -> Bounded n a
- equals :: forall (n :: Nat) (a :: TYPE R). Nat# n -> Vector n a -> Vector n a -> Bool
- elem :: forall (n :: Nat) (a :: TYPE R). Nat# n -> a -> Vector n a -> Bool
- findIndexEq :: forall (n :: Nat) (a :: TYPE R). Nat# n -> a -> Vector n a -> MaybeFin# n
- maximum :: forall (n :: Nat) (a :: TYPE R). Nat# n -> (0 <# n) -> Vector n a -> a
- maximumSlice :: forall (i :: Nat) (m :: Nat) (n :: Nat) (a :: TYPE R). ((i + n) <=# m) -> (0 <# n) -> Vector m a -> Nat# i -> Nat# n -> a
- maximumSliceInitial :: forall (i :: Nat) (m :: Nat) (n :: Nat) (a :: TYPE R). ((i + n) <=# m) -> a -> Vector m a -> Nat# i -> Nat# n -> a
- bubbleSort :: forall (n :: Nat) (a :: TYPE R). Nat# n -> Vector n a -> Vector n a
- bubbleSortSlice :: forall (i :: Natural) (n :: Natural) (m :: Nat) (a :: TYPE R). ((i + n) <=# m) -> Vector m a -> Nat# i -> Nat# n -> Vector n a
- bubbleSortSliceInPlace :: forall (i :: Natural) (n :: Natural) (m :: Nat) (a :: TYPE R) s. ((i + n) <=# m) -> MutableVector s m a -> Nat# i -> Nat# n -> ST s ()
- mapEq :: forall (n :: Nat) (a :: TYPE R). Nat# n -> a -> Vector n a -> Vector n Bool#
- vector_ :: forall (n :: Nat) (a :: TYPE R). Nat# n -> Vector n a -> Vector_ a
- show :: forall (n :: Nat). Nat# n -> Vector n Word16# -> String
- cloneFromByteArray :: forall (n :: Nat). Int -> Nat# n -> ByteArray -> Vector n Word16#
Documentation
data Vector# (a :: Nat) (b :: TYPE R) :: UnliftedType #
data MutableVector a (b :: Nat) (c :: TYPE R) where #
Constructors
MutableVector :: forall a (b :: Nat) (c :: TYPE R). MutableVector# a b c -> MutableVector a b c |
data MutableVector# a (b :: Nat) (c :: TYPE R) :: UnliftedType #
type family FromMutability# (m :: Mutability) :: Nat -> TYPE R -> UnliftedType where ... #
Equations
FromMutability# 'Immutable = Vector# | |
FromMutability# ('Mutable s) = MutableVector# s |
Primitives
write# :: forall s (n :: Nat) (a :: TYPE R). MutableVector# s n a -> Fin# n -> a -> State# s -> State# s #
read# :: forall s (n :: Nat) (a :: TYPE R). MutableVector# s n a -> Fin# n -> State# s -> (# State# s, a #) #
substitute# :: forall (m :: Nat) (n :: Nat) (a :: TYPE R). (m :=:# n) -> Vector# m a -> Vector# n a #
initialized :: forall s (n :: Nat) (a :: TYPE R). Nat# n -> a -> ST s (MutableVector s n a) #
initialized# :: forall s (n :: Nat) (a :: TYPE R). Nat# n -> a -> State# s -> (# State# s, MutableVector# s n a #) #
unsafeCoerceLength :: forall (n :: Nat) (m :: Nat) (a :: TYPE R). Nat n -> Vector m a -> Vector n a #
Ranges
setSlice :: forall (i :: Natural) (n :: Natural) (m :: Nat) s (a :: TYPE R). ((i + n) <=# m) -> MutableVector s n a -> Nat# i -> Nat# m -> a -> ST s () #
Freeze
unsafeShrinkFreeze :: forall s (n0 :: Nat) (n1 :: Nat) (a :: TYPE R). (n1 <=# n0) -> MutableVector s n0 a -> Nat# n1 -> ST s (Vector n1 a) #
unsafeFreeze :: forall s (n :: Nat) (a :: TYPE R). MutableVector s n a -> ST s (Vector n a) #
freezeSlice :: forall (i :: Natural) (n :: Natural) (m :: Nat) s (a :: TYPE R). ((i + n) <=# m) -> MutableVector s m a -> Nat# i -> Nat# n -> ST s (Vector n a) #
freeze# :: forall (n :: Nat) s (a :: TYPE R). Nat# n -> MutableVector# s n a -> State# s -> (# State# s, Vector# n a #) #
freezeSlice# :: forall (i :: Natural) (n :: Natural) (m :: Nat) s (a :: TYPE R). ((i + n) <=# m) -> MutableVector# s m a -> Nat# i -> Nat# n -> State# s -> (# State# s, Vector# n a #) #
Copy
Composite
traverse_ :: forall (n :: Nat) m (a :: TYPE R) b. Monad m => (a -> m b) -> Nat# n -> Vector n a -> m () #
traverseZip_ :: forall (n :: Nat) m (a :: TYPE R) (b :: TYPE R) c. Monad m => (a -> b -> m c) -> Nat# n -> Vector n a -> Vector n b -> m () #
traverseST# :: forall (n :: Nat) s (a :: TYPE R) (b :: TYPE R). (a -> State# s -> (# State# s, b #)) -> Nat# n -> Vector# n a -> State# s -> (# State# s, Vector# n b #) #
ifoldl' :: forall (n :: Nat) (a :: TYPE R) b. (b -> Fin# n -> a -> b) -> b -> Nat# n -> Vector n a -> b #
ifoldlSlice' :: forall (i :: Nat) (m :: Nat) (n :: Nat) (a :: TYPE R) b. ((i + n) <= m) -> (b -> Fin# (i + n) -> a -> b) -> b -> Vector m a -> Nat# i -> Nat# n -> b #
construct1 :: forall (a :: TYPE R). a -> Vector 1 a #
construct3 :: forall (a :: TYPE R). a -> a -> a -> Vector 3 a #
construct4 :: forall (a :: TYPE R). a -> a -> a -> a -> Vector 4 a #
construct5 :: forall (a :: TYPE R). a -> a -> a -> a -> a -> Vector 5 a #
construct6 :: forall (a :: TYPE R). a -> a -> a -> a -> a -> a -> Vector 6 a #
construct7 :: forall (a :: TYPE R). a -> a -> a -> a -> a -> a -> a -> Vector 7 a #
append :: forall (n :: Nat) (m :: Nat) (a :: TYPE R). Nat# n -> Nat# m -> Vector n a -> Vector m a -> Vector (n + m) a #
cloneSlice :: forall (i :: Natural) (n :: Natural) (m :: Nat) (a :: TYPE R). ((i + n) <=# m) -> Vector m a -> Nat# i -> Nat# n -> Vector n a #
Index
Ordered
maximumSlice :: forall (i :: Nat) (m :: Nat) (n :: Nat) (a :: TYPE R). ((i + n) <=# m) -> (0 <# n) -> Vector m a -> Nat# i -> Nat# n -> a #
maximumSliceInitial :: forall (i :: Nat) (m :: Nat) (n :: Nat) (a :: TYPE R). ((i + n) <=# m) -> a -> Vector m a -> Nat# i -> Nat# n -> a #
bubbleSortSlice :: forall (i :: Natural) (n :: Natural) (m :: Nat) (a :: TYPE R). ((i + n) <=# m) -> Vector m a -> Nat# i -> Nat# n -> Vector n a #
bubbleSortSliceInPlace :: forall (i :: Natural) (n :: Natural) (m :: Nat) (a :: TYPE R) s. ((i + n) <=# m) -> MutableVector s m a -> Nat# i -> Nat# n -> ST s () #
Hide Length
Show
Interop with primitive
Arguments
:: forall (n :: Nat). Int | Offset into byte array, units are elements, not bytes |
-> Nat# n | Length of the vector, units are elements, not bytes |
-> ByteArray | |
-> Vector n Word16# |
Crashes the program if the range is out of bounds. That is, behavior is always well defined.
Interprets the bytes in a native-endian fashion.