IndexedMatrix(R, mnRow, mnCol)

matrix.spad line 1 [edit on github]

An IndexedMatrix is a matrix where the minimal row and column indices are parameters of the type. The domains Row and Col are both IndexedVectors. 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 MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

*: (%, IndexedVector(R, mnRow)) -> IndexedVector(R, mnRow) if R has SemiRng

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

*: (%, R) -> % if R has SemiRng

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

*: (IndexedVector(R, mnCol), %) -> IndexedVector(R, mnCol) if R has SemiRng

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

*: (Integer, %) -> % if R has AbelianGroup

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

*: (R, %) -> % if R has SemiRng

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

+: (%, %) -> %

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

-: % -> % if R has AbelianGroup

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

-: (%, %) -> % if R has AbelianGroup

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

/: (%, R) -> % if R has Field

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

=: (%, %) -> Boolean

from BasicType

^: (%, Integer) -> % if R has Field

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

^: (%, NonNegativeInteger) -> % if R has Monoid and R has SemiRng

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

~=: (%, %) -> Boolean

from BasicType

antisymmetric?: % -> Boolean if R has AbelianGroup

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

any?: (R -> Boolean, %) -> Boolean

from HomogeneousAggregate R

blockConcat: List List % -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

blockSplit: (%, List NonNegativeInteger, List NonNegativeInteger) -> List List %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

blockSplit: (%, PositiveInteger, PositiveInteger) -> List List %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

coerce: % -> OutputForm

from CoercibleTo OutputForm

coerce: IndexedVector(R, mnRow) -> %

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

colSlice: % -> Segment Integer

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

column: (%, Integer) -> IndexedVector(R, mnRow)

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

columnSpace: % -> List IndexedVector(R, mnRow) if R has EuclideanDomain

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

copy: % -> %

from Aggregate

count: (R -> Boolean, %) -> NonNegativeInteger

from HomogeneousAggregate R

count: (R, %) -> NonNegativeInteger

from HomogeneousAggregate R

determinant: % -> R if R has CommutativeRing

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

diagonal?: % -> Boolean

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

diagonalMatrix: List % -> %

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

diagonalMatrix: List R -> %

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, Integer, Integer) -> R

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, Integer, Integer, R) -> R

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, Integer, List Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, Integer, List Segment Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, List Integer, Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, List Integer, List Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, List Integer, Segment Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, List Segment Integer, Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, List Segment Integer, List Segment Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, List Segment Integer, Segment Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, Segment Integer, List Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, Segment Integer, List Segment Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

elt: (%, Segment Integer, Segment Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

empty?: % -> Boolean

from Aggregate

empty: () -> %

from Aggregate

eq?: (%, %) -> Boolean

from Aggregate

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 MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

fill!: (%, R) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

hash: % -> SingleInteger

from SetCategory

hashUpdate!: (HashState, %) -> HashState

from SetCategory

horizConcat: (%, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

horizConcat: List % -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

horizSplit: (%, List NonNegativeInteger) -> List %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

horizSplit: (%, PositiveInteger) -> List %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

inverse: % -> Union(%, failed) if R has Field

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

kronecker_prod1: (%, Integer, List List NonNegativeInteger, List %, NonNegativeInteger, NonNegativeInteger, Union(R, one)) -> Void

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

kroneckerProduct: (%, %) -> % if R has SemiRng

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

kroneckerProduct: List % -> % if R has SemiRng

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

kroneckerSum: (%, %) -> %

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

kroneckerSum: List % -> %

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

latex: % -> String

from SetCategory

less?: (%, NonNegativeInteger) -> Boolean

from Aggregate

listOfLists: % -> List List R

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

map!: (R -> R, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

map: ((R, R) -> R, %, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

map: ((R, R) -> R, %, %, R) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

map: (R -> R, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

matrix: (NonNegativeInteger, NonNegativeInteger, (Integer, Integer) -> R) -> %

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

matrix: List List R -> %

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

max: % -> R if R has OrderedSet

from HomogeneousAggregate R

max: ((R, R) -> Boolean, %) -> R

from HomogeneousAggregate R

maxColIndex: % -> Integer

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

maxRowIndex: % -> Integer

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

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, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

minordet: % -> R if R has CommutativeRing

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

minRowIndex: % -> Integer

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

more?: (%, NonNegativeInteger) -> Boolean

from Aggregate

ncols: % -> NonNegativeInteger

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

new: (NonNegativeInteger, NonNegativeInteger, R) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

nrows: % -> NonNegativeInteger

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

nullity: % -> NonNegativeInteger if R has IntegralDomain

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

nullSpace: % -> List IndexedVector(R, mnRow) if R has IntegralDomain

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

parts: % -> List R

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

Pfaffian: % -> R if R has CommutativeRing

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

positivePower: (%, Integer) -> % if R has SemiRng

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

qelt: (%, Integer, Integer) -> R

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

qnew: (NonNegativeInteger, NonNegativeInteger) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

qsetelt!: (%, Integer, Integer, R) -> R

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

rank: % -> NonNegativeInteger if R has IntegralDomain

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

row: (%, Integer) -> IndexedVector(R, mnCol)

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

rowEchelon: % -> % if R has EuclideanDomain

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

rowSlice: % -> Segment Integer

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

sample: %

from Aggregate

scalarMatrix: (NonNegativeInteger, R) -> %

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setColumn!: (%, Integer, IndexedVector(R, mnRow)) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setelt!: (%, Integer, Integer, R) -> R

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setelt!: (%, Integer, List Integer, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setelt!: (%, Integer, List Segment Integer, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setelt!: (%, List Integer, Integer, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setelt!: (%, List Integer, List Integer, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setelt!: (%, List Integer, Segment Integer, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setelt!: (%, List Segment Integer, Integer, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setelt!: (%, List Segment Integer, List Segment Integer, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setelt!: (%, List Segment Integer, Segment Integer, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setelt!: (%, Segment Integer, List Integer, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setelt!: (%, Segment Integer, List Segment Integer, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setelt!: (%, Segment Integer, Segment Integer, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setRow!: (%, Integer, IndexedVector(R, mnCol)) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

setsubMatrix!: (%, Integer, Integer, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

size?: (%, NonNegativeInteger) -> Boolean

from Aggregate

smaller?: (%, %) -> Boolean if R has Comparable

from Comparable

square?: % -> Boolean

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

squareTop: % -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

subMatrix: (%, Integer, Integer, Integer, Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

swapColumns!: (%, Integer, Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

swapRows!: (%, Integer, Integer) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

symmetric?: % -> Boolean

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

transpose: % -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

transpose: IndexedVector(R, mnCol) -> %

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

vertConcat: (%, %) -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

vertConcat: List % -> %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

vertSplit: (%, List NonNegativeInteger) -> List %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

vertSplit: (%, PositiveInteger) -> List %

from TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

zero?: % -> Boolean

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

zero: (NonNegativeInteger, NonNegativeInteger) -> %

from MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

Aggregate

BasicType

CoercibleTo OutputForm

Comparable if R has Comparable

Evalable R if R has Evalable R

finiteAggregate

HomogeneousAggregate R

InnerEvalable(R, R) if R has Evalable R

MatrixCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))

SetCategory

shallowlyMutable

TwoDimensionalArrayCategory(R, IndexedVector(R, mnCol), IndexedVector(R, mnRow))