diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet index 04b55de..b21478d 100644 --- a/books/bookvol10.4.pamphlet +++ b/books/bookvol10.4.pamphlet @@ -24722,7 +24722,7 @@ o )show FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber @ \pagehead{FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber}{FACTEXT} -\pagepic{ps/v104factorisationoverpseudoalgebraicclosureofalgextofrationalnumber.ps}{FACTEXT}{1.00} +\pagepic{ps/v104factorisationoverpseudoalgebraicclosureofalgextofrationalnumber.eps}{FACTEXT}{1.00} {\bf Exports:}\\ \begin{tabular}{ll} @@ -55737,7 +55737,7 @@ o )show LinesOpPack @ \pagehead{LinesOpPack}{LOP} -\pagepic{ps/v104linesoppack.ps}{LOP}{1.00} +\pagepic{ps/v104linesoppack.eps}{LOP}{1.00} {\bf Exports:}\\ \begin{tabular}{lll} @@ -123854,6 +123854,157 @@ PointsOfFiniteOrderTools(UP, UPUP): Exports == Implementation where @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +PLPKCRV PolynomialPackageForCurve +\section{package PLPKCRV PolynomialPackageForCurve} +<>= +)set break resume +)sys rm -f PolynomialPackageForCurve.output +)spool PolynomialPackageForCurve.output +)set message test on +)set message auto off +)clear all + +--S 1 of 1 +)show PolynomialPackageForCurve +--R PolynomialPackageForCurve(K: Field,PolyRing: FiniteAbelianMonoidRing(K,E),E: DirectProductCategory(dim,NonNegativeInteger),dim: NonNegativeInteger,ProjPt: ProjectiveSpaceCategory K) is a package constructor +--R Abbreviation for PolynomialPackageForCurve is PLPKCRV +--R This constructor is exposed in this frame. +--R Issue )edit bookvol10.4.pamphlet to see algebra source code for PLPKCRV +--R +--R------------------------------- Operations -------------------------------- +--R eval : (PolyRing,ProjPt) -> K +--R minimalForm : (PolyRing,ProjPt) -> PolyRing +--R minimalForm : (PolyRing,ProjPt,Integer) -> PolyRing +--R multiplicity : (PolyRing,ProjPt) -> NonNegativeInteger +--R multiplicity : (PolyRing,ProjPt,Integer) -> NonNegativeInteger +--R pointInIdeal? : (List PolyRing,ProjPt) -> Boolean +--R translateToOrigin : (PolyRing,ProjPt,Integer) -> PolyRing +--R translateToOrigin : (PolyRing,ProjPt) -> PolyRing +--R +--E 1 + +)spool +)lisp (bye) +@ +<>= +==================================================================== +PolynomialPackageForCurve examples +==================================================================== + +See Also: +o )show PolynomialPackageForCurve + +@ +\pagehead{PolynomialPackageForCurve}{PLPKCRV} +\pagepic{ps/v104polynomialpackageforcurve.eps}{PLPKCRV}{1.00} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{PLPKCRV}{eval} & +\cross{PLPKCRV}{minimalForm} & +\cross{PLPKCRV}{multiplicity} & +\cross{PLPKCRV}{pointInIdeal?} & +\cross{PLPKCRV}{translateToOrigin} +\end{tabular} + +<>= +)abbrev package PLPKCRV PolynomialPackageForCurve +++ Author: Gaetan Hache +++ Date Created: 17 nov 1992 +++ Date Last Updated: May 2010 by Tim Daly +++ Description: +++ The following is part of the PAFF package +PolynomialPackageForCurve(K,PolyRing,E,dim,ProjPt):Exp == Impl where + K:Field + dim:NonNegativeInteger + E : DirectProductCategory(dim,NonNegativeInteger) + PolyRing: FiniteAbelianMonoidRing(K,E) -- PolynomialCategory(K,E,OV) + ProjPt : ProjectiveSpaceCategory(K) + + PackPoly ==> PackageForPoly(K,PolyRing,E,dim) + + Exp ==> with + + pointInIdeal?: (List(PolyRing),ProjPt) -> Boolean + ++ pointInIdeal? test if the given point is in the algebraic set + ++ defined by the given list of polynomials. + + eval: (PolyRing,ProjPt) -> K + ++ eval returns the value at given point. + + translateToOrigin: (PolyRing,ProjPt,Integer) -> PolyRing + ++ translateToOrigin translate the polynomial from the given point + ++ to the origin + + translateToOrigin: (PolyRing,ProjPt) -> PolyRing + ++ translateToOrigin translate the polynomial from the given point + ++ to the origin + + minimalForm: (PolyRing,ProjPt) -> PolyRing + ++ minimalForm returns the minimal form after translation to + ++ the origin. + + minimalForm: (PolyRing,ProjPt,Integer) -> PolyRing + ++ minimalForm returns the minimal form after translation to + ++ the origin. + + multiplicity: (PolyRing,ProjPt) -> NonNegativeInteger + ++ multiplicity returns the multiplicity of the polynomial at + ++ given point. + + multiplicity: (PolyRing,ProjPt,Integer) -> NonNegativeInteger + ++ multiplicity returns the multiplicity of the polynomial at + ++ given point. + + Impl ==> add + + import PolyRing + import ProjPt + import PackPoly + + translateToOrigin(pol,pt,nV)== + zero?(pt.nV) => error "Impossible de translater" + pt:=homogenize(pt,nV) + lpt:List K:=list(pt)$ProjPt + translate(pol,lpt,nV) + + pointInIdeal?(lstPol,pt)== + temp:Boolean:=true()$Boolean + for pol in lstPol repeat + temp:=(zero?(eval(pol,pt)) and temp) + temp + + eval(f,pt)== + zero? f => 0 + lpt:List(K) := list pt + dd:List NonNegativeInteger := entries degree f + lc:= leadingCoefficient f + ee:= reduce( "*" , [ p**e for p in lpt for e in dd | ^zero?(e)], 1$K) + lc * ee + eval( reductum f, pt) + + translateToOrigin(pol,pt)== + translateToOrigin(pol,pt,lastNonNull(pt)) + + multiplicity(crb,pt)== + degreeOfMinimalForm(translateToOrigin(crb,pt)) + + multiplicity(crb,pt,nV)== + degreeOfMinimalForm(translateToOrigin(crb,pt,nV)) + + minimalForm(crb,pt)== + minimalForm(translateToOrigin(crb,pt)) + + minimalForm(crb,pt,nV)== + minimalForm(translateToOrigin(crb,pt,nV)) + +@ +<>= +"PLPKCRV" [color="#FF4488",href="bookvol10.4.pdf#nameddest=PLPKCRV"] +"DIRPCAT" [color="#4488FF",href="bookvol10.2.pdf#nameddest=DIRPCAT"] +"PLPKCRV" -> "DIRPCAT" + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{package POLTOPOL PolToPol} \pagehead{PolToPol}{POLTOPOL} \pagepic{ps/v104poltopol.ps}{POLTOPOL}{1.00} @@ -138132,7 +138283,7 @@ o )show RootsFindingPackage @ \pagehead{RootsFindingPackage}{RFP} -\pagepic{ps/v104rootsfindingpackage.ps}{RFP}{1.00} +\pagepic{ps/v104rootsfindingpackage.eps}{RFP}{1.00} {\bf Exports:}\\ \cross{RFP}{distinguishedCommonRootsOf} diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index d58d21c..857aba3 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -24105,6 +24105,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|PolynomialDecomposition| . PDECOMP) (|PolynomialFunctions2| . POLY2) (|PolynomialIdeals| . IDEAL) + (|PolynomialPackageForCurve| . PLPKCRV) (|PolynomialToUnivariatePolynomial| . POLY2UP) (|PositiveInteger| . PI) (|PowerSeriesLimitPackage| . LIMITPS) diff --git a/books/ps/v104polynomialpackageforcurve.eps b/books/ps/v104polynomialpackageforcurve.eps new file mode 100644 index 0000000..b6ce1c2 --- /dev/null +++ b/books/ps/v104polynomialpackageforcurve.eps @@ -0,0 +1,266 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Graphviz version 2.20.2 (Mon Mar 30 10:09:11 UTC 2009) +%%For: (root) root +%%Title: pic +%%Pages: 1 +%%BoundingBox: 36 36 122 152 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw text fitted to its expected width +/alignedtext { % width text + /text exch def + /width exch def + gsave + width 0 gt { + [] 0 setdash + text stringwidth pop width exch sub text length div 0 text ashow + } if + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +setupLatin1 +%%Page: 1 1 +%%PageBoundingBox: 36 36 122 152 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 86 116 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% PLPKCRV +gsave +[ /Rect [ 0 72 78 108 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=PLPKCRV) >> + /Subtype /Link +/ANN pdfmark +0.939 0.733 1.000 nodecolor +newpath 78 108 moveto +0 108 lineto +0 72 lineto +78 72 lineto +closepath fill +1 setlinewidth +filled +0.939 0.733 1.000 nodecolor +newpath 78 108 moveto +0 108 lineto +0 72 lineto +78 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +7.5 85.9 moveto 63 (PLPKCRV) alignedtext +grestore +% DIRPCAT +gsave +[ /Rect [ 0 0 78 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=DIRPCAT) >> + /Subtype /Link +/ANN pdfmark +0.606 0.733 1.000 nodecolor +newpath 78 36 moveto +0 36 lineto +0 0 lineto +78 0 lineto +closepath fill +1 setlinewidth +filled +0.606 0.733 1.000 nodecolor +newpath 78 36 moveto +0 36 lineto +0 0 lineto +78 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +8 13.9 moveto 62 (DIRPCAT) alignedtext +grestore +% PLPKCRV->DIRPCAT +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 39 72 moveto +39 64 39 55 39 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 42.5 46 moveto +39 36 lineto +35.5 46 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 42.5 46 moveto +39 36 lineto +35.5 46 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +end +restore +%%EOF diff --git a/changelog b/changelog index b2b9b7d..94cefd7 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20100521 tpd src/axiom-website/patches.html 20100521.05.tpd.patch +20100521 tpd src/algebra/Makefile help and test for PolynomialPackageForCurve +20100521 tpd books/bookvol5 expose PolynomialPackageForCurve +20100521 tpd books/bookvol10.4 add PolynomialPackageForCurve +20100521 tpd books/ps/v104polynomialpackageforcurve.eps added 20100521 tpd src/axiom-website/patches.html 20100521.04.tpd.patch 20100521 tpd books/ps/v104rootsfindingpackage.eps add bounding box info 20100521 tpd books/ps/v104rootsfindingpackage.ps removed diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 08d2254..658c107 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -5354,6 +5354,7 @@ LAYER11=\ ${OUT}/PF.o ${OUT}/PFBR.o ${OUT}/PFBRU.o ${OUT}/PFORP.o \ ${OUT}/PFOTOOLS.o \ ${OUT}/PFRPAC.o ${OUT}/PGCD.o ${OUT}/PINTERPA.o ${OUT}/PLEQN.o \ + ${OUT}/PLPKCRV.o \ ${OUT}/PMPLCAT.o ${OUT}/PMQFCAT.o ${OUT}/PNTHEORY.o ${OUT}/POLUTIL.o \ ${OUT}/POLTOPOL.o ${OUT}/POLYCATQ.o ${OUT}/POLYLIFT.o ${OUT}/POLYROOT.o \ ${OUT}/POLY2.o ${OUT}/POLY2UP.o ${OUT}/PRS.o ${OUT}/PSQFR.o \ @@ -7826,6 +7827,22 @@ LAYER11=\ /*"PLEQN" -> "PI"*/ "PMPLCAT" [color="#FF4488",href="bookvol10.4.pdf#nameddest=PMPLCAT"] +/*"PLPKCRV" -> {"SETCATD"; "PRSPCAT"; "FIELD"; "EUCDOM"; "PID"; "GCDDOM"}*/ +/*"PLPKCRV" -> {"INTDOM"; "COMRING"; "RING"; "RNG"; "ABELGRP"; "CABMON"}*/ +/*"PLPKCRV" -> {"ABELMON"; "ABELSG"; "SETCAT"; "BASTYPE"; "KOERCE"; "SGROUP"}*/ +/*"PLPKCRV" -> {"MONOID"; "LMODULE"; "BMODULE"; "RMODULE"; "ALGEBRA"}*/ +/*"PLPKCRV" -> {"MODULE"; "ENTIRER"; "UFD"; "DIVRING"; "FAMR"; "AMR"}*/ +/*"PLPKCRV" -> {"CHARZ"; "CHARNZ"; "FRETRCT"; "RETRACT"}*/ +"PLPKCRV" -> "DIRPCAT" +/*"PLPKCRV" -> {"IXAGG"; "HOAGG"; "AGG"; "TYPE"; "EVALAB"; "IEVALAB"}*/ +/*"PLPKCRV" -> {"ELTAGG"; "ELTAB"; "DIFEXT"; "DIFRING"; "PDRING"; "FLINEXP"}*/ +/*"PLPKCRV" -> {"LINEXP"; "FINITE"; "ORDRING"; "OAGROUP"; "OCAMON"}*/ +/*"PLPKCRV" -> {"OAMON"; "OASGP"; "ORDSET"; "OAMONS"; "VSPACE"; "BOOLEAN"}*/ +/*"PLPKCRV" -> {"NNI"; "INT"; "LSAGG"; "STAGG"; "URAGG"; "RCAGG"; "LNAGG"}*/ +/*"PLPKCRV" -> {"CLAGG"; "KONVERT"; "FLAGG"; "ELAGG"; "OM"; "LIST"}*/ +/*"PLPKCRV" -> {"ILIST"; "LSAGG-"}*/ + +"PMPLCAT" [color="#FF4488",href="bookvol10.4.pdf#nameddest=PMPLCAT"] /*"PMPLCAT" -> {"SETCAT"; "BASTYPE"; "KOERCE"; "OAMONS"; "OCAMON"; "OAMON"}*/ /*"PMPLCAT" -> {"OASGP"; "ORDSET"; "ABELMON"; "ABELSG"; "CABMON"; "RING"}*/ /*"PMPLCAT" -> {"RNG"; "ABELGRP"; "SGROUP"; "MONOID"; "LMODULE"; "PATMAB"}*/ @@ -16828,6 +16845,21 @@ ${MID}/DSTREE.nrlib/code.o: ${MID}/DSTREE.spad | ${INTERPSYS} >${TMP}/trace ; \ fi ) @ +<>= + +PLPKCRVDEPS = PRSPCAT PFORP SETCATD + +${MID}/PLPKCRV.nrlib/code.o: ${MID}/PLPKCRV.spad + @echo P3 making ${MID}/PLPKCRV.nrlib/code.o from ${MID}/PLPKCRV.spad + @ (cd ${MID} ; \ + if [ -z "${NOISE}" ] ; then \ + echo -e ")lib ${PLPKCRVDEPS} \n )co PLPKCRV.spad" \ + | ${INTERPSYS} ; \ + else \ + echo -e ")lib ${PLPKCRVDEPS} \n )co PLPKCRV.spad" \ + | ${INTERPSYS} >${TMP}/trace ; \ + fi ) +@ \section{Broken Files} These files are Aldor files @@ -17663,6 +17695,7 @@ SPADHELP=\ ${HELP}/Plcs.help \ ${HELP}/Plot.help \ ${HELP}/Polynomial.help \ + ${HELP}/PolynomialPackageForCurve.help \ ${HELP}/Product.help \ ${HELP}/ProjectivePlane.help \ ${HELP}/ProjectivePlaneOverPseudoAlgebraicClosureOfFiniteField.help \ @@ -17848,6 +17881,7 @@ REGRESS= \ Plcs.regress \ Plot.regress \ Polynomial.regress \ + PolynomialPackageForCurve.regress \ Product.regress \ ProjectivePlane.regress \ ProjectivePlaneOverPseudoAlgebraicClosureOfFiniteField.regress \ @@ -19340,6 +19374,18 @@ ${HELP}/Polynomial.help: ${BOOKS}/bookvol10.3.pamphlet >${INPUT}/Polynomial.input @echo "Polynomial (POLY)" >>${HELPFILE} +${HELP}/PolynomialPackageForCurve.help: ${BOOKS}/bookvol10.4.pamphlet + @echo 7933 create PolynomialPackageForCurve.help from \ + ${BOOKS}/bookvol10.4.pamphlet + @${TANGLE} -R"PolynomialPackageForCurve.help" \ + ${BOOKS}/bookvol10.4.pamphlet \ + >${HELP}/PolynomialPackageForCurve.help + @cp ${HELP}/PolynomialPackageForCurve.help ${HELP}/PLPKCRV.help + @${TANGLE} -R"PolynomialPackageForCurve.input" \ + ${BOOKS}/bookvol10.4.pamphlet \ + >${INPUT}/PolynomialPackageForCurve.input + @echo "PolynomialPackageForCurve (PLPKCRV)" >>${HELPFILE} + ${HELP}/Product.help: ${BOOKS}/bookvol10.3.pamphlet @echo 7935 create Product.help from ${BOOKS}/bookvol10.3.pamphlet @${TANGLE} -R"Product.help" ${BOOKS}/bookvol10.3.pamphlet \ diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index b7331a3..7626c54 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2777,5 +2777,7 @@ factorisationoverpseudoalgebraicclosureofalgextofrationalnumber.eps fix
books/ps/v104linesoppack.eps added new bounding box info
20100521.04.tpd.patch books/ps/v104rootsfindingpackage.eps add bounding box info
+20100521.05.tpd.patch +books/bookvol10.4 add PolynomialPackageForCurve