LinearMultivariateMatrixPencil(R)

linpen.spad line 9 [edit on github]

Linear matrix pencil with multivariate coefficients.

* : (%, Matrix(R)) -> %

p * U column transformation ...

* : (Matrix(R), %) -> %

T * P row transformation ...

= : (%, %) -> Boolean

p = q entrywise equality.

addColumns! : (%, NonNegativeInteger, NonNegativeInteger, R) -> %

addColumns!(p, i, j, alpha) adds alpha*column(i) to column(j) in all matrices of the linear pencil p.

addRows! : (%, NonNegativeInteger, NonNegativeInteger, R) -> %

addRows!(p, i, j, alpha) adds alpha*row(i) to row(j) in all matrices of the linear pencil p.

append : (%, NonNegativeInteger) -> %

append(p, l) appends l matrices to the linear pencil.

append! : (%, NonNegativeInteger) -> %

append!(p, l) appends l matrices to the linear pencil.

blockElimination : (%, List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger)) -> List(Matrix(R)) if R has Field

blockElimination(p, rsrc, rdst, rext, csrc, cdst, cext) r___ rows, c___ columns _src source, _dst destination, _ext extra (zeros) Uses a linear system of equations to determine row and column transformation matrices to eliminate the entries in rdst+rext times cdst+cext and returns an empty list if there is no solution.

coerce : % -> OutputForm

coerce(p) prints the linear pencil p in list form.

copy : % -> %

copy(p) returns a copy of the linear pencil p.

diagonal : (%, NonNegativeInteger) -> List(R)

diagonal(p, l) returns the entries along the diagonal in a list.

diagonal? : (%, NonNegativeInteger) -> Boolean

diagonal?(p, l) is the matrix l diagonal?

eliminationEquations : (%, List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger)) -> List(Matrix(Polynomial(R))) if R has Field

eliminationEquations(p, row_P, col_P, row_Q, col_Q, rdst, cdst) returns a list of matrices with equations to eliminate the entries in rows/columns rdst/cdst.

eliminationEquations : (%, List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger)) -> List(Matrix(Polynomial(R))) if R has Field

eliminationEquations(p, row_P, col_P, row_Q, col_Q, rdst, cdst, rex1, cex1, rex2, cex2) returns a list of matrices with equations to eliminate the entries in rows/columns rdst/cdst, rex1/cex1 and rex2/cex2.

eliminationEquations : (%, List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger)) -> List(Polynomial(R)) if R has Field

eliminationEquations(p, row_P, col_P, row_Q, col_Q, rdst, cdst, rex1, cex1, rex2, cex2) returns a list of equations with equations to eliminate the entries in rows/columns rdst/cdst, rex1/cex1 and rex2/cex2, including det(P)-1 and det(Q)-1.

eliminationGroebner : (%, List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger)) -> List(Polynomial(R)) if R has Field

eliminationGroebner(p, row_P, col_P, row_Q, col_Q, rdst, cdst, rex1, cex1, rex2, cex2) computes a Groebner--Shirshov basis for the ideal generated by the equations from eliminationEquations(...) using the domain DistributedMultivariatePolynomial.

eliminationSolve : List(Polynomial(R)) -> List(List(Equation(Polynomial(R)))) if R has Field

eliminationSolve(lst_eqn) calls eliminationSolve(lst_eqn, [0,1], []).

eliminationSolve : (List(Polynomial(R)), List(R), List(List(Equation(Polynomial(R))))) -> List(List(Equation(Polynomial(R)))) if R has Field

eliminationSolve(lst_eqn, lst_val, lst_sub) computes all solutions of the first equation of lst_eqn by trying the values of lst_val for undetermined variables with respect to given subsolutions lst_sub and return those which fulfill all other equations in lst_eqn.

eliminationSolve : (Polynomial(R), List(R)) -> List(List(Equation(Polynomial(R)))) if R has Field

eliminationSolve(eqn, lst_val) computes all solutions of equation eqn by trying the values of lst_val for undetermined variables.

eliminationSolve : (Polynomial(R), List(R), List(Equation(Polynomial(R)))) -> List(List(Equation(Polynomial(R)))) if R has Field

eliminationSolve(eqn, lst_val, sub) computes all solutions of equation eqn by trying the values of lst_val for undetermined variables with respect to given subsolution sub.

eliminationSolve : (Polynomial(R), List(R), List(List(Equation(Polynomial(R))))) -> List(List(Equation(Polynomial(R)))) if R has Field

eliminationSolve(eqn, lst_val, lst_sub) computes all solutions of equation eqn by trying the values of lst_val for undetermined variables with respect to given subsolutions lst_sub.

