oalg-base-3.0.0.0: Algebraic structures on oriented entities and limits as a tool kit to solve algebraic problems.
Copyright(c) Erich Gut
LicenseBSD3
Maintainerzerich.gut@gmail.com
Safe HaskellNone
LanguageHaskell2010

OAlg.Entity.Matrix.Definition

Description

defintion of matrices over Distributive structures.

Synopsis

Matrix

data Matrix x Source #

matrix over Distributive structures.

Property Let Matrix rw cl xijs be in Matrix a for a Distributive structure a, then holds:

  1. rw and cl are valid.
  2. xijs is valid.
  3. For all (x,i,j) in xijs holds:

    1. x is not zero.
    2. orientation x == (cl ? j) :> (rw ? i).

Constructors

Matrix (Dim' x) (Dim' x) (Entries N N x) 

Instances

Instances details
TransformableGRefl Matrix Dst Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

TransformableGRefl Matrix DstX Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

TransformableG Matrix Dst Dst Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

tauG :: Struct Dst x -> Struct Dst (Matrix x) Source #

TransformableG Matrix DstX DstX Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

tauG :: Struct DstX x -> Struct DstX (Matrix x) Source #

Conic c => XStandardEligibleConeFactorG c Mlt 'Injective d 'Discrete n m (Matrix Z) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Conic c => XStandardEligibleConeFactorG c Mlt 'Projective d 'Discrete n m (Matrix Z) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(Conic c, Diagrammatic d) => XStandardEligibleConeG c Mlt p d 'Discrete n m (Matrix Z) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableDst s, TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s) => ApplicativeMorCo Id Matrix s o (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s) => ApplicativeMorCo Rt Matrix s o (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s) => ApplicativeMorCo Pnt Matrix s o (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableDst s, TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s) => FunctorialHomCo Id Matrix s o (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s) => FunctorialHomCo Rt Matrix s o (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s) => FunctorialHomCo Pnt Matrix s o (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

XStandardOrtSite 'From (Matrix Z) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

XStandardOrtSite 'To (Matrix Z) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableDst s, TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s) => ApplicativeG Id (MorCo Matrix s o) (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

