MatrixCategory(R, Row, Col)¶
matcat.spad line 154 [edit on github]
- Row: FiniteLinearAggregate R 
- Col: FiniteLinearAggregate R 
MatrixCategory is a general matrix category which allows different representations and indexing schemes. Rows and columns may be extracted with rows returned as objects of type Row and columns returned as objects of type Col. A domain belonging to this category will be shallowly mutable. The index of the ‘first’ row may be obtained by calling the function minRowIndex. The index of the ‘first’ column may be obtained by calling the function minColIndex. The index of the first element of a Row is the same as the index of the first column in a matrix and vice versa.
- #: % -> NonNegativeInteger
- from Aggregate 
- *: (%, %) -> % if R has SemiRng
- from MatrixOperationsCategory(R, Row, Col) 
- *: (%, Col) -> Col if R has SemiRng
- x * cis the product of the matrix- xand the column vector- c. Error: if the dimensions are incompatible.
- *: (%, R) -> % if R has SemiRng
- from MatrixOperationsCategory(R, Row, Col) 
- *: (Integer, %) -> % if R has AbelianGroup
- from MatrixOperationsCategory(R, Row, Col) 
- *: (R, %) -> % if R has SemiRng
- from MatrixOperationsCategory(R, Row, Col) 
- *: (Row, %) -> Row if R has SemiRng
- r * xis the product of the row vector- rand the matrix- x. Error: if the dimensions are incompatible.
- +: (%, %) -> %
- from MatrixOperationsCategory(R, Row, Col) 
- -: % -> % if R has AbelianGroup
- from MatrixOperationsCategory(R, Row, Col) 
- -: (%, %) -> % if R has AbelianGroup
- from MatrixOperationsCategory(R, Row, Col) 
- /: (%, R) -> % if R has Field
- from MatrixOperationsCategory(R, Row, Col) 
- ^: (%, Integer) -> % if R has Field
- m^ncomputes an integral power of the matrix- m. Error: if matrix is not square or if the matrix is square but not invertible.
- ^: (%, NonNegativeInteger) -> % if R has Monoid and R has SemiRng
- x ^ ncomputes a non-negative integral power of the matrix- x. Error: if the matrix is not square.
- antisymmetric?: % -> Boolean if R has AbelianGroup
- from MatrixOperationsCategory(R, Row, Col) 
- any?: (R -> Boolean, %) -> Boolean
- from HomogeneousAggregate R 
- array2: List List R -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- blockConcat: List List % -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- blockSplit: (%, List NonNegativeInteger, List NonNegativeInteger) -> List List %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- blockSplit: (%, PositiveInteger, PositiveInteger) -> List List %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- coerce: % -> OutputForm
- from CoercibleTo OutputForm 
- coerce: Col -> %
- coerce(col)converts the column- colto a column matrix.
- colSlice: % -> Segment Integer
- from TwoDimensionalArrayCategory(R, Row, Col) 
- column: (%, Integer) -> Col
- from TwoDimensionalArrayCategory(R, Row, Col) 
- columnSpace: % -> List Col if R has EuclideanDomain
- from MatrixOperationsCategory(R, Row, Col) 
- count: (R -> Boolean, %) -> NonNegativeInteger
- from HomogeneousAggregate R 
- count: (R, %) -> NonNegativeInteger
- from HomogeneousAggregate R 
- determinant: % -> R if R has CommutativeRing
- determinant(m)returns the determinant of the matrix- m. Error: if the matrix is not square.
- diagonal?: % -> Boolean
- from MatrixOperationsCategory(R, Row, Col) 
- diagonalMatrix: List % -> %
- diagonalMatrix([m1, ..., mk])creates a block diagonal matrix- Mwith block matrices m1, …, mk down the diagonal, with 0 block matrices elsewhere. More precisely: if- ri := nrows mi,- ci := ncols mi, then- mis an (- r1+..- +rk) by (- c1+..- +ck) - matrix with entries- m.i.j = ml.(i-r1-..-r(l-1)).(j-n1-..-n(l-1)), if- (r1+..+r(l-1)) < i <= r1+..+rland- (c1+..+c(l-1)) < i <= c1+..+cl,- m.i.j= 0 otherwise.
- diagonalMatrix: List R -> %
- diagonalMatrix(l)returns a diagonal matrix with the elements of- lon the diagonal.
- elt: (%, Integer, Integer) -> R
- from TwoDimensionalArrayCategory(R, Row, Col) 
- elt: (%, Integer, Integer, R) -> R
- from TwoDimensionalArrayCategory(R, Row, Col) 
- elt: (%, Integer, List Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- elt: (%, Integer, List Segment Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- elt: (%, List Integer, Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- elt: (%, List Integer, List Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- elt: (%, List Integer, Segment Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- elt: (%, List Segment Integer, Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- elt: (%, List Segment Integer, List Segment Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- elt: (%, List Segment Integer, Segment Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- elt: (%, Segment Integer, List Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- elt: (%, Segment Integer, List Segment Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- elt: (%, Segment Integer, Segment Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- eval: (%, Equation R) -> % if R has Evalable R
- from Evalable R 
- eval: (%, List Equation R) -> % if R has Evalable R
- from Evalable R 
- eval: (%, List R, List R) -> % if R has Evalable R
- from InnerEvalable(R, R) 
- eval: (%, R, R) -> % if R has Evalable R
- from InnerEvalable(R, R) 
- every?: (R -> Boolean, %) -> Boolean
- from HomogeneousAggregate R 
- exquo: (%, R) -> Union(%, failed) if R has IntegralDomain
- from MatrixOperationsCategory(R, Row, Col) 
- fill!: (%, R) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- hash: % -> SingleInteger if R has Hashable
- from Hashable 
- hashUpdate!: (HashState, %) -> HashState if R has Hashable
- from Hashable 
- horizConcat: (%, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- horizConcat: List % -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- horizSplit: (%, List NonNegativeInteger) -> List %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- horizSplit: (%, PositiveInteger) -> List %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- inverse: % -> Union(%, failed) if R has Field
- inverse(m)returns the inverse of the matrix- m. If the matrix is not invertible, “failed” is returned. Error: if the matrix is not square.
- kronecker_prod1: (%, Integer, List List NonNegativeInteger, List %, NonNegativeInteger, NonNegativeInteger, Union(R, one)) -> Void
- Should be local but conditional. 
- kroneckerProduct: (%, %) -> % if R has SemiRng
- kroneckerProduct(a, b)calculates the Kronecker product of the matrices a and- b. This corresponds to tensor product of corresponding operators.
- kroneckerProduct: List % -> % if R has SemiRng
- kroneckerProduct([a1, a2, ..., an])calculates the Kronecker product of the matrices- a1,- a2, …, an. This corresponds to tensor product of corresponding operators.
- kroneckerSum: (%, %) -> %
- kroneckerSum(a, b)calculates the Kronecker sum of the matrices a and- b.
- kroneckerSum: List % -> %
- kroneckerSum([a1, a2, ..., an])calculates the Kronecker sum of the matrices- a1,- a2, …, an.
- latex: % -> String
- from SetCategory 
- less?: (%, NonNegativeInteger) -> Boolean
- from Aggregate 
- listOfLists: % -> List List R
- from TwoDimensionalArrayCategory(R, Row, Col) 
- map!: (R -> R, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- map: ((R, R) -> R, %, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- map: ((R, R) -> R, %, %, R) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- map: (R -> R, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- matrix: (NonNegativeInteger, NonNegativeInteger, (Integer, Integer) -> R) -> %
- matrix(n,m,f)constructs an- n * mmatrix with the- (i,j)entry equal to- f(i,j).
- matrix: List List R -> %
- matrix(l)converts the list of lists- lto a matrix, where the list of lists is viewed as a list of the rows of the matrix.
- max: % -> R if R has OrderedSet
- from HomogeneousAggregate R 
- max: ((R, R) -> Boolean, %) -> R
- from HomogeneousAggregate R 
- maxColIndex: % -> Integer
- from TwoDimensionalArrayCategory(R, Row, Col) 
- maxRowIndex: % -> Integer
- from TwoDimensionalArrayCategory(R, Row, Col) 
- member?: (R, %) -> Boolean
- from HomogeneousAggregate R 
- members: % -> List R
- from HomogeneousAggregate R 
- min: % -> R if R has OrderedSet
- from HomogeneousAggregate R 
- minColIndex: % -> Integer
- from TwoDimensionalArrayCategory(R, Row, Col) 
- minordet: % -> R if R has CommutativeRing
- minordet(m)computes the determinant of the matrix- musing minors. Error: if the matrix is not square.
- minRowIndex: % -> Integer
- from TwoDimensionalArrayCategory(R, Row, Col) 
- more?: (%, NonNegativeInteger) -> Boolean
- from Aggregate 
- ncols: % -> NonNegativeInteger
- from TwoDimensionalArrayCategory(R, Row, Col) 
- new: (NonNegativeInteger, NonNegativeInteger, R) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- nrows: % -> NonNegativeInteger
- from TwoDimensionalArrayCategory(R, Row, Col) 
- nullity: % -> NonNegativeInteger if R has IntegralDomain
- from MatrixOperationsCategory(R, Row, Col) 
- nullSpace: % -> List Col if R has IntegralDomain
- from MatrixOperationsCategory(R, Row, Col) 
- parts: % -> List R
- from TwoDimensionalArrayCategory(R, Row, Col) 
- Pfaffian: % -> R if R has CommutativeRing
- Pfaffian(m)returns the Pfaffian of the matrix- m. Error: if the matrix is not antisymmetric.
- positivePower: (%, Integer) -> % if R has SemiRng
- positivePower(x, n)computes a positive integral power of the matrix- x. Error: if the matrix is not square.
- qelt: (%, Integer, Integer) -> R
- from TwoDimensionalArrayCategory(R, Row, Col) 
- qnew: (NonNegativeInteger, NonNegativeInteger) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- qsetelt!: (%, Integer, Integer, R) -> R
- from TwoDimensionalArrayCategory(R, Row, Col) 
- rank: % -> NonNegativeInteger if R has IntegralDomain
- from MatrixOperationsCategory(R, Row, Col) 
- row: (%, Integer) -> Row
- from TwoDimensionalArrayCategory(R, Row, Col) 
- rowEchelon: % -> % if R has EuclideanDomain
- from MatrixOperationsCategory(R, Row, Col) 
- rowSlice: % -> Segment Integer
- from TwoDimensionalArrayCategory(R, Row, Col) 
- scalarMatrix: (NonNegativeInteger, R) -> %
- scalarMatrix(n, r)returns an- n-by-- nmatrix with- r- 'son the diagonal and zeroes elsewhere.
- setColumn!: (%, Integer, Col) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setelt!: (%, Integer, Integer, R) -> R
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setelt!: (%, Integer, List Integer, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setelt!: (%, Integer, List Segment Integer, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setelt!: (%, List Integer, Integer, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setelt!: (%, List Integer, List Integer, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setelt!: (%, List Integer, Segment Integer, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setelt!: (%, List Segment Integer, Integer, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setelt!: (%, List Segment Integer, List Segment Integer, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setelt!: (%, List Segment Integer, Segment Integer, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setelt!: (%, Segment Integer, List Integer, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setelt!: (%, Segment Integer, List Segment Integer, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setelt!: (%, Segment Integer, Segment Integer, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setRow!: (%, Integer, Row) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- setsubMatrix!: (%, Integer, Integer, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- size?: (%, NonNegativeInteger) -> Boolean
- from Aggregate 
- smaller?: (%, %) -> Boolean if R has Comparable
- from Comparable 
- square?: % -> Boolean
- from MatrixOperationsCategory(R, Row, Col) 
- squareTop: % -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- subMatrix: (%, Integer, Integer, Integer, Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- swapColumns!: (%, Integer, Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- swapRows!: (%, Integer, Integer) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- symmetric?: % -> Boolean
- from MatrixOperationsCategory(R, Row, Col) 
- transpose: % -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- transpose: Row -> %
- transpose(r)converts the row- rto a row matrix.
- vertConcat: (%, %) -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- vertConcat: List % -> %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- vertSplit: (%, List NonNegativeInteger) -> List %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- vertSplit: (%, PositiveInteger) -> List %
- from TwoDimensionalArrayCategory(R, Row, Col) 
- zero?: % -> Boolean
- from MatrixOperationsCategory(R, Row, Col) 
- zero: (NonNegativeInteger, NonNegativeInteger) -> %
- zero(m, n)returns an- m-by-- nzero matrix.
Comparable if R has Comparable
Evalable R if R has Evalable R
InnerEvalable(R, R) if R has Evalable R
MatrixOperationsCategory(R, Row, Col)
TwoDimensionalArrayCategory(R, Row, Col)