eliminationTransformations : (%, List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(Equation(Polynomial(R)))) -> List(Matrix(R)) if R has Field

eliminationTransformations(p, row_P, col_P, row_Q, col_Q, sol) Uses eval to set the values in sol into the variables in the transformation matrices.

eliminationTransformations : (%, List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger), List(NonNegativeInteger)) -> List(Matrix(Polynomial(R))) if R has Field

eliminationTransformations(p, row_P, col_P, row_Q, col_Q) returns a pair of transformation matrices with commutative variables 'a[i] in rows/columns row_P/col_P respectively 'b[i] in rows/columns row_Q/col_Q.

eliminationTransformations : (%, List(NonNegativeInteger), List(NonNegativeInteger), Symbol, List(NonNegativeInteger), List(NonNegativeInteger), Symbol) -> List(Matrix(Polynomial(R))) if R has Field

eliminationTransformations(p, row_P, col_P, sym_P, row_Q, col_Q, sym_Q) returns a pair of transformation matrices with commutative variables sym_P[i] in rows/columns row_P/col_P respectively sym_Q[i] in rows/columns row_Q/col_Q.

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

elt(p, i, j, l) returns the element (i,j) in matrix l of the linear pencil p.

elt : (%, NonNegativeInteger, NonNegativeInteger) -> List(R)

elt(p, i, j) returns the elements (i,j) from the linear pencil p as a list.

equal? : (%, List(NonNegativeInteger), %, List(NonNegativeInteger)) -> Boolean

equal?(p, pos_p, q, pos_q) checks, if the matrices pos_p in p are equal to the pos_q in q. Not specified matrices have to be zero.

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

insertRowsColumns(p, lst_row, lst_col) returns a new pencil with additional rows and columns after the specified indices. addRowsColumns(p, [0,0,1], [0,0,3]) would insert 2 rows and columns at the beginning an one row and column between rows 1 and 2 and columns 3 and 4 respectively.

leftIdentity : % -> Matrix(R)

leftIdentity(p) returns the left identity matrix.

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

matrix(p, l) returns matrix l in the linear pencil p.

multiplyColumn! : (%, NonNegativeInteger, R) -> %

multiplyColumn!(p, j, alphat) multiplies column(j) by alpha.

multiplyRow! : (%, NonNegativeInteger, R) -> %

multiplyRow!(p, i, alpha) multiplies row(i) by alpha.

ncols : % -> NonNegativeInteger

ncols(p) returns the number of columns.

nelem : % -> NonNegativeInteger

nelem(p) returns the number of elements.

nrows : % -> NonNegativeInteger

nrows(p) returns the number of rows.

qaddColumns! : (%, NonNegativeInteger, NonNegativeInteger, R) -> %

addColumns!(p, i, j, alpha) adds alpha*column(i) to column(j) in all matrices of the linear pencil p. (no index check)

qaddRows! : (%, NonNegativeInteger, NonNegativeInteger, R) -> %

qaddRows!(p, i, j, alpha) adds alpha*row(i) to row(j) in all matrices of the linear pencil p (no index check). (no index check)

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

qcolumnIndices(p, off) returns a list of column indices for nozero elements for every row starting at the specified offset. (no range check)

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

qcolumnIndices(p, off, l) returns a list of column indices for nonzero elements in matrix l for every row starting at the specified offset. (no range check)

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

qcolumnIndices(p, off, i, l) returns a list of column indices for nonzero elements in the specified row of matrix l for starting at the specified offset. (no range check)

