| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Math.Regression.Simple.LinAlg
Description
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 Doubles.
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 Doubles.
Also used to represent quadratic polynomial: V3 a b c \(= a x^2 + b x + c\).
3×3 matrix.