amapG :: MorCo Matrix s o x y -> Id x -> Id y Source #

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s) => ApplicativeG Rt (MorCo Matrix s o) (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

amapG :: MorCo Matrix s o x y -> Rt x -> Rt y Source #

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s) => ApplicativeG Pnt (MorCo Matrix s o) (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

amapG :: MorCo Matrix s o x y -> Pnt x -> Pnt y Source #

Oriented x => Show (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

showsPrec :: Int -> Matrix x -> ShowS #

show :: Matrix x -> String #

showList :: [Matrix x] -> ShowS #

Oriented x => Eq (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

(==) :: Matrix x -> Matrix x -> Bool #

(/=) :: Matrix x -> Matrix x -> Bool #

(Oriented x, Ord x, OrdPoint x) => Ord (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

compare :: Matrix x -> Matrix x -> Ordering #

(<) :: Matrix x -> Matrix x -> Bool #

(<=) :: Matrix x -> Matrix x -> Bool #

(>) :: Matrix x -> Matrix x -> Bool #

(>=) :: Matrix x -> Matrix x -> Bool #

max :: Matrix x -> Matrix x -> Matrix x #

min :: Matrix x -> Matrix x -> Matrix x #

(Distributive x, TransposableDistributive x) => Transposable (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

transpose :: Matrix x -> Matrix x Source #

(Additive x, FibredOriented x) => Validable (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

valid :: Matrix x -> Statement Source #

XStandard (Matrix Z) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

xStandard :: X (Matrix Z) Source #

(Abelian x, FibredOriented x) => Abelian (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

negate :: Matrix x -> Matrix x Source #

(-) :: Matrix x -> Matrix x -> Matrix x Source #

ztimes :: Z -> Matrix x -> Matrix x Source #

(Additive x, FibredOriented x) => Additive (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

zero :: Root (Matrix x) -> Matrix x Source #

(+) :: Matrix x -> Matrix x -> Matrix x Source #

ntimes :: N -> Matrix x -> Matrix x Source #

Algebraic x => Algebraic (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Distributive x => Distributive (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(Distributive x, TransposableDistributive x) => TransposableDistributive (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(Additive x, FibredOriented x) => Fibred (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

root :: Matrix x -> Root (Matrix x) Source #

Oriented x => EqRoot (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Oriented x => ShowRoot (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(Typeable x, TypeablePoint x) => TypeableRoot (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Oriented x => ValidableRoot (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(Additive x, FibredOriented x) => FibredOriented (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Distributive x => Multiplicative (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

one :: Point (Matrix x) -> Matrix x Source #

(*) :: Matrix x -> Matrix x -> Matrix x Source #

npower :: Matrix x -> N -> Matrix x Source #

(Distributive x, TransposableDistributive x) => TransposableMultiplicative (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(Additive x, FibredOriented x) => Oriented (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(Distributive x, TransposableDistributive x) => TransposableOriented (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Oriented x => EqPoint (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Oriented x => ShowPoint (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(Typeable x, TypeablePoint x) => TypeablePoint (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Oriented x => ValidablePoint (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

XStandardPoint (Matrix Z) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(Distributive x, XStandardOrtOrientation x) => XStandardOrtOrientation (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

XStandardOrtSiteFrom (Matrix Z) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(Vectorial x, FibredOriented x) => Vectorial (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Associated Types

type Scalar (Matrix x) 
Instance details

Defined in OAlg.Entity.Matrix.Definition

type Scalar (Matrix x) = Scalar x

Methods

(!) :: Scalar (Matrix x) -> Matrix x -> Matrix x Source #

HomDistributiveDisjunctive h => ApplicativeG (SDualBi Matrix) h (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

amapG :: h x y -> SDualBi Matrix x -> SDualBi Matrix y Source #

(HomDistributiveDisjunctive h, FunctorialOriented h) => FunctorialG (SDualBi Matrix) h (->) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Oriented x => Opl (RowTrafo x) (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

Methods

(*>) :: RowTrafo x -> Matrix x -> Matrix x Source #

Oriented x => Opr (ColTrafo x) (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

Methods

(<*) :: Matrix x -> ColTrafo x -> Matrix x Source #

Distributive x => OrientedOpl (RowTrafo x) (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

Distributive x => OrientedOpr (ColTrafo x) (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

(DualisableDistributive s o, TransformableGRefl o s, TransformableGRefl Matrix s, TransformableDst s) => HomAdditive (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(DualisableDistributive s o, TransformableGRefl o s, TransformableGRefl Matrix s, TransformableDst s) => HomDistributiveDisjunctive (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s, TransformableDst s) => FunctorialFibred (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s, TransformableDst s) => HomFibred (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(DualisableDistributive s o, TransformableGRefl o s, TransformableGRefl Matrix s, TransformableDst s) => HomFibredOrientedDisjunctive (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(DualisableDistributive s o, TransformableGRefl o s, TransformableGRefl Matrix s, TransformableDst s) => HomMultiplicativeDisjunctive (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s, TransformableDst s) => FunctorialOriented (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(DualisableDistributive s o, TransformableGRefl o s, TransformableGRefl Matrix s, TransformableDst s) => HomOrientedDisjunctive (HomCo Matrix s o) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

type Dual1 Matrix Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

type Root (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

type Root (Matrix x) = Orientation (Dim' x)
type Point (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

type Point (Matrix x) = Dim' x
type Scalar (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

type Scalar (Matrix x) = Scalar x

rows :: Matrix x -> Dim' x Source #

row dimension.

cols :: Matrix x -> Dim' x Source #

column dimension.

mtxxs :: Matrix x -> Entries N N x Source #

the entries.

mtxRowCol :: Matrix x -> Row N (Col N x) Source #

viewing as a row of columns.

mtxColRow :: Matrix x -> Col N (Row N x) Source #

viewing as a column of rows.

mtxMap :: HomDistributive h => h x y -> Matrix x -> Matrix y Source #

mapping of Matrix.

mtxDensity :: Matrix x -> Maybe Q Source #

the density of the entries of a matrix, which is the number of the entries divided by the product of the number of its rows and columns.

Group

mtxGroupRow :: Distributive x => Matrix x -> Matrix (Matrix x) Source #

groups the rows with same row dimensions into a matrix of matrices with one column and n rows accordingly.

mtxGroupDim :: Distributive x => Dim' x -> Dim' (Matrix x) Source #

groups a formal product of points p 0 ^ r 0 * .. * p n ^ r n into a formal product of dimensions (dim [p 0] ^ r o) * .. * (dim [p n] ^ r n).

mtxJoin :: Oriented x => Matrix (Matrix x) -> Matrix x Source #

joining block matrices, i.e. matrices of matrices.

mtxJoinDim :: Oriented x => Dim' (Matrix x) -> Dim' x Source #

joining the dimension of matrices over x.

Construction

matrix :: (Additive x, p ~ Point x) => Dim x p -> Dim x p -> [(x, N, N)] -> Matrix x Source #

matrix with the given row and column number and the given entries for a Distributive structure.

Property Let m = matrix rw cl xis then holds

Pre
For all (x,i,j) in xijs holds: start x == cl ? j and end x == rw ? i.
Post
m is valid.

Note The given entries will be sorted, aggregated and zeros eliminated.

matrixTtl :: (Additive x, FibredOriented x, Total x) => N -> N -> [(x, N, N)] -> Matrix x Source #

matrix with the given row and column number and the given entries for a Total Distributive structure.

Property Let m = matrixTtl rws cls xis then holds

Pre
For all (_,i,j) in xijs holds: i < rws and j < cls.
Post
m is valid.

Note The given entries will be sorted, aggregated and zeros eliminated.

matrixBlc :: (Additive x, FibredOriented x) => [Dim' x] -> [Dim' x] -> [(Matrix x, N, N)] -> Matrix (Matrix x) Source #

block matrices as matrix of matrices.

diagonal :: Additive x => Dim' x -> Dim' x -> [x] -> Matrix x Source #

diagonal matrix with entries starting at the index 0 (see diagonal').

diagonal' :: Additive x => N -> Dim' x -> Dim' x -> [x] -> Matrix x Source #

diagonal matrix with entries starting at the given index offset.

Duality

mtxMapCov :: forall (h :: Type -> Type -> Type) x y. HomDistributiveDisjunctive h => Variant2 'Covariant h x y -> Matrix x -> Matrix y Source #

covariant mapping of Matrix.

mtxMapCnt :: forall (h :: Type -> Type -> Type) x y. HomDistributiveDisjunctive h => Variant2 'Contravariant h x y -> Matrix x -> Matrix y Source #

contravaraint mapping of Matrix.

isoCoMatrixOp :: Distributive x => Variant2 'Contravariant (IsoCo Matrix Dst Op) (Matrix x) (Matrix (Op x)) Source #

contravariant isomorphism between Matrix x and Matrix (Op x).

X

xMatrix :: Additive x => Q -> XOrtOrientation x -> X (Orientation (Point (Matrix x))) -> XOrtOrientation (Matrix x) Source #

random variable of matrices with the given maximal dimension and density.

xMatrixTtl :: (Distributive x, Total x) => N -> Q -> X x -> XOrtOrientation (Matrix x) Source #

random variable of matrices with the given maximal dimension and the given density.

Direction

xodZ :: XOrtOrientation (Matrix Z) Source #

a random variable of Z-matrices.

xodZZ :: XOrtOrientation (Matrix (Matrix Z)) Source #

a random variable of Z-bolck-matrices.