diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet index 941bd90..4c310a0 100644 --- a/books/bookvol10.4.pamphlet +++ b/books/bookvol10.4.pamphlet @@ -54968,6 +54968,125 @@ LinearPolynomialEquationByFractions(R:PolynomialFactorizationExplicit): with @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{package LISYSER LinearSystemFromPowerSeriesPackage} +<>= +)set break resume +)sys rm -f LinearSystemFromPowerSeriesPackage.output +)spool LinearSystemFromPowerSeriesPackage.output +)set message test on +)set message auto off +)clear all + +--S 1 of 1 +)show LinearSystemFromPowerSeriesPackage +--R LinearSystemFromPowerSeriesPackage(K: Field,PCS: LocalPowerSeriesCategory K) is a package constructor +--R Abbreviation for LinearSystemFromPowerSeriesPackage is LISYSER +--R This constructor is exposed in this frame. +--R Issue )edit bookvol10.4.pamphlet to see algebra source code for LISYSER +--R +--R------------------------------- Operations -------------------------------- +--R finiteSeries2LinSys : (List PCS,Integer) -> Matrix K +--R finiteSeries2LinSysWOVectorise : (List PCS,Integer) -> Matrix K +--R finiteSeries2Vector : (PCS,Integer) -> List K +--R +--E 1 + +)spool +)lisp (bye) +@ + +<>= +==================================================================== +LinearSystemFromPowerSeriesPackage examples +==================================================================== + +See Also: +o )show LinearSystemFromPowerSeriesPackage + +@ +\pagehead{LinearSystemFromPowerSeriesPackage}{LISYSER} +\pagepic{ps/v104linearsystemfrompowerseriespackage.ps}{LISYSER}{1.00} + +{\bf Exports:}\\ +\begin{tabular}{lll} +\cross{LISYSER}{finiteSeries2LinSys} & +\cross{LISYSER}{finiteSeries2LinSysWOVectorise} & +\cross{LISYSER}{finiteSeries2Vector} +\end{tabular} + +<>= +)abbrev package LISYSER LinearSystemFromPowerSeriesPackage +++ Authors: Gaetan Hache +++ Date Created: 1996 +++ Date Last Updated: May 2010 by Tim Daly +++ Description: +++ Part of the PAFF package +LinearSystemFromPowerSeriesPackage(K,PCS):P==T where + K : Field + PCS: LocalPowerSeriesCategory(K) + + INT ==> Integer + TERM ==> Record(k:INT,c:K) + SER ==> Stream(TERM) + LOpPack ==> LinesOpPack(K) + + P==> with + finiteSeries2LinSysWOVectorise: (List PCS, INT) -> Matrix K + + finiteSeries2LinSys: (List PCS, INT) -> Matrix K + ++ finiteSeries2LinSys(ls,n) returns a matrix which right kernel + ++ is the solution of the linear combinations of the series in ls + ++ which has order greater or equal to n. + ++ NOTE: All the series in ls must be finite and must have order + ++ at least 0: so one must first call on each of them the + ++ function filterUpTo(s,n) and apply an appropriate shift + ++ (mult by a power of t). + + finiteSeries2Vector: (PCS, INT) -> List K + + T==> add + finiteSeries2ListOfTerms: PCS -> List TERM + + finiteSeries2ListOfTermsStream: SER -> List TERM + + finiteSeries2ListOfTermsStream(s)== + empty?(s) => empty() + cons(frst s , finiteSeries2ListOfTermsStream(rst(s))) + + finiteSeries2LinSys(ls,n)== + ll:List K:= [0$K] + lZero:=new(#ls pretend NonNegativeInteger,ll)$List(List(K)) + n <= 0 => transpose matrix lZero + tMat:=transpose matrix [finiteSeries2Vector(s,n) for s in ls] + rowEchWoZeroLines(tMat)$LOpPack + + finiteSeries2LinSysWOVectorise(ls,n)== + ll:List K:= [0$K] + lZero:=new(#ls pretend NonNegativeInteger,ll)$List(List(K)) + n <= 0 => transpose matrix lZero + tMat:=transpose matrix [finiteSeries2Vector(s,n) for s in ls] + rowEchWoZeroLinesWOVectorise(tMat)$LOpPack + + finiteSeries2ListOfTerms(s)== + ss:SER:= s :: SER + finiteSeries2ListOfTermsStream(ss) + + finiteSeries2Vector(ins,n)== + lZero:=new((n pretend NonNegativeInteger),0)$List(K) + s:= removeFirstZeroes ins + lOfTerm:=finiteSeries2ListOfTerms(s) + for t in lOfTerm repeat lZero.((t.k)+1):= t.c + lZero + + +@ +<>= +"LISYSER" [color="#FF4488",href="bookvol10.4.pdf#nameddest=LISYSER"] +"LOCPOWC" [color="#4488FF",href="bookvol10.2.pdf#nameddest=LOCPOWC"] +"LISYSER" -> "LOCPOWC" + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{package LSMP LinearSystemMatrixPackage} \pagehead{LinearSystemMatrixPackage}{LSMP} \pagepic{ps/v104linearsystemmatrixpackage.ps}{LSMP}{1.00} diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index 2cb7821..6fa9b73 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -23997,6 +23997,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|LinearOrdinaryDifferentialOperator| . LODO) (|LinearSystemMatrixPackage| . LSMP) (|LinearSystemMatrixPackage1| . LSMP1) + (|LinearSystemFromPowerSeriesPackage| . LISYSER) (|LinearSystemPolynomialPackage| . LSPP) (|List| . LIST) (|LinesOpPack| . LOP) diff --git a/books/ps/v104linearsystemfrompowerseriespackage.ps b/books/ps/v104linearsystemfrompowerseriespackage.ps new file mode 100644 index 0000000..fefec3c --- /dev/null +++ b/books/ps/v104linearsystemfrompowerseriespackage.ps @@ -0,0 +1,268 @@ +%!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: (atend) +%%BoundingBox: (atend) +%%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 134 152 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 98 116 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% LISYSER +gsave +[ /Rect [ 8 72 82 108 ] + /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 82 108 moveto +8 108 lineto +8 72 lineto +82 72 lineto +closepath fill +1 setlinewidth +filled +0.939 0.733 1.000 nodecolor +newpath 82 108 moveto +8 108 lineto +8 72 lineto +82 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +15.5 85.9 moveto 59 (LISYSER) alignedtext +grestore +% LOCPOWC +gsave +[ /Rect [ 0 0 90 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=LOCPOWC) >> + /Subtype /Link +/ANN pdfmark +0.606 0.733 1.000 nodecolor +newpath 90 36 moveto +0 36 lineto +0 0 lineto +90 0 lineto +closepath fill +1 setlinewidth +filled +0.606 0.733 1.000 nodecolor +newpath 90 36 moveto +0 36 lineto +0 0 lineto +90 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +8 13.9 moveto 74 (LOCPOWC) alignedtext +grestore +% LISYSER->LOCPOWC +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 45 72 moveto +45 64 45 55 45 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 48.5 46 moveto +45 36 lineto +41.5 46 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 48.5 46 moveto +45 36 lineto +41.5 46 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +%%BoundingBox: 36 36 134 152 +end +restore +%%EOF diff --git a/changelog b/changelog index a035034..67b2931 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20100512 tpd src/axiom-website/patches.html 20100512.02.tpd.patch +20100512 tpd src/algebra/Makefile help and test for LISYSER +20100512 tpd books/bookvol5 expose LinearSystemFromPowerSeriesPackage +20100512 tpd books/bookvol10.4 add LinearSystemFromPowerSeriesPackage +20100512 tpd books/ps/v104linearsystemfrompowerseriespackage.ps added 20100512 tpd src/axiom-website/patches.html 20100512.01.tpd.patch 20100512 tpd src/algebra/Makefile help and test files for NSDPS 20100512 tpd books/bookvol5 expose NeitherSparseOrDensePowerSeries diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 3fa8ab5..6395345 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -5178,7 +5178,7 @@ LAYER10=\ @ \subsection{Layer11} -Depends on: DIRPCAT FAXF PFECAT STRING\\ +Depends on: DIRPCAT FAXF PFECAT STRING LOP\\ Used by next layer: DIOPS DPOLCAT FINRALG FRAC RMATCAT RRCC UPXSCAT <>= @@ -5213,7 +5213,8 @@ LAYER11=\ ${OUT}/INTHERTR.o \ ${OUT}/INTRAT.o ${OUT}/INTRF.o ${OUT}/INTSLPE.o ${OUT}/INTTR.o \ ${OUT}/ISUMP.o ${OUT}/LAUPOL.o ${OUT}/LEADCDET.o ${OUT}/LGROBP.o \ - ${OUT}/LIMITRF.o ${OUT}/LINDEP.o ${OUT}/LO.o ${OUT}/LPEFRAC.o \ + ${OUT}/LIMITRF.o ${OUT}/LINDEP.o ${OUT}/LISYSER.o \ + ${OUT}/LO.o ${OUT}/LPEFRAC.o \ ${OUT}/LSPP.o ${OUT}/MATLIN.o ${OUT}/MCDEN.o ${OUT}/MDDFACT.o \ ${OUT}/MFINFACT.o ${OUT}/MFLOAT.o ${OUT}/MINT.o ${OUT}/MLIFT.o \ ${OUT}/MMAP.o ${OUT}/MODMON.o ${OUT}/MONOTOOL.o ${OUT}/MPCPF.o \ @@ -7056,6 +7057,19 @@ LAYER11=\ /*"LINDEP" -> {"FLINEXP"; "PATAB"; "FPATMAB"; "CHARNZ"}*/ "LINDEP" -> "PFECAT" +"LISYSER" [color="#FF4488",href="bookvol10.4.pdf#nameddest=LISYSER"] +/*"LISYSER" -> {"FIELD"; "EUCDOM"; "PID"; "GCDDOM"; "INTDOM"; "COMRING"}*/ +/*"LISYSER" -> {"RING"; "RNG"; "ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"}*/ +/*"LISYSER" -> {"SETCAT"; "BASTYPE"; "KOERCE"; "SGROUP"; "MONOID"; "LMODULE"}*/ +/*"LISYSER" -> {"BMODULE"; "RMODULE"; "ALGEBRA"; "MODULE"; "ENTIRER"; "UFD"}*/ +/*"LISYSER" -> {"DIVRING"}*/ +"LISYSER" -> "LOCPOWC" +/*"LISYSER" -> {"UPSCAT"; "PSCAT"; "AMR"; "CHARZ"; "CHARNZ"; "ELTAB"}*/ +/*"LISYSER" -> {"DIFRING"; "PDRING"; "INT"; "LIST"; "ILIST"; "LSAGG"}*/ +/*"LISYSER" -> {"STAGG"; "URAGG"; "RCAGG"; "HOAGG"; "AGG"; "TYPE"; "EVALAB"}*/ +/*"LISYSER" -> {"IEVALAB"; "LNAGG"; "IXAGG"; "ELTAGG"; "CLAGG"; "KONVERT"}*/ +/*"LISYSER" -> {"FLAGG"; "ORDSET"; "ELAGG"; "OM"; "LSAGG-"; "NNI"; "STAGG-"}*/ + "LO" [color="#88FF44",href="bookvol10.3.pdf#nameddest=LO"] /*"LO" -> {"MODULE"; "BMODULE"; "LMODULE"; "ABELGRP"; "CABMON"; "ABELMON"}*/ /*"LO" -> {"ABELSG"; "SETCAT"; "BASTYPE"; "KOERCE"; "RMODULE"; "OAGROUP"}*/ @@ -16170,6 +16184,21 @@ ${MID}/NSDPS.nrlib/code.o: ${MID}/NSDPS.spad | ${INTERPSYS} >${TMP}/trace ; \ fi ) @ +<>= + +LISYSERDEPS = LOCPOWC LOP + +${MID}/LISYSER.nrlib/code.o: ${MID}/LISYSER.spad + @echo P3 making ${MID}/LISYSER.nrlib/code.o from ${MID}/LISYSER.spad + @ (cd ${MID} ; \ + if [ -z "${NOISE}" ] ; then \ + echo -e ")lib ${LISYSERDEPS} \n )co LISYSER.spad" \ + | ${INTERPSYS} ; \ + else \ + echo -e ")lib ${LISYSERDEPS} \n )co LISYSER.spad" \ + | ${INTERPSYS} >${TMP}/trace ; \ + fi ) +@ \section{Broken Files} These files are Aldor files @@ -16940,6 +16969,7 @@ SPADHELP=\ ${HELP}/LinearOrdinaryDifferentialOperator.help \ ${HELP}/LinearOrdinaryDifferentialOperator1.help \ ${HELP}/LinearOrdinaryDifferentialOperator2.help \ + ${HELP}/LinearSystemFromPowerSeriesPackage.help \ ${HELP}/List.help \ ${HELP}/LinesOpPack.help \ ${HELP}/LocalPowerSeriesCategory.help \ @@ -17112,6 +17142,7 @@ REGRESS= \ LinearOrdinaryDifferentialOperator.regress \ LinearOrdinaryDifferentialOperator1.regress \ LinearOrdinaryDifferentialOperator2.regress \ + LinearSystemFromPowerSeriesPackage.regress \ List.regress \ LinesOpPack.regress \ LocalPowerSeriesCategory.regress \ @@ -17931,6 +17962,19 @@ ${HELP}/LinearOrdinaryDifferentialOperator2.help: \ >${INPUT}/LinearOrdinaryDifferentialOperator2.input @echo "LinearOrdinaryDifferentialOperator2 (LODO2)" >>${HELPFILE} +${HELP}/LinearSystemFromPowerSeriesPackage.help: ${BOOKS}/bookvol10.4.pamphlet + @echo 7555 create LinearSystemFromPowerSeriesPackage.help from \ + ${BOOKS}/bookvol10.4.pamphlet + @${TANGLE} -R"LinearSystemFromPowerSeriesPackage.help" \ + ${BOOKS}/bookvol10.4.pamphlet \ + >${HELP}/LinearSystemFromPowerSeriesPackage.help + @cp ${HELP}/LinearSystemFromPowerSeriesPackage.help \ + ${HELP}/LISYSER.help + @${TANGLE} -R"LinearSystemFromPowerSeriesPackage.input" \ + ${BOOKS}/bookvol10.4.pamphlet \ + >${INPUT}/LinearSystemFromPowerSeriesPackage.input + @echo "LinearSystemFromPowerSeriesPackage (LISYSER)" >>${HELPFILE} + ${HELP}/List.help: ${BOOKS}/bookvol10.3.pamphlet @echo 7560 create List.help from ${BOOKS}/bookvol10.3.pamphlet @${TANGLE} -R"List.help" ${BOOKS}/bookvol10.3.pamphlet \ diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index dafd1e6..be5fd2e 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2699,5 +2699,7 @@ src/input/Makefile remove duplicate curl.input invocation
books/bookvol10.2 add LocalPowerSeriesCategory
20100512.01.tpd.patch books/bookvol10.3 add NeitherSparseOrDensePowerSeries
+20100512.02.tpd.patch +books/bookvol10.4 add LinearSystemFromPowerSeriesPackage