aivika-4.3.5: A multi-method simulation library

CopyrightCopyright (c) 2009-2015, David Sorokin <david.sorokin@gmail.com>
LicenseBSD3
MaintainerDavid Sorokin <david.sorokin@gmail.com>
Stabilityexperimental
Safe HaskellSafe
LanguageHaskell2010

Simulation.Aivika.Vector

Description

Tested with: GHC 7.10.1

An imperative vector.

Synopsis

Documentation

data Vector a Source

Represents a resizable vector.

newVector :: IO (Vector a) Source

Create a new vector.

copyVector :: Vector a -> IO (Vector a) Source

Copy the vector.

vectorCount :: Vector a -> IO Int Source

Return the element count.

appendVector :: Vector a -> a -> IO () Source

Add the specified element to the end of the vector.

readVector :: Vector a -> Int -> IO a Source

Read a value from the vector, where indices are started from 0.

writeVector :: Vector a -> Int -> a -> IO () Source

Set an array item at the specified index which is started from 0.

vectorBinarySearch :: Ord a => Vector a -> a -> IO Int Source

Return the index of the specified element using binary search; otherwise, a negated insertion index minus one: 0 -> -0 - 1, ..., i -> -i - 1, ....

vectorInsert :: Vector a -> Int -> a -> IO () Source

Insert the element in the vector at the specified index.

vectorDeleteAt :: Vector a -> Int -> IO () Source

Delete the element at the specified index.

vectorDeleteRange Source

Arguments

:: Vector a

the vector

-> Int

the start index

-> Int

the count of items to be removed

-> IO () 

Delete the specified range of elements.

vectorDelete :: Eq a => Vector a -> a -> IO Bool Source

Remove the specified element and return a flag indicating whether the element was found and removed.

vectorDeleteBy :: Vector a -> (a -> Bool) -> IO (Maybe a) Source

Remove an element by the specified predicate and return the element if found.

vectorIndex :: Eq a => Vector a -> a -> IO Int Source

Return the index of the item or -1.

vectorIndexBy :: Vector a -> (a -> Bool) -> IO Int Source

Return an index of the item satisfying the predicate or -1.

vectorContains :: Eq a => Vector a -> a -> IO Bool Source

Detect whether the specified element is contained in the vector.

vectorContainsBy :: Vector a -> (a -> Bool) -> IO (Maybe a) Source

Detect whether an element satisfying the specified predicate is contained in the vector.

freezeVector :: Vector a -> IO (Array Int a) Source

Return the elements of the vector in an immutable array.