axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] 20080821.01.tpd.patch (add MappingPackage4)


From: daly
Subject: [Axiom-developer] 20080821.01.tpd.patch (add MappingPackage4)
Date: Thu, 21 Aug 2008 23:13:06 -0500

Modify mappkg.spad to add MappingPackage4, including algebra test
file and )help documentation. Fix corresponding operation count 
message in test.input regression.
===================================================================
diff --git a/changelog b/changelog
index 377aa85..3ba51a4 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,12 @@
+20080821 tpd src/algebra/Makefile add MappingPackage4
+20080821 tpd src/algebra/exposed.lsp add MappingPackage4
+20080821 tpd src/algebra/mappkg.spad add MAPPKG4
+20080821 tpd src/input/test.input repair regressions
+20080820 tpd src/input/test.input fix typos
+20080819 tpd src/input/Makefile overload.input added
+20080819 dxc src/input/overload.input added
+20080819 tpd src/input/Makefile overload.input added
+20080819 dxc src/input/overload.input added
 20080818 tpd src/input/Makefile biquat.input added
 20080818 dxc src/input/biquat.input added
 20080818 dxc "David Cyganski" (no known email)
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index d140609..7ea5dea 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -244,7 +244,6 @@ LAYER3=\
 annacat.spad.pamphlet (NIPROB ODEPROB PDEPROB OPTPROB NUMINT ODECAT PDECAT
                        OPTCAT)
 color.spad.pamphlet (COLOR PALETTE)
-mappkg.spad.pamphlet (MAPHACK1 MAPHACK2 MAPHACK3 MAPPKG1 MAPPKG2 MAPPKG3)
 paramete.spad.pamphlet (PARPCURV PARPC2 PARSCURV PARSC2 PARSURF PARSU2
 suchthat.spad.pamphlet (SUCH)
 ystream.spad.pamphlet (YSTREAM)
@@ -388,6 +387,8 @@ drawpak.spad.pamphlet (DRAWCX)
 free.spad.pamphlet (LMOPS FMONOID FGROUP FAMONC IFAMON FAMONOID FAGROUP)
 fourier.spad.pamphlet (FCOMP FSERIES)
 functions.spad.pamphlet (BFUNCT)
+mappkg.spad.pamphlet (MAPHACK1 MAPHACK2 MAPHACK3 MAPHACK4
+                      MAPPKG1 MAPPKG2 MAPPKG3 MAPPKG4)
 mesh.spad.pamphlet (MESH)
 moebius.spad.pamphlet (MOEBIUS)
 mring.spad.pamphlet (MRING MRF2)
@@ -414,6 +415,7 @@ LAYER10=\
   ${OUT}/IPADIC.o   ${OUT}/IROOT.o    ${OUT}/IR2.o      ${OUT}/LEXP.o     \
   ${OUT}/LIECAT.o   ${OUT}/LIECAT-.o  ${OUT}/LIST2.o    ${OUT}/LIST2MAP.o \
   ${OUT}/LMOPS.o    ${OUT}/LZSTAGG.o  ${OUT}/LZSTAGG-.o ${OUT}/MAGMA.o    \
+  ${OUT}/MAPPKG4.o  \
   ${OUT}/MESH.o     ${OUT}/MOEBIUS.o  ${OUT}/MODFIELD.o ${OUT}/MODOP.o    \
   ${OUT}/MRING.o    ${OUT}/MTHING.o   ${OUT}/NCNTFRAC.o ${OUT}/NCODIV.o   \
   ${OUT}/NUMTUBE.o  ${OUT}/ODR.o      ${OUT}/OFMONOID.o ${OUT}/ONECOMP.o  \
@@ -3130,7 +3132,6 @@ check:
 document: ${DOCFILES}
 
 <<genericRules>>
-
 <<spadhelp>>
 <<ps (DOC from SRC)>>
 <<libdb.text (OUT from IN)>>
diff --git a/src/algebra/exposed.lsp.pamphlet b/src/algebra/exposed.lsp.pamphlet
index ed6155a..9701e7f 100644
--- a/src/algebra/exposed.lsp.pamphlet
+++ b/src/algebra/exposed.lsp.pamphlet
@@ -208,6 +208,7 @@
   (|MappingPackage1| . MAPPKG1)
   (|MappingPackage2| . MAPPKG2)
   (|MappingPackage3| . MAPPKG3)
+  (|MappingPackage4| . MAPPKG4)
   (|MathMLFormat| . MMLFORM)
   (|Matrix| . MATRIX)
   (|MatrixCategoryFunctions2| . MATCAT2)
diff --git a/src/algebra/mappkg.spad.pamphlet b/src/algebra/mappkg.spad.pamphlet
index 5ec4358..ca1dc5f 100644
--- a/src/algebra/mappkg.spad.pamphlet
+++ b/src/algebra/mappkg.spad.pamphlet
@@ -2,7 +2,7 @@
 \usepackage{axiom}
 \begin{document}
 \title{\$SPAD/src/algebra mappkg.spad}
-\author{Stephen M. Watt, William Burge}
+\author{Stephen M. Watt, William Burge, Timothy Daly}
 \maketitle
 \begin{abstract}
 \end{abstract}
@@ -83,7 +83,8 @@ MappingPackageInternalHacks3(A: SetCategory, B: SetCategory, 
C: SetCategory):_
 )set message test on
 )set message auto off
 )clear all
