Examples
-
User documentation
Let M denote a matrix.
Let z denote an indeterminate in a polynomial ring.
RingElem MinPoly(ConstMatrixView M, ConstRefRingElem z);
the minimal polynomial (in z) of M.
Let P denote a SparsePolyRing over Z/(p) or QQ.
Let I denote an ideal in P.
Let f denote an element of P.
Let fbar denote an element of P/I.
Let f denote an element of P.
Let NumChecks denote a VerificationLevel.
RingElem MinPoly(fbar, z)-- the minimal polynomial (inz) offbar.RingElem MinPolyQuot(f, I, z, NumChecks)-- the minimal polynomial (inz) offmoduloI. Uses modular computation andMinPolyQuotDef. The modular computation is verified overNumChecksnew primes. ForNumChecks=0 there is full verification overQQ.RingElem MinPolyQuot(f, I, z)-- same as MinPolyQuot(f,I,z, 0)RingElem MinPolyQuotMat(ConstRefRingElem f, const ideal& I, ConstRefRingElem z); RingElem MinPolyQuotDef(ConstRefRingElem f, const ideal& I, ConstRefRingElem z); RingElem MinPolyQuotDefLin(ConstRefRingElem f, const ideal& I, ConstRefRingElem z); RingElem MinPolyQuotElim(ConstRefRingElem f, const ideal& I, ConstRefRingElem z); RingElem MinPolyMat(ConstRefRingElem fbar, ConstRefRingElem z); RingElem MinPolyDef(ConstRefRingElem fbar, ConstRefRingElem z); RingElem MinPolyElim(ConstRefRingElem fbar, ConstRefRingElem z);
specific implementations (not modular: computation actually inQQif coeff are inQQ) See article Abbott, Bigatti, Palezzato, Robbiano "Computing and Using Minimal Polynomials" ("https://arxiv.org/abs/1702.07262")matrix FrobeniusMat(const ideal& I); matrix FrobeniusMat(const ideal& I, const std::vector<PPMonoidElem>& QB2); std::vector<RingElem> ShapeLemma(const ideal& I);
Verbosity
"MinPolyQuot" uses modular methods when coefficients are in "QQ". At level 80 it lists all primes used indicating any which are "bad".
Maintainer documentation
Main changes
2018
- August (v0.99600):
- added documentation -