diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet index e61c52c..a6ec05e 100644 --- a/books/bookvol10.4.pamphlet +++ b/books/bookvol10.4.pamphlet @@ -24686,7 +24686,185 @@ FactoringUtilities(E,OV,R,P) : C == T where "FACUTIL" -> "PFECAT" @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{package FACTEXT FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber} +<>= +)set break resume +)sys rm -f FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber.output +)spool FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber.output +)set message test on +)set message auto off +)clear all + +--S 1 of 1 +)show FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber +--R FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber K: PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory is a package constructor +--R Abbreviation for FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber is FACTEXT +--R This constructor is exposed in this frame. +--R Issue )edit bookvol10.4.pamphlet to see algebra source code for FACTEXT +--R +--R------------------------------- Operations -------------------------------- +--R factor : (SparseUnivariatePolynomial K,K) -> Factored SparseUnivariatePolynomial K +--R factorSqFree : (SparseUnivariatePolynomial K,K) -> Factored SparseUnivariatePolynomial K +--R +--E 1 + +)spool +)lisp (bye) +@ +<>= +==================================================================== +FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber examples +==================================================================== + +See Also: +o )show FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber + +@ +\pagehead{FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber}{FACTEXT} +\pagepic{ps/v104factorisationoverpseudoalgebraicclosureofalgextofrationalnumber.ps}{FACTEXT}{1.00} + +{\bf Exports:}\\ +\begin{tabular}{ll} +\cross{FACTEXT}{factor} & +\cross{FACTEXT}{factorSqFree} +\end{tabular} + +<>= +)abbrev package FACTEXT FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber +++ Author: Gaetan Hache +++ Date Created: September 1996 +++ Date Last Updated: May, 2010, by Tim Daly +++ Description: +++ Part of the Package for Algebraic Function Fields in one variable PAFF +FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber(K):Exports == Implementation where + K:PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory + SUP ==> SparseUnivariatePolynomial + Q ==> PseudoAlgebraicClosureOfRationalNumber + NNI ==> NonNegativeInteger + UP ==> SUP(K) + UPUP ==> SUP(SUP(K)) + FACTRNQ ==> FactorisationOverPseudoAlgebraicClosureOfRationalNumber(Q) + + Exports ==> with + factor: (UP,K) -> Factored UP + factorSqFree: (UP,K) -> Factored UP + + Implementation ==> add + up2Rat: UP -> SUP(Q) + rat2up: SUP(Q) -> UP + + factRat: UP -> Factored UP + liftPoly: (UP, K) -> UPUP + + liftDefPoly: UP -> UPUP + + norm: (UP, K) -> UP + + factParPert: ( UP,K,K) -> Factored UP + + trans: (UP, K) -> UP + + swapCoefWithVar: ( UP , NNI) -> UPUP + + frRat2frUP: Factored SUP(Q) -> Factored UP + + factor(pol,a)== + polSF:= squareFree pol + reduce("*" , [ factorSqFree(fr.fctr,a)**(fr.xpnt pretend NNI) _ + for fr in factorList polSF] , 1) + + factorSqFree(pol,a)== + ratPol:SUP(Q) + aa:Q + ground? a => + aa:= retract(a)@Q + ratPol:= up2Rat pol + frRat2frUP factor(ratPol,aa)$FACTRNQ::Factored UP + nPol:= norm(pol,a) + ta:=previousTower a + factN := factor( nPol , ta ) + lfactnPol:= factorList factN + G:UP:=1 + L: Factored UP:= 1 + for fr in lfactnPol repeat + G:= gcd( [ pol , fr.fctr ] ) + pol:= pol quo$UP G + if one? fr.xpnt then + L := L * flagFactor( G, 1 ,"prime")$Factored(UP) + else + L := L * factParPert( G, a, a ) + L + + factParPert(pol, a, b)== + polt:=trans(pol,b) + frpol:= factorList factor(polt,a) + sl:= [ fr.fctr for fr in frpol ] + slt:= [ trans(p , -b) for p in sl ] + nfrpol:= [ flagFactor( p, fr.xpnt , fr.flg )$Factored(UP) _ + for p in slt for fr in frpol ] + reduce("*" , nfrpol) + + frRat2frUP(fr)== + frpol:= factorList fr + sl:= [ fr.fctr for fr in frpol ] + slt:= [ rat2up p for p in sl ] + nfrpol:= [ flagFactor( p, fr.xpnt , fr.flg )$Factored(UP) _ + for p in slt for fr in frpol ] + reduce("*" , nfrpol) + + up2Rat(pol)== + zero?(pol) => 0 + d:=degree pol + a:Q:= retract(leadingCoefficient pol)@Q + monomial(a,d)$SUP(Q) + up2Rat(reductum pol) + + rat2up(pol)== + zero?(pol) => 0 + d:=degree pol + a:K:=(leadingCoefficient pol) :: K + monomial(a,d)$UP + rat2up(reductum pol) + + trans(pol,a)== + zero? pol => 0 + lc:=leadingCoefficient pol + d:=degree pol + lc*(monomial(1,1)$UP + monomial(-a ,0)$UP)**d + trans(reductum pol ,a) + + liftDefPoly(pol)== + zero?(pol) => 0 + lc:= leadingCoefficient pol + d:= degree pol + monomial( monomial(lc,0)$UP , d )$UPUP + liftDefPoly reductum pol + norm(pol,a)== + lpol:=liftPoly(pol,a) + defPol:=definingPolynomial a + ldefPol:=liftDefPoly defPol + resultant(ldefPol,lpol) + + swapCoefWithVar(coef,n)== + ground? coef => + monomial( monomial( retract coef , n)$SUP(K) , 0)$UPUP + lcoef:=leadingCoefficient(coef) + d:=degree(coef) + monomial(monomial(lcoef,n)$SUP(K),d)$UPUP+_ + swapCoefWithVar(reductum coef,n ) + + liftPoly(pol,a)== + zero? pol => 0 + lcoef:=leadingCoefficient pol + n:=degree pol + liftCoef:= lift(lcoef,a)$K + swapCoefWithVar(liftCoef , n) + liftPoly( reductum pol , a ) + +@ +<>= +"FACTEXT" [color="#FF4488",href="bookvol10.4.pdf#nameddest=FACTEXT"] +"PACEXTC" [color="#4488FF",href="bookvol10.2.pdf#nameddest=PACEXTC"] +"FACTEXT" -> "PACEXTC" + +@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{package FACTRN FactorisationOverPseudoAlgebraicClosureOfRationalNumber} <>= @@ -154574,6 +154752,7 @@ ZeroDimensionalSolvePackage(R,ls,ls2): Exports == Implementation where <> <> <> +<> <> <> <> diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index 8afa8d1..c3e35e8 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -23908,6 +23908,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|ExpressionToUnivariatePowerSeries| . EXPR2UPS) (|Factored| . FR) (|FactoredFunctions2| . FR2) + (|FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber| . FACTEXT) (|FactorisationOverPseudoAlgebraicClosureOfRationalNumber| . FACTRN) (|File| . FILE) (|FileName| . FNAME) diff --git a/books/ps/v104factorisationoverpseudoalgebraicclosureofalgextofrationalnumber.ps b/books/ps/v104factorisationoverpseudoalgebraicclosureofalgextofrationalnumber.ps new file mode 100644 index 0000000..0f783ee --- /dev/null +++ b/books/ps/v104factorisationoverpseudoalgebraicclosureofalgextofrationalnumber.ps @@ -0,0 +1,18 @@ +.if !dPS .ds PS +.if !dPE .ds PE +.lf 1 - +digraph pic { + fontsize=10; + bgcolor=yellow + node [shape=box, color=lightblue, style=filled]; + +"FACTEXT" [color="#FF4488",href="bookvol10.4.pdf#nameddest=FACTEXT"] +"PACEXTC" [color="#4488FF",href="bookvol10.2.pdf#nameddest=PACEXTC"] +"FACTEXT" -> "PACEXTC" + +} + + + + + diff --git a/changelog b/changelog index a07a887..b3714d4 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20100510 tpd src/axiom-website/patches.html 20100510.02.tpd.patch +20100510 tpd src/algebra/Makefile add FACTEXT +20100510 tpd books/bookvol5 expose FACTEXT +20100510 tpd books/bookvol10.4 add FACTEXT +20100510 tpd v104factorisationoverpseudoalgebraicclosureofalgextofrationalnumber.ps 20100510 tpd src/axiom-website/patches.html 20100510.01.tpd.patch 20100510 tpd src/algebra/Makefile help and test files for PACEXTC 20100510 tpd books/bookvol5 expose PACEXTC diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 11e8c88..0d641a3 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -14512,6 +14512,7 @@ Used in next layer: EXPRSOL SFRTCAT LAYER18=\ ${OUT}/DEFINTEF.o ${OUT}/DEFINTRF.o ${OUT}/DFINTTLS.o ${OUT}/EFULS.o \ ${OUT}/ESCONT.o ${OUT}/EXPR.o ${OUT}/EXPRSOL.o ${OUT}/EXPR2UPS.o \ + ${OUT}/FACTEXT.o \ ${OUT}/FDIV.o ${OUT}/FSCINT.o ${OUT}/FSINT.o ${OUT}/FS2EXPXP.o \ ${OUT}/GSERIES.o ${OUT}/HELLFDIV.o ${OUT}/INVLAPLA.o ${OUT}/IR2F.o \ ${OUT}/IRRF2F.o ${OUT}/LAPLACE.o ${OUT}/LIMITPS.o ${OUT}/LODEEF.o \ @@ -14685,6 +14686,21 @@ LAYER18=\ /*"EXPR2UPS" -> {"CHAR"; "SINT"; "OUTFORM"; "LIST"; "INT"; "PRIMARR"}*/ /*"EXPR2UPS" -> {"A1AGG-"; "ISTRING"; "NNI"; "ILIST"; "UPXSCCA"; "UPXSCAT"}*/ +"FACTEXT" [color="#FF4488",href="bookvol10.4.pdf#nameddest=FACTEXT"] +"FACTEXT" -> "PACEXTC" +/*"FACTEXT" -> {"PACRATC"; "PACPERC"; "FIELD"; "EUCDOM"; "PID"; "GCDDOM"}*/ +/*"FACTEXT" -> {"INTDOM"; "COMRING"; "RING"; "RNG"; "ABELGRP"; "CABMON"}*/ +/*"FACTEXT" -> {"ABELMON"; "ABELSG"; "SETCAT"; "BASTYPE"; "KOERCE"; "SGROUP"}*/ +/*"FACTEXT" -> {"MONOID"; "LMODULE"; "BMODULE"; "RMODULE"; "ALGEBRA"}*/ +/*"FACTEXT" -> {"MODULE"; "ENTIRER"; "UFD"; "DIVRING"; "CHARZ"; "RETRACT"}*/ +/*"FACTEXT" -> {"XF"; "VSPACE"; "FPC"; "CHARNZ"; "FINITE"; "UPOLYC"}*/ +/*"FACTEXT" -> {"POLYCAT"; "PDRING"; "FAMR"; "AMR"; "FRETRCT"; "EVALAB"}*/ +/*"FACTEXT" -> {"IEVALAB"; "FLINEXP"; "LINEXP"; "ORDSET"; "KONVERT"}*/ +/*"FACTEXT" -> {"PATMAB"; "PFECAT"; "ELTAB"; "DIFRING"; "DIFEXT"; "STEP"}*/ +/*"FACTEXT" -> {"LSAGG"; "STAGG"; "URAGG"; "RCAGG"; "HOAGG"; "AGG"; "TYPE"}*/ +/*"FACTEXT" -> {"LNAGG"; "IXAGG"; "ELTAGG"; "CLAGG"; "FLAGG"; "ELAGG"; "OM"}*/ +/*"FACTEXT" -> {"INT"; "LIST"; "ILIST"; "LSAGG-"; "NNI"}*/ + "FDIV" [color="#88FF44",href="bookvol10.3.pdf#nameddest=FDIV"] "FDIV" -> "FDIVCAT" /*"FDIV" -> {"ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"; "SETCAT"}*/ @@ -16026,6 +16042,21 @@ ${MID}/PACEXTC.nrlib/code.o: ${MID}/PACEXTC.spad | ${INTERPSYS} >${TMP}/trace ; \ fi ) @ +<>= + +FACTEXTDEPS = PACPERC PACRATC PACEXTC PACRAT FACTRN + +${MID}/FACTEXT.nrlib/code.o: ${MID}/FACTEXT.spad + @echo P3 making ${MID}/FACTEXT.nrlib/code.o from ${MID}/FACTEXT.spad + @ (cd ${MID} ; \ + if [ -z "${NOISE}" ] ; then \ + echo -e ")lib ${FACTEXTDEPS} \n )co FACTEXT.spad" \ + | ${INTERPSYS} ; \ + else \ + echo -e ")lib ${FACTEXTDEPS} \n )co FACTEXT.spad" \ + | ${INTERPSYS} >${TMP}/trace ; \ + fi ) +@ \section{Broken Files} These files are Aldor files @@ -16762,6 +16793,7 @@ SPADHELP=\ ${HELP}/EuclideanGroebnerBasisPackage.help \ ${HELP}/Factored.help \ ${HELP}/FactoredFunctions2.help \ + ${HELP}/FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber.help \ ${HELP}/FactorisationOverPseudoAlgebraicClosureOfRationalNumber.help \ ${HELP}/File.help \ ${HELP}/FileName.help \ @@ -16929,6 +16961,7 @@ REGRESS= \ EuclideanGroebnerBasisPackage.regress \ Factored.regress \ FactoredFunctions2.regress \ + FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber.regress \ FactorisationOverPseudoAlgebraicClosureOfRationalNumber.regress \ File.regress \ FileName.regress \ @@ -17379,6 +17412,26 @@ ${HELP}/FactoredFunctions2.help: ${BOOKS}/bookvol10.4.pamphlet >${INPUT}/FactoredFunctions2.input @echo "FactoredFunctions2 (FR2)" >>${HELPFILE} +${HELP}/FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber.help: \ + ${BOOKS}/bookvol10.4.pamphlet + @echo 7283 create \ + FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber.help from \ + ${BOOKS}/bookvol10.4.pamphlet + @${TANGLE} \ + -R"FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber.help" \ + ${BOOKS}/bookvol10.4.pamphlet \ + >${HELP}/FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber.help + @cp \ + ${HELP}/FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber.help \ + ${HELP}/FACTEXT.help + @${TANGLE} \ + -R"FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber.input" \ + ${BOOKS}/bookvol10.4.pamphlet \ +>${INPUT}/FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber.input + @echo \ + "FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber (FACTEXT)" \ + >>${HELPFILE} + ${HELP}/FactorisationOverPseudoAlgebraicClosureOfRationalNumber.help: \ ${BOOKS}/bookvol10.4.pamphlet @echo 7285 create \ diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 9c0abf6..d06ccf4 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2681,5 +2681,7 @@ books/bookvol10.3 add PseudoAlgebraicClosureOfRationalNumber
books/bookvol10.3 add PseudoAlgebraicClosureOfFiniteField
20100510.01.tpd.patch books/bookvol10.2 PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory
+20100510.02.tpd.patch +books/bookvol10.4 add FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber