HQu 0.0.0.4 → 0.0.0.5
raw patch · 2 files changed
+16/−8 lines, 2 files
Files
- HQu.cabal +2/−2
- src/Q/SortedVector.hs +14/−6
HQu.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: HQu-version: 0.0.0.4+version: 0.0.0.5 synopsis: quantitative finance library description: General purpose quantitative finance library homepage: https://github.com/ghais/HQu@@ -164,7 +164,7 @@ if arch(x86_64) cc-options: -fPIC extra-libraries: gsl- pkgconfig-depends: gsl+ --pkgconfig-depends: gsl test-suite bachelier-test import: common-options
src/Q/SortedVector.hs view
@@ -9,18 +9,26 @@ , maxElement ) where -import qualified Data.Vector.Algorithms.Merge as V (sort)+import qualified Data.Vector.Algorithms.Merge as Merge (sort) -import Data.Vector.Storable (Storable)-import qualified Data.Vector.Storable as V (Vector (..), fromList, length, head, last, modify)-import Q.Types+import qualified Data.Vector.Storable as V (Storable, Vector, fromList, head, last, modify) ++-- | A sorted vector. newtype SortedVector a = SortedVector (V.Vector a) -fromList as = SortedVector (V.modify V.sort $ V.fromList as)-fromVector v = SortedVector (V.modify V.sort v)+-- | construct a 'SortedVector' from a list+fromList :: (V.Storable a, Ord a) => [a] -> SortedVector a+fromList as = SortedVector (V.modify Merge.sort $ V.fromList as)++fromVector :: (V.Storable a, Ord a) => V.Vector a -> SortedVector a+fromVector v = SortedVector (V.modify Merge.sort v)++fromSortedList :: V.Storable a => [a] -> SortedVector a fromSortedList xs = SortedVector $ V.fromList xs +minElement :: V.Storable a => SortedVector a -> a minElement (SortedVector v) = V.head v+maxElement :: V.Storable a => SortedVector a -> a maxElement (SortedVector v) = V.last v