summaryrefslogtreecommitdiff
path: root/packages/base/src/Numeric
diff options
context:
space:
mode:
authorAlberto Ruiz <aruiz@um.es>2016-01-05 18:32:27 +0100
committerAlberto Ruiz <aruiz@um.es>2016-01-05 18:32:27 +0100
commit0fc937994fb46bd3c4f2679165e414a89746cea6 (patch)
treec82de5201eb04fb7dc6594b6fa718d954d1882c4 /packages/base/src/Numeric
parentdd262e728a5390962ad4592e23b3e2cdac4214be (diff)
extract full vector for static outer
Diffstat (limited to 'packages/base/src/Numeric')
-rw-r--r--packages/base/src/Numeric/LinearAlgebra/Static.hs12
1 files changed, 7 insertions, 5 deletions
diff --git a/packages/base/src/Numeric/LinearAlgebra/Static.hs b/packages/base/src/Numeric/LinearAlgebra/Static.hs
index 3b7282a..bd0e593 100644
--- a/packages/base/src/Numeric/LinearAlgebra/Static.hs
+++ b/packages/base/src/Numeric/LinearAlgebra/Static.hs
@@ -50,6 +50,8 @@ module Numeric.LinearAlgebra.Static(
50 -- * Factorizations 50 -- * Factorizations
51 svd, withCompactSVD, svdTall, svdFlat, Eigen(..), 51 svd, withCompactSVD, svdTall, svdFlat, Eigen(..),
52 withNullspace, qr, chol, 52 withNullspace, qr, chol,
53 -- * Norms
54 Normed(..),
53 -- * Misc 55 -- * Misc
54 mean, 56 mean,
55 Disp(..), Domain(..), 57 Disp(..), Domain(..),
@@ -418,7 +420,7 @@ class Domain field vec mat | mat -> vec field, vec -> mat field, field -> mat ve
418 diagR :: forall m n k . (KnownNat m, KnownNat n, KnownNat k) => field -> vec k -> mat m n 420 diagR :: forall m n k . (KnownNat m, KnownNat n, KnownNat k) => field -> vec k -> mat m n
419 dvmap :: forall n. (field -> field) -> vec n -> vec n 421 dvmap :: forall n. (field -> field) -> vec n -> vec n
420 dmmap :: forall n m. (field -> field) -> mat n m -> mat n m 422 dmmap :: forall n m. (field -> field) -> mat n m -> mat n m
421 outer :: forall n m. vec n -> vec m -> mat n m 423 outer :: forall n m. (KnownNat m, KnownNat n) => vec n -> vec m -> mat n m
422 424
423 425
424instance Domain ℝ R L 426instance Domain ℝ R L
@@ -481,8 +483,8 @@ crossR (extract -> x) (extract -> y) = vec3 z1 z2 z3
481 z2 = x!2*y!0-x!0*y!2 483 z2 = x!2*y!0-x!0*y!2
482 z3 = x!0*y!1-x!1*y!0 484 z3 = x!0*y!1-x!1*y!0
483 485
484outerR :: R n -> R m -> L n m 486outerR :: (KnownNat m, KnownNat n) => R n -> R m -> L n m
485outerR (R (Dim x)) (R (Dim y)) = mkL (LA.outer x y) 487outerR (extract -> x) (extract -> y) = mkL (LA.outer x y)
486 488
487mapR :: (ℝ -> ℝ) -> R n -> R n 489mapR :: (ℝ -> ℝ) -> R n -> R n
488mapR f (R (Dim v)) = R (Dim (LA.cmap f v)) 490mapR f (R (Dim v)) = R (Dim (LA.cmap f v))
@@ -528,8 +530,8 @@ crossC (extract -> x) (extract -> y) = mkC (LA.fromList [z1, z2, z3])
528 z2 = x!2*y!0-x!0*y!2 530 z2 = x!2*y!0-x!0*y!2
529 z3 = x!0*y!1-x!1*y!0 531 z3 = x!0*y!1-x!1*y!0
530 532
531outerC :: C n -> C m -> M n m 533outerC :: (KnownNat m, KnownNat n) => C n -> C m -> M n m
532outerC (C (Dim x)) (C (Dim y)) = mkM (LA.outer x y) 534outerC (extract -> x) (extract -> y) = mkM (LA.outer x y)
533 535
534mapC :: (ℂ -> ℂ) -> C n -> C n 536mapC :: (ℂ -> ℂ) -> C n -> C n
535mapC f (C (Dim v)) = C (Dim (LA.cmap f v)) 537mapC f (C (Dim v)) = C (Dim (LA.cmap f v))