Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Minimil linear algebra lib.
Synopsis
- class Add a where
- class Eye a where
- eye :: a
- class Eye a => Mult a b c | a b -> c where
- mult :: a -> b -> c
- class Eye a => Det a where
- class Det a => Inv a where
- inv :: a -> a
- zerosLin :: V2 -> Double
- zerosQuad :: V3 -> Either (Complex Double, Complex Double) (Double, Double)
- optimaQuad :: V3 -> Double
- data V2 = V2 !Double !Double
- data M22 = M22 !Double !Double !Double !Double
- data SM22 = SM22 !Double !Double !Double
- data V3 = V3 !Double !Double !Double
- data M33 = M33 !Double !Double !Double !Double !Double !Double !Double !Double !Double
- data SM33 = SM33 !Double !Double !Double !Double !Double !Double
Operations
Addition
Identity
Instances
Eye M22 Source # | |
Defined in Math.Regression.Simple.LinAlg | |
Eye M33 Source # | |
Defined in Math.Regression.Simple.LinAlg | |
Eye SM22 Source # | |
Defined in Math.Regression.Simple.LinAlg | |
Eye SM33 Source # | |
Defined in Math.Regression.Simple.LinAlg | |
Eye Double Source # | |
Defined in Math.Regression.Simple.LinAlg |
class Eye a => Mult a b c | a b -> c where Source #
Multiplication of different things.
Instances
Mult M22 M22 M22 Source # |
|
Mult M22 V2 V2 Source # | |
Mult M33 V3 V3 Source # | |
Mult SM22 V2 V2 Source # | |
Mult SM33 V3 V3 Source # | |
Mult Double M22 M22 Source # | |
Mult Double M33 M33 Source # | |
Mult Double SM22 SM22 Source # | |
Mult Double SM33 SM33 Source # | |
Mult Double V2 V2 Source # | |
Mult Double V3 V3 Source # | |
Mult Double Double Double Source # | |
class Eye a => Det a where Source #
Determinant
class Det a => Inv a where Source #
Inverse
Zeros
zerosQuad :: V3 -> Either (Complex Double, Complex Double) (Double, Double) Source #
Solve quadratic equation.
>>>
zerosQuad (V3 2 0 (-1))
Right (-0.7071067811865476,0.7071067811865476)
>>>
zerosQuad (V3 2 0 1)
Left ((-0.0) :+ (-0.7071067811865476),(-0.0) :+ 0.7071067811865476)
Double root is not treated separately:
>>>
zerosQuad (V3 1 0 0)
Right (-0.0,0.0)
>>>
zerosQuad (V3 1 (-2) 1)
Right (1.0,1.0)
optimaQuad :: V3 -> Double Source #
Find an optima point.
>>>
optimaQuad (V3 1 (-2) 0)
1.0
compare to
>>>
zerosQuad (V3 1 (-2) 0)
Right (0.0,2.0)
Two dimensions
2d vector. Strict pair of Double
s.
Also used to represent linear polynomial: V2 a b
\(= a x + b\).
2×2 matrix.
Instances
Show M22 Source # | |
NFData M22 Source # | |
Defined in Math.Regression.Simple.LinAlg | |
Eq M22 Source # | |
Add M22 Source # | |
Det M22 Source # | |
Eye M22 Source # | |
Defined in Math.Regression.Simple.LinAlg | |
Inv M22 Source # | |
Mult M22 M22 M22 Source # |
|
Mult M22 V2 V2 Source # | |
Mult Double M22 M22 Source # | |
Symmetric 2x2 matrix.
Three dimensions
3d vector. Strict triple of Double
s.
Also used to represent quadratic polynomial: V3 a b c
\(= a x^2 + b x + c\).
3×3 matrix.