HNumeric-0.5.0.1: Haskell Numeric Library with pure functionality, R & MATLAB Syntax.

HNum.Vector

Description

Synopsis

# Documentation

newtype Vector a Source #

Constructors

 Vector [a]

Instances

 Source # Methodsfmap :: (a -> b) -> Vector a -> Vector b #(<$) :: a -> Vector b -> Vector a # Source # Methodspure :: a -> Vector a #(<*>) :: Vector (a -> b) -> Vector a -> Vector b #liftA2 :: (a -> b -> c) -> Vector a -> Vector b -> Vector c #(*>) :: Vector a -> Vector b -> Vector b #(<*) :: Vector a -> Vector b -> Vector a # Source # Methodsfold :: Monoid m => Vector m -> m #foldMap :: Monoid m => (a -> m) -> Vector a -> m #foldr :: (a -> b -> b) -> b -> Vector a -> b #foldr' :: (a -> b -> b) -> b -> Vector a -> b #foldl :: (b -> a -> b) -> b -> Vector a -> b #foldl' :: (b -> a -> b) -> b -> Vector a -> b #foldr1 :: (a -> a -> a) -> Vector a -> a #foldl1 :: (a -> a -> a) -> Vector a -> a #toList :: Vector a -> [a] #null :: Vector a -> Bool #length :: Vector a -> Int #elem :: Eq a => a -> Vector a -> Bool #maximum :: Ord a => Vector a -> a #minimum :: Ord a => Vector a -> a #sum :: Num a => Vector a -> a #product :: Num a => Vector a -> a # Source # Methodshflat :: ([a] -> a) -> Vector a -> a Source #hlift :: ([a] -> [b]) -> Vector a -> Vector b Source #hmap :: (a -> b) -> Vector a -> Vector b Source #hfilter :: (a -> Bool) -> Vector a -> Vector a Source #htake :: Int -> Vector a -> Vector a Source #htakeWhile :: (a -> Bool) -> Vector a -> Vector a Source #hdrop :: Int -> Vector a -> Vector a Source #hdropWhile :: (a -> Bool) -> Vector a -> Vector a Source # Source # Methodshcat :: Vector a -> Vector a -> Vector a Source #vcat :: Vector a -> Vector a -> Matrix a Source # Source # Methods(.+) :: Num a => Vector a -> a -> Vector a Source #(.-) :: Num a => Vector a -> a -> Vector a Source #(.*) :: Num a => Vector a -> a -> Vector a Source #(./) :: Fractional a => Vector a -> a -> Vector a Source #(.^) :: Floating a => Vector a -> a -> Vector a Source #(.*.) :: Num a => Vector a -> Vector a -> a Source #norm :: Floating a => Vector a -> a Source # Source # Methods Source # MethodstoList :: Vector a -> [a] Source #fromList :: [a] -> Vector a Source #(.!) :: Vector a -> Int -> a Source #findFirst :: Eq a => a -> Vector a -> Int Source # Source # Methodserf :: Real a => Vector a -> Vector Double Source #invErf :: Real a => Vector a -> Vector Double Source # Source # MethodstoString :: Show a => Vector a -> String Source #writeCSV :: (Eq a, Show a) => String -> Vector a -> IO () Source # Source # Methodsmean :: Fractional a => Vector a -> a Source #cov' :: Floating a => Vector a -> Vector a -> a Source #cov :: Floating a => Vector a -> Vector a -> Matrix a Source #var :: Floating a => Vector a -> a Source #std :: Floating a => Vector a -> a Source #se :: Floating a => Vector a -> a Source #cor :: Floating a => Vector a -> Vector a -> a Source #med :: (Ord a, Floating a) => Vector a -> a Source #mode :: Eq a => Vector a -> a Source #cv :: Floating a => Vector a -> a Source #moment :: Floating a => a -> Vector a -> a Source #skew :: Floating a => Vector a -> a Source #skew' :: Floating a => Vector a -> a Source #kurt :: Floating a => Vector a -> a Source # Eq a => Eq (Vector a) Source # Methods(==) :: Vector a -> Vector a -> Bool #(/=) :: Vector a -> Vector a -> Bool # Floating a => Floating (Vector a) Source # Methodspi :: Vector a #exp :: Vector a -> Vector a #log :: Vector a -> Vector a #sqrt :: Vector a -> Vector a #(**) :: Vector a -> Vector a -> Vector a #logBase :: Vector a -> Vector a -> Vector a #sin :: Vector a -> Vector a #cos :: Vector a -> Vector a #tan :: Vector a -> Vector a #asin :: Vector a -> Vector a #acos :: Vector a -> Vector a #atan :: Vector a -> Vector a #sinh :: Vector a -> Vector a #cosh :: Vector a -> Vector a #tanh :: Vector a -> Vector a #asinh :: Vector a -> Vector a #acosh :: Vector a -> Vector a #atanh :: Vector a -> Vector a #log1p :: Vector a -> Vector a #expm1 :: Vector a -> Vector a #log1pexp :: Vector a -> Vector a #log1mexp :: Vector a -> Vector a # Fractional a => Fractional (Vector a) Source # Methods(/) :: Vector a -> Vector a -> Vector a #recip :: Vector a -> Vector a # Num a => Num (Vector a) Source # Methods(+) :: Vector a -> Vector a -> Vector a #(-) :: Vector a -> Vector a -> Vector a #(*) :: Vector a -> Vector a -> Vector a #negate :: Vector a -> Vector a #abs :: Vector a -> Vector a #signum :: Vector a -> Vector a # Show a => Show (Vector a) Source # MethodsshowsPrec :: Int -> Vector a -> ShowS #show :: Vector a -> String #showList :: [Vector a] -> ShowS # vector :: [a] -> Vector a Source # vec :: [a] -> Vector a Source # class List m where Source # Minimal complete definition Methods toList :: m a -> [a] Source # to List fromList :: [a] -> m a Source # From List (.!) :: m a -> Int -> a Source # Extract Element findFirst :: Eq a => a -> m a -> Int Source # Find Position of Element Instances  Source # MethodstoList :: Vector a -> [a] Source #fromList :: [a] -> Vector a Source #(.!) :: Vector a -> Int -> a Source #findFirst :: Eq a => a -> Vector a -> Int Source # data Matrix a Source # Definition of Matrix Constructors  Matrix Fieldsval :: Vector a row :: Int col :: Int byRow :: Bool Instances  Source # Methodsfmap :: (a -> b) -> Matrix a -> Matrix b #(<$) :: a -> Matrix b -> Matrix a # Source # Methodspure :: a -> Matrix a #(<*>) :: Matrix (a -> b) -> Matrix a -> Matrix b #liftA2 :: (a -> b -> c) -> Matrix a -> Matrix b -> Matrix c #(*>) :: Matrix a -> Matrix b -> Matrix b #(<*) :: Matrix a -> Matrix b -> Matrix a # Source # Methodsfold :: Monoid m => Matrix m -> m #foldMap :: Monoid m => (a -> m) -> Matrix a -> m #foldr :: (a -> b -> b) -> b -> Matrix a -> b #foldr' :: (a -> b -> b) -> b -> Matrix a -> b #foldl :: (b -> a -> b) -> b -> Matrix a -> b #foldl' :: (b -> a -> b) -> b -> Matrix a -> b #foldr1 :: (a -> a -> a) -> Matrix a -> a #foldl1 :: (a -> a -> a) -> Matrix a -> a #toList :: Matrix a -> [a] #null :: Matrix a -> Bool #length :: Matrix a -> Int #elem :: Eq a => a -> Matrix a -> Bool #maximum :: Ord a => Matrix a -> a #minimum :: Ord a => Matrix a -> a #sum :: Num a => Matrix a -> a #product :: Num a => Matrix a -> a # Source # Methodshflat :: ([a] -> a) -> Matrix a -> a Source #hlift :: ([a] -> [b]) -> Matrix a -> Matrix b Source #hmap :: (a -> b) -> Matrix a -> Matrix b Source #hfilter :: (a -> Bool) -> Matrix a -> Matrix a Source #htake :: Int -> Matrix a -> Matrix a Source #htakeWhile :: (a -> Bool) -> Matrix a -> Matrix a Source #hdrop :: Int -> Matrix a -> Matrix a Source #hdropWhile :: (a -> Bool) -> Matrix a -> Matrix a Source # Source # Methodshcat :: Matrix a -> Matrix a -> Matrix a Source #vcat :: Matrix a -> Matrix a -> Matrix a Source # Source # Methods(%*%) :: Num a => Matrix a -> Matrix a -> Matrix a Source #(%/%) :: (Eq a, Fractional a) => Matrix a -> Matrix a -> Matrix a Source #det :: (Eq a, Fractional a) => Matrix a -> a Source #inv :: (Eq a, Fractional a) => Matrix a -> Matrix a Source #transpose :: Matrix a -> Matrix a Source # Source # Methods(.+) :: Num a => Matrix a -> a -> Matrix a Source #(.-) :: Num a => Matrix a -> a -> Matrix a Source #(.*) :: Num a => Matrix a -> a -> Matrix a Source #(./) :: Fractional a => Matrix a -> a -> Matrix a Source #(.^) :: Floating a => Matrix a -> a -> Matrix a Source #(.*.) :: Num a => Matrix a -> Matrix a -> a Source #norm :: Floating a => Matrix a -> a Source # Source # Methods Source # MethodsmatForm :: Matrix a -> [[a]] Source #formMat :: [[a]] -> Matrix a Source # Source # MethodstoString :: Show a => Matrix a -> String Source #writeCSV :: (Eq a, Show a) => String -> Matrix a -> IO () Source # Eq a => Eq (Matrix a) Source # Methods(==) :: Matrix a -> Matrix a -> Bool #(/=) :: Matrix a -> Matrix a -> Bool # Floating a => Floating (Matrix a) Source # Methodspi :: Matrix a #exp :: Matrix a -> Matrix a #log :: Matrix a -> Matrix a #sqrt :: Matrix a -> Matrix a #(**) :: Matrix a -> Matrix a -> Matrix a #logBase :: Matrix a -> Matrix a -> Matrix a #sin :: Matrix a -> Matrix a #cos :: Matrix a -> Matrix a #tan :: Matrix a -> Matrix a #asin :: Matrix a -> Matrix a #acos :: Matrix a -> Matrix a #atan :: Matrix a -> Matrix a #sinh :: Matrix a -> Matrix a #cosh :: Matrix a -> Matrix a #tanh :: Matrix a -> Matrix a #asinh :: Matrix a -> Matrix a #acosh :: Matrix a -> Matrix a #atanh :: Matrix a -> Matrix a #log1p :: Matrix a -> Matrix a #expm1 :: Matrix a -> Matrix a #log1pexp :: Matrix a -> Matrix a #log1mexp :: Matrix a -> Matrix a # Fractional a => Fractional (Matrix a) Source # Methods(/) :: Matrix a -> Matrix a -> Matrix a #recip :: Matrix a -> Matrix a # Num a => Num (Matrix a) Source # Methods(+) :: Matrix a -> Matrix a -> Matrix a #(-) :: Matrix a -> Matrix a -> Matrix a #(*) :: Matrix a -> Matrix a -> Matrix a #negate :: Matrix a -> Matrix a #abs :: Matrix a -> Matrix a #signum :: Matrix a -> Matrix a # Show a => Show (Matrix a) Source # MethodsshowsPrec :: Int -> Matrix a -> ShowS #show :: Matrix a -> String #showList :: [Matrix a] -> ShowS #

