diff options
author | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
commit | ab8cc85adde879fb963c94d15675783f2cf4b183 (patch) | |
tree | c202482327f474583b750b2c45dedfc4e4312b1d /src/algebra/ratfact.spad.pamphlet | |
download | open-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz |
Initial population.
Diffstat (limited to 'src/algebra/ratfact.spad.pamphlet')
-rw-r--r-- | src/algebra/ratfact.spad.pamphlet | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/src/algebra/ratfact.spad.pamphlet b/src/algebra/ratfact.spad.pamphlet new file mode 100644 index 00000000..68a83a3f --- /dev/null +++ b/src/algebra/ratfact.spad.pamphlet @@ -0,0 +1,113 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/algebra ratfact.spad} +\author{Patrizia Gianni} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{package RATFACT RationalFactorize} +<<package RATFACT RationalFactorize>>= +)abbrev package RATFACT RationalFactorize +++ Author: P. Gianni +++ Date created: ?? +++ Date last updated: December 1993 +++ Factorization of extended polynomials with rational coefficients. +++ This package implements factorization of extended polynomials +++ whose coefficients are rational numbers. It does this by taking the +++ lcm of the coefficients of the polynomial and creating a polynomial +++ with integer coefficients. The algorithm in \spadtype{GaloisGroupFactorizer} is then +++ used to factor the integer polynomial. The result is normalized +++ with respect to the original lcm of the denominators. +++ Keywords: factorization, hensel, rational number +I ==> Integer +RN ==> Fraction Integer + +RationalFactorize(RP) : public == private where + BP ==> SparseUnivariatePolynomial(I) + RP : UnivariatePolynomialCategory RN + + public ==> with + + factor : RP -> Factored RP + ++ factor(p) factors an extended polynomial p over the rational numbers. + factorSquareFree : RP -> Factored RP + ++ factorSquareFree(p) factors an extended squareFree + ++ polynomial p over the rational numbers. + + private ==> add + import GaloisGroupFactorizer (BP) + ParFact ==> Record(irr:BP,pow:I) + FinalFact ==> Record(contp:I,factors:List(ParFact)) + URNI ==> UnivariatePolynomialCategoryFunctions2(RN,RP,I,BP) + UIRN ==> UnivariatePolynomialCategoryFunctions2(I,BP,RN,RP) + fUnion ==> Union("nil", "sqfr", "irred", "prime") + FFE ==> Record(flg:fUnion, fctr:RP, xpnt:I) + + factor(p:RP) : Factored(RP) == + p = 0 => 0 + pden: I := lcm([denom c for c in coefficients p]) + pol : RP := pden*p + ipol: BP := map(numer,pol)$URNI + ffact: FinalFact := henselFact(ipol,false) + makeFR(((ffact.contp)/pden)::RP, + [["prime",map(coerce,u.irr)$UIRN,u.pow]$FFE + for u in ffact.factors]) + + factorSquareFree(p:RP) : Factored(RP) == + p = 0 => 0 + pden: I := lcm([denom c for c in coefficients p]) + pol : RP := pden*p + ipol: BP := map(numer,pol)$URNI + ffact: FinalFact := henselFact(ipol,true) + makeFR(((ffact.contp)/pden)::RP, + [["prime",map(coerce,u.irr)$UIRN,u.pow]$FFE + for u in ffact.factors]) + +@ +\section{License} +<<license>>= +--Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +--All rights reserved. +-- +--Redistribution and use in source and binary forms, with or without +--modification, are permitted provided that the following conditions are +--met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +--IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +--TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +--PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +--OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +--EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +--PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +--PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +--LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +--NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +--SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +@ +<<*>>= +<<license>> + +<<package RATFACT RationalFactorize>> +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} |