---S 1
+
+--S 1 of 26
 power(q: FRAC INT, n: INT): FRAC INT == q**n
 --R 
 --R   Function declaration power : (Fraction Integer,Integer) -> Fraction 
@@ -91,7 +92,7 @@ power(q: FRAC INT, n: INT): FRAC INT == q**n
 --R                                                                   Type: 
Void
 --E 1
 
---S 2
+--S 2 of 26
 power(2,3)
 --R 
 --R   Compiling function power with type (Fraction Integer,Integer) -> 
@@ -101,15 +102,15 @@ power(2,3)
 --R                                                       Type: Fraction 
Integer
 --E 2
 
---S 3
+--S 3 of 26
 rewop := twist power
 --R 
 --R
---R   (3)  theMap(MAPPKG3;twist;MM;5!0)
+--I   (3)  theMap(MAPPKG3;twist;MM;5!0)
 --R                       Type: ((Integer,Fraction Integer) -> Fraction 
Integer)
 --E 3
 
---S 4
+--S 4 of 26
 rewop(3, 2)
 --R 
 --R
@@ -117,21 +118,21 @@ rewop(3, 2)
 --R                                                       Type: Fraction 
Integer
 --E 4
 
---S 5
+--S 5 of 26
 square: FRAC INT -> FRAC INT
 --R 
 --R                                                                   Type: 
Void
 --E 5
 
---S 6
+--S 6 of 26
 square:= curryRight(power, 2)
 --R 
 --R
---R   (6)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
+--I   (6)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
 --R                                 Type: (Fraction Integer -> Fraction 
Integer)
 --E 6
 
---S 7
+--S 7 of 26
 square 4
 --R 
 --R
@@ -139,15 +140,15 @@ square 4
 --R                                                       Type: Fraction 
Integer
 --E 7
 
---S 8
+--S 8 of 26
 squirrel:= constantRight(square)$MAPPKG3(FRAC INT,FRAC INT,FRAC INT)
 --R 
 --R
---R   (8)  theMap(MAPPKG3;constantRight;MM;3!0)
+--I   (8)  theMap(MAPPKG3;constantRight;MM;3!0)
 --R              Type: ((Fraction Integer,Fraction Integer) -> Fraction 
Integer)
 --E 8
 
---S 9
+--S 9 of 26
 squirrel(1/2, 1/3)
 --R 
 --R
@@ -157,15 +158,15 @@ squirrel(1/2, 1/3)
 --R                                                       Type: Fraction 
Integer
 --E 9
 
---S 10
+--S 10 of 26
 sixteen := curry(square, 4/1)
 --R 
 --R
---R   (10)  theMap(MAPPKG2;curry;MAM;2!0,0)
+--I   (10)  theMap(MAPPKG2;curry;MAM;2!0,0)
 --R                                               Type: (() -> Fraction 
Integer)
 --E 10
 
