axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] 20080824.02.tpd.patch (expose difference between ^ and


From: daly
Subject: [Axiom-developer] 20080824.02.tpd.patch (expose difference between ^ and **)
Date: Wed, 27 Aug 2008 14:16:05 -0500

Although I believe ^ and ** are intended to be the same operation
clearly they are not. This will require some thought:

(1)-> )d op ^

There are 6 exposed functions called ^ :
   [1] Boolean -> Boolean from Boolean
   [2] D -> D from D if D has BTAGG
   [3] (D,Integer) -> D from D if D has DIVRING
   [4] (D,Integer) -> D from D if D has GROUP
   [5] (D,NonNegativeInteger) -> D from D if D has MONOID
   [6] (D,PositiveInteger) -> D from D if D has SGROUP

Examples of ^ from Boolean


Examples of ^ from BitAggregate


Examples of ^ from DivisionRing


Examples of ^ from Group


Examples of ^ from Monoid


Examples of ^ from SemiGroup

(1) -> )d op **

There are 20 exposed functions called ** :
   [1] (CardinalNumber,CardinalNumber) -> CardinalNumber from 
            CardinalNumber
   [2] (DoubleFloat,DoubleFloat) -> DoubleFloat from DoubleFloat
   [3] (D,Integer) -> D from D if D has DIVRING
   [4] (D,D) -> D from D if D has ELEMFUN
   [5] (Float,Float) -> Float from Float
   [6] (D,NonNegativeInteger) -> D from D
            if D has FS D2 and D2 has ORDSET and D2 has SGROUP
   [7] (D,Integer) -> D from D if D has GROUP
   [8] (PolynomialIdeals(D2,D3,D4,D5),NonNegativeInteger) -> 
            PolynomialIdeals(D2,D3,D4,D5)
            from PolynomialIdeals(D2,D3,D4,D5)
            if D2 has FIELD and D3 has OAMONS and D4 has ORDSET and D5 
            has POLYCAT(D2,D3,D4)
   [9] ((D3 -> D3),NonNegativeInteger) -> (D3 -> D3) from 
            MappingPackage1 D3
            if D3 has SETCAT
   [10] (D,Integer) -> D from D
            if D has MATCAT(D2,D3,D4) and D2 has RING and D3 has FLAGG 
            D2 and D4 has FLAGG D2 and D2 has FIELD
   [11] (D,NonNegativeInteger) -> D from D
            if D has MATCAT(D2,D3,D4) and D2 has RING and D3 has FLAGG 
            D2 and D4 has FLAGG D2
   [12] (ModuleOperator(D2,D3),Integer) -> ModuleOperator(D2,D3)
            from ModuleOperator(D2,D3)
            if D2 has RING and D3 has LMODULE D2
   [13] (BasicOperator,Integer) -> ModuleOperator(D3,D4)
            from ModuleOperator(D3,D4)
            if D3 has RING and D4 has LMODULE D3
   [14] (D,PositiveInteger) -> D from D if D has MONAD
   [15] (D,NonNegativeInteger) -> D from D if D has MONADWU
   [16] (D,NonNegativeInteger) -> D from D if D has MONOID
   [17] (D,Fraction Integer) -> D from D if D has RADCAT
   [18] (D,PositiveInteger) -> D from D if D has SGROUP
   [19] (D,Integer) -> D from D
            if D has SMATCAT(D2,D3,D4,D5) and D3 has RING and D4 has 
            DIRPCAT(D2,D3) and D5 has DIRPCAT(D2,D3) and D3 has FIELD
         
   [20] (D,D1) -> D from D
            if D has UTSCAT D1 and D1 has RING and D1 has FIELD

