Copyright | (C) 2016 Marco Zocca |
---|---|
License | GPL-3 (see LICENSE) |
Maintainer | zocca.marco gmail |
Stability | provisional |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
- data SpVector a = SV {}
- spySV :: Fractional b => SpVector a -> b
- nzSV :: SpVector a -> Int
- sizeStrSV :: SpVector a -> String
- zeroSV :: Int -> SpVector a
- singletonSV :: a -> SpVector a
- mkSpVector :: Epsilon a => Int -> IntMap a -> SpVector a
- mkSpVectorD :: Epsilon a => Int -> [a] -> SpVector a
- mkSpVector1 :: Int -> IntMap a -> SpVector a
- fromListDenseSV :: Int -> [a] -> SpVector a
- spVectorDenseIx :: Epsilon a => (Int -> a) -> UB -> [Int] -> SpVector a
- spVectorDenseLoHi :: Epsilon a => (Int -> a) -> UB -> Int -> Int -> SpVector a
- oneHotSVU :: Num a => Int -> IxRow -> SpVector a
- oneHotSV :: Num a => Int -> IxRow -> SpVector a
- onesSV :: Num a => Int -> SpVector a
- zerosSV :: Num a => Int -> SpVector a
- fromVector :: Vector a -> SpVector a
- toVector :: SpVector a -> Vector a
- toVectorDense :: Num a => SpVector a -> Vector a
- insertSpVector :: Int -> a -> SpVector a -> SpVector a
- fromListSV :: Int -> [(Int, a)] -> SpVector a
- toListSV :: SpVector a -> [(Key, a)]
- toDenseListSV :: Num b => SpVector b -> [b]
- ifoldSV :: (Key -> a -> b -> b) -> b -> SpVector a -> b
- lookupSV :: Key -> SpVector a -> Maybe a
- lookupDefaultSV :: a -> Key -> SpVector a -> a
- lookupDenseSV :: Num a => Key -> SpVector a -> a
- tailSV :: SpVector a -> SpVector a
- headSV :: Num a => SpVector a -> a
- takeSV :: Int -> SpVector a -> SpVector a
- dropSV :: Int -> SpVector a -> SpVector a
- concatSV :: SpVector a -> SpVector a -> SpVector a
- filterSV :: (a -> Bool) -> SpVector a -> SpVector a
- ifilterSV :: (Int -> a -> Bool) -> SpVector a -> SpVector a
- orthogonalSV :: Fractional a => SpVector a -> SpVector a
Sparse Vector
Functor SpVector Source # | |
Foldable SpVector Source # | |
Set SpVector Source # | |
FiniteDim SpVector Source # | |
Normed SpVector Source # | |
Hilbert SpVector Source # | |
VectorSpace SpVector Source # | |
Additive SpVector Source # | |
Num a => SpContainer SpVector a Source # | |
Sparse SpVector a Source # | |
HasData SpVector a Source # | |
Eq a => Eq (SpVector a) Source # | |
Show a => Show (SpVector a) Source # | |
type ScIx SpVector Source # | |
type FDSize SpVector Source # | |
type HDData SpVector a Source # | |
spySV :: Fractional b => SpVector a -> b Source #
SpVector sparsity
Creation
singletonSV :: a -> SpVector a Source #
singleton sparse vector (length 1)
mkSpVector :: Epsilon a => Int -> IntMap a -> SpVector a Source #
create a sparse vector from an association list while discarding all zero entries
mkSpVectorD :: Epsilon a => Int -> [a] -> SpVector a Source #
", from logically dense array (consecutive indices)
fromListDenseSV :: Int -> [a] -> SpVector a Source #
Create new sparse vector, assumin 0-based, contiguous indexing
spVectorDenseIx :: Epsilon a => (Int -> a) -> UB -> [Int] -> SpVector a Source #
Map a function over a range of indices and filter the result (indices and values) to fit in a n
-long SpVector
spVectorDenseLoHi :: Epsilon a => (Int -> a) -> UB -> Int -> Int -> SpVector a Source #
", using just the integer bounds of the interval
oneHotSVU :: Num a => Int -> IxRow -> SpVector a Source #
one-hot encoding : `oneHotSV n k` produces a SpVector of length n having 1 at the k-th position
Vector-related
fromVector :: Vector a -> SpVector a Source #
Populate a SpVector with the contents of a Vector.
toVector :: SpVector a -> Vector a Source #
Populate a Vector with the entries of a SpVector, discarding the indices (NB: loses sparsity information).
toVectorDense :: Num a => SpVector a -> Vector a Source #
- - | Populate a Vector with the entries of a SpVector, replacing the missing entries with 0
Element insertion
insertSpVector :: Int -> a -> SpVector a -> SpVector a Source #
insert element x
at index i
in a preexisting SpVector
fromList
toList
toDenseListSV :: Num b => SpVector b -> [b] Source #
To dense list (default = 0)
Lookup
lookupDefaultSV :: a -> Key -> SpVector a -> a Source #
Lookup an index, return a default value if lookup fails
lookupDenseSV :: Num a => Key -> SpVector a -> a Source #
Lookup an index in a SpVector, returns 0 if lookup fails
Sub-vectors
takeSV :: Int -> SpVector a -> SpVector a Source #
Keep the first n components of the SpVector (like take
for lists)
Orthogonal vector
orthogonalSV :: Fractional a => SpVector a -> SpVector a Source #
Generate an arbitrary (not random) vector u
such that `v dot u = 0`