diff options
Diffstat (limited to 'lib/Numeric')
-rw-r--r-- | lib/Numeric/Container.hs | 20 | ||||
-rw-r--r-- | lib/Numeric/LinearAlgebra/Util.hs | 16 |
2 files changed, 28 insertions, 8 deletions
diff --git a/lib/Numeric/Container.hs b/lib/Numeric/Container.hs index 46c2903..aac8c10 100644 --- a/lib/Numeric/Container.hs +++ b/lib/Numeric/Container.hs | |||
@@ -38,7 +38,7 @@ module Numeric.Container ( | |||
38 | Product(..), | 38 | Product(..), |
39 | Contraction(..), | 39 | Contraction(..), |
40 | optimiseMult, | 40 | optimiseMult, |
41 | mXm,mXv,vXm,Mul(..),LSDiv(..), cdot, | 41 | mXm,mXv,vXm,Mul(..),LSDiv(..), cdot, (⋅), dot, (<.>), |
42 | outer, kronecker, | 42 | outer, kronecker, |
43 | -- * Random numbers | 43 | -- * Random numbers |
44 | RandDist(..), | 44 | RandDist(..), |
@@ -175,6 +175,13 @@ instance Container Matrix t => Contraction (Matrix t) t (Matrix t) where | |||
175 | 175 | ||
176 | -------------------------------------------------------------------------------- | 176 | -------------------------------------------------------------------------------- |
177 | 177 | ||
178 | -- | dot product (0x22C5): @u ⋅ v = 'cdot' u v@ | ||
179 | (⋅) :: (Container Vector t, Product t) => Vector t -> Vector t -> t | ||
180 | infixl 7 ⋅ | ||
181 | u ⋅ v = cdot u v | ||
182 | |||
183 | -------------------------------------------------------------------------------- | ||
184 | |||
178 | -- bidirectional type inference | 185 | -- bidirectional type inference |
179 | class Konst e d c | d -> c, c -> d | 186 | class Konst e d c | d -> c, c -> d |
180 | where | 187 | where |
@@ -200,3 +207,14 @@ instance Container Matrix e => Build (Int,Int) (e -> e -> e) Matrix e | |||
200 | where | 207 | where |
201 | build = build' | 208 | build = build' |
202 | 209 | ||
210 | -------------------------------------------------------------------------------- | ||
211 | |||
212 | {-# DEPRECATED dot "use udot" #-} | ||
213 | dot :: Product e => Vector e -> Vector e -> e | ||
214 | dot = udot | ||
215 | |||
216 | {-# DEPRECATED (<.>) "use udot or (×)" #-} | ||
217 | infixl 7 <.> | ||
218 | (<.>) :: Product e => Vector e -> Vector e -> e | ||
219 | (<.>) = udot | ||
220 | |||
diff --git a/lib/Numeric/LinearAlgebra/Util.hs b/lib/Numeric/LinearAlgebra/Util.hs index 2c77d3a..b38aeb2 100644 --- a/lib/Numeric/LinearAlgebra/Util.hs +++ b/lib/Numeric/LinearAlgebra/Util.hs | |||
@@ -23,7 +23,6 @@ module Numeric.LinearAlgebra.Util( | |||
23 | (?), (¿), | 23 | (?), (¿), |
24 | rand, randn, | 24 | rand, randn, |
25 | cross, | 25 | cross, |
26 | (⋅), | ||
27 | norm, | 26 | norm, |
28 | unitary, | 27 | unitary, |
29 | mt, | 28 | mt, |
@@ -86,7 +85,15 @@ rand = randm Uniform | |||
86 | randn :: Int -> Int -> IO (Matrix Double) | 85 | randn :: Int -> Int -> IO (Matrix Double) |
87 | randn = randm Gaussian | 86 | randn = randm Gaussian |
88 | 87 | ||
89 | -- | create a real diagonal matrix from a list | 88 | {- | create a real diagonal matrix from a list |
89 | |||
90 | >>> diagl [1,2,3] | ||
91 | (3><3) | ||
92 | [ 1.0, 0.0, 0.0 | ||
93 | , 0.0, 2.0, 0.0 | ||
94 | , 0.0, 0.0, 3.0 ] | ||
95 | |||
96 | -} | ||
90 | diagl :: [Double] -> Matrix Double | 97 | diagl :: [Double] -> Matrix Double |
91 | diagl = diag . fromList | 98 | diagl = diag . fromList |
92 | 99 | ||
@@ -164,11 +171,6 @@ size m = (rows m, cols m) | |||
164 | mt :: Matrix Double -> Matrix Double | 171 | mt :: Matrix Double -> Matrix Double |
165 | mt = trans . inv | 172 | mt = trans . inv |
166 | 173 | ||
167 | -- | dot product (0x22C5): @u ⋅ v = 'cdot' u v@ | ||
168 | (⋅) :: (Container Vector t, Product t) => Vector t -> Vector t -> t | ||
169 | infixl 7 ⋅ | ||
170 | u ⋅ v = cdot u v | ||
171 | |||
172 | ---------------------------------------------------------------------- | 174 | ---------------------------------------------------------------------- |
173 | 175 | ||
174 | -- | Matrix of pairwise squared distances of row vectors | 176 | -- | Matrix of pairwise squared distances of row vectors |