---S 11
+--S 11 of 26
 sixteen()
 --R 
 --R
@@ -173,15 +174,15 @@ sixteen()
 --R                                                       Type: Fraction 
Integer
 --E 11
 
---S 12
+--S 12 of 26
 square2:=square*square
 --R 
 --R
---R   (12)  theMap(MAPPKG3;*;MMM;6!0,0)
+--I   (12)  theMap(MAPPKG3;*;MMM;6!0,0)
 --R                                 Type: (Fraction Integer -> Fraction 
Integer)
 --E 12
 
---S 13
+--S 13 of 26
 square2 3
 --R 
 --R
@@ -189,7 +190,7 @@ square2 3
 --R                                                       Type: Fraction 
Integer
 --E 13
 
---S 14
+--S 14 of 26
 sc(x: FRAC INT): FRAC INT == x + 1
 --R 
 --R   Function declaration sc : Fraction Integer -> Fraction Integer has 
@@ -197,23 +198,23 @@ sc(x: FRAC INT): FRAC INT == x + 1
 --R                                                                   Type: 
Void
 --E 14
 
---S 15
+--S 15 of 26
 incfns := [sc**i for i in 0..10]
 --R 
 --R   Compiling function sc with type Fraction Integer -> Fraction Integer
 --R      
 --R
 --R   (15)
---R   [theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0)]
+--I   [theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0)]
 --R                            Type: List (Fraction Integer -> Fraction 
Integer)
 --E 15
 
---S 16
+--S 16 of 26
 [f 4 for f in incfns]
 --R 
 --R
@@ -221,7 +222,7 @@ incfns := [sc**i for i in 0..10]
 --R                                                  Type: List Fraction 
Integer
 --E 16
 
---S 17
+--S 17 of 26
 times(n:NNI, i:INT):INT == n*i
 --R 
 --R   Function declaration times : (NonNegativeInteger,Integer) -> Integer
@@ -229,25 +230,25 @@ times(n:NNI, i:INT):INT == n*i
 --R                                                                   Type: 
Void
 --E 17
 
---S 18
+--S 18 of 26
 r := recur(times)
 --R 
 --R   Compiling function times with type (NonNegativeInteger,Integer) -> 
 --R      Integer 
 --R
---R   (18)  theMap(MAPPKG1;recur;2M;7!0,0)
+--I   (18)  theMap(MAPPKG1;recur;2M;7!0,0)
 --R                              Type: ((NonNegativeInteger,Integer) -> 
Integer)
 --E 18
 
---S 19
+--S 19 of 26
 fact := curryRight(r, 1)
 --R 
 --R
---R   (19)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
+--I   (19)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
 --R                                        Type: (NonNegativeInteger -> 
Integer)
 --E 19
 
---S 20
+--S 20 of 26
 fact 4
 --R 
 --R
@@ -255,7 +256,7 @@ fact 4
 --R                                                        Type: 
PositiveInteger
 --E 20
 
---S 21
+--S 21 of 26
 mto2ton(m, n) ==
   raiser := square^n
   raiser m
@@ -263,7 +264,7 @@ mto2ton(m, n) ==
 --R                                                                   Type: 
Void
 --E 21
 
---S 22
+--S 22 of 26
 mto2ton(3, 3)
 --R 
 --R   Compiling function mto2ton with type (PositiveInteger,
@@ -273,7 +274,7 @@ mto2ton(3, 3)
 --R                                                       Type: Fraction 
Integer
 --E 22
 
---S 23
+--S 23 of 26
 shiftfib(r: List INT) : INT ==
   t := r.1
   r.1 := r.2
@@ -285,7 +286,7 @@ shiftfib(r: List INT) : INT ==
 --R                                                                   Type: 
Void
 --E 23
 
---S 24
+--S 24 of 26
 fibinit: List INT := [0, 1]
 --R 
 --R
@@ -293,16 +294,16 @@ fibinit: List INT := [0, 1]
 --R                                                           Type: List 
Integer
 --E 24
 
---S 25
+--S 25 of 26
 fibs := curry(shiftfib, fibinit)
 --R 
 --R   Compiling function shiftfib with type List Integer -> Integer 
 --R
---R   (25)  theMap(MAPPKG2;curry;MAM;2!0,0)
+--I   (25)  theMap(MAPPKG2;curry;MAM;2!0,0)
 --R                                                        Type: (() -> 
Integer)
 --E 25
 
---S 26
+--S 26 of 26
 [fibs() for i in 0..30]
 --R 
 --R
@@ -312,6 +313,16 @@ fibs := curry(shiftfib, fibinit)
 --R    317811, 514229, 832040]
 --R                                                           Type: List 
