linpen.spad line 9 [edit on github]
Linear matrix pencil with multivariate coefficients.
p * U
column transformation ...
T * P
row transformation ...
p = q
entrywise equality.
addColumns!(p, i, j, alpha)
adds alpha*column(i
) to column(j
) in all matrices of the linear pencil p
.
addRows!(p, i, j, alpha)
adds alpha*row(i
) to row(j
) in all matrices of the linear pencil p
.
append(p, l)
appends l
matrices to the linear pencil.
append!(p, l)
appends l
matrices to the linear pencil.
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(p)
prints the linear pencil p
in list form.
copy(p)
returns a copy of the linear pencil p
.
diagonal(p, l)
returns the entries along the diagonal in a list.
diagonal?(p, l)
is the matrix l
diagonal?
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(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(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(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(lst_eqn)
calls eliminationSolve(lst_eqn
, [0,1], []).
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(eqn, lst_val)
computes all solutions of equation eqn
by trying the values of lst_val for undetermined variables.
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(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(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(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(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(p, i, j, l)
returns the element (i
,j
) in matrix l
of the linear pencil p
.
elt(p, i, j)
returns the elements (i
,j
) from the linear pencil p
as a list.
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(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(p)
returns the left identity matrix.
matrix(p, l)
returns matrix l
in the linear pencil p
.
multiplyColumn!(p, j, alphat)
multiplies column(j
) by alpha.
multiplyRow!(p, i, alpha)
multiplies row(i
) by alpha.
ncols(p)
returns the number of columns.
nelem(p)
returns the number of elements.
nrows(p)
returns the number of rows.
addColumns!(p, i, j, alpha)
adds alpha*column(i
) to column(j
) in all matrices of the linear pencil p
. (no index check)
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(p, off)
returns a list of column indices for nozero elements for every row starting at the specified offset. (no range check)
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(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(p, k_min, k_max, l)
returns the entries along the diagonal between k_min
and k_max
. (no range check)
qdiagonal?(p, k_min, k_max, l)
is the matrix l
diagonal between k_min
and k_max? (no range check)
elt(p, i, j, l)
returns the element (i
,j
) in matrix l
of the linear pencil p
(no index-check).
elt(p, i, j)
returns the elements (i
,j
) from the linear pencil p
as a list (no check).
qequal?(p, pos_p, q, pos_q, offset)
checks, if the matrices are equal starting at offset.
multiplyColumn!(p, j, alphat)
multiplies column(j
) by alpha.
qmultiplyRow!(p, i, alpha)
multiplies row(i
) by alpha. (no index check)
qnew(m, n, l)
creates an empty linear pencil with l
matrices with m
rows and n
columns.
qnilpotent?(p, k_min, k_max, l)
ist the matrix l
nilpotent with respect to the specified block? (no range check)
qrowIndices(p, off)
returns a list of row indices for nonzero elements for every column starting at the specified offset. (no range check)
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(p, off, j, l)
returns a list of row indices for nozero elements in column j
in matrix l
(no range check)
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?(p, i_min, i_max, j_min, j_max, l)
checks, if the specified submatrix is zero except for matrix l
(no index check).
qselelt!(p, i, j, l, alpha)
sets the element (i
,j
) in matrix l
of the linear pencil p
to alpha.
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!(p, i, j)
exchanges columns i
and j
in all matrices of the linear pencil p
(no index check)
qswapRows!(p, i, j)
exchanges rows i
and j
in all matrices of the linear pencil p
(no index check).
quppertriangular?(p, k_min, k_max, l)
is the matrix l
upper triangular with respect to the specified block? (no range check)
qzero?(p, i, j)
checks if all the entries (i
,j
) of the linear pencil p
are zero. (no index check)
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?(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(p, lst_row, lst_col)
returns a new pencil with submatrices specified by the complement of the list of rows and columns.
rightIdentity(p)
returns the right identity matrix.
selelt!(p, i, j, l, alpha)
sets the element (i
,j
) in matrix l
of the linear pencil p
to alpha.
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!(p, i, j, l, a)
sets the matrix a into the matrix l
of p
in position (i
,j
).
setsubPencil!(p, i, j, q)
sets the matrices of pencil q
into the matrices of p
in position (i
,j
).
subMatrix(p, r_min, r_max, c_min, c_max, l)
returns the specified submatrix l
of the linear pencil p
.
subPencil(p, lst_row, lst_col)
returns a pencil with submatrices specified by a list of rows and columns.
subPencil(p, r_min, r_max, c_min, c_max)
returns a pencil with the specified submatrices.
swapColumns!(p, i, j)
exchanges columns i
and j
in all matrices of the linear pencil p
.
swapRows!(p, i, j)
exchanges rows i
and j
in all matrices of the linear pencil p
.
transformColumns!(p, U)
multiplies the matrices of the linear pencil from the right by U
.
transformRows!(p, T)
multiplies the matrices of the linear pencil from the left by T
.
uppertriangular?(p, l)
is the matrix l
upper triangular?
zero?(p, i, j)
checks if all the entries (i
,j
) of the linear pencil p
are zero.