-- 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.5.0.2
module HNum.F
-- | Functional Programming Tools for HNum Object
class Functor f => FuncTools f
-- | Absolute Abstraction with Scalar Function
hflat :: FuncTools f => ([a] -> a) -> f a -> a
-- | Absolute Abstraction with Vector Function
hlift :: FuncTools f => ([a] -> [b]) -> f a -> f b
-- | Like map
hmap :: FuncTools f => (a -> b) -> f a -> f b
-- | Like filter
hfilter :: FuncTools f => (a -> Bool) -> f a -> f a
-- | Like take
htake :: FuncTools f => Int -> f a -> f a
-- | Like takeWhile
htakeWhile :: FuncTools f => (a -> Bool) -> f a -> f a
-- | Like drop
hdrop :: FuncTools f => Int -> f a -> f a
-- | Like dropWhile
hdropWhile :: FuncTools f => (a -> Bool) -> f a -> f a
module HNum.Vector
newtype Vector a
Vector :: [a] -> Vector a
vector :: [a] -> Vector a
vec :: [a] -> Vector a
class List m
-- | to List
toList :: List m => m a -> [a]
-- | From List
fromList :: List m => [a] -> m a
-- | Extract Element
(.!) :: List m => m a -> Int -> a
-- | Find Position of Element
findFirst :: (List m, Eq a) => a -> m a -> Int
-- | 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
-- | Matrix to Array
matForm :: Matrices m => m a -> [[a]]
-- | Array to Matrix
formMat :: Matrices m => [[a]] -> m a
-- | Syntactic Sugar of read of functor
class Functor f => Convertable f
-- | Read String to Int
readInt :: Convertable f => f String -> f Int
-- | Read String to Integer
readInteger :: Convertable f => f String -> f Integer
-- | Read String to Double
readDouble :: Convertable f => f String -> f Double
-- | (.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
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]]
-- | Find First
fd :: Eq a => a -> [a] -> Int
sPermutations :: [a] -> [([a], Int)]
elemPos :: [[a]] -> Int -> Int -> a
prod :: Num a => ([[a]] -> Int -> Int -> a) -> [[a]] -> [Int] -> a
sDeterminant :: Num a => ([[a]] -> Int -> Int -> a) -> [[a]] -> [([Int], Int)] -> a
determinant :: Num a => [[a]] -> a
permanent :: Num 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.Convertable HNum.Vector.Vector
instance HNum.Vector.Convertable HNum.Vector.Matrix
instance HNum.Vector.Matrices HNum.Vector.Matrix
instance GHC.Show.Show a => GHC.Show.Show (HNum.Vector.Matrix a)
instance HNum.F.FuncTools HNum.Vector.Matrix
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 HNum.F.FuncTools 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.Special
class FuncTools f => SpecialFunc f
erf :: (SpecialFunc f, Real a) => f a -> f Double
invErf :: (SpecialFunc f, Real a) => f a -> f Double
instance HNum.Special.SpecialFunc 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
-- | Row Based
[dat] :: DataFrame a -> Matrix a
-- | dataframe constructor
dataframe :: Header -> Matrix a -> DataFrame a
-- | dataframe from vectors
fromVectors :: Header -> [Vector a] -> DataFrame a
-- | Extract Vector in DataFrame
(#) :: Eq a => DataFrame a -> String -> Vector a
-- | Class to write csv file
class Functor f => Writable f
-- | Object to String (Different to Show)
toString :: (Writable f, Show a) => f a -> String
-- | Write as CSV
writeCSV :: (Writable f, Eq a, Show a) => String -> f a -> IO ()
-- | From CSV to DataFrame
readCSV :: String -> IO (DataFrame String)
-- | Split With Seperator
splitWith :: Char -> String -> [String]
-- | Remove Quotation Symbol
rmQuot :: 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.Writable HNum.Vector.Vector
instance HNum.CSV.Writable HNum.Vector.Matrix
instance HNum.CSV.Writable HNum.CSV.DataFrame
instance GHC.Base.Functor HNum.CSV.DataFrame
instance HNum.Vector.Convertable 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
-- | Simple Moving Average
sma :: Fractional a => Int -> Vector a -> Vector a
-- | Count Elements
count :: Eq a => a -> [a] -> Int
instance HNum.Stats.Statistical HNum.Vector.Vector