There are 18 unexposed functions called ** :
   [1] (D1,Fraction Integer) -> D1 from AlgebraicFunction(D3,D1)
            if D3 has RETRACT INT and D3 has Join(OrderedSet,
            IntegralDomain) and D1 has FS D3
   [2] (D1,D1) -> D1 from CombinatorialFunction(D2,D1)
            if D2 has Join(OrderedSet,IntegralDomain) and D1 has FS D2
            
   [3] (D1,Fraction Integer) -> D1
            from ElementaryFunctionsUnivariateLaurentSeries(D3,D4,D1)
            if D3 has FIELD and D3 has ALGEBRA FRAC INT and D4 has 
            UTSCAT D3 and D1 has ULSCCAT(D3,D4)
   [4] (D1,Fraction Integer) -> D1
            from ElementaryFunctionsUnivariatePuiseuxSeries(D3,D4,D1,D5
            )
            if D3 has FIELD and D3 has ALGEBRA FRAC INT and D4 has 
            ULSCAT D3 and D1 has UPXSCCA(D3,D4) and D5 has PTRANFN D4
         
   [5] (D1,Integer) -> FreeGroup D1 from FreeGroup D1 if D1 has SETCAT
            
   [6] (D1,NonNegativeInteger) -> FreeMonoid D1 from FreeMonoid D1
            if D1 has SETCAT
   [7] (Vector D3,Integer) -> Vector D3 from 
            InnerNormalBasisFieldFunctions D3
            if D3 has FFIELDC
   [8] (InputForm,Integer) -> InputForm from InputForm
   [9] (InputForm,NonNegativeInteger) -> InputForm from InputForm
   [10] (Matrix D3,NonNegativeInteger) -> Matrix D3
            from StorageEfficientMatrixOperations D3 if D3 has RING
   [11] (D1,NonNegativeInteger) -> OrderedFreeMonoid D1
            from OrderedFreeMonoid D1 if D1 has ORDSET
   [12] (Operator D2,Integer) -> Operator D2 from Operator D2 if D2 has
            RING
   [13] (BasicOperator,Integer) -> Operator D3 from Operator D3 if D3 
            has RING
   [14] (OutputForm,OutputForm) -> OutputForm from OutputForm
   [15] (Pattern D1,Pattern D1) -> Pattern D1 from Pattern D1 if D1 has
            SETCAT
   [16] (Pattern D2,NonNegativeInteger) -> Pattern D2 from Pattern D2
            if D2 has SETCAT
   [17] (Stream D2,Stream D2) -> Stream D2
            from StreamTranscendentalFunctionsNonCommutative D2
            if D2 has ALGEBRA FRAC INT
   [18] (Stream D2,Stream D2) -> Stream D2
            from StreamTranscendentalFunctions D2 if D2 has ALGEBRA 
            FRAC INT

Examples of ** from AlgebraicFunction


Examples of ** from CardinalNumber

 c2:=2::CardinalNumber
 c2**c2
 A1:=Aleph 1
 A1**c2
 generalizedContinuumHypothesisAssumed true
 A1**A1


Examples of ** from CombinatorialFunction


Examples of ** from DoubleFloat


Examples of ** from DivisionRing


Examples of ** from ElementaryFunctionsUnivariateLaurentSeries


Examples of ** from ElementaryFunctionsUnivariatePuiseuxSeries


Examples of ** from ElementaryFunctionCategory


Examples of ** from FreeGroup


Examples of ** from Float


Examples of ** from FreeMonoid


Examples of ** from FunctionSpace


Examples of ** from Group


Examples of ** from PolynomialIdeals


Examples of ** from InnerNormalBasisFieldFunctions


Examples of ** from InputForm


Examples of ** from MappingPackage1


Examples of ** from MatrixCategory


Examples of ** from StorageEfficientMatrixOperations


Examples of ** from ModuleOperator


Examples of ** from Monad


Examples of ** from MonadWithUnit


Examples of ** from Monoid


Examples of ** from OrderedFreeMonoid


Examples of ** from Operator


Examples of ** from OutputForm


Examples of ** from Pattern


Examples of ** from RadicalCategory


Examples of ** from SemiGroup


Examples of ** from SquareMatrixCategory


