LinearMultivariateMatrixPencil R

linpen.spad line 9 [edit on github]

Author: Konrad Schrempf <schrempf@math.tugraz.at> Date Created: Mit 2016-02-03 17:20 Date Changed: Sam 2018-09-01 10:37 Basic Functions: Related Constructors: Matrix Also See: FreeDivisionAlgebra AMS Classifications: Keywords: References: Description:

*: (%, 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) -> Boolean

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

diagonal: (%, NonNegativeInteger) -> List R

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

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 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.

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

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

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, 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, 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) -> List R

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

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

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

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 spacified 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) -> Boolean

qdiagonal?(p, k_min, k_max, l) is the matrix l diagonal between k_min and k_max? (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)

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

elt(p, i, j) returns the elements (i,j) from the linear pencil p as a list (no 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).

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, 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.

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.

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, 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.

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.

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.