diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Data/Packed/Vector.hs | 7 | ||||
-rw-r--r-- | lib/Numeric/Container.hs | 20 | ||||
-rw-r--r-- | lib/Numeric/LinearAlgebra/Util.hs | 16 |
3 files changed, 34 insertions, 9 deletions
diff --git a/lib/Data/Packed/Vector.hs b/lib/Data/Packed/Vector.hs index a705ce4..f12031f 100644 --- a/lib/Data/Packed/Vector.hs +++ b/lib/Data/Packed/Vector.hs | |||
@@ -19,7 +19,7 @@ module Data.Packed.Vector ( | |||
19 | Vector, | 19 | Vector, |
20 | fromList, (|>), toList, buildVector, | 20 | fromList, (|>), toList, buildVector, |
21 | dim, (@>), | 21 | dim, (@>), |
22 | subVector, takesV, vjoin, | 22 | subVector, takesV, vjoin, join, |
23 | mapVector, mapVectorWithIndex, zipVector, zipVectorWith, unzipVector, unzipVectorWith, | 23 | mapVector, mapVectorWithIndex, zipVector, zipVectorWith, unzipVector, unzipVectorWith, |
24 | mapVectorM, mapVectorM_, mapVectorWithIndexM, mapVectorWithIndexM_, | 24 | mapVectorM, mapVectorM_, mapVectorWithIndexM, mapVectorWithIndexM_, |
25 | foldLoop, foldVector, foldVectorG, foldVectorWithIndex | 25 | foldLoop, foldVector, foldVectorG, foldVectorWithIndex |
@@ -88,3 +88,8 @@ unzipVector :: (Storable a, Storable b, Storable (a,b)) => Vector (a,b) -> (Vect | |||
88 | unzipVector = unzipVectorWith id | 88 | unzipVector = unzipVectorWith id |
89 | 89 | ||
90 | ------------------------------------------------------------------- | 90 | ------------------------------------------------------------------- |
91 | |||
92 | {-# DEPRECATED join "use vjoin or Data.Vector.concat" #-} | ||
93 | join :: Storable t => [Vector t] -> Vector t | ||
94 | join = vjoin | ||
95 | |||
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 |