Examples of ** from StreamTranscendentalFunctionsNonCommutative


Examples of ** from StreamTranscendentalFunctions


Examples of ** from UnivariateTaylorSeriesCategory


=======================================================================
diff --git a/changelog b/changelog
index e2cd290..d736c79 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,8 @@
+20080824 tpd src/input/Makefile add liu.input to regression
+20080824 lxx src/input/liu.input expose difference between ^ and **
+20080824 tpd src/interp/setq.lisp add Liu Xiaojun to credits
+20080824 tpd readme add Liu Xiaojun to credits
+20080824 lxx "Liu Xiaojun" <address@hidden>
 20080824 tpd src/interp/format.boot use ++X
 20080824 tpd src/algebra/tree.spad use ++X
 20080824 tpd src/algebra/string.spad use ++X
diff --git a/readme b/readme
index 7735016..be93ed8 100644
--- a/readme
+++ b/readme
@@ -216,8 +216,8 @@ at the axiom command prompt will prettyprint the list.
 "Kai Kaminski           Grant Keady            Tony Kennedy"
 "Paul Kosinski          Klaus Kusche           Bernhard Kutzler"
 "Larry Lambe            Franz Lehner           Frederic Lehobey"
-"Michel Levaud          Howard Levy            Rudiger Loos"
-"Michael Lucks          Richard Luczak"
+"Michel Levaud          Howard Levy            Liu Xiaojun"
+"Rudiger Loos           Michael Lucks          Richard Luczak"
 "Camm Maguire           Francois Maltey        Alasdair McAndrew"
 "Bob McElrath           Michael McGettrick     Ian Meikle"
 "David Mentre           Victor S. Miller       Gerard Milmeister"
diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet
index 3f80d67..8bc5aa4 100644
--- a/src/input/Makefile.pamphlet
+++ b/src/input/Makefile.pamphlet
@@ -324,8 +324,8 @@ REGRES= algaggr.regress algbrbf.regress  algfacob.regress 
alist.regress  \
     kamke4.regress    kamke5.regress   kamke6.regress   kamke7.regress \
     kernel.regress    knot2.regress    kovacic.regress  kuipers.regress \
     laplace.regress   leg.regress      limit.regress    linalg.regress \
-    lindep.regress \
-    list.regress      lode.regress     lodesys.regress  lodo1.regress \
+    lindep.regress    list.regress     liu.regress   \
+    lode.regress      lodesys.regress  lodo1.regress \
     lodo2.regress     lodo3.regress    lodof.regress    lodo.regress \
     log.regress \
     lpoly.regress     lupfact.regress  lword.regress    macbug.regress \
@@ -595,7 +595,8 @@ FILES= ${OUT}/algaggr.input  ${OUT}/algbrbf.input    
${OUT}/algfacob.input \
        ${OUT}/lextripk.input ${OUT}/lib.input        ${OUT}/limit.input \
        ${OUT}/linalg.input \
        ${OUT}/lindep.input   ${OUT}/liss1.input      ${OUT}/liss2.input \
-       ${OUT}/list.input     ${OUT}/lode.input       ${OUT}/lodesys.input \
+       ${OUT}/list.input     ${OUT}/liu.input \
+       ${OUT}/lode.input     ${OUT}/lodesys.input \
        ${OUT}/lodo1.input    ${OUT}/lodo2.input      ${OUT}/lodof.input \
        ${OUT}/lodo.input     ${OUT}/lodo3.input      ${OUT}/log.input \
        ${OUT}/lpoly.input    ${OUT}/lump.input \
@@ -896,7 +897,8 @@ DOCFILES= \
   ${DOC}/lib.input.dvi         ${DOC}/limit.input.dvi      \
   ${DOC}/linalg.input.dvi      ${DOC}/lindep.input.dvi     \
   ${DOC}/liss1.input.dvi       ${DOC}/liss2.input.dvi      \
