summaryrefslogtreecommitdiff
path: root/lib/Numeric
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Numeric')
-rw-r--r--lib/Numeric/Container.hs20
-rw-r--r--lib/Numeric/LinearAlgebra/Util.hs16
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
180infixl 7 ⋅
181u ⋅ v = cdot u v
182
183--------------------------------------------------------------------------------
184
178-- bidirectional type inference 185-- bidirectional type inference
179class Konst e d c | d -> c, c -> d 186class 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" #-}
213dot :: Product e => Vector e -> Vector e -> e
214dot = udot
215
216{-# DEPRECATED (<.>) "use udot or (×)" #-}
217infixl 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
86randn :: Int -> Int -> IO (Matrix Double) 85randn :: Int -> Int -> IO (Matrix Double)
87randn = randm Gaussian 86randn = 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-}
90diagl :: [Double] -> Matrix Double 97diagl :: [Double] -> Matrix Double
91diagl = diag . fromList 98diagl = diag . fromList
92 99
@@ -164,11 +171,6 @@ size m = (rows m, cols m)
164mt :: Matrix Double -> Matrix Double 171mt :: Matrix Double -> Matrix Double
165mt = trans . inv 172mt = trans . inv
166 173
167-- | dot product (0x22C5): @u ⋅ v = 'cdot' u v@
168(⋅) :: (Container Vector t, Product t) => Vector t -> Vector t -> t
169infixl 7 ⋅
170u ⋅ 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