| Copyright | (c) Alberto Ruiz 2014 |
|---|---|
| License | BSD3 |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
Numeric.LinearAlgebra.Static
Description
Experimental interface with statically checked dimensions.
See code examples at http://dis.um.es/~alberto/hmatrix/static.html.
Synopsis
- type ℝ = Double
- data R (n :: Nat)
- vec2 :: ℝ -> ℝ -> R 2
- vec3 :: ℝ -> ℝ -> ℝ -> R 3
- vec4 :: ℝ -> ℝ -> ℝ -> ℝ -> R 4
- (&) :: forall (n :: Nat). KnownNat n => R n -> ℝ -> R (n + 1)
- (#) :: forall (n :: Nat) (m :: Nat). (KnownNat n, KnownNat m) => R n -> R m -> R (n + m)
- split :: forall (p :: Nat) (n :: Nat). (KnownNat p, KnownNat n, p <= n) => R n -> (R p, R (n - p))
- headTail :: forall (n :: Nat). (KnownNat n, 1 <= n) => R n -> (ℝ, R (n - 1))
- vector :: forall (n :: Nat). KnownNat n => [ℝ] -> R n
- linspace :: forall (n :: Nat). KnownNat n => (ℝ, ℝ) -> R n
- range :: forall (n :: Nat). KnownNat n => R n
- dim :: forall (n :: Nat). KnownNat n => R n
- data L (m :: Nat) (n :: Nat)
- type Sq (n :: Nat) = L n n
- build :: forall (m :: Nat) (n :: Nat). (KnownNat n, KnownNat m) => (ℝ -> ℝ -> ℝ) -> L m n
- row :: forall (n :: Nat). R n -> L 1 n
- col :: forall {n :: Nat}. KnownNat n => R n -> L n 1
- (|||) :: forall {c :: Nat} {r1 :: Nat} {r2 :: Nat}. (KnownNat c, KnownNat r1, KnownNat r2, KnownNat (r1 + r2)) => L c r1 -> L c r2 -> L c (r1 + r2)
- (===) :: forall (r1 :: Nat) (r2 :: Nat) (c :: Nat). (KnownNat r1, KnownNat r2, KnownNat c) => L r1 c -> L r2 c -> L (r1 + r2) c
- splitRows :: forall (p :: Nat) (m :: Nat) (n :: Nat). (KnownNat p, KnownNat m, KnownNat n, p <= m) => L m n -> (L p n, L (m - p) n)
- splitCols :: forall (p :: Nat) (m :: Nat) (n :: Nat). (KnownNat p, KnownNat m, KnownNat n, KnownNat (n - p), p <= n) => L m n -> (L m p, L m (n - p))
- unrow :: forall (n :: Nat). L 1 n -> R n
- uncol :: forall {n :: Nat}. KnownNat n => L n 1 -> R n
- tr :: Transposable m mt => m -> mt
- eye :: forall (n :: Nat). KnownNat n => Sq n
- diag :: forall (n :: Nat). KnownNat n => R n -> Sq n
- blockAt :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => ℝ -> Int -> Int -> Matrix Double -> L m n
- matrix :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => [ℝ] -> L m n
- type ℂ = Complex Double
- data C (n :: Nat)
- data M (m :: Nat) (n :: Nat)
- data Her (n :: Nat)
- her :: forall (n :: Nat). KnownNat n => M n n -> Her n
- 𝑖 :: forall s (c :: Type -> Type). Sized ℂ s c => s
- toComplex :: forall (n :: Nat). KnownNat n => (R n, R n) -> C n
- fromComplex :: forall (n :: Nat). KnownNat n => C n -> (R n, R n)
- complex :: forall (n :: Nat). KnownNat n => R n -> C n
- real :: forall (n :: Nat). KnownNat n => C n -> R n
- imag :: forall (n :: Nat). KnownNat n => C n -> R n
- sqMagnitude :: forall (n :: Nat). KnownNat n => C n -> R n
- magnitude :: forall (n :: Nat). KnownNat n => C n -> R n
- (<>) :: forall (m :: Nat) (k :: Nat) (n :: Nat). (KnownNat m, KnownNat k, KnownNat n) => L m k -> L k n -> L m n
- (#>) :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> R n -> R m
- (<.>) :: forall (n :: Nat). KnownNat n => R n -> R n -> ℝ
- linSolve :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m m -> L m n -> Maybe (L m n)
- (<\>) :: forall (m :: Nat) (n :: Nat) (r :: Nat). (KnownNat m, KnownNat n, KnownNat r) => L m n -> L m r -> L n r
- svd :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> (L m m, R n, L n n)
- withCompactSVD :: forall (m :: Nat) (n :: Nat) z. (KnownNat m, KnownNat n) => L m n -> (forall (k :: Nat). KnownNat k => (L m k, R k, L n k) -> z) -> z
- svdTall :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n, n <= m) => L m n -> (L m n, R n, L n n)
- svdFlat :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n, m <= n) => L m n -> (L m m, R m, L n m)
- class Eigen m l v | m -> l, m -> v where
- eigensystem :: m -> (l, v)
- eigenvalues :: m -> l
- withNullspace :: forall (m :: Nat) (n :: Nat) z. (KnownNat m, KnownNat n) => L m n -> (forall (k :: Nat). KnownNat k => L n k -> z) -> z
- withOrth :: forall (m :: Nat) (n :: Nat) z. (KnownNat m, KnownNat n) => L m n -> (forall (k :: Nat). KnownNat k => L n k -> z) -> z
- qr :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> (L m m, L m n)
- chol :: forall (n :: Nat). KnownNat n => Sym n -> Sq n
- class Normed a where
- type Seed = Int
- data RandDist
- randomVector :: forall (n :: Nat). KnownNat n => Seed -> RandDist -> R n
- rand :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => IO (L m n)
- randn :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => IO (L m n)
- gaussianSample :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => Seed -> R n -> Sym n -> L m n
- uniformSample :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => Seed -> R n -> R n -> L m n
- mean :: forall (n :: Nat). (KnownNat n, 1 <= n) => R n -> ℝ
- meanCov :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n, 1 <= m) => L m n -> (R n, Sym n)
- class Disp t where
- class Domain field (vec :: Nat -> Type) (mat :: Nat -> Nat -> Type) | mat -> vec field, vec -> mat field, field -> mat vec where
- mul :: forall (m :: Nat) (k :: Nat) (n :: Nat). (KnownNat m, KnownNat k, KnownNat n) => mat m k -> mat k n -> mat m n
- app :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => mat m n -> vec n -> vec m
- dot :: forall (n :: Nat). KnownNat n => vec n -> vec n -> field
- cross :: vec 3 -> vec 3 -> vec 3
- diagR :: forall (m :: Nat) (n :: Nat) (k :: Nat). (KnownNat m, KnownNat n, KnownNat k) => field -> vec k -> mat m n
- dvmap :: forall (n :: Nat). KnownNat n => (field -> field) -> vec n -> vec n
- dmmap :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => (field -> field) -> mat n m -> mat n m
- outer :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => vec n -> vec m -> mat n m
- zipWithVector :: forall (n :: Nat). KnownNat n => (field -> field -> field) -> vec n -> vec n -> vec n
- det :: forall (n :: Nat). KnownNat n => mat n n -> field
- invlndet :: forall (n :: Nat). KnownNat n => mat n n -> (mat n n, (field, field))
- expm :: forall (n :: Nat). KnownNat n => mat n n -> mat n n
- sqrtm :: forall (n :: Nat). KnownNat n => mat n n -> mat n n
- inv :: forall (n :: Nat). KnownNat n => mat n n -> mat n n
- withVector :: Vector ℝ -> (forall (n :: Nat). KnownNat n => R n -> z) -> z
- withMatrix :: Matrix ℝ -> (forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> z) -> z
- exactLength :: forall (n :: Nat) (m :: Nat). (KnownNat n, KnownNat m) => R m -> Maybe (R n)
- exactDims :: forall (n :: Nat) (m :: Nat) (j :: Nat) (k :: Nat). (KnownNat n, KnownNat m, KnownNat j, KnownNat k) => L m n -> Maybe (L j k)
- toRows :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> [R n]
- toColumns :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> [R m]
- withRows :: forall (n :: Nat) z. KnownNat n => [R n] -> (forall (m :: Nat). KnownNat m => L m n -> z) -> z
- withColumns :: forall (m :: Nat) z. KnownNat m => [R m] -> (forall (n :: Nat). KnownNat n => L m n -> z) -> z
- class Num t => Sized t s (d :: Type -> Type) | s -> t, s -> d where
- class Diag m d | m -> d where
- takeDiag :: m -> d
- data Sym (n :: Nat)
- sym :: forall (n :: Nat). KnownNat n => Sq n -> Sym n
- mTm :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> Sym n
- unSym :: forall (n :: Nat). Sym n -> Sq n
- (<·>) :: forall (n :: Nat). KnownNat n => R n -> R n -> ℝ
Vector
Instances
| Domain ℝ R L Source # | |
Defined in Numeric.LinearAlgebra.Static Methods mul :: forall (m :: Nat) (k :: Nat) (n :: Nat). (KnownNat m, KnownNat k, KnownNat n) => L m k -> L k n -> L m n Source # app :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> R n -> R m Source # dot :: forall (n :: Nat). KnownNat n => R n -> R n -> ℝ Source # cross :: R 3 -> R 3 -> R 3 Source # diagR :: forall (m :: Nat) (n :: Nat) (k :: Nat). (KnownNat m, KnownNat n, KnownNat k) => ℝ -> R k -> L m n Source # dvmap :: forall (n :: Nat). KnownNat n => (ℝ -> ℝ) -> R n -> R n Source # dmmap :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => (ℝ -> ℝ) -> L n m -> L n m Source # outer :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => R n -> R m -> L n m Source # zipWithVector :: forall (n :: Nat). KnownNat n => (ℝ -> ℝ -> ℝ) -> R n -> R n -> R n Source # det :: forall (n :: Nat). KnownNat n => L n n -> ℝ Source # invlndet :: forall (n :: Nat). KnownNat n => L n n -> (L n n, (ℝ, ℝ)) Source # expm :: forall (n :: Nat). KnownNat n => L n n -> L n n Source # sqrtm :: forall (n :: Nat). KnownNat n => L n n -> L n n Source # inv :: forall (n :: Nat). KnownNat n => L n n -> L n n Source # | |
| KnownNat n => Sized ℝ (R n) Vector Source # | |
| KnownNat n => Binary (R n) Source # | |
| NFData (R n) Source # | |
Defined in Internal.Static | |
| Floating (R n) Source # | |
| Generic (R n) Source # | |
| Num (R n) Source # | |
| Fractional (R n) Source # | |
| KnownNat n => Show (R n) Source # | |
| Additive (R n) Source # | |
| KnownNat n => Disp (R n) Source # | |
| KnownNat n => Normed (R n) Source # | |
| KnownNat n => Eigen (Sym n) (R n) (L n n) Source # | |
Defined in Numeric.LinearAlgebra.Static | |
| KnownNat n => Diag (L n n) (R n) Source # | |
| type Rep (R n) Source # | |
Defined in Internal.Static | |
(#) :: forall (n :: Nat) (m :: Nat). (KnownNat n, KnownNat m) => R n -> R m -> R (n + m) infixl 4 Source #
split :: forall (p :: Nat) (n :: Nat). (KnownNat p, KnownNat n, p <= n) => R n -> (R p, R (n - p)) Source #
Matrix
data L (m :: Nat) (n :: Nat) Source #
Instances
| Domain ℝ R L Source # | |
Defined in Numeric.LinearAlgebra.Static Methods mul :: forall (m :: Nat) (k :: Nat) (n :: Nat). (KnownNat m, KnownNat k, KnownNat n) => L m k -> L k n -> L m n Source # app :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> R n -> R m Source # dot :: forall (n :: Nat). KnownNat n => R n -> R n -> ℝ Source # cross :: R 3 -> R 3 -> R 3 Source # diagR :: forall (m :: Nat) (n :: Nat) (k :: Nat). (KnownNat m, KnownNat n, KnownNat k) => ℝ -> R k -> L m n Source # dvmap :: forall (n :: Nat). KnownNat n => (ℝ -> ℝ) -> R n -> R n Source # dmmap :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => (ℝ -> ℝ) -> L n m -> L n m Source # outer :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => R n -> R m -> L n m Source # zipWithVector :: forall (n :: Nat). KnownNat n => (ℝ -> ℝ -> ℝ) -> R n -> R n -> R n Source # det :: forall (n :: Nat). KnownNat n => L n n -> ℝ Source # invlndet :: forall (n :: Nat). KnownNat n => L n n -> (L n n, (ℝ, ℝ)) Source # expm :: forall (n :: Nat). KnownNat n => L n n -> L n n Source # sqrtm :: forall (n :: Nat). KnownNat n => L n n -> L n n Source # inv :: forall (n :: Nat). KnownNat n => L n n -> L n n Source # | |
| (KnownNat m, KnownNat n) => Sized ℝ (L m n) Matrix Source # | |
| KnownNat n => Eigen (Sq n) (C n) (M n n) Source # | |
Defined in Numeric.LinearAlgebra.Static | |
| KnownNat n => Eigen (Sym n) (R n) (L n n) Source # | |
Defined in Numeric.LinearAlgebra.Static | |
| (KnownNat m, KnownNat n) => Binary (L m n) Source # | |
| NFData (L n m) Source # | |
Defined in Internal.Static | |
| (KnownNat n, KnownNat m) => Floating (L n m) Source # | |
Defined in Internal.Static Methods exp :: L n m -> L n m Source # log :: L n m -> L n m Source # sqrt :: L n m -> L n m Source # (**) :: L n m -> L n m -> L n m Source # logBase :: L n m -> L n m -> L n m Source # sin :: L n m -> L n m Source # cos :: L n m -> L n m Source # tan :: L n m -> L n m Source # asin :: L n m -> L n m Source # acos :: L n m -> L n m Source # atan :: L n m -> L n m Source # sinh :: L n m -> L n m Source # cosh :: L n m -> L n m Source # tanh :: L n m -> L n m Source # asinh :: L n m -> L n m Source # acosh :: L n m -> L n m Source # atanh :: L n m -> L n m Source # log1p :: L n m -> L n m Source # expm1 :: L n m -> L n m Source # | |
| Generic (L m n) Source # | |
| (KnownNat n, KnownNat m) => Num (L n m) Source # | |
| (KnownNat n, KnownNat m) => Fractional (L n m) Source # | |
| (KnownNat m, KnownNat n) => Show (L m n) Source # | |
| (KnownNat m, KnownNat n) => Additive (L m n) Source # | |
| (KnownNat n', KnownNat m') => Testable (L n' m') Source # | |
| (KnownNat m, KnownNat n) => Disp (L m n) Source # | |
| (KnownNat m, KnownNat n) => Normed (L m n) Source # | |
| KnownNat n => Diag (L n n) (R n) Source # | |
| (KnownNat n, KnownNat m) => Transposable (L m n) (L n m) Source # | |
| type Rep (L m n) Source # | |
Defined in Internal.Static | |
(|||) :: forall {c :: Nat} {r1 :: Nat} {r2 :: Nat}. (KnownNat c, KnownNat r1, KnownNat r2, KnownNat (r1 + r2)) => L c r1 -> L c r2 -> L c (r1 + r2) infixl 3 Source #
(===) :: forall (r1 :: Nat) (r2 :: Nat) (c :: Nat). (KnownNat r1, KnownNat r2, KnownNat c) => L r1 c -> L r2 c -> L (r1 + r2) c infixl 2 Source #
splitRows :: forall (p :: Nat) (m :: Nat) (n :: Nat). (KnownNat p, KnownNat m, KnownNat n, p <= m) => L m n -> (L p n, L (m - p) n) Source #
splitCols :: forall (p :: Nat) (m :: Nat) (n :: Nat). (KnownNat p, KnownNat m, KnownNat n, KnownNat (n - p), p <= n) => L m n -> (L m p, L m (n - p)) Source #
tr :: Transposable m mt => m -> mt Source #
conjugate transpose
blockAt :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => ℝ -> Int -> Int -> Matrix Double -> L m n Source #
Complex
Instances
| Domain ℂ C M Source # | |
Defined in Numeric.LinearAlgebra.Static Methods mul :: forall (m :: Nat) (k :: Nat) (n :: Nat). (KnownNat m, KnownNat k, KnownNat n) => M m k -> M k n -> M m n Source # app :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => M m n -> C n -> C m Source # dot :: forall (n :: Nat). KnownNat n => C n -> C n -> ℂ Source # cross :: C 3 -> C 3 -> C 3 Source # diagR :: forall (m :: Nat) (n :: Nat) (k :: Nat). (KnownNat m, KnownNat n, KnownNat k) => ℂ -> C k -> M m n Source # dvmap :: forall (n :: Nat). KnownNat n => (ℂ -> ℂ) -> C n -> C n Source # dmmap :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => (ℂ -> ℂ) -> M n m -> M n m Source # outer :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => C n -> C m -> M n m Source # zipWithVector :: forall (n :: Nat). KnownNat n => (ℂ -> ℂ -> ℂ) -> C n -> C n -> C n Source # det :: forall (n :: Nat). KnownNat n => M n n -> ℂ Source # invlndet :: forall (n :: Nat). KnownNat n => M n n -> (M n n, (ℂ, ℂ)) Source # expm :: forall (n :: Nat). KnownNat n => M n n -> M n n Source # sqrtm :: forall (n :: Nat). KnownNat n => M n n -> M n n Source # inv :: forall (n :: Nat). KnownNat n => M n n -> M n n Source # | |
| KnownNat n => Sized ℂ (C n) Vector Source # | |
| NFData (C n) Source # | |
Defined in Internal.Static | |
| Floating (C n) Source # | |
| Generic (C n) Source # | |
| Num (C n) Source # | |
| Fractional (C n) Source # | |
| KnownNat n => Show (C n) Source # | |
| Additive (C n) Source # | |
| KnownNat n => Disp (C n) Source # | |
| KnownNat n => Eigen (Sq n) (C n) (M n n) Source # | |
Defined in Numeric.LinearAlgebra.Static | |
| KnownNat n => Diag (M n n) (C n) Source # | |
| type Rep (C n) Source # | |
Defined in Internal.Static | |
data M (m :: Nat) (n :: Nat) Source #
Instances
| Domain ℂ C M Source # | |
Defined in Numeric.LinearAlgebra.Static Methods mul :: forall (m :: Nat) (k :: Nat) (n :: Nat). (KnownNat m, KnownNat k, KnownNat n) => M m k -> M k n -> M m n Source # app :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => M m n -> C n -> C m Source # dot :: forall (n :: Nat). KnownNat n => C n -> C n -> ℂ Source # cross :: C 3 -> C 3 -> C 3 Source # diagR :: forall (m :: Nat) (n :: Nat) (k :: Nat). (KnownNat m, KnownNat n, KnownNat k) => ℂ -> C k -> M m n Source # dvmap :: forall (n :: Nat). KnownNat n => (ℂ -> ℂ) -> C n -> C n Source # dmmap :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => (ℂ -> ℂ) -> M n m -> M n m Source # outer :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => C n -> C m -> M n m Source # zipWithVector :: forall (n :: Nat). KnownNat n => (ℂ -> ℂ -> ℂ) -> C n -> C n -> C n Source # det :: forall (n :: Nat). KnownNat n => M n n -> ℂ Source # invlndet :: forall (n :: Nat). KnownNat n => M n n -> (M n n, (ℂ, ℂ)) Source # expm :: forall (n :: Nat). KnownNat n => M n n -> M n n Source # sqrtm :: forall (n :: Nat). KnownNat n => M n n -> M n n Source # inv :: forall (n :: Nat). KnownNat n => M n n -> M n n Source # | |
| (KnownNat m, KnownNat n) => Sized ℂ (M m n) Matrix Source # | |
| KnownNat n => Eigen (Sq n) (C n) (M n n) Source # | |
Defined in Numeric.LinearAlgebra.Static | |
| NFData (M n m) Source # | |
Defined in Internal.Static | |
| (KnownNat n, KnownNat m) => Floating (M n m) Source # | |
Defined in Internal.Static Methods exp :: M n m -> M n m Source # log :: M n m -> M n m Source # sqrt :: M n m -> M n m Source # (**) :: M n m -> M n m -> M n m Source # logBase :: M n m -> M n m -> M n m Source # sin :: M n m -> M n m Source # cos :: M n m -> M n m Source # tan :: M n m -> M n m Source # asin :: M n m -> M n m Source # acos :: M n m -> M n m Source # atan :: M n m -> M n m Source # sinh :: M n m -> M n m Source # cosh :: M n m -> M n m Source # tanh :: M n m -> M n m Source # asinh :: M n m -> M n m Source # acosh :: M n m -> M n m Source # atanh :: M n m -> M n m Source # log1p :: M n m -> M n m Source # expm1 :: M n m -> M n m Source # | |
| Generic (M m n) Source # | |
| (KnownNat n, KnownNat m) => Num (M n m) Source # | |
| (KnownNat n, KnownNat m) => Fractional (M n m) Source # | |
| (KnownNat m, KnownNat n) => Show (M m n) Source # | |
| (KnownNat m, KnownNat n) => Additive (M m n) Source # | |
| (KnownNat m, KnownNat n) => Disp (M m n) Source # | |
| KnownNat n => Diag (M n n) (C n) Source # | |
| (KnownNat n, KnownNat m) => Transposable (M m n) (M n m) Source # | |
| type Rep (M m n) Source # | |
Defined in Internal.Static | |
Products
(<>) :: forall (m :: Nat) (k :: Nat) (n :: Nat). (KnownNat m, KnownNat k, KnownNat n) => L m k -> L k n -> L m n infixr 8 Source #
(#>) :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> R n -> R m infixr 8 Source #
Linear Systems
linSolve :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m m -> L m n -> Maybe (L m n) Source #
(<\>) :: forall (m :: Nat) (n :: Nat) (r :: Nat). (KnownNat m, KnownNat n, KnownNat r) => L m n -> L m r -> L n r Source #
Factorizations
svd :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> (L m m, R n, L n n) Source #
withCompactSVD :: forall (m :: Nat) (n :: Nat) z. (KnownNat m, KnownNat n) => L m n -> (forall (k :: Nat). KnownNat k => (L m k, R k, L n k) -> z) -> z Source #
svdTall :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n, n <= m) => L m n -> (L m n, R n, L n n) Source #
svdFlat :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n, m <= n) => L m n -> (L m m, R m, L n m) Source #
withNullspace :: forall (m :: Nat) (n :: Nat) z. (KnownNat m, KnownNat n) => L m n -> (forall (k :: Nat). KnownNat k => L n k -> z) -> z Source #
withOrth :: forall (m :: Nat) (n :: Nat) z. (KnownNat m, KnownNat n) => L m n -> (forall (k :: Nat). KnownNat k => L n k -> z) -> z Source #
Norms
p-norm for vectors, operator norm for matrices
Methods
Instances
| Normed (Matrix C) Source # | |
| Normed (Matrix R) Source # | |
| KnownNat n => Normed (R n) Source # | |
| Normed (Vector (Complex Float)) Source # | |
| KnownNat m => Normed (Vector (Mod m I)) Source # | |
| KnownNat m => Normed (Vector (Mod m Z)) Source # | |
| Normed (Vector C) Source # | |
| Normed (Vector I) Source # | |
| Normed (Vector R) Source # | |
| Normed (Vector Z) Source # | |
| Normed (Vector Float) Source # | |
| (KnownNat m, KnownNat n) => Normed (L m n) Source # | |
Random arrays
Constructors
| Uniform | uniform distribution in [0,1) |
| Gaussian | normal distribution with mean zero and standard deviation one |
Instances
| Enum RandDist Source # | |
Defined in Internal.Vectorized Methods succ :: RandDist -> RandDist Source # pred :: RandDist -> RandDist Source # toEnum :: Int -> RandDist Source # fromEnum :: RandDist -> Int Source # enumFrom :: RandDist -> [RandDist] Source # enumFromThen :: RandDist -> RandDist -> [RandDist] Source # enumFromTo :: RandDist -> RandDist -> [RandDist] Source # enumFromThenTo :: RandDist -> RandDist -> RandDist -> [RandDist] Source # | |
gaussianSample :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => Seed -> R n -> Sym n -> L m n Source #
Misc
meanCov :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n, 1 <= m) => L m n -> (R n, Sym n) Source #
class Domain field (vec :: Nat -> Type) (mat :: Nat -> Nat -> Type) | mat -> vec field, vec -> mat field, field -> mat vec where Source #
Methods
mul :: forall (m :: Nat) (k :: Nat) (n :: Nat). (KnownNat m, KnownNat k, KnownNat n) => mat m k -> mat k n -> mat m n Source #
app :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => mat m n -> vec n -> vec m Source #
dot :: forall (n :: Nat). KnownNat n => vec n -> vec n -> field Source #
cross :: vec 3 -> vec 3 -> vec 3 Source #
diagR :: forall (m :: Nat) (n :: Nat) (k :: Nat). (KnownNat m, KnownNat n, KnownNat k) => field -> vec k -> mat m n Source #
dvmap :: forall (n :: Nat). KnownNat n => (field -> field) -> vec n -> vec n Source #
dmmap :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => (field -> field) -> mat n m -> mat n m Source #
outer :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => vec n -> vec m -> mat n m Source #
zipWithVector :: forall (n :: Nat). KnownNat n => (field -> field -> field) -> vec n -> vec n -> vec n Source #
det :: forall (n :: Nat). KnownNat n => mat n n -> field Source #
invlndet :: forall (n :: Nat). KnownNat n => mat n n -> (mat n n, (field, field)) Source #
expm :: forall (n :: Nat). KnownNat n => mat n n -> mat n n Source #
sqrtm :: forall (n :: Nat). KnownNat n => mat n n -> mat n n Source #
inv :: forall (n :: Nat). KnownNat n => mat n n -> mat n n Source #
Instances
| Domain ℂ C M Source # | |
Defined in Numeric.LinearAlgebra.Static Methods mul :: forall (m :: Nat) (k :: Nat) (n :: Nat). (KnownNat m, KnownNat k, KnownNat n) => M m k -> M k n -> M m n Source # app :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => M m n -> C n -> C m Source # dot :: forall (n :: Nat). KnownNat n => C n -> C n -> ℂ Source # cross :: C 3 -> C 3 -> C 3 Source # diagR :: forall (m :: Nat) (n :: Nat) (k :: Nat). (KnownNat m, KnownNat n, KnownNat k) => ℂ -> C k -> M m n Source # dvmap :: forall (n :: Nat). KnownNat n => (ℂ -> ℂ) -> C n -> C n Source # dmmap :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => (ℂ -> ℂ) -> M n m -> M n m Source # outer :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => C n -> C m -> M n m Source # zipWithVector :: forall (n :: Nat). KnownNat n => (ℂ -> ℂ -> ℂ) -> C n -> C n -> C n Source # det :: forall (n :: Nat). KnownNat n => M n n -> ℂ Source # invlndet :: forall (n :: Nat). KnownNat n => M n n -> (M n n, (ℂ, ℂ)) Source # expm :: forall (n :: Nat). KnownNat n => M n n -> M n n Source # sqrtm :: forall (n :: Nat). KnownNat n => M n n -> M n n Source # inv :: forall (n :: Nat). KnownNat n => M n n -> M n n Source # | |
| Domain ℝ R L Source # | |
Defined in Numeric.LinearAlgebra.Static Methods mul :: forall (m :: Nat) (k :: Nat) (n :: Nat). (KnownNat m, KnownNat k, KnownNat n) => L m k -> L k n -> L m n Source # app :: forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> R n -> R m Source # dot :: forall (n :: Nat). KnownNat n => R n -> R n -> ℝ Source # cross :: R 3 -> R 3 -> R 3 Source # diagR :: forall (m :: Nat) (n :: Nat) (k :: Nat). (KnownNat m, KnownNat n, KnownNat k) => ℝ -> R k -> L m n Source # dvmap :: forall (n :: Nat). KnownNat n => (ℝ -> ℝ) -> R n -> R n Source # dmmap :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => (ℝ -> ℝ) -> L n m -> L n m Source # outer :: forall (n :: Nat) (m :: Nat). (KnownNat m, KnownNat n) => R n -> R m -> L n m Source # zipWithVector :: forall (n :: Nat). KnownNat n => (ℝ -> ℝ -> ℝ) -> R n -> R n -> R n Source # det :: forall (n :: Nat). KnownNat n => L n n -> ℝ Source # invlndet :: forall (n :: Nat). KnownNat n => L n n -> (L n n, (ℝ, ℝ)) Source # expm :: forall (n :: Nat). KnownNat n => L n n -> L n n Source # sqrtm :: forall (n :: Nat). KnownNat n => L n n -> L n n Source # inv :: forall (n :: Nat). KnownNat n => L n n -> L n n Source # | |
withMatrix :: Matrix ℝ -> (forall (m :: Nat) (n :: Nat). (KnownNat m, KnownNat n) => L m n -> z) -> z Source #
exactLength :: forall (n :: Nat) (m :: Nat). (KnownNat n, KnownNat m) => R m -> Maybe (R n) Source #
Useful for constraining two dependently typed vectors to match each other in length when they are unknown at compile-time.
exactDims :: forall (n :: Nat) (m :: Nat) (j :: Nat) (k :: Nat). (KnownNat n, KnownNat m, KnownNat j, KnownNat k) => L m n -> Maybe (L j k) Source #
Useful for constraining two dependently typed matrices to match each other in dimensions when they are unknown at compile-time.
withRows :: forall (n :: Nat) z. KnownNat n => [R n] -> (forall (m :: Nat). KnownNat m => L m n -> z) -> z Source #
withColumns :: forall (m :: Nat) z. KnownNat m => [R m] -> (forall (n :: Nat). KnownNat n => L m n -> z) -> z Source #
class Num t => Sized t s (d :: Type -> Type) | s -> t, s -> d where Source #