hmatrix-0.5.0.1: Linear algebra and numerical computations

Portability portable provisional Alberto Ruiz

Data.Packed.Vector

Description

A representation of 1D arrays suitable for numeric computations using external libraries.

Synopsis

# Documentation

data Vector t Source

A one-dimensional array of objects stored in a contiguous memory block.

Instances

 Container Vector Double Linear Vector Double Joinable Vector Matrix Joinable Matrix Vector Mul Vector Matrix Vector Mul Matrix Vector Vector Container Vector (Complex Double) Linear Vector (Complex Double) (Eq a, Element a) => Eq (Vector a) Floating (Vector Double) Floating (Vector (Complex Double)) (Linear Vector a, Num (Vector a)) => Fractional (Vector a) Num (Vector Double) Num (Vector (Complex Double)) (Element a, Read a) => Read (Vector a) (Show a, Storable a) => Show (Vector a) (Field a, Arbitrary a) => Arbitrary (Vector a) Storable a => Monoid (Vector a) Normed (Vector Double) Normed (Vector (Complex Double))

fromList :: Storable a => [a] -> Vector aSource

creates a Vector from a list:

```> fromList [2,3,5,7]
4 |> [2.0,3.0,5.0,7.0]```

(|>) :: Storable a => Int -> [a] -> Vector aSource

an alternative to `fromList` with explicit dimension, used also in the instances for Show (Vector a).

toList :: Storable a => Vector a -> [a]Source

extracts the Vector elements to a list

```> toList (linspace 5 (1,10))
[1.0,3.25,5.5,7.75,10.0]```

dim :: Vector t -> IntSource

number of elements

(@>) :: Storable t => Vector t -> Int -> tSource

```> fromList [0..9] @> 7
7.0```

Arguments

 :: Storable t => Int index of the starting element -> Int number of elements to extract -> Vector t source -> Vector t result

takes a number of consecutive elements from a Vector

```> subVector 2 3 (fromList [1..10])
3 |> [3.0,4.0,5.0]```

join :: Storable t => [Vector t] -> Vector tSource

creates a new Vector by joining a list of Vectors

```> join [fromList [1..5], constant 1 3]
8 |> [1.0,2.0,3.0,4.0,5.0,1.0,1.0,1.0]```

constant :: Element a => a -> Int -> Vector aSource

creates a vector with a given number of equal components:

```> constant 2 7
7 |> [2.0,2.0,2.0,2.0,2.0,2.0,2.0]```

linspace :: Int -> (Double, Double) -> Vector DoubleSource

Creates a real vector containing a range of values:

```> linspace 5 (-3,7)
5 |> [-3.0,-0.5,2.0,4.5,7.0]```

liftVector :: (Storable a, Storable b) => (a -> b) -> Vector a -> Vector bSource

map on Vectors

liftVector2 :: (Storable a, Storable b, Storable c) => (a -> b -> c) -> Vector a -> Vector b -> Vector cSource

zipWith for Vectors