Integer
 --E 26
+ 
+)spool 
+)lisp (bye)
+ 
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}
 )spool
 )lisp (bye)
 @
@@ -486,9 +497,10 @@ By currying over the argument we get a function with 
private state.
                        Type: List Integer
 
 See Also:
+o )show MappingPackage1
 o )help MappingPackage2
 o )help MappingPackage3
-o )show MappingPackage1
+o )help MappingPackage4
 o $AXIOM/doc/src/algebra/mappkg.spad.dvi
 
 @
@@ -595,7 +607,7 @@ power(2,3)
 rewop := twist power
 --R 
 --R
---R   (3)  theMap(MAPPKG3;twist;MM;5!0)
+--I   (3)  theMap(MAPPKG3;twist;MM;5!0)
 --R                       Type: ((Integer,Fraction Integer) -> Fraction 
Integer)
 --E 3
 
@@ -617,7 +629,7 @@ square: FRAC INT -> FRAC INT
 square:= curryRight(power, 2)
 --R 
 --R
---R   (6)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
+--I   (6)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
 --R                                 Type: (Fraction Integer -> Fraction 
Integer)
 --E 6
 
@@ -633,7 +645,7 @@ square 4
 squirrel:= constantRight(square)$MAPPKG3(FRAC INT,FRAC INT,FRAC INT)
 --R 
 --R
---R   (8)  theMap(MAPPKG3;constantRight;MM;3!0)
+--I   (8)  theMap(MAPPKG3;constantRight;MM;3!0)
 --R              Type: ((Fraction Integer,Fraction Integer) -> Fraction 
Integer)
 --E 8
 
@@ -651,7 +663,7 @@ squirrel(1/2, 1/3)
 sixteen := curry(square, 4/1)
 --R 
 --R
---R   (10)  theMap(MAPPKG2;curry;MAM;2!0,0)
+--I   (10)  theMap(MAPPKG2;curry;MAM;2!0,0)
 --R                                               Type: (() -> Fraction 
Integer)
 --E 10
 
@@ -667,7 +679,7 @@ sixteen()
 square2:=square*square
 --R 
 --R
---R   (12)  theMap(MAPPKG3;*;MMM;6!0,0)
+--I   (12)  theMap(MAPPKG3;*;MMM;6!0,0)
 --R                                 Type: (Fraction Integer -> Fraction 
Integer)
 --E 12
 
@@ -694,12 +706,12 @@ incfns := [sc**i for i in 0..10]
 --R      
 --R
 --R   (15)
---R   [theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0)]
+--I   [theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0)]
 --R                            Type: List (Fraction Integer -> Fraction 
Integer)
 --E 15
 
@@ -725,7 +737,7 @@ r := recur(times)
 --R   Compiling function times with type (NonNegativeInteger,Integer) -> 
 --R      Integer 
 --R
---R   (18)  theMap(MAPPKG1;recur;2M;7!0,0)
+--I   (18)  theMap(MAPPKG1;recur;2M;7!0,0)
 --R                              Type: ((NonNegativeInteger,Integer) -> 
Integer)
 --E 18
 
@@ -733,7 +745,7 @@ r := recur(times)
 fact := curryRight(r, 1)
 --R 
 --R
---R   (19)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
+--I   (19)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
 --R                                        Type: (NonNegativeInteger -> 
Integer)
 --E 19
 
@@ -788,7 +800,7 @@ fibs := curry(shiftfib, fibinit)
 --R 
 --R   Compiling function shiftfib with type List Integer -> Integer 
 --R