matrix :: [[a]] -> Matrix a Source #

matrix is syntactic sugar to create Matrix

class Matrices m where Source #

Matrices is necessary class for Matrix

Minimal complete definition

Methods

matForm :: m a -> [[a]] Source #

Matrix to Array

formMat :: [[a]] -> m a Source #

Array to Matrix

Instances

 Source # MethodsmatForm :: Matrix a -> [[a]] Source #formMat :: [[a]] -> Matrix a Source #

class Functor f => Convertable f where Source #

Syntactic Sugar of read of functor

Minimal complete definition

Methods

readInt :: f String -> f Int Source #

readInteger :: f String -> f Integer Source #

readDouble :: f String -> f Double Source #

Instances

 Source # Methods Source # Methods Source # Methods

class Functor f => VecOps f where Source #

(.ops) is an operation Vector(or Matrix) with Constant. Dot means position of Vector. Example: a .* 2 = twice whole elements of a a .*. b = Dot product

Minimal complete definition

Methods

(.+) :: Num a => f a -> a -> f a Source #

(.-) :: Num a => f a -> a -> f a Source #

(.*) :: Num a => f a -> a -> f a Source #

(./) :: Fractional a => f a -> a -> f a Source #

(.^) :: Floating a => f a -> a -> f a Source #