qdiagonal : (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> List(R)

qdiagonal(p, k_min, k_max, l) returns the entries along the diagonal between k_min and k_max. (no range check)

qdiagonal? : (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Boolean

qdiagonal?(p, k_min, k_max, l) is the matrix l diagonal between k_min and k_max? (no range check)

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

elt(p, i, j, l) returns the element (i,j) in matrix l of the linear pencil p (no index-check).

qelt : (%, NonNegativeInteger, NonNegativeInteger) -> List(R)

elt(p, i, j) returns the elements (i,j) from the linear pencil p as a list (no check).

qequal? : (%, List(NonNegativeInteger), %, List(NonNegativeInteger), NonNegativeInteger) -> Boolean

qequal?(p, pos_p, q, pos_q, offset) checks, if the matrices are equal starting at offset.

qmultiplyColumn! : (%, NonNegativeInteger, R) -> %

multiplyColumn!(p, j, alphat) multiplies column(j) by alpha.

qmultiplyRow! : (%, NonNegativeInteger, R) -> %

qmultiplyRow!(p, i, alpha) multiplies row(i) by alpha. (no index check)

qnew : (NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> %

qnew(m, n, l) creates an empty linear pencil with l matrices with m rows and n columns.

qnilpotent? : (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Boolean

qnilpotent?(p, k_min, k_max, l) ist the matrix l nilpotent with respect to the specified block? (no range check)

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

qrowIndices(p, off) returns a list of row indices for nonzero elements for every column starting at the specified offset. (no range check)

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

qrowIndices(p, off, l) returns a list of row indices for nonzero elements in matrix l for every column starting at the specified offset. (no range check)

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

qrowIndices(p, off, j, l) returns a list of row indices for nozero elements in column j in matrix l (no range check)

qscaleBlock! : (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, R) -> %

qscalesubMatrix!(p, i_min, i_max, j_min, j_max, l, alpha) multiplies the entries in the specified block of matrix l with alpha.

qsemizero? : (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Boolean

qsemizero?(p, i_min, i_max, j_min, j_max, l) checks, if the specified submatrix is zero except for matrix l (no index check).

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

qselelt!(p, i, j, l, alpha) sets the element (i,j) in matrix l of the linear pencil p to alpha.

qsetelt! : (%, NonNegativeInteger, NonNegativeInteger, List(R)) -> List(R)

qsetelt!(p, i, j, lst) sets the element (i,j) in the matrices of the linear pencil p according to the elements in lst.

qswapColumns! : (%, NonNegativeInteger, NonNegativeInteger) -> %

qswapColumns!(p, i, j) exchanges columns i and j in all matrices of the linear pencil p (no index check)

qswapRows! : (%, NonNegativeInteger, NonNegativeInteger) -> %

qswapRows!(p, i, j) exchanges rows i and j in all matrices of the linear pencil p (no index check).

quppertriangular? : (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Boolean

quppertriangular?(p, k_min, k_max, l) is the matrix l upper triangular with respect to the specified block? (no range check)

qzero? : (%, NonNegativeInteger, NonNegativeInteger) -> Boolean

qzero?(p, i, j) checks if all the entries (i,j) of the linear pencil p are zero. (no index check)

qzero? : (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Boolean

qzero?(p, i_min, i_max, j_min, j_max) checks if the specified block of the linear pencil p is zero for all matrices. (no index check)

qzero? : (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Boolean

qzero?(p, i_min, i_max, j_min, j_max, l) checks if the specified block of matrix l of the linear pencil p is zero (no index check)

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

removeRowsColumns(p, lst_row, lst_col) returns a new pencil with submatrices specified by the complement of the list of rows and columns.

rightIdentity : % -> Matrix(R)

rightIdentity(p) returns the right identity matrix.

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

selelt!(p, i, j, l, alpha) sets the element (i,j) in matrix l of the linear pencil p to alpha.

setelt! : (%, NonNegativeInteger, NonNegativeInteger, List(R)) -> List(R)

setelt!(p, i, j, lst) sets the element (i,j) in the matrices of the linear pencil p according to the elements in lst.

setsubMatrix! : (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, Matrix(R)) -> Matrix(R)

setsubMatrix!(p, i, j, l, a) sets the matrix a into the matrix l of p in position (i,j).

setsubPencil! : (%, NonNegativeInteger, NonNegativeInteger, %) -> %

setsubPencil!(p, i, j, q) sets the matrices of pencil q into the matrices of p in position (i,j).

subMatrix : (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Matrix(R)

subMatrix(p, r_min, r_max, c_min, c_max, l) returns the specified submatrix l of the linear pencil p.

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

subPencil(p, lst_row, lst_col) returns a pencil with submatrices specified by a list of rows and columns.

subPencil : (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> %

subPencil(p, r_min, r_max, c_min, c_max) returns a pencil with the specified submatrices.

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

swapColumns!(p, i, j) exchanges columns i and j in all matrices of the linear pencil p.

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

swapRows!(p, i, j) exchanges rows i and j in all matrices of the linear pencil p.

transformColumns! : (%, Matrix(R)) -> %

transformColumns!(p, U) multiplies the matrices of the linear pencil from the right by U.

transformRows! : (%, Matrix(R)) -> %

transformRows!(p, T) multiplies the matrices of the linear pencil from the left by T.

uppertriangular? : (%, NonNegativeInteger) -> Boolean

uppertriangular?(p, l) is the matrix l upper triangular?

zero? : (%, NonNegativeInteger, NonNegativeInteger) -> Boolean

zero?(p, i, j) checks if all the entries (i,j) of the linear pencil p are zero.