-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Haskell Numeric Library with pure functionality, R & MATLAB Syntax. -- -- Please see the README on GitHub at -- https://github.com/Axect/HNumeric#readme @package HNumeric @version 0.3.2.0 module HNum.Vector newtype Vector a Vector :: [a] -> Vector a vector :: [a] -> Vector a vec :: [a] -> Vector a class List m toList :: List m => m a -> [a] fromList :: List m => [a] -> m a -- | Definition of Matrix data Matrix a Matrix :: Vector a -> Int -> Int -> Bool -> Matrix a [val] :: Matrix a -> Vector a [row] :: Matrix a -> Int [col] :: Matrix a -> Int [byRow] :: Matrix a -> Bool -- | matrix is syntactic sugar to create Matrix matrix :: [[a]] -> Matrix a -- | Matrices is necessary class for Matrix class Matrices m matForm :: Matrices m => m a -> [[a]] formMat :: Matrices m => [[a]] -> m a -- | (.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 class Functor f => VecOps f (.+) :: (VecOps f, Num a) => f a -> a -> f a (.-) :: (VecOps f, Num a) => f a -> a -> f a (.*) :: (VecOps f, Num a) => f a -> a -> f a (./) :: (VecOps f, Fractional a) => f a -> a -> f a (.^) :: (VecOps f, Floating a) => f a -> a -> f a (.*.) :: (VecOps f, Num a) => f a -> f a -> a norm :: (VecOps f, Floating a) => f a -> a class Functor f => MatOps f (%*%) :: (MatOps f, Num a) => f a -> f a -> f a (%/%) :: (MatOps f, Eq a, Fractional a) => f a -> f a -> f a det :: (MatOps f, Eq a, Fractional a) => f a -> a inv :: (MatOps f, Eq a, Fractional a) => f a -> f a transpose :: MatOps f => f a -> f a -- | Block Partitioning bp :: Int -> Matrix a -> Matrix a class Functor f => Concatable f hcat :: Concatable f => f a -> f a -> f a vcat :: Concatable f => f a -> f a -> Matrix a -- | (.:) inserts vector to head of matrix. (.:) :: Vector a -> Matrix a -> Matrix a -- | Quick Sort qsort :: Ord a => Vector a -> Vector a -- | Merge Sort msort :: Ord a => Vector a -> Vector a msort transposeMat :: [[a]] -> [[a]] indexMat :: [[a]] -> [[(Int, Int)]] dropAtMat :: Int -> Int -> [[a]] -> [[a]] postSplitAt :: () => ([a], [a]) -> [a] dropAt :: Int -> [a] -> [a] dropAtMat' :: Int -> [[a]] -> [[a]] bpMat :: Int -> [[a]] -> [[a]] (%-+-%) :: Num a => [[a]] -> [[a]] -> [[a]] negMap :: Num a => [[a]] -> [[a]] (%---%) :: Num a => [[a]] -> [[a]] -> [[a]] (%-*-%) :: Num a => [[a]] -> [[a]] -> [[a]] zerosVec :: Int -> [Int] eyeMat :: Int -> [[Int]] basisVec :: Int -> Int -> [Int] permMat :: Int -> Int -> [[a]] -> [[Int]] whichMax :: Ord a => [a] -> Int colMat :: [[a]] -> Int -> [a] colMaxIdx :: Ord a => [[a]] -> Int -> Int cycleMat :: [[a]] -> [[a]] -- | Another Block Partitioning bpMat' :: Int -> [[a]] -> [[a]] -- | Determinant for Double List - Order ~ 4^n detMat :: (Eq a, Fractional a) => [[a]] -> a -- | Inverse for Double List - Order ~ n * 2^n invMat :: (Eq a, Fractional a) => [[a]] -> [[a]] instance GHC.Classes.Eq a => GHC.Classes.Eq (HNum.Vector.Matrix a) instance GHC.Classes.Eq a => GHC.Classes.Eq (HNum.Vector.Vector a) instance GHC.Show.Show a => GHC.Show.Show (HNum.Vector.Vector a) instance HNum.Vector.Concatable HNum.Vector.Vector instance HNum.Vector.Concatable HNum.Vector.Matrix instance HNum.Vector.MatOps HNum.Vector.Matrix instance HNum.Vector.VecOps HNum.Vector.Vector instance HNum.Vector.VecOps HNum.Vector.Matrix instance HNum.Vector.Matrices HNum.Vector.Matrix instance GHC.Show.Show a => GHC.Show.Show (HNum.Vector.Matrix a) instance GHC.Base.Functor HNum.Vector.Matrix instance GHC.Base.Applicative HNum.Vector.Matrix instance GHC.Num.Num a => GHC.Num.Num (HNum.Vector.Matrix a) instance GHC.Real.Fractional a => GHC.Real.Fractional (HNum.Vector.Matrix a) instance GHC.Float.Floating a => GHC.Float.Floating (HNum.Vector.Matrix a) instance Data.Foldable.Foldable HNum.Vector.Matrix instance HNum.Vector.List HNum.Vector.Vector instance GHC.Base.Functor HNum.Vector.Vector instance GHC.Base.Applicative HNum.Vector.Vector instance GHC.Num.Num a => GHC.Num.Num (HNum.Vector.Vector a) instance GHC.Real.Fractional a => GHC.Real.Fractional (HNum.Vector.Vector a) instance GHC.Float.Floating a => GHC.Float.Floating (HNum.Vector.Vector a) instance Data.Foldable.Foldable HNum.Vector.Vector module HNum.CSV -- | Type Aliases for convenience type Header = [String] -- | DataFrame structure to write csv data DataFrame a DataFrame :: Header -> Matrix a -> DataFrame a [header] :: DataFrame a -> Header [dat] :: DataFrame a -> Matrix a -- | dataframe constructor dataframe :: Header -> Matrix a -> DataFrame a -- | dataframe from vectors fromVectors :: Header -> [Vector a] -> DataFrame a -- | Class to write csv file class Functor f => CSVtize f toString :: (CSVtize f, Show a) => f a -> String write :: (CSVtize f, Show a) => String -> f a -> IO () -- | Convenient cm :: [String] -> String instance GHC.Classes.Eq a => GHC.Classes.Eq (HNum.CSV.DataFrame a) instance GHC.Show.Show a => GHC.Show.Show (HNum.CSV.DataFrame a) instance HNum.CSV.CSVtize HNum.Vector.Vector instance HNum.CSV.CSVtize HNum.Vector.Matrix instance HNum.CSV.CSVtize HNum.CSV.DataFrame instance GHC.Base.Functor HNum.CSV.DataFrame module HNum.Stats -- | To contain coefficients of linear regression. type Coeff a = (a, a) -- | Factorial fac :: Integral a => a -> a -- | Factorial with start n,end s facStop :: Integral a => a -> a -> a -- | Permutation p :: Integral a => a -> a -> a -- | Combination using permutation c :: Integral a => a -> a -> a -- | Basic Statistics Class for Vector class VecOps v => Statistical v -- | Sample Mean mean :: (Statistical v, Fractional a) => v a -> a -- | Single Valued covariance cov' :: (Statistical v, Floating a) => v a -> v a -> a -- | Covariance Matrix cov :: (Statistical v, Floating a) => v a -> v a -> Matrix a -- | Sample Variance var :: (Statistical v, Floating a) => v a -> a -- | Sample Standard deviation std :: (Statistical v, Floating a) => v a -> a -- | Standard Error se :: (Statistical v, Floating a) => v a -> a -- | Correlation Coefficient cor :: (Statistical v, Floating a) => v a -> v a -> a -- | Median med :: (Statistical v, Ord a, Floating a) => v a -> a -- | Mode mode :: (Statistical v, Eq a) => v a -> a -- | Coefficient of Variation cv :: (Statistical v, Floating a) => v a -> a -- | Moment moment :: (Statistical v, Floating a) => a -> v a -> a -- | Skewness skew :: (Statistical v, Floating a) => v a -> a -- | Skewness 2 skew' :: (Statistical v, Floating a) => v a -> a -- | kurtosis kurt :: (Statistical v, Floating a) => v a -> a summary :: (Show a, Floating a) => DataFrame a -> IO () describe :: (Show a, Floating a, Ord a) => Vector a -> IO () -- | Least Square Method - (Intercept, Slope) lm :: Floating a => Vector a -> Vector a -> Coeff a -- | Line Fitting with (Intercept, Slope) & Range of x lineFit :: Floating a => Coeff a -> Vector a -> Vector a -- | Residual Sum of Squares rss :: Floating a => Vector a -> Vector a -> a -- | Relative Standard Error rse :: Floating a => Vector a -> Vector a -> a -- | Count Elements count :: Eq a => a -> [a] -> Int instance HNum.Stats.Statistical HNum.Vector.Vector