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 * c
is the product of the matrixx
and the column vectorc
. 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 * x
is the product of the row vectorr
and the matrixx
. 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^n
computes an integral power of the matrixm
. 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 ^ n
computes a non-negative integral power of the matrixx
. 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 columncol
to 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 matrixm
. Error: if the matrix is not square.
- diagonal?: % -> Boolean
from MatrixOperationsCategory(R, Row, Col)
- diagonalMatrix: List % -> %
diagonalMatrix([m1, ..., mk])
creates a block diagonal matrixM
with block matrices m1, …, mk down the diagonal, with 0 block matrices elsewhere. More precisely: ifri := nrows mi
,ci := ncols mi
, thenm
is an (r1+
..+rk
) by (c1+
..+ck
) - matrix with entriesm.i.j = ml.(i-r1-..-r(l-1)).(j-n1-..-n(l-1))
, if(r1+..+r(l-1)) < i <= r1+..+rl
and(c1+..+c(l-1)) < i <= c1+..+cl
,m.i.j
= 0 otherwise.
- diagonalMatrix: List R -> %
diagonalMatrix(l)
returns a diagonal matrix with the elements ofl
on 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 matrixm
. 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 andb
. This corresponds to tensor product of corresponding operators.
- kroneckerProduct: List % -> % if R has SemiRng
kroneckerProduct([a1, a2, ..., an])
calculates the Kronecker product of the matricesa1
,a2
, …, an. This corresponds to tensor product of corresponding operators.
- kroneckerSum: (%, %) -> %
kroneckerSum(a, b)
calculates the Kronecker sum of the matrices a andb
.
- kroneckerSum: List % -> %
kroneckerSum([a1, a2, ..., an])
calculates the Kronecker sum of the matricesa1
,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 ann * m
matrix with the(i,j)
entry equal tof(i,j)
.
- matrix: List List R -> %
matrix(l)
converts the list of listsl
to 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 matrixm
using 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 matrixm
. Error: if the matrix is not antisymmetric.
- positivePower: (%, Integer) -> % if R has SemiRng
positivePower(x, n)
computes a positive integral power of the matrixx
. 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 ann
-by-n
matrix withr
's
on 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 rowr
to 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 anm
-by-n
zero 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)