(.*.) :: Num a => f a -> f a -> a Source #

norm :: Floating a => f a -> a Source #

Instances

 Source # Methods(.+) :: Num a => Matrix a -> a -> Matrix a Source #(.-) :: Num a => Matrix a -> a -> Matrix a Source #(.*) :: Num a => Matrix a -> a -> Matrix a Source #(./) :: Fractional a => Matrix a -> a -> Matrix a Source #(.^) :: Floating a => Matrix a -> a -> Matrix a Source #(.*.) :: Num a => Matrix a -> Matrix a -> a Source #norm :: Floating a => Matrix a -> a Source # Source # Methods(.+) :: Num a => Vector a -> a -> Vector a Source #(.-) :: Num a => Vector a -> a -> Vector a Source #(.*) :: Num a => Vector a -> a -> Vector a Source #(./) :: Fractional a => Vector a -> a -> Vector a Source #(.^) :: Floating a => Vector a -> a -> Vector a Source #(.*.) :: Num a => Vector a -> Vector a -> a Source #norm :: Floating a => Vector a -> a Source #

class Functor f => MatOps f where Source #

Minimal complete definition

Methods

(%*%) :: Num a => f a -> f a -> f a Source #

(%/%) :: (Eq a, Fractional a) => f a -> f a -> f a Source #

