diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet index 7d78657..453e0e2 100644 --- a/books/bookvol10.3.pamphlet +++ b/books/bookvol10.3.pamphlet @@ -47664,6 +47664,100 @@ MultivariatePolynomial(vl:List Symbol, R:Ring) @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain MYEXPR MyExpression} +\pagehead{MyExpression}{MYEXPR} +\pagepic{ps/v103myexpression.ps}{MYEXPR}{1.00} +See also:\\ +\refto{MyUnivariatePolynomial}{MYUP} +<>= +)abbrev domain MYEXPR MyExpression +MyExpression(q: Symbol, R): Exports == Implementation where + + R: Join(Ring, OrderedSet, IntegralDomain) + UP ==> MyUnivariatePolynomial(q, R) + + Exports == Join(FunctionSpace R, IntegralDomain, + RetractableTo UP, RetractableTo Symbol, + RetractableTo Integer, CombinatorialOpsCategory, + PartialDifferentialRing Symbol) with + _* : (%,%) -> % + _/ : (%,%) -> % + _*_* : (%,%) -> % + numerator : % -> % + denominator : % -> % + ground? : % -> Boolean + + coerce: Fraction UP -> % + retract: % -> Fraction UP + + Implementation == Expression R add + Rep := Expression R + + iunivariate(p: Polynomial R): UP == + poly: SparseUnivariatePolynomial(Polynomial R) + := univariate(p, q)$(Polynomial R) + map(retract(#1), poly)$UnivariatePolynomialCategoryFunctions2(Polynomial R, + SparseUnivariatePolynomial Polynomial R, + R, UP) + + retract(p: %): Fraction UP == + poly: Fraction Polynomial R := retract p + upoly: UP := iunivariate numer poly + vpoly: UP := iunivariate denom poly + + upoly / vpoly + + retract(p: %): UP == iunivariate retract p + + coerce(r: Fraction UP): % == + num: SparseUnivariatePolynomial R := makeSUP numer r + den: SparseUnivariatePolynomial R := makeSUP denom r + u: Polynomial R := multivariate(num, q) + v: Polynomial R := multivariate(den, q) + + quot: Fraction Polynomial R := u/v + + quot::(Expression R) + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain MYUP MyUnivariatePolynomial} +\pagehead{MyUnivariatePolynomial}{MYUP} +\pagepic{ps/v103myunivariatepolynomial.ps}{MYUP}{1.00} +See also:\\ +\refto{MyExpression}{MYEXPR} +<>= +)abbrev domain MYUP MyUnivariatePolynomial +MyUnivariatePolynomial(x:Symbol, R:Ring): + UnivariatePolynomialCategory(R) with + RetractableTo Symbol; + coerce: Variable(x) -> % + ++ coerce(x) converts the variable x to a univariate polynomial. + fmecg: (%,NonNegativeInteger,R,%) -> % + ++ fmecg(p1,e,r,p2) finds X : p1 - r * X**e * p2 + if R has univariate: (R, Symbol) -> SparseUnivariatePolynomial R + then coerce: R -> % + coerce: Polynomial R -> % + == SparseUnivariatePolynomial(R) add + Rep := SparseUnivariatePolynomial(R) + coerce(p: %):OutputForm == outputForm(p, outputForm x) + coerce(x: Symbol): % == monomial(1, 1) + coerce(v: Variable(x)):% == monomial(1, 1) + retract(p: %): Symbol == + retract(p)@SingletonAsOrderedSet + x + if R has univariate: (R, Symbol) -> SparseUnivariatePolynomial R + then coerce(p: R): % == univariate(p, x)$R + + coerce(p: Polynomial R): % == + poly: SparseUnivariatePolynomial(Polynomial R) + := univariate(p, x)$(Polynomial R) + map(retract(#1), poly)$UnivariatePolynomialCategoryFunctions2(Polynomial R, + SparseUnivariatePolynomial Polynomial R, + R, %) + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chapter N} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain NSMP NewSparseMultivariatePolynomial} @@ -91347,6 +91441,8 @@ Note that this code is not included in the generated catdef.spad file. <> <> <> +<> +<> <> <> diff --git a/changelog b/changelog index f491f42..fcdd260 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,11 @@ +20081221 tpd src/axiom-website/patches.html 20081221.01.tpd.patch +20081221 tpd readme add Gorka quote +20081221 tpd src/axiom-website/download.html XTerm*metaSendsEscape: true +20081221 tpd src/algebra/Makefile.pamphlet +20081221 tpd books/bookvol10.3 add domains +20081221 tpd books/ps/v103myunivariatepolynomial.ps added +20081221 tpd books/ps/v103myexpression.ps added +20081221 tpd src/algebra/mantepse.spad move domains to bookvol10.3 20081219 tpd src/axiom-website/patches.html 20081219.01.wxh.patch 20081219 wxh src/interp/nrunfast.boot Float has exp : Float -> Float 20081217 tpd src/axiom-website/patches.html 20081217.02.tpd.patch diff --git a/readme b/readme index c8f1a1c..ae718f3 100644 --- a/readme +++ b/readme @@ -1,3 +1,5 @@ +"What matters the most is what you do for free" -- John Gorka + You've unpacked the Axiom source code to some directory. In this document we'll call that directory /home/me/axiom. Note that the path cannot contain uppercase characters or spaces. This is a porting diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index ce9ddba..e15ac4b 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -878,7 +878,8 @@ LAYER20=\ ${OUT}/INTHERAL.o ${OUT}/INTPAF.o ${OUT}/INTPM.o ${OUT}/INTTOOLS.o \ ${OUT}/ITRIGMNP.o ${OUT}/JORDAN.o ${OUT}/KOVACIC.o ${OUT}/LF.o \ ${OUT}/LIE.o ${OUT}/LODOF.o ${OUT}/LSQM.o ${OUT}/OMEXPR.o \ - ${OUT}/MCMPLX.o ${OUT}/MULTFACT.o ${OUT}/NAGD01.o ${OUT}/NAGD02.o \ + ${OUT}/MCMPLX.o ${OUT}/MULTFACT.o ${OUT}/MYEXPR.o \ + ${OUT}/NAGD01.o ${OUT}/NAGD02.o \ ${OUT}/NAGF01.o ${OUT}/NAGF02.o ${OUT}/NAGF04.o ${OUT}/NCEP.o \ ${OUT}/NLINSOL.o ${OUT}/NSMP.o ${OUT}/NUMERIC.o ${OUT}/OCT.o \ ${OUT}/OCTCT2.o ${OUT}/ODEPAL.o ${OUT}/ODERTRIC.o ${OUT}/PADE.o \ @@ -931,6 +932,7 @@ LAYER21=\ ${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 \ + ${OUT}/MYUP.o \ ${OUT}/NODE1.o ${OUT}/ODECONST.o ${OUT}/ODEINT.o ${OUT}/RECOP.o \ ${OUT}/REP.o \ ${OUT}/SOLVERAD.o ${OUT}/SULS.o ${OUT}/SUPXS.o ${OUT}/UFPS1.o \ @@ -1181,7 +1183,7 @@ ${MID}/GUESSAN.nrlib/code.o: ${MID}/GUESSAN.spad fi ) GUESSUPDEPS = NEWTON FAMR2 FFFG FFFGF SUPEXPR UTSSOL EXPRSOL GOPT GOPT0 \ - UFPS RECOP UFPS1 GUESS + UFPS RECOP UFPS1 GUESS MYEXPR MYUP ${MID}/GUESSUP.nrlib/code.o: ${MID}/GUESSUP.spad @echo S1 making ${MID}/GUESSUP.nrlib/code.o from ${MID}/GUESSUP.spad @@ -3242,6 +3244,7 @@ ${HELP}/ZeroDimensionalSolvePackage.help: ${IN}/zerodim.spad.pamphlet <> <> <> +<> <> <> diff --git a/src/algebra/mantepse.spad.pamphlet b/src/algebra/mantepse.spad.pamphlet index 5addd74..b6c9ba3 100644 --- a/src/algebra/mantepse.spad.pamphlet +++ b/src/algebra/mantepse.spad.pamphlet @@ -2587,91 +2587,8 @@ GuessAlgebraicNumber() == Guess(AlgebraicNumber, AlgebraicNumber, coerce$Expression(Integer)) @ - - \section{package GUESSUP GuessUnivariatePolynomial} <>= -)abbrev domain MYUP MyUnivariatePolynomial -MyUnivariatePolynomial(x:Symbol, R:Ring): - UnivariatePolynomialCategory(R) with - RetractableTo Symbol; - coerce: Variable(x) -> % - ++ coerce(x) converts the variable x to a univariate polynomial. - fmecg: (%,NonNegativeInteger,R,%) -> % - ++ fmecg(p1,e,r,p2) finds X : p1 - r * X**e * p2 - if R has univariate: (R, Symbol) -> SparseUnivariatePolynomial R - then coerce: R -> % - coerce: Polynomial R -> % - == SparseUnivariatePolynomial(R) add - Rep := SparseUnivariatePolynomial(R) - coerce(p: %):OutputForm == outputForm(p, outputForm x) - coerce(x: Symbol): % == monomial(1, 1) - coerce(v: Variable(x)):% == monomial(1, 1) - retract(p: %): Symbol == - retract(p)@SingletonAsOrderedSet - x - if R has univariate: (R, Symbol) -> SparseUnivariatePolynomial R - then coerce(p: R): % == univariate(p, x)$R - - coerce(p: Polynomial R): % == - poly: SparseUnivariatePolynomial(Polynomial R) - := univariate(p, x)$(Polynomial R) - map(retract(#1), poly)$UnivariatePolynomialCategoryFunctions2(Polynomial R, - SparseUnivariatePolynomial Polynomial R, - R, %) - - -)abbrev domain MYEXPR MyExpression -MyExpression(q: Symbol, R): Exports == Implementation where - - R: Join(Ring, OrderedSet, IntegralDomain) - UP ==> MyUnivariatePolynomial(q, R) - - Exports == Join(FunctionSpace R, IntegralDomain, - RetractableTo UP, RetractableTo Symbol, - RetractableTo Integer, CombinatorialOpsCategory, - PartialDifferentialRing Symbol) with - _* : (%,%) -> % - _/ : (%,%) -> % - _*_* : (%,%) -> % - numerator : % -> % - denominator : % -> % - ground? : % -> Boolean - - coerce: Fraction UP -> % - retract: % -> Fraction UP - - Implementation == Expression R add - Rep := Expression R - - iunivariate(p: Polynomial R): UP == - poly: SparseUnivariatePolynomial(Polynomial R) - := univariate(p, q)$(Polynomial R) - map(retract(#1), poly)$UnivariatePolynomialCategoryFunctions2(Polynomial R, - SparseUnivariatePolynomial Polynomial R, - R, UP) - - retract(p: %): Fraction UP == - poly: Fraction Polynomial R := retract p - upoly: UP := iunivariate numer poly - vpoly: UP := iunivariate denom poly - - upoly / vpoly - - retract(p: %): UP == iunivariate retract p - - coerce(r: Fraction UP): % == - num: SparseUnivariatePolynomial R := makeSUP numer r - den: SparseUnivariatePolynomial R := makeSUP denom r - u: Polynomial R := multivariate(num, q) - v: Polynomial R := multivariate(den, q) - - quot: Fraction Polynomial R := u/v - - quot::(Expression R) - - - )abbrev package GUESSUP GuessUnivariatePolynomial ++ Description: ++ This package exports guessing of sequences of univariate rational functions diff --git a/src/axiom-website/download.html b/src/axiom-website/download.html index 6576df9..875d2d3 100644 --- a/src/axiom-website/download.html +++ b/src/axiom-website/download.html @@ -1001,6 +1001,11 @@ cd axiom export AXIOM=`pwd`/mnt/ubuntu export PATH=$AXIOM/bin:$PATH make + +Also note that Ubuntu ships a broken xterm setting for the emacs alt key +where alt is supposed to be meta. Add the following line + XTerm*metaSendsEscape: true +in your .Xresources file

OpenSuSE

diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index c8f6886..16f1537 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -821,6 +821,8 @@ padic.spad removed
add guess package
20081219.01.wxh.patch Float has exp: Float -> Float
+20081221.01.wxh.patch +bookvol10.3 add domains