Safe Haskell | None |
---|---|
Language | Haskell2010 |
RIO.Vector.Unsafe
Contents
Description
Generic Vector
interface unsafe functions. These perform no bounds
checking, and may cause segmentation faults etc.! Import as:
import qualified RIO.Vector.Unsafe as V'
Synopsis
- class MVector (Mutable v) a => Vector (v :: Type -> Type) a where
- basicUnsafeFreeze :: PrimMonad m => Mutable v (PrimState m) a -> m (v a)
- basicUnsafeThaw :: PrimMonad m => v a -> m (Mutable v (PrimState m) a)
- basicLength :: v a -> Int
- basicUnsafeSlice :: Int -> Int -> v a -> v a
- basicUnsafeIndexM :: Monad m => v a -> Int -> m a
- basicUnsafeCopy :: PrimMonad m => Mutable v (PrimState m) a -> v a -> m ()
- elemseq :: v a -> a -> b -> b
- unsafeIndex :: Vector v a => v a -> Int -> a
- unsafeHead :: Vector v a => v a -> a
- unsafeLast :: Vector v a => v a -> a
- unsafeIndexM :: (Vector v a, Monad m) => v a -> Int -> m a
- unsafeHeadM :: (Vector v a, Monad m) => v a -> m a
- unsafeLastM :: (Vector v a, Monad m) => v a -> m a
- unsafeSlice :: Vector v a => Int -> Int -> v a -> v a
- unsafeInit :: Vector v a => v a -> v a
- unsafeTail :: Vector v a => v a -> v a
- unsafeTake :: Vector v a => Int -> v a -> v a
- unsafeDrop :: Vector v a => Int -> v a -> v a
- unsafeUpd :: Vector v a => v a -> [(Int, a)] -> v a
- unsafeUpdate :: (Vector v a, Vector v (Int, a)) => v a -> v (Int, a) -> v a
- unsafeUpdate_ :: (Vector v a, Vector v Int) => v a -> v Int -> v a -> v a
- unsafeAccum :: Vector v a => (a -> b -> a) -> v a -> [(Int, b)] -> v a
- unsafeAccumulate :: (Vector v a, Vector v (Int, b)) => (a -> b -> a) -> v a -> v (Int, b) -> v a
- unsafeAccumulate_ :: (Vector v a, Vector v Int, Vector v b) => (a -> b -> a) -> v a -> v Int -> v b -> v a
- unsafeBackpermute :: (Vector v a, Vector v Int) => v a -> v Int -> v a
- unsafeFreeze :: (PrimMonad m, Vector v a) => Mutable v (PrimState m) a -> m (v a)
- unsafeThaw :: (PrimMonad m, Vector v a) => v a -> m (Mutable v (PrimState m) a)
- unsafeCopy :: (PrimMonad m, Vector v a) => Mutable v (PrimState m) a -> v a -> m ()
Immutable vectors
class MVector (Mutable v) a => Vector (v :: Type -> Type) a where #
Minimal complete definition
basicUnsafeFreeze, basicUnsafeThaw, basicLength, basicUnsafeSlice, basicUnsafeIndexM
Methods
basicUnsafeFreeze :: PrimMonad m => Mutable v (PrimState m) a -> m (v a) #
basicUnsafeThaw :: PrimMonad m => v a -> m (Mutable v (PrimState m) a) #
basicLength :: v a -> Int #
basicUnsafeSlice :: Int -> Int -> v a -> v a #
basicUnsafeIndexM :: Monad m => v a -> Int -> m a #
basicUnsafeCopy :: PrimMonad m => Mutable v (PrimState m) a -> v a -> m () #
Instances
Accessors
Indexing
unsafeIndex :: Vector v a => v a -> Int -> a #
unsafeHead :: Vector v a => v a -> a #
unsafeLast :: Vector v a => v a -> a #
Monadic indexing
unsafeIndexM :: (Vector v a, Monad m) => v a -> Int -> m a #
unsafeHeadM :: (Vector v a, Monad m) => v a -> m a #
unsafeLastM :: (Vector v a, Monad m) => v a -> m a #
Extracting subvectors
unsafeSlice :: Vector v a => Int -> Int -> v a -> v a #
unsafeInit :: Vector v a => v a -> v a #
unsafeTail :: Vector v a => v a -> v a #
unsafeTake :: Vector v a => Int -> v a -> v a #
unsafeDrop :: Vector v a => Int -> v a -> v a #
Modifying vectors
Bulk updates
Accumulations
unsafeAccum :: Vector v a => (a -> b -> a) -> v a -> [(Int, b)] -> v a #
unsafeAccumulate_ :: (Vector v a, Vector v Int, Vector v b) => (a -> b -> a) -> v a -> v Int -> v b -> v a #
Permutations
Conversions
Mutable vectors
unsafeFreeze :: (PrimMonad m, Vector v a) => Mutable v (PrimState m) a -> m (v a) #
unsafeThaw :: (PrimMonad m, Vector v a) => v a -> m (Mutable v (PrimState m) a) #
unsafeCopy :: (PrimMonad m, Vector v a) => Mutable v (PrimState m) a -> v a -> m () #