det :: (Eq a, Fractional a) => f a -> a Source #

inv :: (Eq a, Fractional a) => f a -> f a Source #

transpose :: f a -> f a Source #

Instances

 Source # Methods(%*%) :: Num a => Matrix a -> Matrix a -> Matrix a Source #(%/%) :: (Eq a, Fractional a) => Matrix a -> Matrix a -> Matrix a Source #det :: (Eq a, Fractional a) => Matrix a -> a Source #inv :: (Eq a, Fractional a) => Matrix a -> Matrix a Source #transpose :: Matrix a -> Matrix a Source #

bp :: Int -> Matrix a -> Matrix a Source #

Block Partitioning

class Functor f => Concatable f where Source #

Minimal complete definition

Methods

hcat :: f a -> f a -> f a Source #

vcat :: f a -> f a -> Matrix a Source #

Instances

 Source # Methodshcat :: Matrix a -> Matrix a -> Matrix a Source #vcat :: Matrix a -> Matrix a -> Matrix a Source # Source # Methodshcat :: Vector a -> Vector a -> Vector a Source #vcat :: Vector a -> Vector a -> Matrix a Source #

(.:) :: Vector a -> Matrix a -> Matrix a Source #

(.:) inserts vector to head of matrix.

qsort :: Ord a => Vector a -> Vector a Source #

Quick Sort

transposeMat :: [[a]] -> [[a]] Source #

indexMat :: [[a]] -> [[(Int, Int)]] Source #

dropAtMat :: Int -> Int -> [[a]] -> [[a]] Source #

postSplitAt :: ([a], [a]) -> [a] Source #

dropAt :: Int -> [a] -> [a] Source #

dropAtMat' :: Int -> [[a]] -> [[a]] Source #

bpMat :: Int -> [[a]] -> [[a]] Source #

(%-+-%) :: Num a => [[a]] -> [[a]] -> [[a]] Source #

negMap :: Num a => [[a]] -> [[a]] Source #

(%---%) :: Num a => [[a]] -> [[a]] -> [[a]] Source #

(%-*-%) :: Num a => [[a]] -> [[a]] -> [[a]] Source #

eyeMat :: Int -> [[Int]] Source #

basisVec :: Int -> Int -> [Int] Source #

permMat :: Int -> Int -> [[a]] -> [[Int]] Source #

whichMax :: Ord a => [a] -> Int Source #

colMat :: [[a]] -> Int -> [a] Source #

colMaxIdx :: Ord a => [[a]] -> Int -> Int Source #

cycleMat :: [[a]] -> [[a]] Source #

bpMat' :: Int -> [[a]] -> [[a]] Source #

Another Block Partitioning

detMat :: (Eq a, Fractional a) => [[a]] -> a Source #

Determinant for Double List - Order ~ 4^n

invMat :: (Eq a, Fractional a) => [[a]] -> [[a]] Source #

Inverse for Double List - Order ~ n * 2^n

fd :: Eq a => a -> [a] -> Int Source #

Find First

sPermutations :: [a] -> [([a], Int)] Source #

elemPos :: [[a]] -> Int -> Int -> a Source #

prod :: Num a => ([[a]] -> Int -> Int -> a) -> [[a]] -> [Int] -> a Source #

sDeterminant :: Num a => ([[a]] -> Int -> Int -> a) -> [[a]] -> [([Int], Int)] -> a Source #

determinant :: Num a => [[a]] -> a Source #

permanent :: Num a => [[a]] -> a Source #