QEtaLinearReduction(C, F, grade, coefficient)ΒΆ
qetalinred.spad line 81 [edit on github]
F: QEtaAlgebra C
grade: F -> Integer
coefficient: (F, Integer) -> C
QEtaLinearReduction
- greaterGrade?: (F, F) -> Boolean
greaterGrade?(x, y)
returns grade(x
)>grade(y
).
- linearTransform: (List F, Matrix C -> Matrix C) -> List F
linearTransform(bas,trf)
returns linearTransform(bas
,trf
,0).
- linearTransform: (List F, Matrix C -> Matrix C, Integer) -> List F
linearTransform(bas,trf,mn)
considers the coefficients of the elements (highest grade down tomn
) as the rows of a matrix, attaches a unit matrix to the right-hand side and appliestrf
to that matrix. The recorded transformations steps on this matrix are then performed onbas
. By using linearTransform(bas
,rowEchelon) one can achieve a rowEcholon reduction ofbas
.
- reduce: (F, List F) -> F
reduce(u, bas)
returns an elementv
such that not(reducible?(u
,b
)) for anyb
in bas.
- reducible?: (F, F) -> Boolean
reducible?(u, b)
returnstrue
iff n=grade(b
) and not(zero?(coefficient(u
,n
))) and there existsf
inC
such that for v=u-f*b
, c=coefficient(u
,n
), and d=coefficient(v
,n
) zero?d
holds or euclideanSize(c
)>euclideanSize(d
).
- rowEchelon: List F -> List F
rowEchelon(bas)
returns linearTransform(bas
,rowEchelon$M
,0) whereM
==>
Matrix(C
).
- tailReduce: (F, List F) -> F
tailReduce(u,bas)
returns an elementv
such that grade(u
)=grade(v
) and not(reducible?(u
,b
)) for anyb
inbas
and n<grade(u
).
- topReduce: (F, List F) -> F
topReduce(u,bas)
returns an elementv
such that not(grade(u
)=grade(b
) and reducible?(u
,b
)) for anyb
inbas
.