[Top][All Lists]
[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"
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Axiom-developer] 20080824.02.tpd.patch (expose difference between ^ and **),
daly <=