---R   (25)  theMap(MAPPKG2;curry;MAM;2!0,0)
+--I   (25)  theMap(MAPPKG2;curry;MAM;2!0,0)
 --R                                                        Type: (() -> 
Integer)
 --E 25
 
@@ -977,8 +989,9 @@ By currying over the argument we get a function with 
private state.
 
 See Also:
 o )help MappingPackage1
-o )help MappingPackage3
 o )show MappingPackage2
+o )help MappingPackage3
+o )help MappingPackage4
 o $AXIOM/doc/src/algebra/mappkg.spad.dvi
 
 @
@@ -1052,7 +1065,7 @@ power(2,3)
 rewop := twist power
 --R 
 --R
---R   (3)  theMap(MAPPKG3;twist;MM;5!0)
+--I   (3)  theMap(MAPPKG3;twist;MM;5!0)
 --R                       Type: ((Integer,Fraction Integer) -> Fraction 
Integer)
 --E 3
 
@@ -1074,7 +1087,7 @@ square: FRAC INT -> FRAC INT
 square:= curryRight(power, 2)
 --R 
 --R
---R   (6)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
+--I   (6)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
 --R                                 Type: (Fraction Integer -> Fraction 
Integer)
 --E 6
 
@@ -1090,7 +1103,7 @@ square 4
 squirrel:= constantRight(square)$MAPPKG3(FRAC INT,FRAC INT,FRAC INT)
 --R 
 --R
---R   (8)  theMap(MAPPKG3;constantRight;MM;3!0)
+--I   (8)  theMap(MAPPKG3;constantRight;MM;3!0)
 --R              Type: ((Fraction Integer,Fraction Integer) -> Fraction 
Integer)
 --E 8
 
@@ -1108,7 +1121,7 @@ squirrel(1/2, 1/3)
 sixteen := curry(square, 4/1)
 --R 
 --R
---R   (10)  theMap(MAPPKG2;curry;MAM;2!0,0)
+--I   (10)  theMap(MAPPKG2;curry;MAM;2!0,0)
 --R                                               Type: (() -> Fraction 
Integer)
 --E 10
 
@@ -1124,7 +1137,7 @@ sixteen()
 square2:=square*square
 --R 
 --R
---R   (12)  theMap(MAPPKG3;*;MMM;6!0,0)
+--I   (12)  theMap(MAPPKG3;*;MMM;6!0,0)
 --R                                 Type: (Fraction Integer -> Fraction 
Integer)
 --E 12
 
@@ -1151,12 +1164,12 @@ incfns := [sc**i for i in 0..10]
 --R      
 --R
 --R   (15)
---R   [theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
---R    theMap(MAPPKG1;**;MNniM;6!0,0)]
+--I   [theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0), theMap(MAPPKG1;**;MNniM;6!0,0),
+--I    theMap(MAPPKG1;**;MNniM;6!0,0)]
 --R                            Type: List (Fraction Integer -> Fraction 
Integer)
 --E 15
 
@@ -1182,7 +1195,7 @@ r := recur(times)
 --R   Compiling function times with type (NonNegativeInteger,Integer) -> 
 --R      Integer 
 --R
---R   (18)  theMap(MAPPKG1;recur;2M;7!0,0)
+--I   (18)  theMap(MAPPKG1;recur;2M;7!0,0)
 --R                              Type: ((NonNegativeInteger,Integer) -> 
Integer)
 --E 18
 
@@ -1190,7 +1203,7 @@ r := recur(times)
 fact := curryRight(r, 1)
 --R 
 --R
---R   (19)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
+--I   (19)  theMap(MAPPKG3;curryRight;MBM;1!0,0)
 --R                                        Type: (NonNegativeInteger -> 
Integer)
 --E 19
 
@@ -1245,7 +1258,7 @@ fibs := curry(shiftfib, fibinit)
 --R 
 --R   Compiling function shiftfib with type List Integer -> Integer 
 --R
