diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet index b21478d..be80e60 100644 --- a/books/bookvol10.4.pamphlet +++ b/books/bookvol10.4.pamphlet @@ -114680,7 +114680,270 @@ NewtonInterpolation F: Exports == Implementation where "NEWTON" -> "ALGEBRA" @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{package NPOLYGON NewtonPolygon} +<>= +)set break resume +)sys rm -f NewtonPolygon.output +)spool NewtonPolygon.output +)set message test on +)set message auto off +)clear all + +--S 1 of 1 +)show NewtonPolygon +--R NewtonPolygon(K: Ring,PolyRing: FiniteAbelianMonoidRing(K,E),E: DirectProductCategory(dim,NonNegativeInteger),dim: NonNegativeInteger) is a package constructor +--R Abbreviation for NewtonPolygon is NPOLYGON +--R This constructor is exposed in this frame. +--R Issue )edit bookvol10.4.pamphlet to see algebra source code for NPOLYGON +--R +--R------------------------------- Operations -------------------------------- +--R multiplicity : List List PolyRing -> NonNegativeInteger +--R negAndPosEdge : (PolyRing,List List PolyRing) -> List List PolyRing +--R newtonPolygon : (PolyRing,Integer,Integer,Union(left,center,right,vertical,horizontal)) -> List List PolyRing +--R slope : (PolyRing,PolyRing) -> Record(height: Integer,base: Integer,quotient: Integer,reste: Integer,type: Union(left,center,right,vertical,horizontal)) +--R slope : List PolyRing -> Record(height: Integer,base: Integer,quotient: Integer,reste: Integer,type: Union(left,center,right,vertical,horizontal)) +--R +--E 1 + +)spool +)lisp (bye) +@ +<>= +==================================================================== +NewtonPolygon examples +==================================================================== + +See Also: +o )show NewtonPolygon + +@ +\pagehead{NewtonPolygon}{NPOLYGON} +\pagepic{ps/v104newtonpolygon.eps}{NPOLYGON}{1.00} + +{\bf Exports:}\\ +\begin{tabular}{llll} +\cross{NPOLYGON}{multiplicity} & +\cross{NPOLYGON}{negAndPosEdge} & +\cross{NPOLYGON}{newtonPolygon} & +\cross{NPOLYGON}{slope} +\end{tabular} + +<>= +)abbrev package NPOLYGON NewtonPolygon +++ 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 +NewtonPolygon(K,PolyRing,E,dim):Exports == Implementation where + K:Ring + dim:NonNegativeInteger + PolyRing: FiniteAbelianMonoidRing(K,E) + E: DirectProductCategory(dim,NonNegativeInteger) + + PackPoly ==> PackageForPoly(K,PolyRing,E,dim) + + recSlope ==> Record( height:Integer, base:Integer, quotient:Integer, _ + reste:Integer, _ + type:Union("left","center","right","vertical","horizontal")) + + Exports ==> with + + newtonPolygon: (PolyRing,Integer,Integer,Union("left","center", "right",_ + "vertical","horizontal")) -> List List PolyRing + + multiplicity: List List PolyRing -> NonNegativeInteger + + negAndPosEdge: (PolyRing, List List PolyRing) -> List List PolyRing + slope: (PolyRing,PolyRing) -> recSlope + slope: List PolyRing -> recSlope + + Implementation ==> add + + slope(p1,p2)== + -- calcule la pente de p1 a p2 et change le signe. + e1:=degree p1 + e2:=degree p2 + hgt:= ( e1.2 pretend Integer) - ( e2.2 pretend Integer) + bs:= ( e2.1 pretend Integer) - ( e1.1 pretend Integer ) + zero? bs => [hgt, bs, 0$Integer, 0$Integer, "vertical" ]$recSlope + zero? hgt => [hgt, bs, 0$Integer, 0$Integer, "horizontal" ]$recSlope + hgt = bs => [hgt, bs, 1$Integer, 0$Integer, "center" ]$recSlope + hgt > bs => + eucl:=divide(hgt,bs) + [hgt, bs, eucl.quotient, eucl.remainder , "left" ]$recSlope + eucl:=divide(bs, hgt) + [hgt, bs, eucl.quotient, eucl.remainder , "right" ]$recSlope + + oneToPos: List List PolyRing -> List List PolyRing + + oneToPos(lpol)== + fedge:= first lpol + sl:= slope fedge + one? ( #(lpol) ) => + if sl.height > sl.base then [ fedge, empty() ] + else [ empty() , fedge ] + ^( sl.base < sl.height ) => [ empty() , fedge ] + restPANE:= oneToPos rest lpol + fedge2 := first restPANE + sl2:= slope fedge2 + ^( sl2.base < sl2.height ) => [ fedge , fedge2 ] + restPANE + + oneToNeg: List List PolyRing -> List List PolyRing + + oneToNeg(lpol)== + fedge:= first lpol + sl:= slope fedge + one? ( #(lpol) ) => + if sl.height < sl.base then [ empty(), fedge ] + else [ fedge , empty() ] + ( sl.height < sl.base ) => [ empty() , fedge ] + restPANE:= oneToNeg rest lpol + fedge2 := first restPANE + sl2:= slope fedge2 + ( sl2.height < sl2.base ) => [ fedge , fedge2 ] + restPANE + + negAndPosEdge(pol, lpol)== + -- cette fonction retourne deux liste de polynomes: + -- la premiere est liee a + -- la transformation x = x y^l (i.e v(x) >= v(y) ). + -- la deuxieme est liee a la transformation + -- y = x^l y (i.e. v(x) <= v(y) ). + -- si le degree en Y est inferieur a celui en X on + -- previligie la transformation + -- y = x^l y. + degree( pol , 2 )$PackPoly < degree( pol, 1 )$PackPoly => oneToPos lpol + oneToNeg lpol + + localNewtonPolygon: List PolyRing -> List PolyRing + + slEq: (recSlope, recSlope) -> Boolean + + regroup: List PolyRing -> List List PolyRing + + multiplicity( lpol )== + nl:=#(lpol) + flpol:= first lpol + one? nl=> totalDegree( last flpol)$PackPoly + s:=slope flpol + s.height < s.base => totalDegree( first flpol )$PackPoly + multiplicity( rest lpol ) + + slEq(s1,s2)== + s1.height * s2.base = s2.height * s1.base + + regroup(lpol)== + -- Note : les elements de lpol sont sur la frontiere d'un poly. + -- de Newton et il sont deja trie's. + nl:=#(lpol) + one? nl => [lpol] + 2 = nl => [lpol] + f:=first lpol + r:= regroup rest lpol + -- Note : les listes de "r" contiennent au moins 2 elements !! + fg:=first r + s1:=slope(f, first fg) + s2:=slope(fg.1,fg.2) + slEq(s1,s2) => cons( cons(f, fg) , rest r) + cons( [f, first fg], r) + +-- ================================================ +-- sortMono : trie les monomes par ordre croissant +-- ================================================ + + sortMono: (PolyRing, PolyRing) -> Boolean + sortMono(p1,p2)== + a:= degree p1 + b:= degree p2 + a.1 < b.1 => true -- p1 est a gauche de p2 + a.1 = b.1 and a.2 > b.2 => true -- p1 est au dessus de p2 + false + +-- =================================================== +-- newtonPolygon : retourne tous les monomes sur la +-- frontiere de du polygone de Newton, +-- regroupes selon leur pente. +-- =================================================== + + properSlope: ( List PolyRing, Integer, Integer, _ + Union("left","center","right","vertical","horizontal")) -> Boolean + + properSlope(lpol,hgt,bs, tp)== + s:=slope lpol + tp case "left" and s.height = hgt and s.base = bs => true + tp case "right" and s.height = bs and s.base = hgt => true + false + + + newtonPolygon(pol,hgt,bs,tp)== + ans:=regroup localNewtonPolygon _ + sort( sortMono(#1,#2) , monomials(pol)$PackPoly) + zero?(bs) => ans + [ l for l in ans | properSlope(l,hgt,bs,tp)] + + comp2pol: (PolyRing,PolyRing) -> List PolyRing + comp2pol(p1,p2)== + rs:= slope(p1,p2) + zero? rs.base => -- p1 et p2 sont alignes verticalement !! + zero? rs.height => [p1 + p2] -- les monomes sont identiques ! + rs.height < 0 => [p1] -- p2 est au dessus de p1, + -- il faut retourner p1 !! + [p2] -- sinon p1 est au dessus de p2 . + rs.base > 0 => -- p1 est a gauche de p2 + rs.height > 0 => [p1,p2] -- p1 est plus haut que p2 + [p1] -- p1 est a la meme hauteur que p2 + -- ici p2 est a gauche de p1 + rs.height < 0 => [p2,p1] -- p2 est plus haut que p1 + [p2] -- p2 est a la meme hauteur que p1. + + slope(lpol) == + ^one?(#lpol) => slope( first lpol, second lpol) + f:= first lpol + ( degree(f,2)$PackPoly < degree(f,1)$PackPoly ) => _ + [ 0$Integer, 1$Integer,0,0, "right" ]$recSlope + [1$Integer, 0$Integer,0,0 , "left" ]$recSlope + + convex_?: (PolyRing,PolyRing,PolyRing) -> Boolean + convex_?(p1,p2,p3)== + s1:=slope(p1,p2) + s2:=slope(p2,p3) + s1.type case "horizontal" => true + s2.type case "vertical" => true + s1.type case "vertical" => false -- car ici il faut c2 vertical + s2.type case "horizontal" => false + (s1.height * s2.base) < (s2.height * s1.base) + + consBondary: (PolyRing , List PolyRing) -> List PolyRing + consBondary(lt, lpol)== + -- "lt" est un monome a ajouter ou non a "lpol" qui est une + empty? lpol => [lt] + st:=first lpol + nl:NonNegativeInteger:= # lpol + one? nl => comp2pol(lt,st) + degree(lt).1 = degree(st).1 and degree(lt).2 > degree(st).2 => lpol + ^convex?(lt , st , lpol.2) => cons(lt, lpol) + consBondary( lt, rest lpol ) + + localNewtonPolygon(lpol)== + -- lpol doit etre trie' par sortMono + empty? lpol => empty() + nl:= #(lpol) + one? nl => lpol + lt:=first lpol + polgRest:= localNewtonPolygon rest lpol + consBondary( lt , polgRest ) + +@ +<>= +"NPOLYGON" [color="#FF4488",href="bookvol10.4.pdf#nameddest=NPOLYGON"] +"DIRPCAT" [color="#4488FF",href="bookvol10.2.pdf#nameddest=DIRPCAT"] +"NPOLYGON" -> "DIRPCAT" + +@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{package NCODIV NonCommutativeOperatorDivision} \pagehead{NonCommutativeOperatorDivision}{NCODIV} @@ -123854,7 +124117,6 @@ PointsOfFiniteOrderTools(UP, UPUP): Exports == Implementation where @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -PLPKCRV PolynomialPackageForCurve \section{package PLPKCRV PolynomialPackageForCurve} <>= )set break resume @@ -155910,6 +156172,7 @@ ZeroDimensionalSolvePackage(R,ls,ls2): Exports == Implementation where <> <> <> +<> <> <> <> @@ -155992,6 +156255,7 @@ ZeroDimensionalSolvePackage(R,ls,ls2): Exports == Implementation where <> <> <> +<> <> <> <> diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index 857aba3..68f9504 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -24040,6 +24040,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|MyUnivariatePolynomial| . MYUP) (|MyExpression| . MYEXPR) (|NeitherSparseOrDensePowerSeries| . NSDPS) + (|NewtonPolygon| . NPOLYGON) (|NoneFunctions1| . NONE1) (|NonNegativeInteger| . NNI) (|NottinghamGroup| . NOTTING) diff --git a/books/ps/v104newtonpolygon.eps b/books/ps/v104newtonpolygon.eps new file mode 100644 index 0000000..c5283b0 --- /dev/null +++ b/books/ps/v104newtonpolygon.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 140 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 140 152 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 104 116 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% NPOLYGON +gsave +[ /Rect [ 0 72 96 108 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=NPOLYGON) >> + /Subtype /Link +/ANN pdfmark +0.939 0.733 1.000 nodecolor +newpath 96 108 moveto +0 108 lineto +0 72 lineto +96 72 lineto +closepath fill +1 setlinewidth +filled +0.939 0.733 1.000 nodecolor +newpath 96 108 moveto +0 108 lineto +0 72 lineto +96 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +8 85.9 moveto 80 (NPOLYGON) alignedtext +grestore +% DIRPCAT +gsave +[ /Rect [ 9 0 87 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 87 36 moveto +9 36 lineto +9 0 lineto +87 0 lineto +closepath fill +1 setlinewidth +filled +0.606 0.733 1.000 nodecolor +newpath 87 36 moveto +9 36 lineto +9 0 lineto +87 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +17 13.9 moveto 62 (DIRPCAT) alignedtext +grestore +% NPOLYGON->DIRPCAT +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 48 72 moveto +48 64 48 55 48 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 51.5 46 moveto +48 36 lineto +44.5 46 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 51.5 46 moveto +48 36 lineto +44.5 46 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +end +restore +%%EOF diff --git a/changelog b/changelog index 94cefd7..42d3be7 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20100522 tpd src/axiom-website/patches.html 20100522.01.tpd.patch +20100522 tpd src/algebra/Makefile help and test for NewtonPolygon +20100522 tpd books/bookvol5 expose NewtonPolygon +20100522 tpd books/bookvol10.4 add NewtonPolygon +20100522 tpd books/ps/v104newtonpolygon.eps added 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 diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 658c107..4db73c5 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -8954,8 +8954,8 @@ Used by next layer: DIAGG FRAMALG MDAGG SMATCAT UPXSCCA LAYER12=\ ${OUT}/DIAGG.o ${OUT}/DIAGG-.o ${OUT}/DSMP.o ${OUT}/EXPUPXS.o \ ${OUT}/FACTRN.o ${OUT}/FFFACTSE.o \ - ${OUT}/FRAMALG.o ${OUT}/FRAMALG-.o ${OUT}/MDAGG.o ${OUT}/ODPOL.o \ - ${OUT}/PLOT.o ${OUT}/RFP.o \ + ${OUT}/FRAMALG.o ${OUT}/FRAMALG-.o ${OUT}/MDAGG.o ${OUT}/NPOLYGON.o \ + ${OUT}/ODPOL.o ${OUT}/PLOT.o ${OUT}/RFP.o \ ${OUT}/RMCAT2.o ${OUT}/ROIRC.o ${OUT}/SDPOL.o \ ${OUT}/SMATCAT.o ${OUT}/SMATCAT-.o ${OUT}/TUBETOOL.o ${OUT}/UPXSCCA.o \ ${OUT}/UPXSCCA-.o \ @@ -9103,6 +9103,23 @@ LAYER12=\ /*"MDAGG" -> {"BGAGG"; "HOAGG"; "AGG"; "TYPE"; "SETCAT"; "BASTYPE"}*/ /*"MDAGG" -> {"KOERCE"; "EVALAB"; "IEVALAB"; "CLAGG"; "KONVERT"}*/ +"NPOLYGON" [color="#FF4488",href="bookvol10.4.pdf#nameddest=NPOLYGON"] +/*"NPOLYGON" -> {"RING"; "RNG"; "ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"}*/ +/*"NPOLYGON" -> {"SETCAT"; "BASTYPE"; "KOERCE"; "SGROUP"; "MONOID"}*/ +/*"NPOLYGON" -> {"LMODULE"; "FAMR"; "AMR"; "BMODULE"; "RMODULE"; "COMRING"}*/ +/*"NPOLYGON" -> {"ALGEBRA"; "MODULE"; "CHARZ"; "CHARNZ"; "INTDOM"}*/ +/*"NPOLYGON" -> {"ENTIRER"; "FRETRCT"; "RETRACT"}*/ +"NPOLYGON" -> "DIRPCAT" +/*"NPOLYGON" -> {"IXAGG"; "HOAGG"; "AGG"; "TYPE"; "EVALAB"; "IEVALAB"}*/ +/*"NPOLYGON" -> {"ELTAGG"; "ELTAB"; "DIFEXT"; "DIFRING"; "PDRING"}*/ +/*"NPOLYGON" -> {"FLINEXP"; "LINEXP"; "FINITE"; "ORDRING"; "OAGROUP"}*/ +/*"NPOLYGON" -> {"OCAMON"; "OAMON"; "OASGP"; "ORDSET"; "OAMONS"; "VSPACE"}*/ +/*"NPOLYGON" -> {"FIELD"; "EUCDOM"; "PID"; "GCDDOM"; "UFD"; "DIVRING"; "INT"}*/ +/*"NPOLYGON" -> {"PI"; "NNI"; "LIST"; "ILIST"; "LSAGG"; "STAGG"; "URAGG"}*/ +/*"NPOLYGON" -> {"RCAGG"; "LNAGG"; "CLAGG"; "KONVERT"; "FLAGG"; "ELAGG"}*/ +/*"NPOLYGON" -> {"OM"; "LSAGG-"; "STAGG-"; "ELAGG-"; "FLAGG-"; "URAGG-"}*/ +/*"NPOLYGON" -> {"BOOLEAN"}*/ + "ODPOL" [color="#88FF44",href="bookvol10.3.pdf#nameddest=ODPOL"] "ODPOL" -> "DPOLCAT" /*"ODPOL" -> {"POLYCAT"; "PDRING"; "RING"; "RNG"; "ABELGRP"; "CABMON"}*/ @@ -16860,6 +16877,21 @@ ${MID}/PLPKCRV.nrlib/code.o: ${MID}/PLPKCRV.spad | ${INTERPSYS} >${TMP}/trace ; \ fi ) @ +<>= + +NPOLYGONDEPS = PFORP + +${MID}/NPOLYGON.nrlib/code.o: ${MID}/NPOLYGON.spad + @echo P3 making ${MID}/NPOLYGON.nrlib/code.o from ${MID}/NPOLYGON.spad + @ (cd ${MID} ; \ + if [ -z "${NOISE}" ] ; then \ + echo -e ")lib ${NPOLYGONDEPS} \n )co NPOLYGON.spad" \ + | ${INTERPSYS} ; \ + else \ + echo -e ")lib ${NPOLYGONDEPS} \n )co NPOLYGON.spad" \ + | ${INTERPSYS} >${TMP}/trace ; \ + fi ) +@ \section{Broken Files} These files are Aldor files @@ -17675,6 +17707,7 @@ SPADHELP=\ ${HELP}/NagSeriesSummationPackage.help \ ${HELP}/NagSpecialFunctionsPackage.help \ ${HELP}/NeitherSparseOrDensePowerSeries.help \ + ${HELP}/NewtonPolygon.help \ ${HELP}/None.help \ ${HELP}/NottinghamGroup.help \ ${HELP}/Octonion.help \ @@ -17861,6 +17894,7 @@ REGRESS= \ Multiset.regress \ MultivariatePolynomial.regress \ NeitherSparseOrDensePowerSeries.regress \ + NewtonPolygon.regress \ None.regress \ NottinghamGroup.regress \ Octonion.regress \ @@ -19163,6 +19197,18 @@ ${HELP}/NeitherSparseOrDensePowerSeries.help: ${BOOKS}/bookvol10.3.pamphlet >${INPUT}/NeitherSparseOrDensePowerSeries.input @echo "NeitherSparseOrDensePowerSeries (NSDPS)" >>${HELPFILE} +${HELP}/NewtonPolygon.help: ${BOOKS}/bookvol10.4.pamphlet + @echo 7807 create NewtonPolygon.help from \ + ${BOOKS}/bookvol10.4.pamphlet + @${TANGLE} -R"NewtonPolygon.help" \ + ${BOOKS}/bookvol10.4.pamphlet \ + >${HELP}/NewtonPolygon.help + @cp ${HELP}/NewtonPolygon.help ${HELP}/NPOLYGON.help + @${TANGLE} -R"NewtonPolygon.input" \ + ${BOOKS}/bookvol10.4.pamphlet \ + >${INPUT}/NewtonPolygon.input + @echo "NewtonPolygon (NPOLYGON)" >>${HELPFILE} + ${HELP}/None.help: ${BOOKS}/bookvol10.3.pamphlet @echo 7810 create None.help from ${BOOKS}/bookvol10.3.pamphlet @${TANGLE} -R"None.help" ${BOOKS}/bookvol10.3.pamphlet \ diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 7626c54..3469ee1 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2779,5 +2779,7 @@ books/ps/v104linesoppack.eps added new bounding box info
books/ps/v104rootsfindingpackage.eps add bounding box info
20100521.05.tpd.patch books/bookvol10.4 add PolynomialPackageForCurve
+20100522.01.tpd.patch +books/bookvol10.4 add NewtonPolygon