-  ${DOC}/list.input.dvi        ${DOC}/lode.input.dvi       \
+  ${DOC}/list.input.dvi        ${DOC}/liu.input.dvi        \
+  ${DOC}/lode.input.dvi       \
   ${DOC}/lodesys.input.dvi     ${DOC}/lodo1.input.dvi      \
   ${DOC}/lodo2.input.dvi       ${DOC}/lodo3.input.dvi      \
   ${DOC}/lodof.input.dvi       ${DOC}/lodo.input.dvi       \
diff --git a/src/input/liu.input.pamphlet b/src/input/liu.input.pamphlet
new file mode 100644
index 0000000..65aa30d
--- /dev/null
+++ b/src/input/liu.input.pamphlet
@@ -0,0 +1,94 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/input liu.input}
+\author{Xiaojun Liu}
+\maketitle
+\begin{abstract}
+This makes it clear that the exponential operation semantics is different
+for the use of ``\verb|^|'' and ``\verb|**|'' in some cases.
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+Does exponential operation ``\verb|^|'' and ``\verb|**|'' of a differential
+operator, say L, means repeating multiplications of L in Axiom ? If
+so, it seems the following code produced an unexpected result:
+@
+<<*>>=
+)spool liu.output
+)set message test on
+)set message auto off
+)set message type off
+)clear all
+ 
+--S 1 of 9
+Dx: LODO(EXPR INT, f+->D(f,x)) := D()
+--R
+--R   (1)  D
+--E 1
+
+--S 2 of 9
+u := operator 'u
+--R
+--R   (2)  u
+--E 2
+
+--S 3 of 9
+L := Dx + u(x)
+--R
+--R   (3)  D + u(x)
+--E 3
+
+--S 4 of 9
+L**2 = L*L
+--R
+--R         2                2   2             ,          2
+--R   (4)  D  + 2u(x)D + u(x) = D  + 2u(x)D + u (x) + u(x)
+--R
+--E 4
+
+)clear all
+
+--S 5 of 9
+f: INT->INT:=x+->x+1
+--R
+--R   (1)  theMap(Closure)
+--E 5
+
+--S 6 of 9
+K := OREUP ( x, INT, 1, f);
+--R
+--E 6
+
+--S 7 of 9
+x:K
+--E 7
+
+--S 8 of 9
+L:=x+1
+--R
+--R   (4)  x + 1
+--E 8
+
+--S 9 of 9
+L^2=L*L
+--R
+--R         2            2
+--R   (5)  x  + 2x + 1= x  + 4x + 3
+--E 9
+
+)spool 
+)lisp (bye)
+ 
+@
+Clearly, the r.h.s. is correct too. I checked the .spad file, it seems the
+exponential operation of LODO (or its parent OREUP) is missed (or I guess it
+is directly inherited as usual polynomial operation). However I am not
+clever enough to modify the code. Please check this, thanks.
+
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}
diff --git a/src/interp/setq.lisp.pamphlet b/src/interp/setq.lisp.pamphlet
index e9b34ec..37b7fba 100644
--- a/src/interp/setq.lisp.pamphlet
+++ b/src/interp/setq.lisp.pamphlet
@@ -627,8 +627,8 @@
 "Kai Kaminski           Grant Keady            Tony Kennedy"
 "Paul Kosinski          Klaus Kusche           Bernhard Kutzler"
 "Larry Lambe            Franz Lehner           Frederic Lehobey"
-"Michel Levaud          Howard Levy            Rudiger Loos"
-"Michael Lucks          Richard Luczak"
+"Michel Levaud          Howard Levy            Liu Xiaojun"
+"Rudiger Loos           Michael Lucks          Richard Luczak"
 "Camm Maguire           Francois Maltey        Alasdair McAndrew"
 "Bob McElrath           Michael McGettrick     Ian Meikle"
 "David Mentre           Victor S. Miller       Gerard Milmeister"




reply via email to

[Prev in Thread] Current Thread [Next in Thread]