---R   (25)  theMap(MAPPKG2;curry;MAM;2!0,0)
+--I   (25)  theMap(MAPPKG2;curry;MAM;2!0,0)
 --R                                                        Type: (() -> 
Integer)
 --E 25
 
@@ -1436,6 +1449,7 @@ See Also:
 o )help MappingPackage1
 o )help MappingPackage2
 o )show MappingPackage3
+o )help MappingPackage4
 o $AXIOM/doc/src/algebra/mappkg.spad.dvi
 
 @
@@ -1499,6 +1513,320 @@ MappingPackage3(A:SetCategory, B:SetCategory, 
C:SetCategory):_
         fbc*fab == comp(fbc,fab,#1)
 
 @
+\section{package MAPPKG4 MappingPackage4}
+<<MappingPackage4.input>>=
+-- mappkg.spad.pamphlet MappingPackage4.input
+)spool MappingPackage4.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 21
+p:=(x:EXPR(INT)):EXPR(INT)+->3*x
+--R 
+--R
+--R   (1)  theMap(Closure)
+--R                             Type: (Expression Integer -> Expression 
Integer)
+--E 1
+
+--S 2 of 21
+q:=(x:EXPR(INT)):EXPR(INT)+->2*x+3
+--R 
+--R
+--R   (2)  theMap(Closure)
+--R                             Type: (Expression Integer -> Expression 
Integer)
+--E 2
+
+--S 3 of 21
+(p+q)(4)-(p(4)+q(4))
+--R 
+--R
+--R   (3)  0
+--R                                                     Type: Expression 
Integer
+--E 3
+
+--S 4 of 21
+(p+q)(x)-(p(x)+q(x))
+--R 
+--R
+--R   (4)  0
+--R                                                     Type: Expression 
Integer
+--E 4
+
+--S 5 of 21
+(p-q)(4)-(p(4)-q(4))
+--R 
+--R
+--R   (5)  0
+--R                                                     Type: Expression 
Integer
+--E 5
+
+--S 6 of 21
+(p-q)(x)-(p(x)-q(x))
+--R 
+--R
+--R   (6)  0
+--R                                                     Type: Expression 
Integer
+--E 6
+
+--S 7 of 21
+(p*q)(4)-(p(4)*q(4))
+--R 
+--R
+--R   (7)  0
+--R                                                     Type: Expression 
Integer
+--E 7
+
+--S 8 of 21
+(p*q)(x)-(p(x)*q(x))
+--R 
+--R
+--R   (8)  0
+--R                                                     Type: Expression 
Integer
+--E 8
+
+--S 9 of 21
+(p/q)(4)-(p(4)/q(4))
+--R 
+--R
+--R   (9)  0
+--R                                                     Type: Expression 
Integer
+--E 9
+
+--S 10 of 21
+(p/q)(x)-(p(x)/q(x))
+--R 
+--R
+--R   (10)  0
+--R                                                     Type: Expression 
Integer
+--E 10
+
+--S 11 of 21
+r:=(x:INT):INT+-> (x*x*x)
+--R 
+--R
+--R   (11)  theMap(Closure)
+--R                                                   Type: (Integer -> 
Integer)
+--E 11
+
+--S 12 of 21
+s:=(y:INT):INT+-> (y*y+3)
+--R 
+--R
+--R   (12)  theMap(Closure)
+--R                                                   Type: (Integer -> 
Integer)
+--E 12
+
+--S 13 of 21
+(r+s)(4)-(r(4)+s(4))
+--R 
+--R
+--R   (13)  0
+--R                                                     Type: 
NonNegativeInteger
+--E 13
+
+--S 14 of 21
+(r-s)(4)-(r(4)-s(4))
+--R 
+--R
+--R   (14)  0
+--R                                                     Type: 
NonNegativeInteger
+--E 14
+
+--S 15 of 21
+(r*s)(4)-(r(4)*s(4))
+--R 
+--R
+--R   (15)  0
+--R                                                     Type: 
NonNegativeInteger
+--E 15
+
+--S 16 of 21
+t:=(x:INT):EXPR(INT)+-> (x*x*x)
+--R 
+--R
+--R   (16)  theMap(Closure)
+--R                                        Type: (Integer -> Expression 
Integer)
+--E 16
+
+--S 17 of 21
+u:=(y:INT):EXPR(INT)+-> (y*y+3)
+--R 
+--R
+--R   (17)  theMap(Closure)
+--R                                        Type: (Integer -> Expression 
Integer)
+--E 17
+
+--S 18 of 21
+(t/u)(4)-(t(4)/u(4))
+--R 
+--R
+--R   (18)  0
+--R                                                     Type: Expression 
Integer
+--E 18
+
+--S 19 of 21
+h:=(x:EXPR(INT)):EXPR(INT)+->1
+--R
+--R   (19)  theMap(Closure)
+--R                             Type: (Expression Integer -> Expression 
Integer)
+--E 19
+
+--S 20 of 21
+(p/h)(x)
+--R
+--R   (20)  3x
+--R                                                     Type: Expression 
Integer
+--E 20
+
+--S 21 of 21
+(q/h)(x)
+--R
+--R   (21)  2x + 3
+--R                                                     Type: Expression 
Integer
+--E 21
+
+)spool 
+)lisp (bye)
+ 
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}
+)spool
+)lisp (bye)
+@
+<<MappingPackage4.help>>=
+====================================================================
+MappingPackage examples
+====================================================================
+
+We can construct some simple maps that take a variable x
+into an equation:
+
+  p:=(x:EXPR(INT)):EXPR(INT)+->3*x
+  q:=(x:EXPR(INT)):EXPR(INT)+->2*x+3
+
+Now we can do the four arithmetic operations, +, -, *, / on these
+newly constructed mappings. Since the maps are from the domain
+Expression Integer to the same domain we can also use symbolic
+values for the argument. All of the following will return 0,
+showing that function composition is equivalent to the result
+of doing the operations individually.
+
+  (p+q)(4)-(p(4)+q(4))
+  (p+q)(x)-(p(x)+q(x))
+  
+  (p-q)(4)-(p(4)-q(4))
+  (p-q)(x)-(p(x)-q(x))
+
+  (p*q)(4)-(p(4)*q(4))
+  (p*q)(x)-(p(x)*q(x))
+
+  (p/q)(4)-(p(4)/q(4))
+  (p/q)(x)-(p(x)/q(x))
+
+We can construct simple maps from Integer to Integer but this
+limits our ability to do division.
+
+  r:=(x:INT):INT+-> (x*x*x)
+  s:=(y:INT):INT+-> (y*y+3)
+
+Again, all of these will return 0:
+
+  (r+s)(4)-(r(4)+s(4))
+  (r-s)(4)-(r(4)-s(4))
+  (r*s)(4)-(r(4)*s(4))
+
+If we want to do division with Integer inputs we create the
+appropriate map:
+
+  t:=(x:INT):EXPR(INT)+-> (x*x*x)
+  u:=(y:INT):EXPR(INT)+-> (y*y+3)
+
+  (t/u)(4)-(t(4)/u(4))
+
+We can even recover the original functions if we make a map
+that always returns the constant 1:
+
+  h:=(x:EXPR(INT)):EXPR(INT)+->1
+
+    theMap(Closure)
+             Type: (Expression Integer -> Expression Integer)
+
+  (p/h)(x)
+
+     3x
+                                     Type: Expression Integer
+  (q/h)(x)
+
+    2x + 3
+                                     Type: Expression Integer
+
+See Also:
+o )show MappingPackage1
+o )help MappingPackage2
+o )help MappingPackage3
+o )help MappingPackage4
+o $AXIOM/doc/src/algebra/mappkg.spad.dvi
+
+@
+<<package MAPPKG4 MappingPackage4>>=
+)abbrev package MAPPKG4 MappingPackage4
+++ Author: Timothy Daly
+++ Description: Functional Composition
+++ Given functions f and g, returns the applicable closure
+MappingPackage4(A:SetCategory, B:Ring):
+ with
+   "+": (A->B, A->B) -> (A->B) 
+        ++ \spad(+) does functional addition
+        ++
+        ++E f:=(x:INT):INT +-> 3*x
+        ++E g:=(x:INT):INT +-> 2*x+3
+        ++E (f+g)(4)
+   "-": (A->B, A->B) -> (A->B) 
+        ++ \spad(+) does functional addition
+        ++
+        ++E f:=(x:INT):INT +-> 3*x
+        ++E g:=(x:INT):INT +-> 2*x+3
+        ++E (f-g)(4)
+   "*": (A->B, A->B) -> (A->B) 
+        ++ \spad(+) does functional addition
+        ++
+        ++E f:=(x:INT):INT +-> 3*x
+        ++E g:=(x:INT):INT +-> 2*x+3
+        ++E (f*g)(4)
+   "/": (A->Expression(Integer), A->Expression(Integer)) -> 
(A->Expression(Integer))
+        ++ \spad(+) does functional addition
+        ++
+        ++E p:=(x:EXPR(INT)):EXPR(INT)+->3*x
+        ++E q:=(x:EXPR(INT)):EXPR(INT)+->2*x+3
+        ++E (p/q)(4)
+        ++E (p/q)(x)
+  == add
+    fab ==> (A -> B)
+    faei ==> (A -> Expression(Integer))
+
+    funcAdd(g:fab,h:fab,x:A):B == ((g x) + (h x))$B
+
+    (a:fab)+(b:fab) == funcAdd(a,b,#1)
+
+    funcSub(g:fab,h:fab,x:A):B == ((g x) - (h x))$B
+
+    (a:fab)-(b:fab) == funcSub(a,b,#1)
+
+    funcMul(g:fab,h:fab,x:A):B == ((g x) * (h x))$B
+
+    (a:fab)*(b:fab) == funcMul(a,b,#1)
+
+    funcDiv(g:faei,h:faei,x:A):Expression(Integer)
+           == ((g x) / (h x))$Expression(Integer)
+
+    (a:faei)/(b:faei) == funcDiv(a,b,#1)
+
+@
 \section{License}
 <<license>>=
 --Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
@@ -1541,6 +1869,7 @@ MappingPackage3(A:SetCategory, B:SetCategory, 
C:SetCategory):_
 <<package MAPPKG1 MappingPackage1>>
 <<package MAPPKG2 MappingPackage2>>
 <<package MAPPKG3 MappingPackage3>>
+<<package MAPPKG4 MappingPackage4>>
 @
 \eject
 \begin{thebibliography}{99}
diff --git a/src/input/test.input.pamphlet b/src/input/test.input.pamphlet
index ea9b453..7ffe5b8 100644
--- a/src/input/test.input.pamphlet
+++ b/src/input/test.input.pamphlet
@@ -484,7 +484,6 @@ Bracket parsing and empty-set types. Fixed by SCM, verified 
on 10/30/90
 <<*>>=
 )clear all
 
-@
 --S 35
 {}$(List INT)
 --R 
@@ -827,7 +826,7 @@ m = [[1,2],[2,3]]  -- Should return type EQ POLY 
SQMATRIX(2, INT)
 --S 64
 1+"asd"  -- These should both fail in the same way
 --R 
---R   There are 11 exposed and 5 unexposed library operations named + 
+--R   There are 12 exposed and 5 unexposed library operations named + 
 --R      having 2 argument(s) but none was determined to be applicable. 
 --R      Use HyperDoc Browse, or issue
 --R                                )display op +
@@ -847,7 +846,7 @@ m = [[1,2],[2,3]]  -- Should return type EQ POLY 
SQMATRIX(2, INT)
 --S 65
 1/"asd"
 --R 
---R   There are 12 exposed and 12 unexposed library operations named / 
+--R   There are 13 exposed and 12 unexposed library operations named / 
 --R      having 2 argument(s) but none was determined to be applicable. 
 --R      Use HyperDoc Browse, or issue
 --R                                )display op /
@@ -1608,7 +1607,7 @@ s - sin(a*x)
 --E 121
 
 @
-Complex & AlgebraicNumber coercions. fixed by SCM 6/91
+Complex \& AlgebraicNumber coercions. fixed by SCM 6/91
 <<*>>=
 )clear all
 




reply via email to

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