1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
-- also see comodule-doc.m2
-- also see packages/Saturation/quotient-doc.m2
document { Key => quotient, Headline => "quotient or division" }
document { Key => {(quotient, Matrix, GroebnerBasis), (quotient, Matrix, Matrix)},
Headline => "matrix quotient",
Usage => "q = quotient(f,g)",
Inputs => { "f" => Matrix, "g" => {ofClass{GroebnerBasis,Matrix}, ", with the same target as ", TT "f"}},
Outputs => {
"q" => {"the quotient of ", TT "f", " upon division by ", TT "g"}
},
"The equation ", TT "g*q+r == f", " will hold, where ", TT "r", " is the map provided by ", TO "remainder", ". The source of ", TT "f", " should be a free module.",
EXAMPLE lines ///
R = ZZ[x,y]
f = random(R^2,R^{2:-1})
g = vars R ++ vars R
quotient(f,g)
f = f + map(target f, source f, id_(R^2))
quotient(f,g)
///,
SeeAlso => {quotientRemainder,quotient'}
}
document { Key => {quotient',(quotient', Matrix, Matrix)},
Headline => "matrix quotient (opposite)",
Usage => "q = quotient'(f,g)",
Inputs => { "f" => Matrix, "g" => {ofClass{GroebnerBasis,Matrix}, ", with the same source as ", TT "f"}},
Outputs => {
"q" => {"the quotient of ", TT "f", " upon (opposite) division by ", TT "g"},
},
"The equation ", TT "q*g+r == f", " will hold, where ", TT "r", " is the map provided by ", TO "remainder'", " . The sources and targets of the maps should be free modules.
This function is obtained from ", TT "quotient", " by transposing the inputs and outputs.",
EXAMPLE lines ///
R = ZZ[x,y]
f = random(R^{2:1},R^2)
g = transpose (vars R ++ vars R)
quotient'(f,g)
f = f + map(target f, source f, id_(R^2))
quotient'(f,g)
///,
SeeAlso => {quotientRemainder,quotient},
SourceCode => {quotient'}
}
document { Key => {quotientRemainder,(quotientRemainder, Matrix, GroebnerBasis), (quotientRemainder, Matrix, Matrix)},
Headline => "matrix quotient and remainder",
Usage => "(q,r) = quotientRemainder(f,g)",
Inputs => { "f" => Matrix, "g" => {ofClass{GroebnerBasis,Matrix}, ", with the same target as ", TT "f"}},
Outputs => {
"q" => {"the quotient of ", TT "f", " upon division by ", TT "g"},
"r" => {"the remainder of ", TT "f", " upon division by ", TT "g"}
},
"The equation ", TT "g*q+r == f", " will hold. The source of ", TT "f", " should be a free module.",
EXAMPLE lines ///
R = ZZ[x,y]
f = random(R^2,R^{2:-1})
g = vars R ++ vars R
(q,r) = quotientRemainder(f,g)
g*q+r == f
f = f + map(target f, source f, id_(R^2))
(q,r) = quotientRemainder(f,g)
g*q+r == f
///,
SeeAlso => {quotientRemainder'}
}
document { Key => {quotientRemainder',(quotientRemainder', Matrix, Matrix)},
Headline => "matrix quotient and remainder (opposite)",
Usage => "(q,r) = quotientRemainder'(f,g)",
Inputs => { "f" => Matrix, "g" => {ofClass{GroebnerBasis,Matrix}, ", with the same source as ", TT "f"}},
Outputs => {
"q" => {"the quotient of ", TT "f", " upon (opposite) division by ", TT "g"},
"r" => {"the remainder of ", TT "f", " upon (opposite) division by ", TT "g"}
},
"The equation ", TT "q*g+r == f", " will hold. The sources and targets of the maps should be free modules.
This function is obtained from ", TT "quotientRemainder", " by transposing the inputs and outputs.",
EXAMPLE lines ///
R = ZZ[x,y]
f = random(R^{2:1},R^2)
g = transpose (vars R ++ vars R)
(q,r) = quotientRemainder'(f,g)
q*g+r == f
f = f + map(target f, source f, id_(R^2))
(q,r) = quotientRemainder'(f,g)
q*g+r == f
///,
SeeAlso => {quotientRemainder},
SourceCode => {quotientRemainder'}
}
document { Key => {remainder,(remainder, Matrix, GroebnerBasis), (remainder, Matrix, Matrix)},
Headline => "matrix remainder",
Usage => "r = remainder(f,g)",
Inputs => { "f" => Matrix, "g" => {ofClass{GroebnerBasis,Matrix}, ", with the same target as ", TT "f"}},
Outputs => {
"r" => {"the remainder of ", TT "f", " upon division by ", TT "g"}
},
PARA{"This operation is the same as ", TO (symbol %, Matrix, GroebnerBasis), "."},
PARA{"The equation ", TT "g*q+r == f", " will hold, where ", TT "q", " is the map provided by ", TO "quotient", ". The source of ", TT "f", " should be a free module."},
EXAMPLE lines ///
R = ZZ[x,y]
f = random(R^2,R^{2:-1})
g = vars R ++ vars R
remainder(f,g)
f = f + map(target f, source f, id_(R^2))
remainder(f,g)
///,
SeeAlso => {quotientRemainder,remainder'}
}
document { Key => {remainder',(remainder', Matrix, Matrix)},
Headline => "matrix quotient and remainder (opposite)",
Usage => "r = remainder'(f,g)",
Inputs => { "f" => Matrix, "g" => {ofClass{GroebnerBasis,Matrix}, ", with the same source as ", TT "f"}},
Outputs => {
"r" => {"the remainder of ", TT "f", " upon (opposite) division by ", TT "g"}
},
"The equation ", TT "q*g+r == f", " will hold, where ", TT "q", " is the map provided by ", TO "quotient'", ". The sources and targets of the maps should be free modules.
This function is obtained from ", TT "remainder", " by transposing the inputs and outputs.",
EXAMPLE lines ///
R = ZZ[x,y]
f = random(R^{2:1},R^2)
g = transpose (vars R ++ vars R)
remainder'(f,g)
f = f + map(target f, source f, id_(R^2))
remainder'(f,g)
///,
SeeAlso => {quotientRemainder,remainder},
SourceCode => {remainder'}
}
|