Safe Haskell | None |
---|---|
Language | Haskell98 |
Synopsis
- type Vector = Array
- type family RealOf x
- type ComplexOf x = Complex (RealOf x)
- toList :: (C sh, Storable a) => Vector sh a -> [a]
- fromList :: (C sh, Storable a) => sh -> [a] -> Vector sh a
- autoFromList :: Storable a => [a] -> Vector (ZeroBased Int) a
- append :: (C shx, C shy, Storable a) => Vector shx a -> Vector shy a -> Vector (shx :+: shy) a
- take :: Storable a => Int -> Vector ZeroInt a -> Vector ZeroInt a
- drop :: Storable a => Int -> Vector ZeroInt a -> Vector ZeroInt a
- takeLeft :: (C sh0, C sh1, Storable a) => Vector (sh0 :+: sh1) a -> Vector sh0 a
- takeRight :: (C sh0, C sh1, Storable a) => Vector (sh0 :+: sh1) a -> Vector sh1 a
- swap :: (Indexed sh, Storable a) => Index sh -> Index sh -> Vector sh a -> Vector sh a
- singleton :: Storable a => a -> Vector () a
- constant :: (C sh, Floating a) => sh -> a -> Vector sh a
- unit :: (Indexed sh, Floating a) => sh -> Index sh -> Vector sh a
- dot :: (C sh, Eq sh, Floating a) => Vector sh a -> Vector sh a -> a
- inner :: (C sh, Eq sh, Floating a) => Vector sh a -> Vector sh a -> a
- sum :: (C sh, Floating a) => Vector sh a -> a
- absSum :: (C sh, Floating a) => Vector sh a -> RealOf a
- norm1 :: (C sh, Floating a) => Vector sh a -> RealOf a
- norm2 :: (C sh, Floating a) => Vector sh a -> RealOf a
- normInf :: (C sh, Floating a) => Vector sh a -> RealOf a
- normInf1 :: (C sh, Floating a) => Vector sh a -> RealOf a
- argAbsMaximum :: (InvIndexed sh, Floating a) => Vector sh a -> (Index sh, a)
- argAbs1Maximum :: (InvIndexed sh, Floating a) => Vector sh a -> (Index sh, a)
- product :: (C sh, Floating a) => Vector sh a -> a
- scale :: (C sh, Floating a) => a -> Vector sh a -> Vector sh a
- scaleReal :: (C sh, Floating a) => RealOf a -> Vector sh a -> Vector sh a
- add :: (C sh, Eq sh, Floating a) => Vector sh a -> Vector sh a -> Vector sh a
- sub :: (C sh, Eq sh, Floating a) => Vector sh a -> Vector sh a -> Vector sh a
- mac :: (C sh, Eq sh, Floating a) => a -> Vector sh a -> Vector sh a -> Vector sh a
- mul :: (C sh, Eq sh, Floating a) => Vector sh a -> Vector sh a -> Vector sh a
- conjugate :: (C sh, Floating a) => Vector sh a -> Vector sh a
- fromReal :: (C sh, Floating a) => Vector sh (RealOf a) -> Vector sh a
- toComplex :: (C sh, Floating a) => Vector sh a -> Vector sh (ComplexOf a)
- realPart :: (C sh, Floating a) => Vector sh a -> Vector sh (RealOf a)
- complexFromReal :: (C sh, Real a) => Vector sh a -> Vector sh (Complex a)
- complexToRealPart :: (C sh, Real a) => Vector sh (Complex a) -> Vector sh a
- complexToImaginaryPart :: (C sh, Real a) => Vector sh (Complex a) -> Vector sh a
- zipComplex :: (C sh, Eq sh, Real a) => Vector sh a -> Vector sh a -> Vector sh (Complex a)
- unzipComplex :: (C sh, Real a) => Vector sh (Complex a) -> (Vector sh a, Vector sh a)
- random :: (C sh, Floating a) => RandomDistribution -> sh -> Word64 -> Vector sh a
- data RandomDistribution
Documentation
append :: (C shx, C shy, Storable a) => Vector shx a -> Vector shy a -> Vector (shx :+: shy) a Source #
singleton :: Storable a => a -> Vector () a Source #
singleton = constant ()
However, singleton does not need Floating
constraint.
dot :: (C sh, Eq sh, Floating a) => Vector sh a -> Vector sh a -> a Source #
dot x y = Matrix.toScalar (singleRow x <#> singleColumn y)
inner :: (C sh, Eq sh, Floating a) => Vector sh a -> Vector sh a -> a Source #
inner x y = dot (conjugate x) y
absSum :: (C sh, Floating a) => Vector sh a -> RealOf a Source #
Sum of the absolute values of real numbers or components of complex numbers.
For real numbers it is equivalent to norm1
.
norm2 :: (C sh, Floating a) => Vector sh a -> RealOf a Source #
Euclidean norm of a vector or Frobenius norm of a matrix.
normInf1 :: (C sh, Floating a) => Vector sh a -> RealOf a Source #
Computes (almost) the infinity norm of the vector. For complex numbers every element is replaced by the sum of the absolute component values first.
argAbsMaximum :: (InvIndexed sh, Floating a) => Vector sh a -> (Index sh, a) Source #
Returns the index and value of the element with the maximal absolute value. Caution: It actually returns the value of the element, not its absolute value!
argAbs1Maximum :: (InvIndexed sh, Floating a) => Vector sh a -> (Index sh, a) Source #
Returns the index and value of the element with the maximal absolute value. The function does not strictly compare the absolute value of a complex number but the sum of the absolute complex components. Caution: It actually returns the value of the element, not its absolute value!
data RandomDistribution Source #