diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet index 6618f7f..94faef7 100644 --- a/books/bookvol10.4.pamphlet +++ b/books/bookvol10.4.pamphlet @@ -44578,6 +44578,7 @@ InnerModularGcd(R,BP,pMod,nextMod):C == T hg:=height g 2*min(hf,hg) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{package FOMOGCD ForModularGcd} -- ForModularGcd(R,BP) : C == T -- where @@ -49963,6 +49964,361 @@ InternalRationalUnivariateRepresentationPackage(R,E,V,P,TS): Exports == Implemen @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{package INTFRSP InterpolateFormsPackage} +<>= +)set break resume +)sys rm -f InterpolateFormsPackage.output +)spool InterpolateFormsPackage.output +)set message test on +)set message auto off +)clear all + +--S 1 of 1 +)show InterpolateFormsPackage +--R InterpolateFormsPackage(K: Field,symb: List Symbol,PolyRing: PolynomialCategory(K,E,OrderedVariableList symb),E: DirectProductCategory(# symb,NonNegativeInteger),ProjPt: ProjectiveSpaceCategory K,PCS: LocalPowerSeriesCategory K,Plc: PlacesCategory(K,PCS),DIVISOR: DivisorCategory Plc) is a package constructor +--R Abbreviation for InterpolateFormsPackage is INTFRSP +--R This constructor is exposed in this frame. +--R Issue )edit bookvol10.4.pamphlet to see algebra source code for INTFRSP +--R +--R------------------------------- Operations -------------------------------- +--R basisOfInterpolateForms : (DIVISOR,List PolyRing) -> List Vector K +--R basisOfInterpolateFormsForFact : (DIVISOR,List PolyRing) -> List Vector K +--R interpolateForms : (DIVISOR,NonNegativeInteger,PolyRing,List PolyRing) -> List PolyRing +--R interpolateFormsForFact : (DIVISOR,List PolyRing) -> List PolyRing +--R +--E 1 + +)spool +)lisp (bye) +@ +<>= +==================================================================== +InterpolateFormsPackage examples +==================================================================== + +See Also: +o )show InterpolateFormsPackage + +@ +\pagehead{InterpolateFormsPackage}{INTFRSP} +\pagepic{ps/v104interpolateformspackage.eps}{INTFRSP}{1.00} + +{\bf Exports:}\\ +\begin{tabular}{ll} +\cross{INTFRSP}{basisOfInterpolateForms} & +\cross{INTFRSP}{basisOfInterpolateFormsForFact} \\ +\cross{INTFRSP}{interpolateForms} & +\cross{INTFRSP}{interpolateFormsForFact} +\end{tabular} + +<>= +)abbrev package INTFRSP InterpolateFormsPackage +++ 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 +InterpolateFormsPackage(K,symb,PolyRing,E,ProjPt,PCS,Plc,DIVISOR):_ + Exports == Implementation where + K:Field + symb: List(Symbol) + + OV ==> OrderedVariableList(symb) + E : DirectProductCategory(#symb,NonNegativeInteger) + + PolyRing : PolynomialCategory(K,E,OV) + ProjPt : ProjectiveSpaceCategory(K) + PCS : LocalPowerSeriesCategory(K) + Plc : PlacesCategory(K,PCS) + DIVISOR : DivisorCategory(Plc) + + INT ==> Integer + NNI ==> NonNegativeInteger + ParamPack ==> ParametrizationPackage(K,symb,PolyRing,E,ProjPt,PCS,Plc) + PackPoly ==> PackageForPoly(K,PolyRing,E,#symb) + LINPACK ==> LinearSystemFromPowerSeriesPackage(K,PCS) + + Exports ==> with + + basisOfInterpolateForms: (DIVISOR,List PolyRing) -> List(Vector(K)) + + basisOfInterpolateFormsForFact: (DIVISOR,List PolyRing) -> List(Vector(K)) + + interpolateFormsForFact: (DIVISOR,List PolyRing) -> List(PolyRing) + + interpolateForms: (DIVISOR,NNI,PolyRing,List PolyRing) -> List(PolyRing) + ++ interpolateForms(D,n,pol,base) compute the basis of the sub-vector + ++ space W of V = , such that for all G in W, the + ++ divisor (G) >= D. All the elements in base must be homogeneous + ++ polynomial of degree n. Typicaly, base is the set of all monomial + ++ of degree n: in that case, interpolateForms(D,n,pol,base) + ++ returns the basis of the vector space of all forms of degree d that + ++ interpolated D. The argument pol must be the same polynomial that + ++ defined the curve form which the divisor D is defined. + + Implementation ==> add + + import PolyRing + import PCS + + sbSpcOfCurve: (NNI,PolyRing) -> List(List(K)) + + exponant2monomial: List(NNI) -> PolyRing + + crtV: (List(K),List(INT),NNI) -> List(K) + + createLinSys: (List Plc, List INT,List PolyRing) -> Matrix(K) + + createLinSysWOVectorise: (List Plc, List INT,List PolyRing) -> Matrix(K) + + basisOfInterpolateFormsForFact(divis,lm)== + -- permet d'intepoler un diviseur qui n'est pas rationnel. + -- La partie non rationel + -- est dans sptdiv (note: une place de sptdiv est une place qui identidie + -- l'ensemble des places qui lui sont conjuguees. + -- Note: On utilise ici la fonction createLinSysWOVectorise + -- qui ne vectorise pas les elements du corps de base. + lstOfPlc:= supp divis + lstOfv:= [coefficient(pl,divis) for pl in lstOfPlc] + -- ppsol contiendra la base des formes interpolant ke diviseur divis + linSys:Matrix(K) + linSysT:Matrix(K) + ll:List Matrix K + ^empty?(lstOfPlc) => + linSys:=createLinSysWOVectorise(lstOfPlc,lstOfv,lm) + nullSpace linSys + zeroMat:Matrix(K):=zero(1,#lm)$Matrix(K) + nullSpace zeroMat + + interpolateForms(divis,d,laCrb,lm)== + -- ppsol contiendra la base des formes interpolant le diviseur divis + -- mieux vaut prendre divOfZero de divis ? + ppsol:= basisOfInterpolateForms(divis,lm) + + psol:List(List(K)):=[entries(vec) for vec in ppsol] + mpsol:=psol + sbspc:List(List(K)) + if ^(totalDegree(laCrb)$PackPoly > d) then + -- retourne une base des formes de degres d + -- qui sont un multiple de la courbe + sbspc:=sbSpcOfCurve(d,laCrb) + mpsol:=quotVecSpaceBasis(psol,sbspc)$LinesOpPack(K) + + empty?(mpsol) => [0] + + rowEchmpsol:=rowEchelon(matrix(mpsol)$Matrix(K)) + npsol:=listOfLists(rowEchmpsol) + [reduce("+",[a*f for a in ll for f in lm]) for ll in npsol] + + interpolateFormsForFact(divis,lm)== + -- ppsol contiendra la base des formes interpolant le diviseur divis + ppsol:= basisOfInterpolateFormsForFact(divis,lm) + psol:List(List(K)):=[entries(vec) for vec in ppsol] + mpsol:=psol + empty?(mpsol) => [0] + rowEchmpsol:=rowEchelon matrix(mpsol)$Matrix(K) + npsol:=listOfLists(rowEchmpsol) + [reduce("+",[a*f for a in ll for f in lm]) for ll in npsol] + + createLinSys(lstOfPlc,lstOfv,lm)== + lplsT:=[ [parametrize(f,pl)$ParamPack for f in lm]_ + for pl in lstOfPlc] + lpls:=[[filterUpTo(s,v) for s in souslplsT] _ + for souslplsT in lplsT_ + for v in lstOfv] + linSys:=reduce("vertConcat",_ + [finiteSeries2LinSys(souslplsT,v)$LINPACK_ + for souslplsT in lpls_ + for v in lstOfv]) + linSys + + createLinSysWOVectorise(lstOfPlc,lstOfv,lm)== + lplsT:=[ [parametrize(f,pl)$ParamPack for f in lm]_ + for pl in lstOfPlc] + lpls:=[[filterUpTo(s,v) for s in souslplsT] _ + for souslplsT in lplsT_ + for v in lstOfv] + linSys:=reduce("vertConcat",_ + [finiteSeries2LinSysWOVectorise(souslplsT,v)$LINPACK_ + for souslplsT in lpls_ + for v in lstOfv]) + linSys + + basisOfInterpolateForms(divis,lm)== + lstOfPlc:= supp divis + lstOfv:= [coefficient(pl,divis) for pl in lstOfPlc] + -- ppsol contiendra la base des formes interpolant ke diviseur divis + linSys:Matrix(K) + ^empty?(lstOfPlc) => + linSys:=createLinSys(lstOfPlc,lstOfv,lm) + -- ppsol contient la base des formes passant par le diviseur divv + nullSpace(linSys) + zeroMat:Matrix(K):=zero(1,#lm)$Matrix(K) + nullSpace zeroMat + + +-- interpolateForms(divis,d,laCrb,lm)== +-- lstOfPlc:= supp divis +-- lstOfv:= [coefficient(pl,divis) for pl in lstOfPlc] +-- +-- lpls : List(List(PCS)) +-- lplsT: List(List(PCS)) +-- +-- -- ppsol contiendra la base des formes interpolant ke diviseur divis +-- ppsol:List(Vector(K)) +-- linSys:Matrix(K) +-- if ^empty?(lstOfPlc) then +-- linSys:=createLinSys(lstOfPlc,lstOfv,lm) +-- +-- -- ppsol contient la base des formes passant par le diviseur divv +-- ppsol:=nullSpace(linSys) +-- else +-- zeroMat:Matrix(K):=zero(1,#lm)$Matrix(K) +-- ppsol:=nullSpace zeroMat +-- mpsol:=psol:List(List(K)):=[entries(vec) for vec in ppsol] +-- +-- if ^(totalDegree(laCrb) > d) then +-- -- retourne une base des formes de degres d +-- -- qui sont un multiple de la courbe +-- sbspc:=sbSpcOfCurve(d,laCrb) +-- mpsol:=quotVecSpaceBasis(psol,sbspc)$LinesOpPack(K) +-- +-- empty?(mpsol) => [0] +-- +-- rowEchmpsol:=rowEchelon(matrix(mpsol)) +-- npsol:=listOfLists(rowEchmpsol) +-- [reduce("+",[a*f for a in ll for f in lm]) for ll in npsol] +-- + +-- interpolateForms(divis,d,laCrb,lm)== +-- lstOfPlc:= supp divis +-- lstOfv:= [coefficient(pl,divis) for pl in lstOfPlc] +-- +-- lpls : List(List(PCS)) +-- lplsT: List(List(PCS)) +-- +-- -- ppsol contiendra la base des formes interpolant ke diviseur divis +-- ppsol:List(Vector(K)) +-- linSys:Matrix(K) +-- if ^empty?(lstOfPlc) then +-- +-- lplsT:=[ [parametrize(f,pl)$ParamPack for f in lm]_ +-- for pl in lstOfPlc] +-- +-- lpls:=[[filterUpTo(s,v) for s in souslplsT] _ +-- for souslplsT in lplsT_ +-- for v in lstOfv] +-- +-- linSys:=reduce("vertConcat",_ +-- [finiteSeries2LinSys(souslplsT,v)$LINPACK_ +-- for souslplsT in lpls_ +-- for v in lstOfv]) +-- +-- -- ppsol contient la base des formes passant par le diviseur divv +-- ppsol:=nullSpace(linSys) +-- else +-- zeroMat:Matrix(K):=zero(1,#lm)$Matrix(K) +-- ppsol:=nullSpace zeroMat +-- mpsol:=psol:List(List(K)):=[entries(vec) for vec in ppsol] +-- +-- if ^(totalDegree(laCrb) > d) then +-- -- retourne une base des formes de degres d +-- -- qui sont un multiple de la courbe +-- sbspc:=sbSpcOfCurve(d,laCrb) +-- mpsol:=quotVecSpaceBasis(psol,sbspc)$LinesOpPack(K) +-- +-- empty?(mpsol) => [0] +-- +-- rowEchmpsol:=rowEchelon(matrix(mpsol)) +-- npsol:=listOfLists(rowEchmpsol) +-- [reduce("+",[a*f for a in ll for f in lm]) for ll in npsol] + + listVar:List(OV):= [index(i::PositiveInteger)$OV for i in 1..#symb] + + listMonoPols:List(PolyRing):=[monomial(1,vv,1) for vv in listVar] + + crtV(lcoef,lpos,l)== + vvv:List(K):=[0 for i in 1..l] + for c in lcoef for p in lpos repeat + setelt(vvv,p,c) + vvv + + sbSpcOfCurve(m,laCrb)== + d:=totalDegree(laCrb)$PackPoly + lm:List(PolyRing):=listAllMono(m)$PackPoly + m [[0$K for i in 1..#lm]] + sd:NNI:=((m pretend INT)-(d pretend INT)) pretend NNI + slm:List(PolyRing):=listAllMono(sd)$PackPoly + allPol:=[laCrb*f for f in slm] + lpos:=[[position(m,lm) for m in primitiveMonomials(f)] for f in allPol] + lcoef:=[coefficients(f) for f in allPol] + clm:=#lm + [crtV(lc,lp,clm) for lc in lcoef for lp in lpos] + + inVecSpace?: (List(K),List(List(K))) -> Boolean + inVecSpace?(line,basis)== + mat:Matrix(K):=matrix(basis) + rmat:=rank(mat) + augmat:Matrix(K):=matrix(concat(line,basis)) + raugmat:=rank(augmat) + rmat=raugmat + + + exponant2monomial(lexp)== + reduce("*",[m**e for m in listMonoPols for e in lexp]) + +-- interpolateFunctions(lstOfPlc,lstOfv,lmnumer)== +---- lstOfPlc:= supp divis +---- lstOfv:= [coef(divis,pl) for pl in lstOfPlc] +-- +-- lpls:List(List(PCS)) +-- lplsT:List(List(PCS)) +-- llll:List(List(Integer)) +-- lOrd:List(Integer) +-- ordMin:Integer +-- ppsol:List(Vector(K)) +-- linSys:Matrix(K) +-- if ^empty?(lstOfPlc) then +-- lplsT:=[[parametrize(f,pl)$ParamPack for f in lmnumer ] _ +-- for pl in lstOfPlc] +-- lplsT:=[[removeFirstZeroes(s) for s in l] for l in lplsT] +-- +-- -- series must be shift if somme of them has negetive order +-- llll:= [[order(s)$PCS for s in l] for l in lplsT] +-- lOrd:= concat llll +-- lOrd:=cons(0,lOrd) +-- ordMin:Integer:= "min"/lOrd +-- lplsT:=[[shift(s,-ordMin) for s in l] for l in lplsT] +-- +-- lpls:=[[filterUpTo(s,v-ordMin) for s in souslplsT] _ +-- for souslplsT in lplsT for v in lstOfv] +-- linSys:=reduce("vertConcat",_ +-- [finiteSeries2LinSys(souslplsT,v-ordMin)$LINPACK _ +-- for souslplsT in lpls for v in lstOfv]) +-- -- ppsol contient la base des formes passant par le diviseur divv +-- ppsol:=nullSpace(linSys) +-- else +-- zeroMat:Matrix(K):=zero(1,#lmnumer)$Matrix(K) +-- ppsol:=nullSpace zeroMat +-- mpsol:=psol:List(List(K)):=[entries(vec) for vec in ppsol] +-- -- inserer ici le code pour calculer la base modulo l'ideal ... +-- empty?(mpsol) => [0] +-- rowEchmpsol:=rowEchelon(matrix(mpsol)) +-- npsol:=listOfLists(rowEchmpsol) +-- [reduce("+",[a*f for a in ll for f in lmnumer]) for ll in npsol] + +@ +<>= +"INTFRSP" [color="#FF4488",href="bookvol10.4.pdf#nameddest=INTFRSP"] +"LISYSER" [color="#FF4488",href="bookvol10.4.pdf#nameddest=LISYSER"] +"PFORP" [color="#FF4488",href="bookvol10.4.pdf#nameddest=PFORP"] +"PARAMP" [color="#FF4488",href="bookvol10.4.pdf#nameddest=PARAMP"] +"INTFRSP" -> "LISYSER" +"INTFRSP" -> "PFORP" +"INTFRSP" -> "PARAMP" + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{package IRREDFFX IrredPolyOverFiniteField} \pagehead{IrredPolyOverFiniteField}{IRREDFFX} \pagepic{ps/v104irredpolyoverfinitefield.ps}{IRREDFFX}{1.00} @@ -157983,6 +158339,7 @@ ZeroDimensionalSolvePackage(R,ls,ls2): Exports == Implementation where <> <> <> +<> <> <> <> diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index 9cb3e28..bdfee06 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -23996,6 +23996,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|IntegrationResultRFToFunction| . IRRF2F) (|IntegrationResultToFunction| . IR2F) (|InterfaceGroebnerPackage| . INTERGB) + (|InterpolateFormsPackage| . INTFRSP) (|Interval| . INTRVL) (|InventorDataSink| . IVDATA) (|InventorViewPort| . IVVIEW) diff --git a/books/ps/v104interpolateformspackage.eps b/books/ps/v104interpolateformspackage.eps new file mode 100644 index 0000000..71dc5ee --- /dev/null +++ b/books/ps/v104interpolateformspackage.eps @@ -0,0 +1,356 @@ +%!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 290 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 290 152 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 254 116 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% INTFRSP +gsave +[ /Rect [ 85 72 161 108 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=INTFRSP) >> + /Subtype /Link +/ANN pdfmark +0.939 0.733 1.000 nodecolor +newpath 161 108 moveto +85 108 lineto +85 72 lineto +161 72 lineto +closepath fill +1 setlinewidth +filled +0.939 0.733 1.000 nodecolor +newpath 161 108 moveto +85 108 lineto +85 72 lineto +161 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +93 85.9 moveto 60 (INTFRSP) alignedtext +grestore +% LISYSER +gsave +[ /Rect [ 0 0 74 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=LISYSER) >> + /Subtype /Link +/ANN pdfmark +0.939 0.733 1.000 nodecolor +newpath 74 36 moveto +0 36 lineto +0 0 lineto +74 0 lineto +closepath fill +1 setlinewidth +filled +0.939 0.733 1.000 nodecolor +newpath 74 36 moveto +0 36 lineto +0 0 lineto +74 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +7.5 13.9 moveto 59 (LISYSER) alignedtext +grestore +% INTFRSP->LISYSER +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 101 72 moveto +90 63 77 52 66 42 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 68.1 39.2 moveto +58 36 lineto +63.9 44.8 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 68.1 39.2 moveto +58 36 lineto +63.9 44.8 lineto +closepath stroke +grestore +% PFORP +gsave +[ /Rect [ 92 0 154 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=PFORP) >> + /Subtype /Link +/ANN pdfmark +0.939 0.733 1.000 nodecolor +newpath 154 36 moveto +92 36 lineto +92 0 lineto +154 0 lineto +closepath fill +1 setlinewidth +filled +0.939 0.733 1.000 nodecolor +newpath 154 36 moveto +92 36 lineto +92 0 lineto +154 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +99.5 13.9 moveto 47 (PFORP) alignedtext +grestore +% INTFRSP->PFORP +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 123 72 moveto +123 64 123 55 123 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 126.5 46 moveto +123 36 lineto +119.5 46 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 126.5 46 moveto +123 36 lineto +119.5 46 lineto +closepath stroke +grestore +% PARAMP +gsave +[ /Rect [ 172 0 246 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=PARAMP) >> + /Subtype /Link +/ANN pdfmark +0.939 0.733 1.000 nodecolor +newpath 246 36 moveto +172 36 lineto +172 0 lineto +246 0 lineto +closepath fill +1 setlinewidth +filled +0.939 0.733 1.000 nodecolor +newpath 246 36 moveto +172 36 lineto +172 0 lineto +246 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +180 13.9 moveto 58 (PARAMP) alignedtext +grestore +% INTFRSP->PARAMP +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 145 72 moveto +156 63 169 52 180 42 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 182.1 44.8 moveto +188 36 lineto +177.9 39.2 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 182.1 44.8 moveto +188 36 lineto +177.9 39.2 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +end +restore +%%EOF diff --git a/changelog b/changelog index 429cb9e..504b417 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20100523 tpd src/axiom-website/patches.html 20100523.04.tpd.patch +20100523 tpd src/algebra/Makefile help and test for InterpolateFormsPackage +20100523 tpd books/bookvol5 expose InterpolateFormsPackage +20100523 tpd books/bookvol10.4 add InterpolateFormsPackage +20100523 tpd ps/v104interpolateformspackage.eps added 20100523 tpd src/axiom-website/patches.html 20100523.03.tpd.patch 20100523 tpd src/algebra/Makefile help and test for PARAMP, DTP 20100523 tpd books/bookvol5 expose DesingTreePackage, ParametrizationPackage diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index a6ad9d4..cc43afe 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -8973,7 +8973,7 @@ 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}/LPARSPT.o \ + ${OUT}/FRAMALG.o ${OUT}/FRAMALG-.o ${OUT}/INTFRSP.o ${OUT}/LPARSPT.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 \ @@ -9119,6 +9119,29 @@ LAYER12=\ /*"FRAMALG-" -> {"OAGROUP"; "OCAMON"; "OAMON"; "OASGP"; "CFCAT"; "REAL"}*/ /*"FRAMALG-" -> {"OM"; "NNI"; "PI"; "SINT"; "LIST"; "ILIST"}*/ +"INTFRSP" [color="#FF4488",href="bookvol10.4.pdf#nameddest=INTFRSP"] +"INTFRSP" -> "PFORP" +"INTFRSP" -> "PARAMP" +"INTFRSP" -> "LISYSER" +/*"INTFRSP" -> {"PRSPCAT"; "SETCATD"; "LOCPOWC"; "PLACESC"}*/ +/*"INTFRSP" -> {"DIVCAT"; "LOP"; "FIELD"; "EUCDOM"; "PID"}*/ +/*"INTFRSP" -> {"GCDDOM"; "INTDOM"; "COMRING"; "RING"; "RNG"; "ABELGRP"}*/ +/*"INTFRSP" -> {"CABMON"; "ABELMON"; "ABELSG"; "SETCAT"; "BASTYPE"}*/ +/*"INTFRSP" -> {"KOERCE"; "SGROUP"; "MONOID"; "LMODULE"; "BMODULE"}*/ +/*"INTFRSP" -> {"RMODULE"; "ALGEBRA"; "MODULE"; "ENTIRER"; "UFD"; "DIVRING"}*/ +/*"INTFRSP" -> {"POLYCAT"; "PDRING"; "FAMR"; "AMR"; "CHARZ"; "CHARNZ"}*/ +/*"INTFRSP" -> {"FRETRCT"; "RETRACT"; "EVALAB"; "IEVALAB"; "FLINEXP"}*/ +/*"INTFRSP" -> {"LINEXP"; "ORDSET"; "KONVERT"; "PATMAB"; "PFECAT"}*/ +/*"INTFRSP" -> {"DIRPCAT"; "IXAGG"; "HOAGG"; "AGG"; "TYPE"; "ELTAGG"}*/ +/*"INTFRSP" -> {"ELTAB"; "DIFEXT"; "DIFRING"; "FINITE"; "ORDRING"}*/ +/*"INTFRSP" -> {"OAGROUP"; "OCAMON"; "OAMON"; "OASGP"; "OAMONS"}*/ +/*"INTFRSP" -> {"VSPACE"; "UPSCAT"; "PSCAT"; "FAMONC"; "INT"; "LIST"}*/ +/*"INTFRSP" -> {"ILIST"; "NNI"; "LSAGG"; "STAGG"; "URAGG"; "RCAGG"}*/ +/*"INTFRSP" -> {"LNAGG"; "CLAGG"; "FLAGG"; "ELAGG"; "OM"; "VECTOR"}*/ +/*"INTFRSP" -> {"IVECTOR"; "IARRAY1"; "VECTCAT-"; "A1AGG-"; "FLAGG-"}*/ +/*"INTFRSP" -> {"LNAGG-"; "IXAGG-"; "LSAGG-"; "SINT"; "PI"; "STAGG-"}*/ +/*"INTFRSP" -> {"ELAGG-"; "OUTFORM"}*/ + "LPARSPT" [color="#FF4488",href="bookvol10.4.pdf#nameddest=LPARSPT"] "LPARSPT" -> "PLPKCRV" /*"LPARSPT" -> {"PFECAT"; "DIRPCAT"}*/ @@ -17145,6 +17168,22 @@ ${MID}/DTP.nrlib/code.o: ${MID}/DTP.spad | ${INTERPSYS} >${TMP}/trace ; \ fi ) @ +<>= + +INTFRSPDEPS = PRSPCAT SETCATD LOCPOWC PLACESC DIVCAT PFORP LOP PARAMP \ + LISYSER + +${MID}/INTFRSP.nrlib/code.o: ${MID}/INTFRSP.spad + @echo P3 making ${MID}/INTFRSP.nrlib/code.o from ${MID}/INTFRSP.spad + @ (cd ${MID} ; \ + if [ -z "${NOISE}" ] ; then \ + echo -e ")lib ${INTFRSPDEPS} \n )co INTFRSP.spad" \ + | ${INTERPSYS} ; \ + else \ + echo -e ")lib ${INTFRSPDEPS} \n )co AFALGRES.spad" \ + | ${INTERPSYS} >${TMP}/trace ; \ + fi ) +@ \section{Broken Files} These files are Aldor files @@ -17923,6 +17962,7 @@ SPADHELP=\ ${HELP}/IntegerLinearDependence.help \ ${HELP}/IntegerNumberTheoryFunctions.help \ ${HELP}/InterfaceGroebnerPackage.help \ + ${HELP}/InterpolateFormsPackage.help \ ${HELP}/Interval.help \ ${HELP}/Kernel.help \ ${HELP}/KeyedAccessFile.help \ @@ -18131,6 +18171,7 @@ REGRESS= \ IntegerLinearDependence.regress \ IntegerNumberTheoryFunctions.regress \ InterfaceGroebnerPackage.regress \ + InterpolateFormsPackage.regress \ Interval.regress \ Kernel.regress \ KeyedAccessFile.regress \ @@ -19108,6 +19149,18 @@ ${HELP}/InterfaceGroebnerPackage.help: ${BOOKS}/bookvol10.4.pamphlet >${INPUT}/InterfaceGroebnerPackage.input @echo "InterfaceGroebnerPackage (INTERGB)" >>${HELPFILE} +${HELP}/InterpolateFormsPackage.help: ${BOOKS}/bookvol10.4.pamphlet + @echo 7455 create InterpolateFormsPackage.help from \ + ${BOOKS}/bookvol10.4.pamphlet + @${TANGLE} -R"InterpolateFormsPackage.help" \ + ${BOOKS}/bookvol10.4.pamphlet \ + >${HELP}/InterpolateFormsPackage.help + @cp ${HELP}/InterpolateFormsPackage.help ${HELP}/INTFRSP.help + @${TANGLE} -R"InterpolateFormsPackage.input" \ + ${BOOKS}/bookvol10.4.pamphlet \ + >${INPUT}/InterpolateFormsPackage.input + @echo "InterpolateFormsPackage (INTFRSP)" >>${HELPFILE} + ${HELP}/Interval.help: ${BOOKS}/bookvol10.3.pamphlet @echo 7457 create Interval.help from ${BOOKS}/bookvol10.3.pamphlet @${TANGLE} -R"Interval.help" ${BOOKS}/bookvol10.3.pamphlet \ diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 4548578..0f5f261 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2791,5 +2791,7 @@ books/bookvol10.4 add ProjectiveAlgebraicSetPackage
books/bookvol10.4 add LocalParametrizationOfSimplePointPackage
20100523.03.tpd.patch books/bookvol10.4 add DesingTreePackage, ParametrizationPackage
+20100523.04.tpd.patch +books/bookvol10.4 add InterpolateFormsPackage