axiom-commit Mailing List for Axiom Computer Algebra System
Brought to you by:
daly,
starseeker
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(12) |
Jun
(30) |
Jul
(5) |
Aug
(44) |
Sep
(54) |
Oct
(83) |
Nov
(138) |
Dec
(77) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(8) |
Feb
(19) |
Mar
(36) |
Apr
(57) |
May
(62) |
Jun
(95) |
Jul
(51) |
Aug
(79) |
Sep
(39) |
Oct
(25) |
Nov
(8) |
Dec
(33) |
2008 |
Jan
(35) |
Feb
(37) |
Mar
(41) |
Apr
(52) |
May
(42) |
Jun
(55) |
Jul
(42) |
Aug
(47) |
Sep
(45) |
Oct
(24) |
Nov
(53) |
Dec
(102) |
2009 |
Jan
(39) |
Feb
(58) |
Mar
(48) |
Apr
(77) |
May
(269) |
Jun
(111) |
Jul
(21) |
Aug
(102) |
Sep
(54) |
Oct
(73) |
Nov
(42) |
Dec
(26) |
2010 |
Jan
(45) |
Feb
(35) |
Mar
(15) |
Apr
(25) |
May
(80) |
Jun
(62) |
Jul
(28) |
Aug
(27) |
Sep
(31) |
Oct
(40) |
Nov
(9) |
Dec
(21) |
2011 |
Jan
(21) |
Feb
(16) |
Mar
(12) |
Apr
(9) |
May
(23) |
Jun
(2) |
Jul
(19) |
Aug
(18) |
Sep
(20) |
Oct
(5) |
Nov
(19) |
Dec
(19) |
2012 |
Jan
(20) |
Feb
(21) |
Mar
(12) |
Apr
(19) |
May
(14) |
Jun
(3) |
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
2013 |
Jan
(12) |
Feb
(16) |
Mar
(65) |
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
|
1
|
2
(2) |
3
|
4
|
5
|
6
(6) |
7
|
8
(4) |
9
(1) |
10
|
11
|
12
(2) |
13
|
14
|
15
(4) |
16
(2) |
17
(2) |
18
|
19
(4) |
20
(3) |
21
|
22
|
23
|
24
(13) |
25
(2) |
26
(2) |
27
|
28
|
29
(2) |
30
(4) |
|
|
|
|
|
|
From: <da...@us...> - 2008-11-30 16:47:37
|
Revision: 1024 http://axiom.svn.sourceforge.net/axiom/?rev=1024&view=rev Author: daly Date: 2008-11-30 16:47:34 +0000 (Sun, 30 Nov 2008) Log Message: ----------- 20081130 tpd src/axiom-website/patches.html 20081130.02.tpd.patch 20081130 tpd src/axiom-website/videos.html added Modified Paths: -------------- trunk/axiom/src/axiom-website/patches.html Added Paths: ----------- trunk/axiom/src/axiom-website/videos.html Modified: trunk/axiom/src/axiom-website/patches.html =================================================================== --- trunk/axiom/src/axiom-website/patches.html 2008-11-30 16:43:15 UTC (rev 1023) +++ trunk/axiom/src/axiom-website/patches.html 2008-11-30 16:47:34 UTC (rev 1024) @@ -761,6 +761,8 @@ index.html - fix broken link<br/> <a href="patches/20081130.01.tpd.patch">20081130.01.tpd.patch</a> website -- add videos page<br/> +<a href="patches/20081130.02.tpd.patch">20081130.02.tpd.patch</a> +website -- add videos page<br/> </body> </html> \ No newline at end of file Added: trunk/axiom/src/axiom-website/videos.html =================================================================== --- trunk/axiom/src/axiom-website/videos.html (rev 0) +++ trunk/axiom/src/axiom-website/videos.html 2008-11-30 16:47:34 UTC (rev 1024) @@ -0,0 +1,104 @@ +<html> + <head> + <title> + Axiom Computer Algebra System + </title> + </head> + <body bgcolor="#ffff66"> + <div id="head" align="center"> + <a href="" rel="nofollow">http://savannah.nongnu.org/projects/axiom/"> + <img src="axiom.png" border="0" alt="Axiom"> + </a> + <br> + <font size=200%> + The Scientific Computation System + </font> + </div> + <div align="center"> + [ + <a href="../index.html" title="Home"> + Home + </a> + ] +   + [ + <a href="screenshots.html" title="Screen Shots"> + Screenshots + </a> + ] +   + [ + <a href="faq.html" title="FAQ"> + FAQ + </a> + ] +   + [ + <a href="download.html" title="Download"> + Download + </a> + ] +   + [ + <a href="documentation.html" title="Documentation"> + Documentation + </a> + ] +   + [ + <a href="currentstate.html" title="Current State"> + Current State + </a> + ] +   + [ + <a href="community.html" title="Community"> + Community + </a> + ] +   + [ + <a href="developers.html" title="Developers"> + Developers + </a> + ] +   + [ + <a href="patches.html" title="Patches"> + Patches + </a> + ] + </div> + <div align="center"> + [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ + <a href="bookvol10.2abb.html" title="Abbreviation Graph"> + Abbreviation Graph + </a> + ] +   + [ + <a href="bookvol10.2full.html" title="Full Name Graph"> + Full Name Graph + </a> + ] + </div> + <br> + <hr> + +<div id="body"> + Axiom videos are now available. This will be an ongoing development + effort. + <br/> + <a href="" rel="nofollow">http://www.youtube.com/watch?v=CV8y3UrpadY"> + Axiom Information Sources" + </a> +</div> + +</body> +</html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gi...@ax...> - 2008-11-30 16:47:08
|
src/axiom-website/patches.html | 2 + src/axiom-website/videos.html | 104 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+), 0 deletions(-) New commits: commit 4f86136fc3f9db3ddaa821a9957eae97eccfafbe Author: Tim Daly <da...@ax...> Date: Wed Nov 12 21:53:05 2008 -0500 20081130 tpd src/axiom-website/patches.html 20081130.02.tpd.patch 20081130 tpd src/axiom-website/videos.html added |
From: <da...@us...> - 2008-11-30 16:43:19
|
Revision: 1023 http://axiom.svn.sourceforge.net/axiom/?rev=1023&view=rev Author: daly Date: 2008-11-30 16:43:15 +0000 (Sun, 30 Nov 2008) Log Message: ----------- 20081130 tpd src/axiom-website/patches.html 20081130.01.tpd.patch 20081130 tpd src/axiom-website/videos.html add videos link 20081130 tpd src/axiom-website/screenshots.html add videos link 20081130 tpd src/axiom-website/rosetta.html add videos link 20081130 tpd src/axiom-website/releasenotes.html add videos link 20081130 tpd src/axiom-website/patches.html add videos link 20081130 tpd src/axiom-website/index.html add videos link 20081130 tpd src/axiom-website/faq.html add videos link 20081130 tpd src/axiom-website/download.html add videos link 20081130 tpd src/axiom-website/documentation.html add videos link 20081130 tpd src/axiom-website/developers.html add videos link 20081130 tpd src/axiom-website/currentstate.html add videos link 20081130 tpd src/axiom-website/community.html add videos link 20081130 tpd src/axiom-website/bookvol10.2full.html add videos link 20081130 tpd src/axiom-website/bookvol10.2abb.html add videos link Modified Paths: -------------- trunk/axiom/changelog trunk/axiom/src/axiom-website/bookvol10.2abb.html trunk/axiom/src/axiom-website/bookvol10.2full.html trunk/axiom/src/axiom-website/community.html trunk/axiom/src/axiom-website/currentstate.html trunk/axiom/src/axiom-website/developers.html trunk/axiom/src/axiom-website/documentation.html trunk/axiom/src/axiom-website/download.html trunk/axiom/src/axiom-website/faq.html trunk/axiom/src/axiom-website/index.html trunk/axiom/src/axiom-website/patches.html trunk/axiom/src/axiom-website/releasenotes.html trunk/axiom/src/axiom-website/rosetta.html trunk/axiom/src/axiom-website/screenshots.html Modified: trunk/axiom/changelog =================================================================== --- trunk/axiom/changelog 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/changelog 2008-11-30 16:43:15 UTC (rev 1023) @@ -1,3 +1,18 @@ +20081130 tpd src/axiom-website/patches.html 20081130.01.tpd.patch +20081130 tpd src/axiom-website/videos.html add videos link +20081130 tpd src/axiom-website/screenshots.html add videos link +20081130 tpd src/axiom-website/rosetta.html add videos link +20081130 tpd src/axiom-website/releasenotes.html add videos link +20081130 tpd src/axiom-website/patches.html add videos link +20081130 tpd src/axiom-website/index.html add videos link +20081130 tpd src/axiom-website/faq.html add videos link +20081130 tpd src/axiom-website/download.html add videos link +20081130 tpd src/axiom-website/documentation.html add videos link +20081130 tpd src/axiom-website/developers.html add videos link +20081130 tpd src/axiom-website/currentstate.html add videos link +20081130 tpd src/axiom-website/community.html add videos link +20081130 tpd src/axiom-website/bookvol10.2full.html add videos link +20081130 tpd src/axiom-website/bookvol10.2abb.html add videos link 20081129 tpd src/axiom-website/patches.html 20081129.01.tpd.patch 20081129 tpd src/axiom-website/index.html fix broken link to jenks book 20081125 tpd src/axiom-website/patches.html 20081125.01.tpd.patch Modified: trunk/axiom/src/axiom-website/bookvol10.2abb.html =================================================================== --- trunk/axiom/src/axiom-website/bookvol10.2abb.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/bookvol10.2abb.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -87,6 +87,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> Modified: trunk/axiom/src/axiom-website/bookvol10.2full.html =================================================================== --- trunk/axiom/src/axiom-website/bookvol10.2full.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/bookvol10.2full.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -87,6 +87,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> Modified: trunk/axiom/src/axiom-website/community.html =================================================================== --- trunk/axiom/src/axiom-website/community.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/community.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -71,6 +71,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> Modified: trunk/axiom/src/axiom-website/currentstate.html =================================================================== --- trunk/axiom/src/axiom-website/currentstate.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/currentstate.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -71,6 +71,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> Modified: trunk/axiom/src/axiom-website/developers.html =================================================================== --- trunk/axiom/src/axiom-website/developers.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/developers.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -71,6 +71,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> Modified: trunk/axiom/src/axiom-website/documentation.html =================================================================== --- trunk/axiom/src/axiom-website/documentation.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/documentation.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -71,6 +71,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> Modified: trunk/axiom/src/axiom-website/download.html =================================================================== --- trunk/axiom/src/axiom-website/download.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/download.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -71,6 +71,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> Modified: trunk/axiom/src/axiom-website/faq.html =================================================================== --- trunk/axiom/src/axiom-website/faq.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/faq.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -71,6 +71,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> Modified: trunk/axiom/src/axiom-website/index.html =================================================================== --- trunk/axiom/src/axiom-website/index.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/index.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -72,6 +72,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="axiom-website/bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> Modified: trunk/axiom/src/axiom-website/patches.html =================================================================== --- trunk/axiom/src/axiom-website/patches.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/patches.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -71,6 +71,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> @@ -753,6 +759,8 @@ bookvol10.3 add domains<br/> <a href="patches/20081129.01.tpd.patch">20081129.01.tpd.patch</a> index.html - fix broken link<br/> +<a href="patches/20081130.01.tpd.patch">20081130.01.tpd.patch</a> +website -- add videos page<br/> </body> </html> \ No newline at end of file Modified: trunk/axiom/src/axiom-website/releasenotes.html =================================================================== --- trunk/axiom/src/axiom-website/releasenotes.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/releasenotes.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -71,6 +71,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> Modified: trunk/axiom/src/axiom-website/rosetta.html =================================================================== --- trunk/axiom/src/axiom-website/rosetta.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/rosetta.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -71,6 +71,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> Modified: trunk/axiom/src/axiom-website/screenshots.html =================================================================== --- trunk/axiom/src/axiom-website/screenshots.html 2008-11-29 18:37:32 UTC (rev 1022) +++ trunk/axiom/src/axiom-website/screenshots.html 2008-11-30 16:43:15 UTC (rev 1023) @@ -71,6 +71,12 @@ </div> <div align="center"> [ + <a href="videos.html" title="videos"> + Videos + </a> + ] +   + [ <a href="bookvol10.2abb.html" title="Abbreviation Graph"> Abbreviation Graph </a> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gi...@ax...> - 2008-11-30 16:42:25
|
changelog | 15 +++++++++++++++ src/axiom-website/bookvol10.2abb.html | 6 ++++++ src/axiom-website/bookvol10.2full.html | 6 ++++++ src/axiom-website/community.html | 6 ++++++ src/axiom-website/currentstate.html | 6 ++++++ src/axiom-website/developers.html | 6 ++++++ src/axiom-website/documentation.html | 6 ++++++ src/axiom-website/download.html | 6 ++++++ src/axiom-website/faq.html | 6 ++++++ src/axiom-website/index.html | 6 ++++++ src/axiom-website/patches.html | 8 ++++++++ src/axiom-website/releasenotes.html | 6 ++++++ src/axiom-website/rosetta.html | 6 ++++++ src/axiom-website/screenshots.html | 6 ++++++ 14 files changed, 95 insertions(+), 0 deletions(-) New commits: commit 7e9f9a717ce709e0c18be3d632310d186cbdfc87 Author: Tim Daly <da...@ax...> Date: Wed Nov 12 21:50:51 2008 -0500 20081130 tpd src/axiom-website/patches.html 20081130.01.tpd.patch 20081130 tpd src/axiom-website/videos.html add videos link 20081130 tpd src/axiom-website/screenshots.html add videos link 20081130 tpd src/axiom-website/rosetta.html add videos link 20081130 tpd src/axiom-website/releasenotes.html add videos link 20081130 tpd src/axiom-website/patches.html add videos link 20081130 tpd src/axiom-website/index.html add videos link 20081130 tpd src/axiom-website/faq.html add videos link 20081130 tpd src/axiom-website/download.html add videos link 20081130 tpd src/axiom-website/documentation.html add videos link 20081130 tpd src/axiom-website/developers.html add videos link 20081130 tpd src/axiom-website/currentstate.html add videos link 20081130 tpd src/axiom-website/community.html add videos link 20081130 tpd src/axiom-website/bookvol10.2full.html add videos link 20081130 tpd src/axiom-website/bookvol10.2abb.html add videos link |
From: <da...@us...> - 2008-11-29 18:37:37
|
Revision: 1022 http://axiom.svn.sourceforge.net/axiom/?rev=1022&view=rev Author: daly Date: 2008-11-29 18:37:32 +0000 (Sat, 29 Nov 2008) Log Message: ----------- 20081129 tpd src/axiom-website/patches.html 20081129.01.tpd.patch 20081129 tpd src/axiom-website/index.html fix broken link to jenks book Modified Paths: -------------- trunk/axiom/changelog trunk/axiom/src/axiom-website/index.html trunk/axiom/src/axiom-website/patches.html Modified: trunk/axiom/changelog =================================================================== --- trunk/axiom/changelog 2008-11-26 13:40:42 UTC (rev 1021) +++ trunk/axiom/changelog 2008-11-29 18:37:32 UTC (rev 1022) @@ -1,3 +1,5 @@ +20081129 tpd src/axiom-website/patches.html 20081129.01.tpd.patch +20081129 tpd src/axiom-website/index.html fix broken link to jenks book 20081125 tpd src/axiom-website/patches.html 20081125.01.tpd.patch 20081125 tpd books/bookvol10.3 add domains 20081125 tpd src/algebra/Makefile remove files, fixup help Modified: trunk/axiom/src/axiom-website/index.html =================================================================== --- trunk/axiom/src/axiom-website/index.html 2008-11-26 13:40:42 UTC (rev 1021) +++ trunk/axiom/src/axiom-website/index.html 2008-11-29 18:37:32 UTC (rev 1022) @@ -90,7 +90,7 @@ <li>Books <ul> <li> - <a href="axiom-website/book.pdf"> + <a href="axiom-website/bookvol0.pdf"> Jenks, R.D and Sutor R, "Axiom: The Scientific Computation System" </a> </li> Modified: trunk/axiom/src/axiom-website/patches.html =================================================================== --- trunk/axiom/src/axiom-website/patches.html 2008-11-26 13:40:42 UTC (rev 1021) +++ trunk/axiom/src/axiom-website/patches.html 2008-11-29 18:37:32 UTC (rev 1022) @@ -751,6 +751,8 @@ bookvol0, bookvol1 fix SmallFloat reference<br/> <a href="patches/20081125.01.tpd.patch">20081125.01.tpd.patch</a> bookvol10.3 add domains<br/> +<a href="patches/20081129.01.tpd.patch">20081129.01.tpd.patch</a> +index.html - fix broken link<br/> </body> </html> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gi...@ax...> - 2008-11-29 18:28:11
|
changelog | 2 ++ src/axiom-website/index.html | 2 +- src/axiom-website/patches.html | 2 ++ 3 files changed, 5 insertions(+), 1 deletions(-) New commits: commit a76e5586c3993e1255ddea000f905a59debed23a Author: Tim Daly <da...@ax...> Date: Wed Nov 12 12:46:22 2008 -0500 20081129 tpd src/axiom-website/patches.html 20081129.01.tpd.patch 20081129 tpd src/axiom-website/index.html fix broken link to jenks book |
From: <da...@us...> - 2008-11-26 13:40:48
|
Revision: 1021 http://axiom.svn.sourceforge.net/axiom/?rev=1021&view=rev Author: daly Date: 2008-11-26 13:40:42 +0000 (Wed, 26 Nov 2008) Log Message: ----------- fix broken repository Modified Paths: -------------- trunk/axiom/books/bookvol10.1.pamphlet trunk/axiom/books/bookvol10.3.pamphlet trunk/axiom/books/bookvol4.pamphlet trunk/axiom/changelog trunk/axiom/src/algebra/Makefile.pamphlet trunk/axiom/src/algebra/aggcat2.spad.pamphlet trunk/axiom/src/algebra/algfact.spad.pamphlet trunk/axiom/src/algebra/alql.spad.pamphlet trunk/axiom/src/algebra/carten.spad.pamphlet trunk/axiom/src/algebra/clip.spad.pamphlet trunk/axiom/src/algebra/cmplxrt.spad.pamphlet trunk/axiom/src/algebra/combinat.spad.pamphlet trunk/axiom/src/algebra/complet.spad.pamphlet trunk/axiom/src/algebra/cont.spad.pamphlet trunk/axiom/src/algebra/contfrac.spad.pamphlet trunk/axiom/src/algebra/coordsys.spad.pamphlet trunk/axiom/src/algebra/cra.spad.pamphlet trunk/axiom/src/algebra/crfp.spad.pamphlet trunk/axiom/src/algebra/curve.spad.pamphlet trunk/axiom/src/axiom-website/patches.html Added Paths: ----------- trunk/axiom/books/ps/v103algebraicfunctionfield.ps trunk/axiom/books/ps/v103algebraicnumber.ps trunk/axiom/books/ps/v103cardinalnumber.ps trunk/axiom/books/ps/v103cartesiantensor.ps trunk/axiom/books/ps/v103cliffordalgebra.ps trunk/axiom/books/ps/v103color.ps trunk/axiom/books/ps/v103continuedfraction.ps trunk/axiom/books/ps/v103inneralgebraicnumber.ps trunk/axiom/books/ps/v103onepointcompletion.ps trunk/axiom/books/ps/v103orderedcompletion.ps trunk/axiom/books/ps/v103palette.ps trunk/axiom/books/ps/v103quadraticform.ps trunk/axiom/books/ps/v103radicalfunctionfield.ps trunk/axiom/src/axiom-website/axiom.png trunk/axiom/src/axiom-website/axiom.png.org trunk/axiom/src/axiom-website/dhmatrix.spad.pdf trunk/axiom/src/axiom-website/endpaper.pdf trunk/axiom/src/axiom-website/rosetta.pdf trunk/axiom/src/axiom-website/screenshot2.jpg trunk/axiom/src/axiom-website/screenshot3.png Removed Paths: ------------- trunk/axiom/src/algebra/card.spad.pamphlet trunk/axiom/src/algebra/clifford.spad.pamphlet trunk/axiom/src/algebra/color.spad.pamphlet trunk/axiom/src/algebra/constant.spad.pamphlet Modified: trunk/axiom/books/bookvol10.1.pamphlet =================================================================== --- trunk/axiom/books/bookvol10.1.pamphlet 2008-11-25 03:31:31 UTC (rev 1020) +++ trunk/axiom/books/bookvol10.1.pamphlet 2008-11-26 13:40:42 UTC (rev 1021) @@ -1998,6 +1998,434 @@ case. Again, the details are quite technical and can be found in \cite{2,12,13}. +\chapter{Singular Value Decomposition} +\section{Singular Value Decomposition Tutorial} + +When you browse standard web sources like Wikipedia to learn about +Singular Value Decomposition or SVD you find many equations, but +not an intuitive explanation of what it is or how it works. SVD +is a way of factoring matrices into a series of linear approximations +that expose the underlying structure of the matrix. Two important +properties are that the linear factoring is exact and optimal. Exact +means that the series of linear factors, added together, exactly +equal the original matrix. Optimal means that, for the standard +means of measuring matrix similarity (the Frobenius norm), these +factors give the best possible linear approximation at each step +in the series. + +SVD is extraordinarily useful and has many applications such as +data analysis, signal processing, pattern recognition, image +compression, weather prediction, and Latent Sematic Analysis or +LSA (also referred to as Latent Semantic Indexing). Why is SVD +so useful and how does it work? + +As a simple example, let's look at golf scores. Suppose Phil, +Tiger, and Vijay play together for 9 holes and they each make +par on every hole. Their scorecard, which can also be viewed as +a (hole x player) matrix might look like this. + +\begin{tabular}{|c|c|c|c|c|} +Hole & Par & Phil & Tiger & Vijay\\ +\hline +1 & 4 & 4 & 4 & 4\\ +2 & 5 & 5 & 5 & 5\\ +3 & 3 & 3 & 3 & 3\\ +4 & 4 & 4 & 4 & 4\\ +5 & 4 & 4 & 4 & 4\\ +6 & 4 & 4 & 4 & 4\\ +7 & 4 & 4 & 4 & 4\\ +8 & 3 & 3 & 3 & 3\\ +9 & 5 & 5 & 5 & 5\\ +\end{tabular} + +Let's look at the problem of trying to predict what score each +player will make on a given hole. One idea is give each hole a +HoleDifficulty factor, and each player a PlayerAbility factor. +The actual score is predicted by multiplying these two factors +together. + +PredictedScore = HoleDifficulty * PlayerAbility + +For the first attempt, let's make the HoleDifficulty be the par +score for the hole, and let's make the player ability equal to 1. +So on the first hole, which is par 4, we would expect a player +of ability 1 to get a score of 4. + +PredictedScore = HoleDifficulty * PlayerAbility = 4 * 1 = 4 + +For our entire scorecard or matrix, all we have to do is multiply +the PlayerAbility (assumed to be 1 for all players) by the +HoleDifficulty (ranges from par 3 to par 5) and we can exactly +predict all the scores in our example. + +In fact, this is the one dimensional (1-D) SVD factorization of +the scorecard. We can represent our scorecard or matrix as the +product of two vectors, the HoleDifficulty vector and the +PlayerAbility vector. To predict any score, simply multiply the +appropriate HoleDifficulty factor by the appropriate PlayerAbility +factor. Following normal vector multiplication rules, we can + +generate the matrix of scores by multiplying the HoleDifficulty +vector by the PlayerAbility vector, according to the following +equation. + +\begin{tabular}{|c|c|c|} +Phil & Tiger & Vijay\\ +\hline +4 & 4 & 4\\ +5 & 5 & 5\\ +3 & 3 & 3\\ +4 & 4 & 4\\ +4 & 4 & 4\\ +4 & 4 & 4\\ +4 & 4 & 4\\ +3 & 3 & 3\\ +5 & 5 & 5\\ +\end{tabular} + = +\begin{tabular}{|c|} +4\\ +5\\ +3\\ +4\\ +4\\ +4\\ +4\\ +3\\ +5\\ +\end{tabular} + * +\begin{tabular}{|c|c|c|} +Phil & Tiger & Vijay\\ +1 & 1 & 1\\ +\end{tabular} + +which is HoleDifficulty * PlayerAbility + +Mathematicians like to keep everything orderly, so the convention +is that all vectors should be scaled so they have length 1. For +example, the PlayerAbility vector is modified so that the sum of +the squares of its elements add to 1, instead of the current +$12 + 12 + 12 = 3$. To do this, we have to divide each element by +the square root of 3, so that when we square it, it becomes +and the three elements add to 1. Similarly, we have to divide +each HoleDifficulty element by the square root of 148. The square +root of 3 times the square root of 148 is our scaling factor 21.07. +The complete 1-D SVD factorization (to 2 decimal places) is: + +\begin{tabular}{|c|c|c|} +Phil & Tiger & Vijay\\ +\hline +4 & 4 & 4\\ +5 & 5 & 5\\ +3 & 3 & 3\\ +4 & 4 & 4\\ +4 & 4 & 4\\ +4 & 4 & 4\\ +4 & 4 & 4\\ +3 & 3 & 3\\ +5 & 5 & 5\\ +\end{tabular} + = +\begin{tabular}{|c|} +0.33\\ +0.41\\ +0.25\\ +0.33\\ +0.33\\ +0.33\\ +0.33\\ +0.25\\ +0.41\\ +\end{tabular} + * +\begin{tabular}{|c|} +21.07\\ +\end{tabular} + * +\begin{tabular}{|c|c|c|} +Phil & Tiger & Vijay\\ +\hline +0.58 & 0.58 & 0.58\\ +\end{tabular} + +which is HoleDifficulty * ScaleFactor * PlayerAbility + +Our HoleDifficulty vector, that starts with 0.33, is called the +Left Singular Vector. The ScaleFactor is the Singular Value, and +our PlayerAbility vector, that starts with 0.58 is the Right +Singular Vector. If we represent these 3 parts exactly, and multiply +them together, we get the exact original scores. This means our +matrix is a rank 1 matrix, another way of saying it has a simple +and predictable pattern. + +More complicated matrices cannot be completely predicted just by +using one set of factors as we have done. In that case, we have to +introduce a second set of factors to refine our predictions. To do +that, we subtract our predicted scores from the actual scores, +getting the residual scores. Then we find a second set of +HoleDifficulty2 and PlayerAbility2 numbers that best predict the +residual scores. + +Rather than guessing HoleDifficulty and PlayerAbility factors and +subtracting predicted scores, there exist powerful algorithms than +can calculate SVD factorizations for you. Let's look at the actual +scores from the first 9 holes of the 2007 Players Championship as +played by Phil, Tiger, and Vijay. + +\begin{tabular}{|c|c|c|c|c|} +Hole & Par & Phil & Tiger & Vijay\\ +\hline +1 & 4 & 4 & 4 & 5\\ +2 & 5 & 4 & 5 & 5\\ +3 & 3 & 3 & 3 & 2\\ +4 & 4 & 4 & 5 & 4\\ +5 & 4 & 4 & 4 & 4\\ +6 & 4 & 3 & 5 & 4\\ +7 & 4 & 4 & 4 & 3\\ +8 & 3 & 2 & 4 & 4\\ +9 & 5 & 5 & 5 & 5\\ +\end{tabular} + +The 1-D SVD factorization of the scores is shown below. To make +this example easier to understand, I have incorporated the ScaleFactor +into the PlayerAbility and HoleDifficulty vectors so we can ignore +the ScaleFactor for this example. + +\begin{tabular}{|c|c|c|} +Phil & Tiger & Vijay\\ +\hline +3.95 & 4.64 & 4.34\\ +4.27 & 5.02 & 4.69\\ +2.42 & 2.85 & 2.66\\ +3.97 & 4.67 & 4.36\\ +3.64 & 4.28 & 4.00\\ +3.69 & 4.33 & 4.05\\ +3.33 & 3.92 & 3.66\\ +3.08 & 3.63 & 3.39\\ +4.55 & 5.35 & 5.00\\ +\end{tabular} + = +\begin{tabular}{|c|} +4.34\\ +4.69\\ +2.66\\ +4.36\\ +4.00\\ +4.05\\ +3.66\\ +3.39\\ +5.00\\ +\end{tabular} + * +\begin{tabular}{|c|c|c|} +Phil & Tiger & Vijay\\ +0.91 & 1.07 & 1.00\\ +\end{tabular} + +which is HoleDifficulty * PlayerAbility + +Notice that the HoleDifficulty factor is almost the average of that +hole for the 3 players. For example hole 5, where everyone scored 4, +does have a factor of 4.00. However hole 6, where the average score +is also 4, has a factor of 4.05 instead of 4.00. Similarly, the +PlayerAbility is almost the percentage of par that the player +achieved, For example Tiger shot 39 with par being 36, and +$39/36 = 1.08$ which is almost his PlayerAbility factor (for these +9 holes) of 1.07. + +Why don't the hole averages and par percentages exactly match the +1-D SVD factors? The answer is that SVD further refines those +numbers in a cycle. For example, we can start by assuming +HoleDifficulty is the hole average and then ask what PlayerAbility +best matches the scores, given those HoleDifficulty numbers? Once +we have that answer we can go back and ask what HoleDifficulty best +matches the scores given those PlayerAbility numbers? We keep +iterating this way until we converge to a set of factors that best +predict the score. SVD shortcuts this process and immediately give +us the factors that we would have converged to if we carried out +the process. + +One very useful property of SVD is that it always finds the optimal +set of factors that best predict the scores, according to the +standard matrix similarity measure (the Frobenius norm). That is, +if we use SVD to find the factors of a matrix, those are the best +factors that can be found. This optimality property means that we +don't have to wonder if a different set of numbers might predict +scores better. + +Now let's look at the difference between the actual scores and our +1-D approximation. A plus difference means that the actual score is +higher than the predicted score, a minus difference means the actual +score is lower than the prediction. For example, on the first hole +Tiger got a 4 and the predicted score was 4.64 so we get +$4 - 4.64 = -0.64$. In other words, we must add -0.64 to our prediction +to get the actual score. + +Once these differences have been found, we can do the same thing +again and predict these differences using the formula +HoleDifficulty2 * PlayerAbility2. Since these factors are trying +to predict the differences, they are the 2-D factors and we have +put a 2 after their names (ex. HoleDifficulty2) to show they are +the second set of factors. + +\begin{tabular}{|c|c|c|} +Phil & Tiger & Vijay\\ +\hline +0.05 & -0.64 & 0.66\\ +-0.28 & -0.02 & 0.31\\ +0.58 & 0.15 & -0.66\\ +0.03 & 0.33 & -0.36\\ +0.36 & -0.28 & 0.00\\ +-0.69 & 0.67 & -0.05\\ +0.67 & 0.08 & -0.66\\ +-1.08 & 0.37 & 0.61\\ +0.45 & -0.35 & 0.00\\ +\end{tabular} + = +\begin{tabular}{|c|} +-0.18\\ +-0.38\\ +0.80\\ +0.15\\ +0.35\\ +-0.67\\ +0.89\\ +-1.29\\ +0.44\\ +\end{tabular} + * +\begin{tabular}{|c|c|c|} +Phil & Tiger & Vijay\\ +0.82 & -0.20 & -0.53\\ +\end{tabular} + +which is HoleDifficulty(2) * PlayerAbility(2) + +There are some interesting observations we can make about these +factors. Notice that hole 8 has the most significant HoleDifficulty2 +factor (1.29). That means that it is the hardest hole to predict. +Indeed, it was the only hole on which none of the 3 players made +par. It was especially hard to predict because it was the most +difficult hole relative to par +$(HoleDifficulty - par) = (3.39 - 3) = 0.39$, and yet Phil birdied +it making his score more than a stroke below his predicted score +(he scored 2 versus his predicted score of 3.08). Other holes that +were hard to predict were holes 3 (0.80) and 7 (0.89) because Vijay +beat Phil on those holes even though, in general, Phil was playing +better. + +The full SVD for this example matrix (9 holes by 3 players) has 3 +sets of factors. In general, a m x n matrix where m >= n can have +at most n factors, so our $9 x 3$ matrix cannot have more than 3 sets +of factors. Here is the full SVD factorization (to two decimal places). + +\begin{tabular}{|c|c|c|} +Phil & Tiger & Vijay\\ +\hline +4 & 4 & 5\\ +4 & 5 & 5\\ +3 & 3 & 2\\ +4 & 5 & 4\\ +4 & 4 & 4\\ +3 & 5 & 4\\ +4 & 4 & 3\\ +2 & 4 & 4\\ +5 & 5 & 5\\ +\end{tabular} + = +\begin{tabular}{|c|c|c|} +4.34 & -0.18 & -0.90\\ +4.69 & -0.38 & -0.15\\ +2.66 & 0.80 & 0.40\\ +4.36 & 0.15 & 0.47\\ +4.00 & 0.35 & -0.29\\ +4.05 & -0.67 & 0.68\\ +3.66 & 0.89 & 0.33\\ +3.39 & -1.29 & 0.14\\ +5.00 & 0.44 & -0.36\\ +\end{tabular} + * +\begin{tabular}{|c|c|c|} +Phil & Tiger & Vijay\\ +\hline +0.91 & 1.07 & 1.00\\ +0.82 & -0.20 & -0.53\\ +-0.21 & 0.76 & -0.62\\ +\end{tabular} + +which is HoleDifficulty(1-3) * PlayerAbility(1-3) + +By SVD convention, the HoleDifficulty and PlayerAbility vectors +should all have length 1, so the conventional SVD factorization +is: + +\begin{tabular}{|c|c|c|} +Phil & Tiger & Vijay\\ +\hline +4 & 4 & 5\\ +4 & 5 & 5\\ +3 & 3 & 2\\ +4 & 5 & 4\\ +4 & 4 & 4\\ +3 & 5 & 4\\ +4 & 4 & 3\\ +2 & 4 & 4\\ +5 & 5 & 5\\ +\end{tabular} + = +\begin{tabular}{|c|c|c|} +0.35 & 0.09 & -0.64\\ +0.38 & 0.19 & -0.10\\ +0.22 & -0.40 & 0.28\\ +0.36 & -0.08 & 0.33\\ +0.33 & -0.18 & -0.20\\ +0.33 & 0.33 & 0.48\\ +0.30 & -0.44 & 0.23\\ +0.28 & 0.64 & 0.10\\ +0.41 & -0.22 & -0.25\\ +\end{tabular} + * +\begin{tabular}{|c|c|c|} +21.07 & 0 & 0\\ +0 & 2.01 & 0\\ +0 & 0 & 1.42\\ +\end{tabular} + * +\begin{tabular}{|c|c|c|} +Phil & Tiger & Vijay\\ +\hline +0.53 & 0.62 & 0.58\\ +-0.82 & 0.20 & 0.53\\ +-0.21 & 0.76 & -0.62\\ +\end{tabular} + +which is HoleDifficulty(1-3)* ScaleFactor(1-3) * PlayerAbility(1-3) + +We hope that you have some idea of what SVD is and how it can be +used. The next section covers applying SVD to Latent Sematic +Analysis or LSA. Although the domain is different, the concepts +are the same. We are trying to predict patterns of how words occur +in documents instead of trying to predict patterns of how players +score on holes. +\chapter{Groebner Basis} +Groebner Basis +\chapter{Greatest Common Divisor} +Greatest Common Divisor +\chapter{Polynomial Factorization} +Polynomial Factorization +\chapter{Cylindrical Algebraic Decomposition} +Cylindrical Algebraic Decomposition +\chapter{Pade approximant} +Pade approximant +\chapter{Schwartz-Zippel lemma and testing polynomial identities} +Schwartz-Zippel lemma and testing polynomial identities +\chapter{Chinese Remainder Theorem} +Chinese Remainder Theorem +\chapter{Gaussian Elimination} +Gaussian Elimination +\chapter{Diophantine Equations} +Diophantine Equations \begin{thebibliography}{99} \bibitem{1} Laurent Bertrand. Computing a hyperelliptic integral using arithmetic in the jacobian of the curve. {\sl Applicable Algebra in @@ -2085,6 +2513,7 @@ {\bf http://www.eecs.harvard.edu/ $\tilde{}$nr/noweb} \bibitem{31} Daly, Timothy, "The Axiom Literate Documentation"\\ {\bf http://axiom.axiom-developer.org/axiom-website/documentation.html} +\bibitem{32} {\bf http://www.puffinwarellc.com/p3a.htm} \end{thebibliography} \printindex \end{document} Modified: trunk/axiom/books/bookvol10.3.pamphlet =================================================================== --- trunk/axiom/books/bookvol10.3.pamphlet 2008-11-25 03:31:31 UTC (rev 1020) +++ trunk/axiom/books/bookvol10.3.pamphlet 2008-11-26 13:40:42 UTC (rev 1021) @@ -283,6 +283,223 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chapter A} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain ALGFF AlgebraicFunctionField} +\pagehead{AlgebraicFunctionField}{ALGFF} +\pagepic{ps/v103algebraicfunctionfield.ps}{ALGFF}{1.00} +<<domain ALGFF AlgebraicFunctionField>>= +)abbrev domain ALGFF AlgebraicFunctionField +++ Function field defined by f(x, y) = 0 +++ Author: Manuel Bronstein +++ Date Created: 3 May 1988 +++ Date Last Updated: 24 Jul 1990 +++ Keywords: algebraic, curve, function, field. +++ Description: Function field defined by f(x, y) = 0. +++ Examples: )r ALGFF INPUT +AlgebraicFunctionField(F, UP, UPUP, modulus): Exports == Impl where + F : Field + UP : UnivariatePolynomialCategory F + UPUP : UnivariatePolynomialCategory Fraction UP + modulus: UPUP + + N ==> NonNegativeInteger + Z ==> Integer + RF ==> Fraction UP + QF ==> Fraction UPUP + UP2 ==> SparseUnivariatePolynomial UP + SAE ==> SimpleAlgebraicExtension(RF, UPUP, modulus) + INIT ==> if (deref brandNew?) then startUp false + + Exports ==> FunctionFieldCategory(F, UP, UPUP) with + knownInfBasis: N -> Void + ++ knownInfBasis(n) \undocumented{} + + Impl ==> SAE add + import ChangeOfVariable(F, UP, UPUP) + import InnerCommonDenominator(UP, RF, Vector UP, Vector RF) + import MatrixCommonDenominator(UP, RF) + import UnivariatePolynomialCategoryFunctions2(RF, UPUP, UP, UP2) + + startUp : Boolean -> Void + vect : Matrix RF -> Vector $ + getInfBasis: () -> Void + + brandNew?:Reference(Boolean) := ref true + infBr?:Reference(Boolean) := ref true + discPoly:Reference(RF) := ref 0 + n := degree modulus + n1 := (n - 1)::N + ibasis:Matrix(RF) := zero(n, n) + invibasis:Matrix(RF) := copy ibasis + infbasis:Matrix(RF) := copy ibasis + invinfbasis:Matrix(RF):= copy ibasis + + branchPointAtInfinity?() == (INIT; infBr?()) + discriminant() == (INIT; discPoly()) + integralBasis() == (INIT; vect ibasis) + integralBasisAtInfinity() == (INIT; vect infbasis) + integralMatrix() == (INIT; ibasis) + inverseIntegralMatrix() == (INIT; invibasis) + integralMatrixAtInfinity() == (INIT; infbasis) + branchPoint?(a:F) == zero?((retract(discriminant())@UP) a) + definingPolynomial() == modulus + inverseIntegralMatrixAtInfinity() == (INIT; invinfbasis) + + vect m == + [represents row(m, i) for i in minRowIndex m .. maxRowIndex m] + + integralCoordinates f == + splitDenominator(coordinates(f) * inverseIntegralMatrix()) + + knownInfBasis d == + if deref brandNew? then + alpha := [monomial(1, d * i)$UP :: RF for i in 0..n1]$Vector(RF) + ib := diagonalMatrix + [inv qelt(alpha, i) for i in minIndex alpha .. maxIndex alpha] + invib := diagonalMatrix alpha + for i in minRowIndex ib .. maxRowIndex ib repeat + for j in minColIndex ib .. maxColIndex ib repeat + infbasis(i, j) := qelt(ib, i, j) + invinfbasis(i, j) := invib(i, j) + void + + getInfBasis() == + x := inv(monomial(1, 1)$UP :: RF) + invmod := map(#1 x, modulus) + r := mkIntegral invmod + degree(r.poly) ^= n => error "Should not happen" + ninvmod:UP2 := map(retract(#1)@UP, r.poly) + alpha := [(r.coef ** i) x for i in 0..n1]$Vector(RF) + invalpha := [inv qelt(alpha, i) + for i in minIndex alpha .. maxIndex alpha]$Vector(RF) + invib := integralBasis()$FunctionFieldIntegralBasis(UP, UP2, + SimpleAlgebraicExtension(UP, UP2, ninvmod)) + for i in minRowIndex ibasis .. maxRowIndex ibasis repeat + for j in minColIndex ibasis .. maxColIndex ibasis repeat + infbasis(i, j) := ((invib.basis)(i,j) / invib.basisDen) x + invinfbasis(i, j) := ((invib.basisInv) (i, j)) x + ib2 := infbasis * diagonalMatrix alpha + invib2 := diagonalMatrix(invalpha) * invinfbasis + for i in minRowIndex ib2 .. maxRowIndex ib2 repeat + for j in minColIndex ibasis .. maxColIndex ibasis repeat + infbasis(i, j) := qelt(ib2, i, j) + invinfbasis(i, j) := invib2(i, j) + void + + startUp b == + brandNew?() := b + nmod:UP2 := map(retract, modulus) + ib := integralBasis()$FunctionFieldIntegralBasis(UP, UP2, + SimpleAlgebraicExtension(UP, UP2, nmod)) + for i in minRowIndex ibasis .. maxRowIndex ibasis repeat + for j in minColIndex ibasis .. maxColIndex ibasis repeat + qsetelt_!(ibasis, i, j, (ib.basis)(i, j) / ib.basisDen) + invibasis(i, j) := ((ib.basisInv) (i, j))::RF + if zero?(infbasis(minRowIndex infbasis, minColIndex infbasis)) + then getInfBasis() + ib2 := coordinates normalizeAtInfinity vect ibasis + invib2 := inverse(ib2)::Matrix(RF) + for i in minRowIndex ib2 .. maxRowIndex ib2 repeat + for j in minColIndex ib2 .. maxColIndex ib2 repeat + ibasis(i, j) := qelt(ib2, i, j) + invibasis(i, j) := invib2(i, j) + dsc := resultant(modulus, differentiate modulus) + dsc0 := dsc * determinant(infbasis) ** 2 + degree(numer dsc0) > degree(denom dsc0) =>error "Shouldn't happen" + infBr?() := degree(numer dsc0) < degree(denom dsc0) + dsc := dsc * determinant(ibasis) ** 2 + discPoly() := primitivePart(numer dsc) / denom(dsc) + void + + integralDerivationMatrix d == + w := integralBasis() + splitDenominator(coordinates([differentiate(w.i, d) + for i in minIndex w .. maxIndex w]$Vector($)) + * inverseIntegralMatrix()) + + integralRepresents(v, d) == + represents(coordinates(represents(v, d)) * integralMatrix()) + + branchPoint?(p:UP) == + INIT + (r:=retractIfCan(p)@Union(F,"failed")) case F =>branchPoint?(r::F) + not ground? gcd(retract(discriminant())@UP, p) + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain AN AlgebraicNumber} +<<dot>>= +"AN" -> "ES" +"AlgebraicNumber()" -> "ExpressionSpace()" +"AN" -> "ACF" +"AlgebraicNumber()" -> "AlgebraicallyClosedField()" +"AN" -> "RETRACT" +"AlgebraicNumber()" -> "RetractableTo(Integer)" +"AlgebraicNumber()" -> "RetractableTo(Fraction(Integer))" +"AN" -> "LINEXP" +"AlgebraicNumber()" -> "LinearlyExplicitRingOver(Integer)" +"AlgebraicNumber()" -> "LinearlyExplicitRingOver(Fraction(Integer))" +"AN" -> "REAL" +"AlgebraicNumber()" -> "RealConstant()" +"AN" -> "CHARZ" +"AlgebraicNumber()" -> "CharacteristicZero()" +"AN" -> "KONVERT" +"AlgebraicNumber()" -> "ConvertibleTo(Complex(Float))" +"AN" -> "DIFRING" +"AlgebraicNumber()" -> "DifferentialRing()" +@ +\pagehead{AlgebraicNumber}{AN} +\pagepic{ps/v103algebraicnumber.ps}{AN}{1.00} +<<domain AN AlgebraicNumber>>= +)abbrev domain AN AlgebraicNumber +++ Algebraic closure of the rational numbers +++ Author: James Davenport +++ Date Created: 9 October 1995 +++ Date Last Updated: 10 October 1995 (JHD) +++ Description: Algebraic closure of the rational numbers, with mathematical = +++ Keywords: algebraic, number. +AlgebraicNumber(): Exports == Implementation where + Z ==> Integer + P ==> SparseMultivariatePolynomial(Z, Kernel %) + SUP ==> SparseUnivariatePolynomial + + Exports ==> Join(ExpressionSpace, AlgebraicallyClosedField, + RetractableTo Z, RetractableTo Fraction Z, + LinearlyExplicitRingOver Z, RealConstant, + LinearlyExplicitRingOver Fraction Z, + CharacteristicZero, + ConvertibleTo Complex Float, DifferentialRing) with + coerce : P -> % + ++ coerce(p) returns p viewed as an algebraic number. + numer : % -> P + ++ numer(f) returns the numerator of f viewed as a + ++ polynomial in the kernels over Z. + denom : % -> P + ++ denom(f) returns the denominator of f viewed as a + ++ polynomial in the kernels over Z. + reduce : % -> % + ++ reduce(f) simplifies all the unreduced algebraic numbers + ++ present in f by applying their defining relations. + norm : (SUP(%),Kernel %) -> SUP(%) + ++ norm(p,k) computes the norm of the polynomial p + ++ with respect to the extension generated by kernel k + norm : (SUP(%),List Kernel %) -> SUP(%) + ++ norm(p,l) computes the norm of the polynomial p + ++ with respect to the extension generated by kernels l + norm : (%,Kernel %) -> % + ++ norm(f,k) computes the norm of the algebraic number f + ++ with respect to the extension generated by kernel k + norm : (%,List Kernel %) -> % + ++ norm(f,l) computes the norm of the algebraic number f + ++ with respect to the extension generated by kernels l + Implementation ==> InnerAlgebraicNumber add + Rep:=InnerAlgebraicNumber + a,b:% + zero? a == trueEqual(a::Rep,0::Rep) + one? a == trueEqual(a::Rep,1::Rep) + a=b == trueEqual((a-b)::Rep,0::Rep) + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ANY Any} <<dot>>= "ANY" -> "SETCAT" @@ -4858,7 +5075,4089 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chapter C} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain CARD CardinalNumber} +<<CardinalNumber.input>>= +-- card.spad.pamphlet CardinalNumber.input +)spool CardinalNumber.output +)set message test on +)set message auto off +)clear all +--S 1 of 20 +c0 := 0 :: CardinalNumber +--R +--R +--R (1) 0 +--R Type: CardinalNumber +--E 1 + +--S 2 of 20 +c1 := 1 :: CardinalNumber +--R +--R +--R (2) 1 +--R Type: CardinalNumber +--E 2 + +--S 3 of 20 +c2 := 2 :: CardinalNumber +--R +--R +--R (3) 2 +--R Type: CardinalNumber +--E 3 + +--S 4 of 20 +c3 := 3 :: CardinalNumber +--R +--R +--R (4) 3 +--R Type: CardinalNumber +--E 4 + +--S 5 of 20 +A0 := Aleph 0 +--R +--R +--R (5) Aleph(0) +--R Type: CardinalNumber +--E 5 + +--S 6 of 20 +A1 := Aleph 1 +--R +--R +--R (6) Aleph(1) +--R Type: CardinalNumber +--E 6 + +--S 7 of 20 +finite? c2 +--R +--R +--R (7) true +--R Type: Boolean +--E 7 + +--S 8 of 20 +finite? A0 +--R +--R +--R (8) false +--R Type: Boolean +--E 8 + +--S 9 of 20 +countable? c2 +--R +--R +--R (9) true +--R Type: Boolean +--E 9 + +--S 10 of 20 +countable? A0 +--R +--R +--R (10) true +--R Type: Boolean +--E 10 + +--S 11 of 20 +countable? A1 +--R +--R +--R (11) false +--R Type: Boolean +--E 11 + +--S 12 of 20 +[c2 + c2, c2 + A1] +--R +--R +--R (12) [4,Aleph(1)] +--R Type: List CardinalNumber +--E 12 + +--S 13 of 20 +[c0*c2, c1*c2, c2*c2, c0*A1, c1*A1, c2*A1, A0*A1] +--R +--R +--R (13) [0,2,4,0,Aleph(1),Aleph(1),Aleph(1)] +--R Type: List CardinalNumber +--E 13 + +--S 14 of 20 +[c2**c0, c2**c1, c2**c2, A1**c0, A1**c1, A1**c2] +--R +--R +--R (14) [1,2,4,1,Aleph(1),Aleph(1)] +--R Type: List CardinalNumber +--E 14 + +--S 15 of 20 +[c2-c1, c2-c2, c2-c3, A1-c2, A1-A0, A1-A1] +--R +--R +--R (15) [1,0,"failed",Aleph(1),Aleph(1),"failed"] +--R Type: List Union(CardinalNumber,"failed") +--E 15 + +--S 16 of 20 +generalizedContinuumHypothesisAssumed true +--R +--R +--R (16) true +--R Type: Boolean +--E 16 + +--S 17 of 20 +[c0**A0, c1**A0, c2**A0, A0**A0, A0**A1, A1**A0, A1**A1] +--R +--R +--R (17) [0,1,Aleph(1),Aleph(1),Aleph(2),Aleph(1),Aleph(2)] +--R Type: List CardinalNumber +--E 17 + +--S 18 of 20 +a := Aleph 0 +--R +--R +--R (18) Aleph(0) +--R Type: CardinalNumber +--E 18 + +--S 19 of 20 +c := 2**a +--R +--R +--R (19) Aleph(1) +--R Type: CardinalNumber +--E 19 + +--S 20 of 20 +f := 2**c +--R +--R +--R (20) Aleph(2) +--R Type: CardinalNumber +--E 20 +)spool +)lisp (bye) +@ +<<CardinalNumber.help>>= +==================================================================== +CardinalNumber examples +==================================================================== + +The CardinalNumber domain can be used for values indicating the +cardinality of sets, both finite and infinite. For example, the +dimension operation in the category VectorSpace returns a cardinal +number. + +The non-negative integers have a natural construction as cardinals + + 0 = #{ }, 1 = {0}, 2 = {0, 1}, ..., n = {i | 0 <= i < n}. + +The fact that 0 acts as a zero for the multiplication of cardinals is +equivalent to the axiom of choice. + +Cardinal numbers can be created by conversion from non-negative integers. + + c0 := 0 :: CardinalNumber + 0 + Type: CardinalNumber + + c1 := 1 :: CardinalNumber + 1 + Type: CardinalNumber + + c2 := 2 :: CardinalNumber + 2 + Type: CardinalNumber + + c3 := 3 :: CardinalNumber + 3 + Type: CardinalNumber + +They can also be obtained as the named cardinal Aleph(n). + + A0 := Aleph 0 + Aleph(0) + Type: CardinalNumber + + A1 := Aleph 1 + Aleph(1) + Type: CardinalNumber + +The finite? operation tests whether a value is a finite cardinal, that +is, a non-negative integer. + + finite? c2 + true + Type: Boolean + + finite? A0 + false + Type: Boolean + +Similarly, the countable? operation determines whether a value is a +countable cardinal, that is, finite or Aleph(0). + + countable? c2 + true + Type: Boolean + + countable? A0 + true + Type: Boolean + + countable? A1 + false + Type: Boolean + +Arithmetic operations are defined on cardinal numbers as follows: +If x = #X and y = #Y then + + x+y = #(X+Y) cardinality of the disjoint union + x-y = #(X-Y) cardinality of the relative complement + x*y = #(X*Y) cardinality of the Cartesian product + x**y = #(X**Y) cardinality of the set of maps from Y to X + +Here are some arithmetic examples. + + [c2 + c2, c2 + A1] + [4, Aleph(1)] + Type: List CardinalNumber + + [c0*c2, c1*c2, c2*c2, c0*A1, c1*A1, c2*A1, A0*A1] + [0, 2, 4, 0, Aleph(1), Aleph(1), Aleph(1)] + Type: List CardinalNumber + + [c2**c0, c2**c1, c2**c2, A1**c0, A1**c1, A1**c2] + [1, 2, 4, 1, Aleph(1), Aleph(1)] + Type: List CardinalNumber + +Subtraction is a partial operation: it is not defined when subtracting +a larger cardinal from a smaller one, nor when subtracting two equal +infinite cardinals. + + [c2-c1, c2-c2, c2-c3, A1-c2, A1-A0, A1-A1] + [1, 0, "failed", Aleph(1), Aleph(1), "failed"] + Type: List Union(CardinalNumber,"failed") + +The generalized continuum hypothesis asserts that + + 2**Aleph i = Aleph(i+1) + +and is independent of the axioms of set theory. + +(reference: Goedel, The consistency of the continuum hypothesis, +Ann. Math. Studies, Princeton Univ. Press, 1940.) + +The CardinalNumber domain provides an operation to assert whether the +hypothesis is to be assumed. + + generalizedContinuumHypothesisAssumed true + true + Type: Boolean + +When the generalized continuum hypothesis is assumed, exponentiation +to a transfinite power is allowed. + + [c0**A0, c1**A0, c2**A0, A0**A0, A0**A1, A1**A0, A1**A1] + [0, 1, Aleph(1), Aleph(1), Aleph(2), Aleph(1), Aleph(2)] + Type: List CardinalNumber + +Three commonly encountered cardinal numbers are + + a = #Z countable infinity + c = #R the continuum + f = #{g| g: [0,1] -> R} + +In this domain, these values are obtained under the generalized +continuum hypothesis in this way. + + a := Aleph 0 + Aleph(0) + Type: CardinalNumber + + c := 2**a + Aleph(1) + Type: CardinalNumber + + f := 2**c + Aleph(2) + Type: CardinalNumber + +See Also: +o )show CardinalNumber +o $AXIOM/doc/src/algebra/card.spad.dvi + +@ +<<dot>>= +"CARD" -> "ORDSET" +"CardinalNumber()" -> "OrderedSet()" +"CARD" -> "ABELMON" +"CardinalNumber()" -> "AbelianMonoid()" +"CARD" -> "MONOID" +"CardinalNumber()" -> "Monoid()" +"CARD" -> "RETRACT" +"CardinalNumber()" -> "RetractableTo(NonNegativeInteger)" +@ +\pagehead{CardinalNumber}{CARD} +\pagepic{ps/v103cardinalnumber.ps}{CARD}{1.00} +<<domain CARD CardinalNumber>>= +)abbrev domain CARD CardinalNumber +++ Author: S.M. Watt +++ Date Created: June 1986 +++ Date Last Updated: May 1990 +++ Basic Operations: Aleph, +, -, *, ** +++ Related Domains: +++ Also See: +++ AMS Classifications: +++ Keywords: cardinal number, transfinite arithmetic +++ Examples: +++ References: +++ Goedel, "The consistency of the continuum hypothesis", +++ Ann. Math. Studies, Princeton Univ. Press, 1940 +++ Description: +++ Members of the domain CardinalNumber are values indicating the +++ cardinality of sets, both finite and infinite. Arithmetic operations +++ are defined on cardinal numbers as follows. +++ +++ If \spad{x = #X} and \spad{y = #Y} then +++ \spad{x+y = #(X+Y)} \tab{30}disjoint union +++ \spad{x-y = #(X-Y)} \tab{30}relative complement +++ \spad{x*y = #(X*Y)} \tab{30}cartesian product +++ \spad{x**y = #(X**Y)} \tab{30}\spad{X**Y = \{g| g:Y->X\}} +++ +++ The non-negative integers have a natural construction as cardinals +++ \spad{0 = #\{\}}, \spad{1 = \{0\}}, \spad{2 = \{0, 1\}}, ..., \spad{n = \{i| 0 <= i < n\}}. +++ +++ That \spad{0} acts as a zero for the multiplication of cardinals is +++ equivalent to the axiom of choice. +++ +++ The generalized continuum hypothesis asserts +++ \center{\spad{2**Aleph i = Aleph(i+1)}} +++ and is independent of the axioms of set theory [Goedel 1940]. +++ +++ Three commonly encountered cardinal numbers are +++ \spad{a = #Z} \tab{30}countable infinity +++ \spad{c = #R} \tab{30}the continuum +++ \spad{f = #\{g| g:[0,1]->R\}} +++ +++ In this domain, these values are obtained using +++ \spad{a := Aleph 0}, \spad{c := 2**a}, \spad{f := 2**c}. +++ +CardinalNumber: Join(OrderedSet, AbelianMonoid, Monoid, + RetractableTo NonNegativeInteger) with + commutative "*" + ++ a domain D has \spad{commutative("*")} if it has an operation + ++ \spad{"*": (D,D) -> D} which is commutative. + + "-": (%,%) -> Union(%,"failed") + ++ \spad{x - y} returns an element z such that + ++ \spad{z+y=x} or "failed" if no such element exists. + ++ + ++X c2:=2::CardinalNumber + ++X c2-c2 + ++X A1:=Aleph 1 + ++X A1-c2 + + "**": (%, %) -> % + ++ \spad{x**y} returns \spad{#(X**Y)} where \spad{X**Y} is defined + ++ as \spad{\{g| g:Y->X\}}. + ++ + ++X c2:=2::CardinalNumber + ++X c2**c2 + ++X A1:=Aleph 1 + ++X A1**c2 + ++X generalizedContinuumHypothesisAssumed true + ++X A1**A1 + + Aleph: NonNegativeInteger -> % + ++ Aleph(n) provides the named (infinite) cardinal number. + ++ + ++X A0:=Aleph 0 + + finite?: % -> Boolean + ++ finite?(\spad{a}) determines whether + ++ \spad{a} is a finite cardinal, i.e. an integer. + ++ + ++X c2:=2::CardinalNumber + ++X finite? c2 + ++X A0:=Aleph 0 + ++X finite? A0 + + countable?: % -> Boolean + ++ countable?(\spad{a}) determines + ++ whether \spad{a} is a countable cardinal, + ++ i.e. an integer or \spad{Aleph 0}. + ++ + ++X c2:=2::CardinalNumber + ++X countable? c2 + ++X A0:=Aleph 0 + ++X countable? A0 + ++X A1:=Aleph 1 + ++X countable? A1 + + generalizedContinuumHypothesisAssumed?: () -> Boolean + ++ generalizedContinuumHypothesisAssumed?() + ++ tests if the hypothesis is currently assumed. + ++ + ++X generalizedContinuumHypothesisAssumed? + + generalizedContinuumHypothesisAssumed: Boolean -> Boolean + ++ generalizedContinuumHypothesisAssumed(bool) + ++ is used to dictate whether the hypothesis is to be assumed. + ++ + ++X generalizedContinuumHypothesisAssumed true + ++X a:=Aleph 0 + ++X c:=2**a + ++X f:=2**c + == add + NNI ==> NonNegativeInteger + FINord ==> -1 + DUMMYval ==> -1 + + Rep := Record(order: Integer, ival: Integer) + + GCHypothesis: Reference(Boolean) := ref false + + -- Creation + 0 == [FINord, 0] + 1 == [FINord, 1] + coerce(n:NonNegativeInteger):% == [FINord, n] + Aleph n == [n, DUMMYval] + + -- Output + ALEPHexpr := "Aleph"::OutputForm + + coerce(x: %): OutputForm == + x.order = FINord => (x.ival)::OutputForm + prefix(ALEPHexpr, [(x.order)::OutputForm]) + + -- Manipulation + x = y == + x.order ^= y.order => false + finite? x => x.ival = y.ival + true -- equal transfinites + x < y == + x.order < y.order => true + x.order > y.order => false + finite? x => x.ival < y.ival + false -- equal transfinites + x:% + y:% == + finite? x and finite? y => [FINord, x.ival+y.ival] + max(x, y) + x - y == + x < y => "failed" + finite? x => [FINord, x.ival-y.ival] + x > y => x + "failed" -- equal transfinites + x:% * y:% == + finite? x and finite? y => [FINord, x.ival*y.ival] + x = 0 or y = 0 => 0 + max(x, y) + n:NonNegativeInteger * x:% == + finite? x => [FINord, n*x.ival] + n = 0 => 0 + x + x**y == + y = 0 => + x ^= 0 => 1 + error "0**0 not defined for cardinal numbers." + finite? y => + not finite? x => x + [FINord,x.ival**(y.ival):NNI] + x = 0 => 0 + x = 1 => 1 + GCHypothesis() => [max(x.order-1, y.order) + 1, DUMMYval] + error "Transfinite exponentiation only implemented under GCH" + + finite? x == x.order = FINord + countable? x == x.order < 1 + + retract(x:%):NonNegativeInteger == + finite? x => (x.ival)::NNI + error "Not finite" + + retractIfCan(x:%):Union(NonNegativeInteger, "failed") == + finite? x => (x.ival)::NNI + "failed" + + -- State manipulation + generalizedContinuumHypothesisAssumed?() == GCHypothesis() + generalizedContinuumHypothesisAssumed b == (GCHypothesis() := b) + +@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain CLIF CliffordAlgebra\cite{7,12}} +\subsection{Vector (linear) spaces} +This information is originally from Paul Leopardi's presentation on +the {\sl Introduction to Clifford Algebras} and is included here as +an outline with his permission. Further details are based on the book +by Doran and Lasenby called {\sl Geometric Algebra for Physicists}. + +Consider the various kinds of products that can occur between vectors. +There are scalar and vector products from 3D geometry. There are the +complex and quaterion products. There is also +the {\sl outer} or {\sl exterior} product. + +Vector addition commutes: +\[a + b = b + a\] +Vector addtion is associative: +\[a + (b + c) = (a + b) + c\] +The identity vector exists: +\[a + 0 = a\] +Every vector has an inverse: +\[a + (-a) = 0\] + +If we consider vectors to be directed line segments, thus establishing +a geometric meaning for a vector, then each of these properties has a +geometric meaning. + +A multiplication operator exists between scalars and vectors with +the properties: +\[\lambda(a + b) = \lambda a + \lambda b\] +\[(\lambda + \mu)a = \lambda a + \mu a\] +\[(\lambda\mu)a = \lambda(\mu a)\] +\[{\rm If\ }1\lambda = \lambda{\rm\ for\ all\ scalars\ }\lambda +{\rm\ then\ }1a=a{\rm\ for\ all\ vectors\ }a\] + +These properties completely define a vector (linear) space. The +$+$ operation for scalar arithmetic is not the same as the $+$ +operation for vectors. + +{\bf Definition: Isomorphic} The vector space $A$ is isomorphic to +the vector space $B$ if their exists a one-to-one correspondence +between their elements which preserves sums and there is a one-to-one +correspondence between the scalars which preserves sums and products. + +{\bf Definition: Subspace} Vector space $B$ is a subspace of vector +space $A$ if all of the elements of $B$ are contained in $A$ and +they share the same scalars. + +{\bf Definition: Linear Combination} Given vectors $a_1,\ldots,a_n$ +the vector $b$ is a linear combination of the vectors if we can find +scalars $\lambda_i$ such that +\[b = \lambda_1 a_1+\ldots+\lambda_n a_n = \sum_{k=1}^n \lambda_i a_i\] + +{\bf Definition: Linearly Independent} If there exists scalars $\lambda_i$ +such that +\[\lambda_1 a_1 + \ldots + \lambda_n a_n = 0\] +and at least one of the $\lambda_i$ is not zero +then the vectors $a_1,\ldots,a_n$ are linearly dependent. If no such +scalars exist then the vectors are linearly independent. + +{\bf Definition: Span} If every vector can be written as a linear +combination of a fixed set of vectors $a_1,\ldots,a_n$ then this set +of vectors is said to span the vector space. + +{\bf Definition: Basis} If a set of vectors $a_1,\ldots,a_n$ is linearly +independent and spans a vector space $A$ then the vectors form a basis +for $A$. + +{\bf Definition: Dimension} The dimension of a vector space is the +number of basis elements, which is unique since all bases of a +vector space have the same number of elements. +\subsection{Quadratic Forms\cite{1}} +For vector space $\mathbb{V}$ over field $\mathbb{F}$, characteristic +$\ne 2$: +\begin{list}{} +\item Map $f:\mathbb{V} \rightarrow \mathbb{F}$, with +$$f(\lambda x)=\lambda^2f(x),\forall \lambda \in \mathbb{F}, x \in \mathbb{V}$$ +\item $f(x) = b(x,x)$, where +$$b:\mathbb{V}{\rm\ x\ }\mathbb{V} \rightarrow \mathbb{F}{\rm\ ,given\ by\ }$$ +$$b(x,y):=\frac{1}{2}(f(x+y)-f(x)=f(y))$$ +is a symmetric bilinear form +\end{list} +\subsection{Quadratic spaces, Clifford Maps\cite{1,2}} +\begin{list}{} +\item A quadratic space is the pair($\mathbb{V}$,$f$), where $f$ is a +quadratic form on $\mathbb{V}$ +\item A Clifford map is a vector space homomorphism +$$\rho : \mathbb{V} \rightarrow \mathbb{A}$$ +where $\mathbb{A}$ is an associated algebra, and +$$(\rho v)^2 = f(v),{\rm\ \ \ } \forall v \in \mathbb{V}$$ +\end{list} +\subsection{Universal Clifford algebras\cite{1}} +\begin{list}{} +\item The {\sl universal Clifford algebra} $Cl(f)$ for the quadratic space +$(\mathbb{V},f)$ is the algebra generated by the image of the Clifford +map $\phi_f$ such that $Cl(f)$ is the universal initial object such +that $\forall$ suitable algebra $\mathbb{A}$ with Clifford map +$\phi_{\mathbb{A}} \exists$ a homomorphism +$$P_\mathbb{A}:Cl(f) \rightarrow \mathbb{A}$$ +$$\rho_\mathbb{A} = P_\mathbb{A}\circ\rho_f$$ +\end{list} +\subsection{Real Clifford algebras $\mathbb{R}_{p,q}$\cite{2}} +\begin{list}{} +\item The real quadratic space $\mathbb{R}^{p,q}$ is $\mathbb{R}^{p+q}$ with +$$\phi(x):=-\sum_{k:=-q}^{-1}{x_k^2}+\sum_{k=1}^p{x_k^2}$$ +\item For each $p,q \in \mathbb{N}$, the real universal Clifford algebra +for $\mathbb{R}^{p,q}$ is called $\mathbb{R}_{p,q}$ +\item $\mathbb{R}_{p,q}$ is isomorphic to some matrix algebra over one of: +$\mathbb{R}$,$\mathbb{R}\oplus\mathbb{R}$,$\mathbb{C}$, +$\mathbb{H}$,$\mathbb{H}\oplus\mathbb{H}$ +\item For example, $\mathbb{R}_{1,1} \cong \mathbb{R}(2)$ +\end{list} +\subsection{Notation for integer sets} +\begin{list}{} +\item For $S \subseteq \mathbb{Z}$, define +$$\sum_{k \in S}{f_k}:=\sum_{k={\rm min\ }S, k \in S}^{{\rm max\ } S}{f_k}$$ +$$\prod_{k \in S}{f_k}:=\prod_{k={\rm min\ }S, k \in S}^{{\rm max\ } S}{f_k}$$ +$$\mathbb{P}(S):={\rm\ the\ }\ power\ set\ {\rm\ of\ }S$$ +\item For $m \le n \in \mathbb{Z}$, define +$$\zeta(m,n):=\{m,m+1,\ldots,n-1,n\}\backslash\{0\}$$ +\end{list} +\subsection{Frames for Clifford algebras\cite{9,10,11}} +\begin{list}{} +\item A {\sl frame} is an ordered basis $(\gamma_{-q},\ldots,\gamma_p)$ +for $\mathbb{R}^{p,q}$ which puts a quadratic form into the canonical +form $\phi$ +\item For $p,q \in \mathbb{N}$, embed the frame for $\mathbb{R}^{p,q}$ +into $\mathbb{R}_{p,q}$ via the maps +$$\gamma:\zeta(-q,p) \rightarrow \mathbb{R}^{p,q}$$ +$$\rho:\mathbb{R}^{p,q} \rightarrow \mathbb{R}_{p,q}$$ +$$(\rho\gamma k)^2 = \phi\gamma k = {\rm\ sgn\ }k$$ +\end{list} +\subsection{Real frame groups\cite{5,6}} +\begin{list}{} +\item For $p,q \in \mathbb{N}$, define the real {\sl frame group} $\mathbb{G}_{p,q}$ +via the map +$$g:\zeta(-q,p) \rightarrow \mathbb{G}_{p,q}$$ +with generators and relations +$$\langle \mu,g_k | \mu g_k = g_k \mu,{\rm\ \ \ }\mu^2 = 1,$$ +$$(g_k)^2 = +\left\{ +\begin{array}{lcc} +\mu,&{\rm\ \ }&{\rm\ if\ }k < 0\\ +1&{\rm\ \ }&{\rm\ if\ }k > 0 +\end{array} +\right.$$ +$$g_kg_m = \mu g_mg_k{\rm\ \ \ }\forall k \ne m\rangle$$ +\end{list} +\subsection{Canonical products\cite{1,3,4}} +\begin{list}{} +\item The real frame group $\mathbb{G}_{p,q}$ has order $2^{p+q+1}$ +\item Each member $w$ can be expressed as the canonically ordered product +$$w=\mu^a\prod_{k \in T}{g_k}$$ +$$\ =\mu^a\prod_{k=-q,k\ne0}^p{g_k^{b_k}}$$ +where $T \subseteq \zeta(-q,p),a,b_k \in \{0,1\}$ +\end{list} +\subsection{Clifford algebra of frame group\cite{1,4,5,6}} +\begin{list}{} +\item For $p,q \in \mathbb{N}$ embed $\mathbb{G}_{p,q}$ into +$\mathbb{R}_{p,q}$ via the map +$$\alpha \mathbb{G}_{p,q} \rightarrow \mathbb{R}_{p,q}$$ +$$\alpha 1 := 1,{\rm\ \ \ \ \ } \alpha\mu := -1$$ +$$\alpha g_k := \rho\gamma_k, {\rm \ \ \ \ \ } +\alpha(gh) := (\alpha g)(\alpha h)$$ +\item Define {\sl basis elements} via the map +$$e:\mathbb{P}\zeta(-q,p) \rightarrow \mathbb{R}_{p,q}, +{\rm \ \ \ \ \ }e_T := \alpha \prod_{k \in T}{g_k}$$ +\item Each $a \in \mathbb{R}_{p,q}$ can be expressed as +$$a = \sum_{T \subseteq \zeta(-q,p)}{a_T e_T}$$ +\end{list} +\subsection{Neutral matrix representations\cite{1,2,8}} +The {\sl representation map} $P_m$ and {\sl representation matrix} $R_m$ +make the following diagram commute: +\begin{tabular}{ccc} + & coord & \\ +$\mathbb{R}_{m,m}$ & --------$>$ & $\mathbb{R}^{4^m}$ \\ + $|$ & & $|$ \\ + $|$ & & $|$ \\ + $P_m$ & & $R_m$ \\ + $|$ & & $|$ \\ + $|$ & & $|$ \\ + V & & V \\ + $\mathbb{R}(2^m)$ & --------$>$ & $\mathbb{R}^{4^m}$\\ + & reshape & \\ +\end{tabular} +<<CliffordAlgebra.input>>= +-- clifford.spad.pamphlet CliffordAlgebra.input +)spool CliffordAlgebra.output +)set message test on +)set message auto off +)clear all +--S 1 of 36 +K := Fraction Polynomial Integer +--R +--R +--R (1) Fraction Polynomial Integer +--R Type: Domain +--E 1 + +--S 2 of 36 +m := matrix [ [-1] ] +--R +--R +--R (2) [- 1] +--R Type: Matrix Integer +--E 2 + +--S 3 of 36 +C := CliffordAlgebra(1, K, quadraticForm m) +--R +--R +--R (3) CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX) +--R Type: Domain +--E 3 + +--S 4 of 36 +i: C := e(1) +--R +--R +--R (4) e +--R 1 +--R Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX) +--E 4 + +--S 5 of 36 +x := a + b * i +--R +--R +--R (5) a + b e +--R 1 +--R Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX) +--E 5 + +--S 6 of 36 +y := c + d * i +--R +--R +--R (6) c + d e +--R 1 +--R Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX) +--E 6 + +--S 7 of 36 +x * y +--R +--R +--R (7) - b d + a c + (a d + b c)e +--R 1 +--R Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX) +--E 7 +)clear all + +--S 8 of 36 +K := Fraction Polynomial Integer +--R +--R +--R (1) Fraction Polynomial Integer +--R Type: Domain +--E 8 + +--S 9 of 36 +m := matrix [ [-1,0],[0,-1] ] +--R +--R +--R +- 1 0 + +--R (2) | | +--R + 0 - 1+ +--R Type: Matrix Integer +--E 9 + +--S 10 of 36 +H := CliffordAlgebra(2, K, quadraticForm m) +--R +--R +--R (3) CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) +--R Type: Domain +--E 10 + +--S 11 of 36 +i: H := e(1) +--R +--R +--R (4) e +--R 1 +--R Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) +--E 11 + +--S 12 of 36 +j: H := e(2) +--R +--R +--R (5) e +--R 2 +--R Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) +--E 12 + +--S 13 of 36 +k: H := i * j +--R +--R +--R (6) e e +--R 1 2 +--R Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) +--E 13 + +--S 14 of 36 +x := a + b * i + c * j + d * k +--R +--R +--R (7) a + b e + c e + d e e +--R 1 2 1 2 +--R Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) +--E 14 + +--S 15 of 36 +y := e + f * i + g * j + h * k +--R +--R +--R (8) e + f e + g e + h e e +--R 1 2 1 2 +--R Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) +--E 15 + +--S 16 of 36 +x + y +--R +--R +--R (9) e + a + (f + b)e + (g + c)e + (h + d)e e +--R 1 2 1 2 +--R Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) +--E 16 + +--S 17 of 36 +x * y +--R +--R +--R (10) +--R - d h - c g - b f + a e + (c h - d g + a f + b e)e +--R 1 +--R + +--R (- b h + a g + d f + c e)e + (a h + b g - c f + d e)e e +--R 2 1 2 +--R Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) +--E 17 + +--S 18 of 36 +y * x +--R +--R +--R (11) +--R - d h - c g - b f + a e + (- c h + d g + a f + b e)e +--R 1 +--R + +--R (b h + a g - d f + c e)e + (a h - b g + c f + d e)e e +--R 2 1 2 +--R Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) +--E 18 +)clear all + +--S 19 of 36 +K := Fraction Polynomial Integer +--R +--R +--R (1) Fraction Polynomial Integer +--R Type: Domain +--E 19 + +--S 20 of 36 +Ext := CliffordAlgebra(3, K, quadraticForm 0) +--R +--R +--R (2) CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX) +--R Type: Domain +--E 20 + +--S 21 of 36 +i: Ext := e(1) +--R +--R +--R (3) e +--R 1 +--R Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX) +--E 21 + +--S 22 of 36 +j: Ext := e(2) +--R +--R +--R (4) e +--R 2 +--R Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX) +--E 22 + +--S 23 of 36 +k: Ext := e(3) +--R +--R +--R (5) e +--R 3 +--R Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX) +--E 23 + +--S 24 of 36 +x := x1*i + x2*j + x3*k +--R +--R +--R (6) x1 e + x2 e + x3 e +--R 1 2 3 +--R Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX) +--E 24 + +--S 25 of 36 +y := y1*i + y2*j + y3*k +--R +--R +--R (7) y1 e + y2 e + y3 e +--R 1 2 3 +--R Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX) +--E 25 + +--S 26 of 36 +x + y +--R +--R +--R (8) (y1 + x1)e + (y2 + x2)e + (y3 + x3)e +--R 1 2 3 +--R Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX) +--E 26 + +--S 27 of 36 +x * y + y * x +--R +--R +--R (9) 0 +--R Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX) +--E 27 + +--S 28 of 36 +dual2 a == coefficient(a,[2,3]) * i + coefficient(a,[3,1]) * j + coefficient(a,[1,2]) * k +--R +--R Type: Void +--E 28 + +--S 29 of 36 +dual2(x*y) +--R +--R Compiling function dual2 with type CliffordAlgebra(3,Fraction +--R Polynomial Integer,MATRIX) -> CliffordAlgebra(3,Fraction +--R Polynomial Integer,MATRIX) +--R +--R (11) (x2 y3 - x3 y2)e + (- x1 y3 + x3 y1)e + (x1 y2 - x2 y1)e +--R 1 2 3 +--R Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX) +--E 29 +)clear all + +--S 30 of 36 +K := Fraction Integer +--R +--R +--R (1) Fraction Integer +--R Type: Domain +--E 30 + +--S 31 of 36 +g := matrix [ [1,0,0,0], [0,-1,0,0], [0,0,-1,0], [0,0,0,-1] ] +--R +--R +--R +1 0 0 0 + +--R | | +--R |0 - 1 0 0 | +--R (2) | | +--R |0 0 - 1 0 | +--R | | +--R +0 0 0 - 1+ +--R Type: Matrix Integer +--E 31 + +--S 32 of 36 +D := CliffordAlgebra(4,K, quadraticForm g) +--R +--R +--R (3) CliffordAlgebra(4,Fraction Integer,MATRIX) +--R Type: Domain +--E 32 + +--S 33 of 36 +gam := [e(i)$D for i in 1..4] +--R +--R +--R (4) [e ,e ,e ,e ] +--R 1 2 3 4 +--R Type: List CliffordAlgebra(4,Fraction Integer,MATRIX) +--E 33 + +--S 34 of 36 +m := 1; n:= 2; r := 3; s := 4; +--R +--R +--R Type: PositiveInteger +--E 34 + +--S 35 of 36 +lhs := reduce(+, [reduce(+, [ g(l,t)*gam(l)*gam(m)*gam(n)*gam(r)*gam(s)*gam(t) for l in 1..4]) for t in 1..4]) +--R +--R +--R (6) - 4e e e e +--R 1 2 3 4 +--R Type: CliffordAlgebra(4,Fraction Integer,MATRIX) +--E 35 + +--S 36 of 36 +rhs := 2*(gam s * gam m*gam n*gam r + gam r*gam n*gam m*gam s) +--R +--R +--R (7) - 4e e e e +--R 1 2 3 4 +--R Type: CliffordAlgebra(4,Fraction Integer,MATRIX) +--E 36 +)spool +)lisp (bye) +@ +<<CliffordAlgebra.help>>= +==================================================================== +CliffordAlgebra examples +==================================================================== + +CliffordAlgebra(n,K,Q) defines a vector space of dimension 2^n over +the field K with a given quadratic form Q. If {e1..en} is a basis for +K^n then + + +{ 1, + e(i) 1 <= i <= n, + e(i1)*e(i2) 1 <= i1 < i2 <=n, + ..., + e(1)*e(2)*...*e(n) } + +is a basis for the Clifford algebra. The algebra is defined by the relations + + e(i)*e(i) = Q(e(i)) + e(i)*e(j) = -e(j)*e(i), for i ^= j + +Examples of Clifford Algebras are gaussians (complex numbers), +quaternions, exterior algebras and spin algebras. + +==================================================================== +The Complex Numbers as a Clifford Algebra +==================================================================== + +This is the field over which we will work, rational functions with +integer coefficients. + + K := Fraction Polynomial Integer + Fraction Polynomial Integer + Type: Domain + +We use this matrix for the quadratic form. + + m := matrix [ [-1] ] + [- 1] + Type: Matrix Integer + +We get complex arithmetic by using this domain. + + C := CliffordAlgebra(1, K, quadraticForm m) + CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX) + Type: Domain + +Here is i, the usual square root of -1. + + i: C := e(1) + e + 1 + Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX) + +Here are some examples of the arithmetic. + + x := a + b * i + a + b e + 1 + Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX) + + y := c + d * i + c + d e + 1 + Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX) + + x * y + - b d + a c + (a d + b c)e + 1 + Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX) + +==================================================================== +The Quaternion Numbers as a Clifford Algebra +==================================================================== + +This is the field over which we will work, rational functions with +integer coefficients. + + K := Fraction Polynomial Integer + Fraction Polynomial Integer + Type: Domain + +We use this matrix for the quadratic form. + + m := matrix [ [-1,0],[0,-1] ] + +- 1 0 + + | | + + 0 - 1+ + Type: Matrix Integer + +The resulting domain is the quaternions. + + H := CliffordAlgebra(2, K, quadraticForm m) + CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) + Type: Domain + +We use Hamilton's notation for i, j, k. + + i: H := e(1) + e + 1 + Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) + + j: H := e(2) + e + 2 + Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) + + k: H := i * j + e e + 1 2 + Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX) + + x := a + b * i + c * j + d * k + a + b e + c e + d e e + 1 2 1 2 + Typ... [truncated message content] |
From: <gi...@ax...> - 2008-11-26 12:15:16
|
books/bookvol10.3.pamphlet | 5109 ++++++++++++++++++++++++++++++++ books/ps/v103algebraicfunctionfield.ps | 248 ++ books/ps/v103algebraicnumber.ps | 248 ++ books/ps/v103cardinalnumber.ps | 248 ++ books/ps/v103cartesiantensor.ps | 248 ++ books/ps/v103cliffordalgebra.ps | 248 ++ books/ps/v103color.ps | 248 ++ books/ps/v103continuedfraction.ps | 248 ++ books/ps/v103inneralgebraicnumber.ps | 248 ++ books/ps/v103onepointcompletion.ps | 248 ++ books/ps/v103orderedcompletion.ps | 248 ++ books/ps/v103palette.ps | 248 ++ books/ps/v103quadraticform.ps | 248 ++ books/ps/v103radicalfunctionfield.ps | 248 ++ changelog | 24 + src/algebra/Makefile.pamphlet | 57 +- src/algebra/card.spad.pamphlet | 568 ---- src/algebra/clifford.spad.pamphlet | 1157 -------- src/algebra/color.spad.pamphlet | 202 -- src/algebra/complet.spad.pamphlet | 248 +-- src/algebra/constant.spad.pamphlet | 243 -- src/algebra/contfrac.spad.pamphlet | 877 +------ src/algebra/curve.spad.pamphlet | 350 --- src/axiom-website/patches.html | 2 + 24 files changed, 8401 insertions(+), 3660 deletions(-) New commits: commit d7a2ec07d56596a5c32131841a6437756baefe94 Author: Tim Daly <da...@ax...> Date: Mon Nov 10 19:12:06 2008 -0500 20081125 tpd src/axiom-website/patches.html 20081125.01.tpd.patch 20081125 tpd books/bookvol10.3 add domains 20081125 tpd src/algebra/Makefile remove files, fixup help 20081125 tpd src/algebra/curve.spad move domains to bookvol10.3 20081125 tpd books/ps/v103algebraicfunctionfield.ps added 20081125 tpd books/ps/v103radicalfunctionfield.ps added 20081125 tpd src/algebra/contfrac.spad move domains to bookvol10.3 20081125 tpd books/ps/v103continuedfraction.ps added 20081125 tpd src/algebra/constant.spad removed, domains moved to bookvol10.3 20081125 tpd books/ps/v103algebraicnumber.ps added 20081125 tpd books/ps/v103inneralgebraicnumber.ps added 20081125 tpd src/algebra/complet.spad moved domains to bookvol10.3 20081125 tpd books/ps/v103onepointcompletion.ps added 20081125 tpd books/ps/v103orderedcompletion.ps added 20081125 tpd src/algebra/color.spad removed, moved domains to bookvol10.3 20081125 tpd books/ps/v103palette.ps added 20081125 tpd books/ps/v103color.ps added 20081125 tpd src/algebra/clifford.spad removed, moved domains to bookvol10.3 20081125 tpd books/ps/v103cliffordalgebra.ps added 20081125 tpd books/ps/v103quadraticform.ps added 20081125 tpd books/ps/v103cartesiantensor.ps added 20081125 tpd src/algebra/carten.spad move domain to bookvol10.3 20081125 tpd books/ps/v103cardinalnumber.ps added 20081125 tpd src/algebra/card.spad removed, move domain to bookvol10.3 |
From: <da...@us...> - 2008-11-25 03:31:36
|
Revision: 1020 http://axiom.svn.sourceforge.net/axiom/?rev=1020&view=rev Author: daly Date: 2008-11-25 03:31:31 +0000 (Tue, 25 Nov 2008) Log Message: ----------- 20081124 tpd src/axiom-website/patches.html 20081124.05.tpd.patch 20081124 tpd books/bookvol1 remove SmallFloat reference 20081124 tpd books/bookvol0 remove SmallFloat reference Modified Paths: -------------- trunk/axiom/books/bookvol0.pamphlet trunk/axiom/books/bookvol1.pamphlet trunk/axiom/changelog trunk/axiom/src/axiom-website/patches.html Modified: trunk/axiom/books/bookvol0.pamphlet =================================================================== --- trunk/axiom/books/bookvol0.pamphlet 2008-11-24 23:09:32 UTC (rev 1019) +++ trunk/axiom/books/bookvol0.pamphlet 2008-11-25 03:31:31 UTC (rev 1020) @@ -8428,8 +8428,8 @@ $$ fun\ (\ arg_1, arg_2, \ldots, arg_N\ )\$type$$ } -For example, to call the ``minimum'' function from {\rm SmallFloat} on two -integers, you could write {\bf min}(4,89){\tt SmallFloat}. Another use of +For example, to call the ``minimum'' function from {\rm DoubleFloat} on two +integers, you could write {\bf min}(4,89){\tt DoubleFloat}. Another use of package calling is to tell AXIOM to use a library function rather than a function you defined. We discuss this in Section \ref{ugUserUse} on page~\pageref{ugUserUse}. Modified: trunk/axiom/books/bookvol1.pamphlet =================================================================== --- trunk/axiom/books/bookvol1.pamphlet 2008-11-24 23:09:32 UTC (rev 1019) +++ trunk/axiom/books/bookvol1.pamphlet 2008-11-25 03:31:31 UTC (rev 1020) @@ -11136,8 +11136,8 @@ $$ fun\ (\ arg_1, arg_2, \ldots, arg_N\ )\$type$$ } -For example, to call the ``minimum'' function from {\rm SmallFloat} on two -integers, you could write {\bf min}(4,89)\${\tt SmallFloat}. Another use of +For example, to call the ``minimum'' function from {\rm DoubleFloat} on two +integers, you could write {\bf min}(4,89)\${\tt DoubleFloat}. Another use of package calling is to tell Axiom to use a library function rather than a function you defined. Modified: trunk/axiom/changelog =================================================================== --- trunk/axiom/changelog 2008-11-24 23:09:32 UTC (rev 1019) +++ trunk/axiom/changelog 2008-11-25 03:31:31 UTC (rev 1020) @@ -1,3 +1,6 @@ +20081124 tpd src/axiom-website/patches.html 20081124.05.tpd.patch +20081124 tpd books/bookvol1 remove SmallFloat reference +20081124 tpd books/bookvol0 remove SmallFloat reference 20081124 tpd src/axiom-website/patches.html 20081124.04.tpd.patch 20081124 tpd books/bookvol10.3.pamphlet 20081124 tpd books/ps/v103stack.ps added Modified: trunk/axiom/src/axiom-website/patches.html =================================================================== --- trunk/axiom/src/axiom-website/patches.html 2008-11-24 23:09:32 UTC (rev 1019) +++ trunk/axiom/src/axiom-website/patches.html 2008-11-25 03:31:31 UTC (rev 1020) @@ -747,6 +747,8 @@ move util.ht to doc (fix 7146)<br/> <a href="patches/20081124.04.tpd.patch">20081124.04.tpd.patch</a> bookvol10.3 add domains<br/> +<a href="patches/20081124.05.tpd.patch">20081124.05.tpd.patch</a> +bookvol0, bookvol1 fix SmallFloat reference<br/> </body> </html> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gi...@ax...> - 2008-11-25 03:30:29
|
books/bookvol0.pamphlet | 4 ++-- books/bookvol1.pamphlet | 4 ++-- changelog | 3 +++ src/axiom-website/patches.html | 2 ++ 4 files changed, 9 insertions(+), 4 deletions(-) New commits: commit b803b2efd9c24a12ed8aa99195851f2cb03a610b Author: Tim Daly <da...@ax...> Date: Sun Nov 9 23:07:04 2008 -0500 20081124 tpd src/axiom-website/patches.html 20081124.05.tpd.patch 20081124 tpd books/bookvol1 remove SmallFloat reference 20081124 tpd books/bookvol0 remove SmallFloat reference |
From: <da...@us...> - 2008-11-24 23:09:37
|
Revision: 1019 http://axiom.svn.sourceforge.net/axiom/?rev=1019&view=rev Author: daly Date: 2008-11-24 23:09:32 +0000 (Mon, 24 Nov 2008) Log Message: ----------- 20081124 tpd src/axiom-website/patches.html 20081124.04.tpd.patch 20081124 tpd books/bookvol10.3.pamphlet 20081124 tpd books/ps/v103stack.ps added 20081124 tpd books/ps/v103reference.ps added 20081124 tpd books/ps/v103queue.ps added 20081124 tpd books/ps/v103indexedbits.ps added 20081124 tpd books/ps/v103heap.ps added 20081124 tpd books/ps/v103dequeue.ps added 20081124 tpd books/ps/v103boolean.ps added 20081124 tpd books/ps/v103bits.ps added 20081124 tpd books/ps/v103arraystack.ps added 20081124 tpd src/algebra/Makefile remove bags.spad, boolean.spad 20081124 tpd src/algebra/boolean.spad removed. move domains to bookvol10.3 20081124 tpd src/algebra/bags.spad removed. move domains to bookvol10.3 Modified Paths: -------------- trunk/axiom/books/bookvol10.3.pamphlet trunk/axiom/changelog trunk/axiom/src/Makefile.pamphlet trunk/axiom/src/algebra/Makefile.pamphlet trunk/axiom/src/axiom-website/patches.html Added Paths: ----------- trunk/axiom/books/ps/v103arraystack.ps trunk/axiom/books/ps/v103bits.ps trunk/axiom/books/ps/v103boolean.ps trunk/axiom/books/ps/v103dequeue.ps trunk/axiom/books/ps/v103heap.ps trunk/axiom/books/ps/v103indexedbits.ps trunk/axiom/books/ps/v103queue.ps trunk/axiom/books/ps/v103reference.ps trunk/axiom/books/ps/v103stack.ps Removed Paths: ------------- trunk/axiom/src/algebra/bags.spad.pamphlet trunk/axiom/src/algebra/boolean.spad.pamphlet Modified: trunk/axiom/books/bookvol10.3.pamphlet =================================================================== --- trunk/axiom/books/bookvol10.3.pamphlet 2008-11-24 21:45:31 UTC (rev 1018) +++ trunk/axiom/books/bookvol10.3.pamphlet 2008-11-24 23:09:32 UTC (rev 1019) @@ -370,6 +370,67 @@ error "function any must have a domain as first argument" @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain ASTACK ArrayStack} +<<dot>>= +"ASTACK" -> "STACK" +"ArrayStack(a:SetCategory)" -> "Stack(a:SetCategory)" +@ +\pagehead{ArrayStack}{ASTACK} +\pagepic{ps/v103arraystack.ps}{ASTACK}{1.00} +<<domain ASTACK ArrayStack>>= +)abbrev domain ASTACK ArrayStack +++ Author: Michael Monagan and Stephen Watt +++ Date Created:June 86 and July 87 +++ Date Last Updated:Feb 92 +++ Basic Operations: +++ Related Domains: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ Examples: +++ References: +++ Description: + +++ A stack represented as a flexible array. +--% Dequeue and Heap data types + +ArrayStack(S:SetCategory): StackAggregate(S) with + arrayStack: List S -> % + ++ arrayStack([x,y,...,z]) creates an array stack with first (top) + ++ element x, second element y,...,and last element z. + ++ + ++E c:ArrayStack INT:= arrayStack [1,2,3,4,5] + + == add + Rep := IndexedFlexibleArray(S,0) + + -- system operations + # s == _#(s)$Rep + s = t == s =$Rep t + copy s == copy(s)$Rep + coerce(d):OutputForm == + empty? d => empty()$(List S) ::OutputForm + [(d.i::OutputForm) for i in 0..#d-1] ::OutputForm + + -- stack operations + depth s == # s + empty? s == empty?(s)$Rep + extract_! s == pop_! s + insert_!(e,s) == (push_!(e,s);s) + push_!(e,s) == (concat(e,s); e) + pop_! s == + if empty? s then error "empty stack" + m := maxIndex s + r := s.m + delete_!(s,m) + r + top s == if empty? s then error "empty stack" else s.maxIndex(s) + arrayStack l == construct(l)$Rep + empty() == new(0,0 pretend S) + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP1 Asp1} \pagehead{Asp1}{ASP1} \pagepic{ps/v103asp1.ps}{ASP1}{1.00} @@ -480,6 +541,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP10 Asp10} \pagehead{Asp10}{ASP10} \pagepic{ps/v103asp10.ps}{ASP10}{1.00} @@ -620,6 +682,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP12 Asp12} \pagehead{Asp12}{ASP12} \pagepic{ps/v103asp12.ps}{ASP12}{1.00} @@ -689,6 +752,7 @@ outputAsFortran():Void == outputAsFortran(code)$Rep @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP19 Asp19} \pagehead{Asp19}{ASP19} \pagepic{ps/v103asp19.ps}{ASP19}{1.00} @@ -963,6 +1027,7 @@ (v::VEC FEXPR)::$ @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP20 Asp20} \pagehead{Asp20}{ASP20} \pagepic{ps/v103asp20.ps}{ASP20}{1.00} @@ -1129,6 +1194,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP24 Asp24} \pagehead{Asp24}{ASP24} \pagepic{ps/v103asp24.ps}{ASP24}{1.00} @@ -1246,6 +1312,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP27 Asp27} \pagehead{Asp27}{ASP27} \pagepic{ps/v103asp27.ps}{ASP27}{1.00} @@ -1345,6 +1412,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP28 Asp28} \pagehead{Asp28}{ASP28} \pagepic{ps/v103asp28.ps}{ASP28}{1.00} @@ -1555,6 +1623,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP29 Asp29} \pagehead{Asp29}{ASP29} \pagepic{ps/v103asp29.ps}{ASP29}{1.00} @@ -1628,6 +1697,7 @@ outputAsFortran(coerce(code)@Rep)$Rep @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP30 Asp30} \pagehead{Asp30}{ASP30} \pagepic{ps/v103asp30.ps}{ASP30}{1.00} @@ -1757,6 +1827,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP31 Asp31} \pagehead{Asp31}{ASP31} \pagepic{ps/v103asp31.ps}{ASP31}{1.00} @@ -1920,6 +1991,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP33 Asp33} \pagehead{Asp33}{ASP33} \pagepic{ps/v103asp33.ps}{ASP33}{1.00} @@ -1973,6 +2045,7 @@ coerce(u:$):OutputForm == coerce(u)$Rep @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP34 Asp34} \pagehead{Asp34}{ASP34} \pagepic{ps/v103asp34.ps}{ASP34}{1.00} @@ -2072,6 +2145,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP35 Asp35} \pagehead{Asp35}{ASP35} \pagepic{ps/v103asp35.ps}{ASP35}{1.00} @@ -2245,6 +2319,7 @@ (v::VEC FEXPR)::$ @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP4 Asp4} \pagehead{Asp4}{ASP4} \pagepic{ps/v103asp4.ps}{ASP4}{1.00} @@ -2356,6 +2431,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP41 Asp41} \pagehead{Asp41}{ASP41} \pagepic{ps/v103asp41.ps}{ASP41}{1.00} @@ -2576,6 +2652,7 @@ (v::VEC FEXPR)::$ @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP42 Asp42} \pagehead{Asp42}{ASP42} \pagepic{ps/v103asp42.ps}{ASP42}{1.00} @@ -2817,6 +2894,7 @@ (v::VEC FEXPR)::$ @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP49 Asp49} \pagehead{Asp49}{ASP49} \pagepic{ps/v103asp49.ps}{ASP49}{1.00} @@ -2964,6 +3042,7 @@ (foo::FEXPR)::$ @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP50 Asp50} \pagehead{Asp50}{ASP50} \pagepic{ps/v103asp50.ps}{ASP50}{1.00} @@ -3127,6 +3206,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP55 Asp55} \pagehead{Asp55}{ASP55} \pagepic{ps/v103asp55.ps}{ASP55}{1.00} @@ -3333,6 +3413,7 @@ (v::VEC FEXPR)::$ @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP6 Asp6} \pagehead{Asp6}{ASP6} \pagepic{ps/v103asp6.ps}{ASP6}{1.00} @@ -3482,6 +3563,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP7 Asp7} \pagehead{Asp7}{ASP7} \pagepic{ps/v103asp7.ps}{ASP7}{1.00} @@ -3617,6 +3699,7 @@ p => restorePrecision()$NAGLinkSupportPackage @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP73 Asp73} \pagehead{Asp73}{ASP73} \pagepic{ps/v103asp73.ps}{ASP73}{1.00} @@ -3764,6 +3847,7 @@ (v::VEC FEXPR)::$ @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP74 Asp74} \pagehead{Asp74}{ASP74} \pagepic{ps/v103asp74.ps}{ASP74}{1.00} @@ -3952,6 +4036,7 @@ (v::MAT FEXPR)::$ @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP77 Asp77} \pagehead{Asp77}{ASP77} \pagepic{ps/v103asp77.ps}{ASP77}{1.00} @@ -4105,6 +4190,7 @@ (v::MAT FEXPR)::$ @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP78 Asp78} \pagehead{Asp78}{ASP78} \pagepic{ps/v103asp78.ps}{ASP78}{1.00} @@ -4233,6 +4319,7 @@ (v::VEC FEXPR)::$ @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP8 Asp8} \pagehead{Asp8}{ASP8} \pagepic{ps/v103asp8.ps}{ASP8}{1.00} @@ -4362,6 +4449,7 @@ ([locals,code]$RSFC)::% @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP80 Asp80} \pagehead{Asp80}{ASP80} \pagepic{ps/v103asp80.ps}{ASP80}{1.00} @@ -4513,6 +4601,7 @@ (v::MAT FEXPR)::$ @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ASP9 Asp9} \pagehead{Asp9}{ASP9} \pagepic{ps/v103asp9.ps}{ASP9}{1.00} @@ -4646,7 +4735,127 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chapter B} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain BITS Bits} +<<dot>>= +"BITS" -> "BTAGG" +"Bits()" -> "BitAggregate()" +@ +\pagehead{Bits}{BITS} +\pagepic{ps/v103bits.ps}{BITS}{1.00} +<<domain BITS Bits>>= +)abbrev domain BITS Bits +++ Author: Stephen M. Watt +++ Date Created: +++ Change History: +++ Basic Operations: And, Not, Or +++ Related Constructors: +++ Keywords: bits +++ Description: \spadtype{Bits} provides logical functions for Indexed Bits. + +Bits(): Exports == Implementation where + Exports == BitAggregate() with + bits: (NonNegativeInteger, Boolean) -> % + ++ bits(n,b) creates bits with n values of b + Implementation == IndexedBits(1) add + bits(n,b) == new(n,b) + +@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain BOOLEAN Boolean} +<<dot>>= +"BOOLEAN" -> "ORDSET" +"Boolean()" -> "OrderedSet()" +"BOOLEAN" -> "FINITE" +"Boolean()" -> "Finite()" +"BOOLEAN" -> "LOGIC" +"Boolean()" -> "Logic()" +"BOOLEAN" -> "KONVERT" +"Boolean()" -> "ConvertibleTo(InputForm)" +@ +\pagehead{Boolean}{BOOLEAN} +\pagepic{ps/v103boolean.ps}{BOOLEAN}{1.00} +<<domain BOOLEAN Boolean>>= +)abbrev domain BOOLEAN Boolean +++ Author: Stephen M. Watt +++ Date Created: +++ Change History: +++ Basic Operations: true, false, not, and, or, xor, nand, nor, implies, ^ +++ Related Constructors: +++ Keywords: boolean +++ Description: \spadtype{Boolean} is the elementary logic with 2 values: +++ true and false + +Boolean(): Join(OrderedSet, Finite, Logic, ConvertibleTo InputForm) with + true : constant -> % + ++ true is a logical constant. + false : constant -> % + ++ false is a logical constant. + _^ : % -> % + ++ ^ n returns the negation of n. + _not : % -> % + ++ not n returns the negation of n. + _and : (%, %) -> % + ++ a and b returns the logical {\em and} of Boolean \spad{a} and b. + _or : (%, %) -> % + ++ a or b returns the logical inclusive {\em or} + ++ of Boolean \spad{a} and b. + xor : (%, %) -> % + ++ xor(a,b) returns the logical exclusive {\em or} + ++ of Boolean \spad{a} and b. + nand : (%, %) -> % + ++ nand(a,b) returns the logical negation of \spad{a} and b. + nor : (%, %) -> % + ++ nor(a,b) returns the logical negation of \spad{a} or b. + implies: (%, %) -> % + ++ implies(a,b) returns the logical implication + ++ of Boolean \spad{a} and b. + test: % -> Boolean + ++ test(b) returns b and is provided for compatibility with the + ++ new compiler. + == add + nt: % -> % + + test a == a pretend Boolean + + nt b == (b pretend Boolean => false; true) + true == EQ(2,2)$Lisp --well, 1 is rather special + false == NIL$Lisp + sample() == true + not b == (test b => false; true) + _^ b == (test b => false; true) + _~ b == (test b => false; true) + _and(a, b) == (test a => b; false) + _/_\(a, b) == (test a => b; false) + _or(a, b) == (test a => true; b) + _\_/(a, b) == (test a => true; b) + xor(a, b) == (test a => nt b; b) + nor(a, b) == (test a => false; nt b) + nand(a, b) == (test a => nt b; true) + a = b == BooleanEquality(a, b)$Lisp + implies(a, b) == (test a => b; true) + a < b == (test b => not(test a);false) + + size() == 2 + index i == + even?(i::Integer) => false + true + lookup a == + a pretend Boolean => 1 + 2 + random() == + even?(random()$Integer) => false + true + + convert(x:%):InputForm == + x pretend Boolean => convert("true"::Symbol) + convert("false"::Symbol) + + coerce(x:%):OutputForm == + x pretend Boolean => message "true" + message "false" + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chapter C} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -6428,6 +6637,70 @@ @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain DEQUEUE Dequeue} +<<dot>>= +"DEQUEUE" -> "DQAGG" +"Dequeue(a:SetCategory)" -> "DequeueAggregate(a:SetCategory)" +@ +\pagehead{Dequeue}{DEQUEUE} +\pagepic{ps/v103dequeue.ps}{DEQUEUE}{1.00} +<<domain DEQUEUE Dequeue>>= +)abbrev domain DEQUEUE Dequeue +++ Author: Michael Monagan and Stephen Watt +++ Date Created:June 86 and July 87 +++ Date Last Updated:Feb 92 +++ Basic Operations: +++ Related Domains: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ Examples: +++ References: +++ Description: + +++ Linked list implementation of a Dequeue +--% Dequeue and Heap data types + +Dequeue(S:SetCategory): DequeueAggregate S with + dequeue: List S -> % + ++ dequeue([x,y,...,z]) creates a dequeue with first (top or front) + ++ element x, second element y,...,and last (bottom or back) element z. + ++ + ++E g:Dequeue INT:= dequeue [1,2,3,4,5] + + == Queue S add + Rep := Reference List S + bottom_! d == + if empty? d then error "empty dequeue" else last deref d + dequeue d == ref copy d + extractBottom_! d == + if empty? d then error "empty dequeue" + p := deref d + n := maxIndex p + n = 1 => + r := first p + setref(d,[]) + r + q := rest(p,(n-2)::NonNegativeInteger) + r := first rest q + q.rest := [] + r + extractTop_! d == + e := top d + setref(d,rest deref d) + e + height d == # deref d + insertTop_!(e,d) == (setref(d,cons(e,deref d)); e) + lastTail==> LAST$Lisp + insertBottom_!(e,d) == + if empty? d then setref(d, list e) + else lastTail.(deref d).rest := list e + e + top d == if empty? d then error "empty dequeue" else first deref d + reverse_! d == (setref(d,reverse deref d); d) + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chapter E} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -6735,6 +7008,228 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chapter H} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain HEAP Heap} +<<Heap.input>>= +-- bags.spad.pamphlet Heap.input +)spool Heap.output +)set message test on +)set message auto off +)clear all +--S 1 of 8 +h := heap [-4,9,11,2,7,-7] +--R +--R +--R (1) [11,7,9,- 4,2,- 7] +--R Type: Heap Integer +--E 1 + +--S 2 of 8 +insert!(3,h) +--R +--R +--R (2) [11,7,9,- 4,2,- 7,3] +--R Type: Heap Integer +--E 2 + +--S 3 of 8 +extract! h +--R +--R +--R (3) 11 +--R Type: PositiveInteger +--E 3 + +--S 4 of 8 +h +--R +--R +--R (4) [9,7,3,- 4,2,- 7] +--R Type: Heap Integer +--E 4 + +--S 5 of 8 +[extract!(h) while not empty?(h)] +--R +--R +--R (5) [9,7,3,2,- 4,- 7] +--R Type: List Integer +--E 5 + +--S 6 of 8 +heapsort(x) == (empty? x => []; cons(extract!(x),heapsort x)) +--R +--R Type: Void +--E 6 + +--S 7 of 8 +h1 := heap [17,-4,9,-11,2,7,-7] +--R +--R +--R (7) [17,2,9,- 11,- 4,7,- 7] +--R Type: Heap Integer +--E 7 + +--S 8 of 8 +heapsort h1 +--R +--R Compiling function heapsort with type Heap Integer -> List Integer +--R +--R (8) [17,9,7,2,- 4,- 7,- 11] +--R Type: List Integer +--E 8 +)spool +)lisp (bye) +@ +<<Heap.help>>= +==================================================================== +Heap examples +==================================================================== + +The domain Heap(S) implements a priority queue of objects of type S +such that the operation extract! removes and returns the maximum +element. The implementation represents heaps as flexible arrays The +representation and algorithms give complexity of O(log(n)) for +insertion and extractions, and O(n) for construction. + +Create a heap of six elements. + + h := heap [-4,9,11,2,7,-7] + [11,7,9,- 4,2,- 7] + Type: Heap Integer + +Use insert! to add an element. + + insert!(3,h) + [11,7,9,- 4,2,- 7,3] + Type: Heap Integer + +The operation extract! removes and returns the maximum element. + + extract! h + 11 + Type: PositiveInteger + +The internal structure of h has been appropriately adjusted. + + h + [9,7,3,- 4,2,- 7] + Type: Heap Integer + +Now extract! elements repeatedly until none are left, collecting +the elements in a list. + + [extract!(h) while not empty?(h)] + [9,7,3,2,- 4,- 7] + Type: List Integer + +Another way to produce the same result is by defining a heapsort function. + + heapsort(x) == (empty? x => []; cons(extract!(x),heapsort x)) + Type: Void + +Create another sample heap. + + h1 := heap [17,-4,9,-11,2,7,-7] + [17,2,9,- 11,- 4,7,- 7] + Type: Heap Integer + +Apply heapsort to present elements in order. + + heapsort h1 + [17,9,7,2,- 4,- 7,- 11] + Type: List Integer + +See Also: +o )help FlexibleArray +o )show Heap +o $AXIOM/doc/src/algebra/bags.spad.dvi + +@ +<<dot>>= +"HEAP" -> "PRQAGG" +"Heap(a:OrderedSet)" -> "PriorityQueueAggregate(a:OrderedSet)" +@ +\pagehead{Heap}{HEAP} +\pagepic{ps/v103heap.ps}{HEAP}{1.00} +<<domain HEAP Heap>>= +)abbrev domain HEAP Heap +++ Author: Michael Monagan and Stephen Watt +++ Date Created:June 86 and July 87 +++ Date Last Updated:Feb 92 +++ Basic Operations: +++ Related Domains: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ Examples: +++ References: +++ Description: + +++ Heap implemented in a flexible array to allow for insertions +++ Complexity: O(log n) insertion, extraction and O(n) construction +--% Dequeue and Heap data types + +Heap(S:OrderedSet): Exports == Implementation where + Exports == PriorityQueueAggregate S with + heap : List S -> % + ++ heap(ls) creates a heap of elements consisting of the + ++ elements of ls. + ++ + ++E i:Heap INT := heap [1,6,3,7,5,2,4] + + Implementation == IndexedFlexibleArray(S,0) add + Rep := IndexedFlexibleArray( S,0) + empty() == empty()$Rep + heap l == + n := #l + h := empty() + n = 0 => h + for x in l repeat insert_!(x,h) + h + siftUp: (%,Integer,Integer) -> Void + siftUp(r,i,n) == + -- assertion 0 <= i < n + t := r.i + while (j := 2*i+1) < n repeat + if (k := j+1) < n and r.j < r.k then j := k + if t < r.j then (r.i := r.j; r.j := t; i := j) else leave + + extract_! r == + -- extract the maximum from the heap O(log n) + n := #r :: Integer + n = 0 => error "empty heap" + t := r(0) + r(0) := r(n-1) + delete_!(r,n-1) + n = 1 => t + siftUp(r,0,n-1) + t + + insert_!(x,r) == + -- Williams' insertion algorithm O(log n) + j := (#r) :: Integer + r:=concat_!(r,concat(x,empty()$Rep)) + while j > 0 repeat + i := (j-1) quo 2 + if r(i) >= x then leave + r(j) := r(i) + j := i + r(j):=x + r + + max r == if #r = 0 then error "empty heap" else r.0 + inspect r == max r + + makeHeap(r:%):% == + -- Floyd's heap construction algorithm O(n) + n := #r + for k in n quo 2 -1 .. 0 by -1 repeat siftUp(r,k,n) + r + bag l == makeHeap construct(l)$Rep + merge(a,b) == makeHeap concat(a,b) + merge_!(a,b) == makeHeap concat_!(a,b) + +@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chapter I} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -6804,6 +7299,75 @@ @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain IBITS IndexedBits} +<<dot>>= +"IBITS" -> "BTAGG" +"IndexedBits(a:Integer)" -> "BitAggregate()" +@ +\pagehead{IndexedBits}{IBITS} +\pagepic{ps/v103indexedbits.ps}{IBITS}{1.00} +<<domain IBITS IndexedBits>>= +)abbrev domain IBITS IndexedBits +++ Author: Stephen Watt and Michael Monagan +++ Date Created: +++ July 86 +++ Change History: +++ Oct 87 +++ Basic Operations: range +++ Related Constructors: +++ Keywords: indexed bits +++ Description: \spadtype{IndexedBits} is a domain to compactly represent +++ large quantities of Boolean data. + +IndexedBits(mn:Integer): BitAggregate() with + -- temporaries until parser gets better + Not: % -> % + ++ Not(n) returns the bit-by-bit logical {\em Not} of n. + Or : (%, %) -> % + ++ Or(n,m) returns the bit-by-bit logical {\em Or} of + ++ n and m. + And: (%, %) -> % + ++ And(n,m) returns the bit-by-bit logical {\em And} of + ++ n and m. + == add + + range: (%, Integer) -> Integer + --++ range(j,i) returnes the range i of the boolean j. + + minIndex u == mn + + range(v, i) == + i >= 0 and i < #v => i + error "Index out of range" + + coerce(v):OutputForm == + t:Character := char "1" + f:Character := char "0" + s := new(#v, space()$Character)$String + for i in minIndex(s)..maxIndex(s) for j in mn.. repeat + s.i := if v.j then t else f + s::OutputForm + + new(n, b) == BVEC_-MAKE_-FULL(n,TRUTH_-TO_-BIT(b)$Lisp)$Lisp + empty() == BVEC_-MAKE_-FULL(0,0)$Lisp + copy v == BVEC_-COPY(v)$Lisp + #v == BVEC_-SIZE(v)$Lisp + v = u == BVEC_-EQUAL(v, u)$Lisp + v < u == BVEC_-GREATER(u, v)$Lisp + _and(u, v) == (#v=#u => BVEC_-AND(v,u)$Lisp; map("and",v,u)) + _or(u, v) == (#v=#u => BVEC_-OR(v, u)$Lisp; map("or", v,u)) + xor(v,u) == (#v=#u => BVEC_-XOR(v,u)$Lisp; map("xor",v,u)) + setelt(v:%, i:Integer, f:Boolean) == + BVEC_-SETELT(v, range(v, i-mn), TRUTH_-TO_-BIT(f)$Lisp)$Lisp + elt(v:%, i:Integer) == + BIT_-TO_-TRUTH(BVEC_-ELT(v, range(v, i-mn))$Lisp)$Lisp + + Not v == BVEC_-NOT(v)$Lisp + And(u, v) == (#v=#u => BVEC_-AND(v,u)$Lisp; map("and",v,u)) + Or(u, v) == (#v=#u => BVEC_-OR(v, u)$Lisp; map("or", v,u)) + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain IFARRAY IndexedFlexibleArray} <<dot>>= "IFARRAY" -> "A1AGG" @@ -7051,6 +7615,7 @@ a @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain IARRAY1 IndexedOneDimensionalArray} <<dot>>= "IARRAY1" -> "A1AGG" @@ -7146,6 +7711,7 @@ qsetelt_!(x, i, s) @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain IARRAY2 IndexedTwoDimensionalArray} An IndexedTwoDimensionalArray is a 2-dimensional array where the minimal row and column indices are parameters of the type. @@ -7180,6 +7746,7 @@ InnerIndexedTwoDimensionalArray(R,mnRow,mnCol,Row,Col) @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain IIARRAY2 InnerIndexedTwoDimensionalArray} This is an internal type which provides an implementation of 2-dimensional arrays as PrimitiveArray's of PrimitiveArray's. @@ -9147,8 +9714,111 @@ @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain QUEUE Queue} +<<dot>>= +"QUEUE" -> "QUAGG" +"Queue(a:SetCategory)" -> "QueueAggregate(a:SetCategory)" +@ +\pagehead{Queue}{QUEUE} +\pagepic{ps/v103queue.ps}{QUEUE}{1.00} +<<domain QUEUE Queue>>= +)abbrev domain QUEUE Queue +++ Author: Michael Monagan and Stephen Watt +++ Date Created:June 86 and July 87 +++ Date Last Updated:Feb 92 +++ Basic Operations: +++ Related Domains: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ Examples: +++ References: +++ Description: + +++ Linked List implementation of a Queue +--% Dequeue and Heap data types + +Queue(S:SetCategory): QueueAggregate S with + queue: List S -> % + ++ queue([x,y,...,z]) creates a queue with first (top) + ++ element x, second element y,...,and last (bottom) element z. + ++ + ++E e:Queue INT:= queue [1,2,3,4,5] + + == Stack S add + Rep := Reference List S + lastTail==> LAST$Lisp + enqueue_!(e,q) == + if null deref q then setref(q, list e) + else lastTail.(deref q).rest := list e + e + insert_!(e,q) == (enqueue_!(e,q);q) + dequeue_! q == + empty? q => error "empty queue" + e := first deref q + setref(q,rest deref q) + e + extract_! q == dequeue_! q + rotate_! q == if empty? q then q else (enqueue_!(dequeue_! q,q); q) + length q == # deref q + front q == if empty? q then error "empty queue" else first deref q + inspect q == front q + back q == if empty? q then error "empty queue" else last deref q + queue q == ref copy q + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chapter R} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain REF Reference} +<<dot>>= +"REF" -> "TYPE" +"Reference(a:Type)" -> "Type()" +@ +\pagehead{Reference}{REF} +\pagepic{ps/v103reference.ps}{REF}{1.00} +<<domain REF Reference>>= +)abbrev domain REF Reference +++ Author: Stephen M. Watt +++ Date Created: +++ Change History: +++ Basic Operations: deref, elt, ref, setelt, setref, = +++ Related Constructors: +++ Keywords: reference +++ Description: \spadtype{Reference} is for making a changeable instance +++ of something. + +Reference(S:Type): Type with + ref : S -> % + ++ ref(n) creates a pointer (reference) to the object n. + elt : % -> S + ++ elt(n) returns the object n. + setelt: (%, S) -> S + ++ setelt(n,m) changes the value of the object n to m. + -- alternates for when bugs don't allow the above + deref : % -> S + ++ deref(n) is equivalent to \spad{elt(n)}. + setref: (%, S) -> S + ++ setref(n,m) same as \spad{setelt(n,m)}. + _= : (%, %) -> Boolean + ++ a=b tests if \spad{a} and b are equal. + if S has SetCategory then SetCategory + + == add + Rep := Record(value: S) + + p = q == EQ(p, q)$Lisp + ref v == [v] + elt p == p.value + setelt(p, v) == p.value := v + deref p == p.value + setref(p, v) == p.value := v + + if S has SetCategory then + coerce p == + prefix(message("ref"@String), [p.value::OutputForm]) + +@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chapter S} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -9346,6 +10016,62 @@ @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain STACK Stack} +<<dot>>= +"STACK" -> "SKAGG" +"Stack(a:SetCategory)" -> "StackAggregate(a:SetCategory)" +@ +\pagehead{Stack}{STACK} +\pagepic{ps/v103stack.ps}{STACK}{1.00} +<<domain STACK Stack>>= +)abbrev domain STACK Stack +++ Author: Michael Monagan and Stephen Watt +++ Date Created:June 86 and July 87 +++ Date Last Updated:Feb 92 +++ Basic Operations: +++ Related Domains: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ Examples: +++ References: +++ Description: + +++ Linked List implementation of a Stack +--% Dequeue and Heap data types + +Stack(S:SetCategory): StackAggregate S with + stack: List S -> % + ++ stack([x,y,...,z]) creates a stack with first (top) + ++ element x, second element y,...,and last element z. + ++ + ++E a:Stack INT:= stack [1,2,3,4,5] + + == add + Rep := Reference List S + s = t == deref s = deref t + coerce(d:%): OutputForm == bracket [e::OutputForm for e in deref d] + copy s == ref copy deref s + depth s == # deref s + # s == depth s + pop_! (s:%):S == + empty? s => error "empty stack" + e := first deref s + setref(s,rest deref s) + e + extract_! (s:%):S == pop_! s + top (s:%):S == + empty? s => error "empty stack" + first deref s + inspect s == top s + push_!(e,s) == (setref(s,cons(e,deref s));e) + insert_!(e:S,s:%):% == (push_!(e,s);s) + empty() == ref nil()$List(S) + empty? s == null deref s + stack s == ref copy s + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chapter T} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain TUPLE Tuple} @@ -9400,6 +10126,7 @@ for i in minIndex x.elts .. maxIndex x.elts]$List(OutputForm) @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain ARRAY2 TwoDimensionalArray} <<TwoDimensionalArray.input>>= -- array2.spad.pamphlet TwoDimensionalArray.input @@ -9894,6 +10621,264 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{The bootstrap code} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{BOOLEAN.lsp} +{\bf BOOLEAN} depends on +{\bf ORDSET} which depends on +{\bf SETCAT} which depends on +{\bf BASTYPE} which depends on +{\bf BOOLEAN}. We need to break this cycle to build the algebra. +So we keep a cached copy of the translated BOOLEAN domain which +we can write into the {\bf MID} directory. We compile the lisp +code and copy the {\bf BOOLEAN.o} file to the {\bf OUT} directory. +This is eventually forcibly replaced by a recompiled version. +<<BOOLEAN.lsp BOOTSTRAP>>= + +(|/VERSIONCHECK| 2) + +(PUT + (QUOTE |BOOLEAN;test;2$;1|) + (QUOTE |SPADreplace|) + (QUOTE (XLAM (|a|) |a|))) + +(DEFUN |BOOLEAN;test;2$;1| (|a| |$|) |a|) + +(DEFUN |BOOLEAN;nt| (|b| |$|) + (COND (|b| (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + +(PUT + (QUOTE |BOOLEAN;true;$;3|) + (QUOTE |SPADreplace|) + (QUOTE (XLAM NIL (QUOTE T)))) + +(DEFUN |BOOLEAN;true;$;3| (|$|) + (QUOTE T)) + +(PUT + (QUOTE |BOOLEAN;false;$;4|) + (QUOTE |SPADreplace|) + (QUOTE (XLAM NIL NIL))) + +(DEFUN |BOOLEAN;false;$;4| (|$|) NIL) + +(DEFUN |BOOLEAN;not;2$;5| (|b| |$|) + (COND + (|b| (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + +(DEFUN |BOOLEAN;^;2$;6| (|b| |$|) + (COND + (|b| (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + +(DEFUN |BOOLEAN;~;2$;7| (|b| |$|) + (COND + (|b| (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + +(DEFUN |BOOLEAN;and;3$;8| (|a| |b| |$|) + (COND + (|a| |b|) + ((QUOTE T) (QUOTE NIL)))) + +(DEFUN |BOOLEAN;/\\;3$;9| (|a| |b| |$|) + (COND + (|a| |b|) + ((QUOTE T) (QUOTE NIL)))) + +(DEFUN |BOOLEAN;or;3$;10| (|a| |b| |$|) + (COND + (|a| (QUOTE T)) + ((QUOTE T) |b|))) + +(DEFUN |BOOLEAN;\\/;3$;11| (|a| |b| |$|) + (COND + (|a| (QUOTE T)) + ((QUOTE T) |b|))) + +(DEFUN |BOOLEAN;xor;3$;12| (|a| |b| |$|) + (COND + (|a| (|BOOLEAN;nt| |b| |$|)) + ((QUOTE T) |b|))) + +(DEFUN |BOOLEAN;nor;3$;13| (|a| |b| |$|) + (COND + (|a| (QUOTE NIL)) + ((QUOTE T) (|BOOLEAN;nt| |b| |$|)))) + +(DEFUN |BOOLEAN;nand;3$;14| (|a| |b| |$|) + (COND + (|a| (|BOOLEAN;nt| |b| |$|)) + ((QUOTE T) (QUOTE T)))) + +(PUT + (QUOTE |BOOLEAN;=;3$;15|) + (QUOTE |SPADreplace|) + (QUOTE |BooleanEquality|)) + +(DEFUN |BOOLEAN;=;3$;15| (|a| |b| |$|) + (|BooleanEquality| |a| |b|)) + +(DEFUN |BOOLEAN;implies;3$;16| (|a| |b| |$|) + (COND + (|a| |b|) + ((QUOTE T) (QUOTE T)))) + +(DEFUN |BOOLEAN;<;3$;17| (|a| |b| |$|) + (COND + (|b| + (COND + (|a| (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + ((QUOTE T) (QUOTE NIL)))) + +(PUT + (QUOTE |BOOLEAN;size;Nni;18|) + (QUOTE |SPADreplace|) + (QUOTE (XLAM NIL 2))) + +(DEFUN |BOOLEAN;size;Nni;18| (|$|) 2) + +(DEFUN |BOOLEAN;index;Pi$;19| (|i| |$|) + (COND + ((SPADCALL |i| (QREFELT |$| 26)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + +(DEFUN |BOOLEAN;lookup;$Pi;20| (|a| |$|) + (COND + (|a| 1) + ((QUOTE T) 2))) + +(DEFUN |BOOLEAN;random;$;21| (|$|) + (COND + ((SPADCALL (|random|) (QREFELT |$| 26)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + +(DEFUN |BOOLEAN;convert;$If;22| (|x| |$|) + (COND + (|x| (SPADCALL (SPADCALL "true" (QREFELT |$| 33)) (QREFELT |$| 35))) + ((QUOTE T) + (SPADCALL (SPADCALL "false" (QREFELT |$| 33)) (QREFELT |$| 35))))) + +(DEFUN |BOOLEAN;coerce;$Of;23| (|x| |$|) + (COND + (|x| (SPADCALL "true" (QREFELT |$| 38))) + ((QUOTE T) (SPADCALL "false" (QREFELT |$| 38))))) + +(DEFUN |Boolean| NIL + (PROG NIL + (RETURN + (PROG (#1=#:G82461) + (RETURN + (COND + ((LETT #1# + (HGET |$ConstructorCache| (QUOTE |Boolean|)) + |Boolean|) + (|CDRwithIncrement| (CDAR #1#))) + ((QUOTE T) + (|UNWIND-PROTECT| + (PROG1 + (CDDAR + (HPUT + |$ConstructorCache| + (QUOTE |Boolean|) + (LIST (CONS NIL (CONS 1 (|Boolean;|)))))) + (LETT #1# T |Boolean|)) + (COND + ((NOT #1#) + (HREM |$ConstructorCache| (QUOTE |Boolean|)))))))))))) + +(DEFUN |Boolean;| NIL + (PROG (|dv$| |$| |pv$|) + (RETURN + (PROGN + (LETT |dv$| (QUOTE (|Boolean|)) . #1=(|Boolean|)) + (LETT |$| (GETREFV 41) . #1#) + (QSETREFV |$| 0 |dv$|) + (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) + (|haddProp| |$ConstructorCache| (QUOTE |Boolean|) NIL (CONS 1 |$|)) + (|stuffDomainSlots| |$|) |$|)))) + +(MAKEPROP + (QUOTE |Boolean|) + (QUOTE |infovec|) + (LIST + (QUOTE + #(NIL NIL NIL NIL NIL NIL + (|Boolean|) + |BOOLEAN;test;2$;1| + (CONS IDENTITY + (FUNCALL (|dispatchFunction| |BOOLEAN;true;$;3|) |$|)) + (CONS IDENTITY + (FUNCALL (|dispatchFunction| |BOOLEAN;false;$;4|) |$|)) + |BOOLEAN;not;2$;5| + |BOOLEAN;^;2$;6| + |BOOLEAN;~;2$;7| + |BOOLEAN;and;3$;8| + |BOOLEAN;/\\;3$;9| + |BOOLEAN;or;3$;10| + |BOOLEAN;\\/;3$;11| + |BOOLEAN;xor;3$;12| + |BOOLEAN;nor;3$;13| + |BOOLEAN;nand;3$;14| + |BOOLEAN;=;3$;15| + |BOOLEAN;implies;3$;16| + |BOOLEAN;<;3$;17| + (|NonNegativeInteger|) + |BOOLEAN;size;Nni;18| + (|Integer|) + (0 . |even?|) + (|PositiveInteger|) + |BOOLEAN;index;Pi$;19| + |BOOLEAN;lookup;$Pi;20| + |BOOLEAN;random;$;21| + (|String|) + (|Symbol|) + (5 . |coerce|) + (|InputForm|) + (10 . |convert|) + |BOOLEAN;convert;$If;22| + (|OutputForm|) + (15 . |message|) + |BOOLEAN;coerce;$Of;23| + (|SingleInteger|))) + (QUOTE + #(|~=| 20 |~| 26 |xor| 31 |true| 37 |test| 41 |size| 46 |random| 50 + |or| 54 |not| 60 |nor| 65 |nand| 71 |min| 77 |max| 83 |lookup| 89 + |latex| 94 |index| 99 |implies| 104 |hash| 110 |false| 115 + |convert| 119 |coerce| 124 |and| 129 |^| 135 |\\/| 140 |>=| 146 + |>| 152 |=| 158 |<=| 164 |<| 170 |/\\| 176)) + (QUOTE NIL) + (CONS + (|makeByteWordVec2| 1 (QUOTE (0 0 0 0 0 0 0))) + (CONS + (QUOTE + #(|OrderedSet&| NIL |Logic&| |SetCategory&| NIL |BasicType&| NIL)) + (CONS + (QUOTE + #((|OrderedSet|) + (|Finite|) + (|Logic|) + (|SetCategory|) + (|ConvertibleTo| 34) + (|BasicType|) + (|CoercibleTo| 37))) + (|makeByteWordVec2| + 40 + (QUOTE + (1 25 6 0 26 1 32 0 31 33 1 34 0 32 35 1 37 0 31 38 2 0 6 0 0 + 1 1 0 0 0 12 2 0 0 0 0 17 0 0 0 8 1 0 6 0 7 0 0 23 24 0 0 0 + 30 2 0 0 0 0 15 1 0 0 0 10 2 0 0 0 0 18 2 0 0 0 0 19 2 0 0 0 + 0 1 2 0 0 0 0 1 1 0 27 0 29 1 0 31 0 1 1 0 0 27 28 2 0 0 0 0 + 21 1 0 40 0 1 0 0 0 9 1 0 34 0 36 1 0 37 0 39 2 0 0 0 0 13 1 + 0 0 0 11 2 0 0 0 0 16 2 0 6 0 0 1 2 0 6 0 0 1 2 0 6 0 0 20 2 + 0 6 0 0 1 2 0 6 0 0 22 2 0 0 0 0 14)))))) + (QUOTE |lookupComplete|))) + +(MAKEPROP (QUOTE |Boolean|) (QUOTE NILADIC) T) + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{PRIMARR.lsp BOOTSTRAP} {\bf PRIMARR} depends on itself. We need to break this cycle to build the algebra. So we keep a @@ -10073,10 +11058,122 @@ (QUOTE |lookupComplete|))) @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{REF.lsp BOOTSTRAP} +{\bf REF} depends on a chain of +files. We need to break this cycle to build the algebra. So we keep a +cached copy of the translated {\bf REF} category which we can write +into the {\bf MID} directory. We compile the lisp code and copy the +{\bf REF.o} file to the {\bf OUT} directory. This is eventually +forcibly replaced by a recompiled version. + +Note that this code is not included in the generated catdef.spad file. + +<<REF.lsp BOOTSTRAP>>= + +(|/VERSIONCHECK| 2) + +(PUT (QUOTE |REF;=;2$B;1|) (QUOTE |SPADreplace|) (QUOTE EQ)) + +(DEFUN |REF;=;2$B;1| (|p| |q| |$|) (EQ |p| |q|)) + +(PUT (QUOTE |REF;ref;S$;2|) (QUOTE |SPADreplace|) (QUOTE LIST)) + +(DEFUN |REF;ref;S$;2| (|v| |$|) (LIST |v|)) + +(PUT (QUOTE |REF;elt;$S;3|) (QUOTE |SPADreplace|) (QUOTE QCAR)) + +(DEFUN |REF;elt;$S;3| (|p| |$|) (QCAR |p|)) + +(DEFUN |REF;setelt;$2S;4| (|p| |v| |$|) (PROGN (RPLACA |p| |v|) (QCAR |p|))) + +(PUT (QUOTE |REF;deref;$S;5|) (QUOTE |SPADreplace|) (QUOTE QCAR)) + +(DEFUN |REF;deref;$S;5| (|p| |$|) (QCAR |p|)) + +(DEFUN |REF;setref;$2S;6| (|p| |v| |$|) (PROGN (RPLACA |p| |v|) (QCAR |p|))) + +(DEFUN |REF;coerce;$Of;7| (|p| |$|) + (SPADCALL + (SPADCALL "ref" (QREFELT |$| 17)) + (LIST (SPADCALL (QCAR |p|) (QREFELT |$| 18))) + (QREFELT |$| 20))) + +(DEFUN |Reference| (#1=#:G82336) + (PROG NIL + (RETURN + (PROG (#2=#:G82337) + (RETURN + (COND + ((LETT #2# + (|lassocShiftWithFunction| + (LIST (|devaluate| #1#)) + (HGET |$ConstructorCache| (QUOTE |Reference|)) + (QUOTE |domainEqualList|)) |Reference|) + (|CDRwithIncrement| #2#)) + ((QUOTE T) + (|UNWIND-PROTECT| + (PROG1 (|Reference;| #1#) (LETT #2# T |Reference|)) + (COND + ((NOT #2#) (HREM |$ConstructorCache| (QUOTE |Reference|)))))))))))) + +(DEFUN |Reference;| (|#1|) + (PROG (|DV$1| |dv$| |$| |pv$|) + (RETURN + (PROGN + (LETT |DV$1| (|devaluate| |#1|) . #1=(|Reference|)) + (LETT |dv$| (LIST (QUOTE |Reference|) |DV$1|) . #1#) + (LETT |$| (GETREFV 23) . #1#) + (QSETREFV |$| 0 |dv$|) + (QSETREFV |$| 3 + (LETT |pv$| + (|buildPredVector| 0 0 + (LIST (|HasCategory| |#1| (QUOTE (|SetCategory|))))) + . #1#)) + (|haddProp| + |$ConstructorCache| + (QUOTE |Reference|) + (LIST |DV$1|) + (CONS 1 |$|)) + (|stuffDomainSlots| |$|) + (QSETREFV |$| 6 |#1|) + (QSETREFV |$| 7 (|Record| (|:| |value| |#1|))) + (COND + ((|testBitVector| |pv$| 1) + (QSETREFV |$| 21 (CONS (|dispatchFunction| |REF;coerce;$Of;7|) |$|)))) + |$|)))) + +(MAKEPROP + (QUOTE |Reference|) + (QUOTE |infovec|) + (LIST + (QUOTE + #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (QUOTE |Rep|) (|Boolean|) + |REF;=;2$B;1| |REF;ref;S$;2| |REF;elt;$S;3| |REF;setelt;$2S;4| + |REF;deref;$S;5| |REF;setref;$2S;6| (|String|) (|OutputForm|) + (0 . |message|) (5 . |coerce|) (|List| |$|) (10 . |prefix|) + (16 . |coerce|) (|SingleInteger|))) + (QUOTE #(|~=| 21 |setref| 27 |setelt| 33 |ref| 39 |latex| 44 |hash| 49 + |elt| 54 |deref| 59 |coerce| 64 |=| 69)) + (QUOTE NIL) + (CONS + (|makeByteWordVec2| 1 (QUOTE (1 0 1 1))) + (CONS + (QUOTE #(|SetCategory&| NIL |BasicType&| NIL)) + (CONS + (QUOTE #((|SetCategory|) (|Type|) (|BasicType|) (|CoercibleTo| 16))) + (|makeByteWordVec2| 22 + (QUOTE (1 16 0 15 17 1 6 16 0 18 2 16 0 0 19 20 1 0 16 0 21 2 1 8 0 + 0 1 2 0 6 0 6 14 2 0 6 0 6 12 1 0 0 6 10 1 1 15 0 1 1 1 22 + 0 1 1 0 6 0 11 1 0 6 0 13 1 1 16 0 21 2 0 8 0 0 9)))))) + (QUOTE |lookupComplete|))) + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Chunk collections} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<algebra>>= <<domain ANY Any>> +<<domain ASTACK ArrayStack>> <<domain ASP1 Asp1>> <<domain ASP10 Asp10>> <<domain ASP12 Asp12>> @@ -10107,13 +11204,20 @@ <<domain ASP80 Asp80>> <<domain ASP9 Asp9>> +<<domain BITS Bits>> +<<domain BOOLEAN Boolean>> + <<domain DHMATRIX DenavitHartenbergMatrix>> <<domain DBASE Database>> <<domain DLIST DataList>> +<<domain DEQUEUE Dequeue>> <<domain FARRAY FlexibleArray>> +<<domain HEAP Heap>> + <<domain ICARD IndexCard>> +<<domain IBITS IndexedBits>> <<domain IFARRAY IndexedFlexibleArray>> <<domain IARRAY1 IndexedOneDimensionalArray>> <<domain IARRAY2 IndexedTwoDimensionalArray>> @@ -10132,8 +11236,12 @@ <<domain PRIMARR PrimitiveArray>> <<domain QEQUAT QueryEquation>> +<<domain QUEUE Queue>> +<<domain REF Reference>> + <<domain SAE SimpleAlgebraicExtension>> +<<domain STACK Stack>> <<domain TUPLE Tuple>> <<domain ARRAY2 TwoDimensionalArray>> Added: trunk/axiom/books/ps/v103arraystack.ps =================================================================== --- trunk/axiom/books/ps/v103arraystack.ps (rev 0) +++ trunk/axiom/books/ps/v103arraystack.ps 2008-11-24 23:09:32 UTC (rev 1019) @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 124 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 124 80 +%%PageOrientation: Portrait +gsave +36 36 88 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +86 42 lineto +86 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +86 42 lineto +86 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% ArrayStack +[ /Rect [ 0 0 80 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=ASTACK) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 80 36 moveto +0 36 lineto +0 0 lineto +80 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 80 36 moveto +0 36 lineto +0 0 lineto +80 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 13 moveto +(ArrayStack) +[10.08 5.28 4.8 5.76 6.96 7.44 4.08 6.24 6 6.96] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF Added: trunk/axiom/books/ps/v103bits.ps =================================================================== --- trunk/axiom/books/ps/v103bits.ps (rev 0) +++ trunk/axiom/books/ps/v103bits.ps 2008-11-24 23:09:32 UTC (rev 1019) @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 98 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 98 80 +%%PageOrientation: Portrait +gsave +36 36 62 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +60 42 lineto +60 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +60 42 lineto +60 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% Bits +[ /Rect [ 0 0 54 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=BITS) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 54 36 moveto +0 36 lineto +0 0 lineto +54 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 54 36 moveto +0 36 lineto +0 0 lineto +54 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +15 13 moveto +(Bits) +[9.36 3.84 3.84 5.52] +xshow +end grestore +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF Added: trunk/axiom/books/ps/v103boolean.ps =================================================================== --- trunk/axiom/books/ps/v103boolean.ps (rev 0) +++ trunk/axiom/books/ps/v103boolean.ps 2008-11-24 23:09:32 UTC (rev 1019) @@ -0,0 +1,248 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 108 80 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 108 80 +%%PageOrientation: Portrait +gsave +36 36 72 44 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +70 42 lineto +70 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 42 lineto +70 42 lineto +70 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% Boolean +[ /Rect [ 0 0 64 36 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=BOOLEAN) >> + /Su... [truncated message content] |
From: <gi...@ax...> - 2008-11-24 22:59:48
|
books/bookvol10.3.pamphlet | 1108 +++++++++++++++++++++++++++++++++++++ books/ps/v103arraystack.ps | 248 +++++++++ books/ps/v103bits.ps | 248 +++++++++ books/ps/v103boolean.ps | 248 +++++++++ books/ps/v103dequeue.ps | 248 +++++++++ books/ps/v103heap.ps | 248 +++++++++ books/ps/v103indexedbits.ps | 248 +++++++++ books/ps/v103queue.ps | 248 +++++++++ books/ps/v103reference.ps | 248 +++++++++ books/ps/v103stack.ps | 248 +++++++++ changelog | 14 + src/Makefile.pamphlet | 10 +- src/algebra/Makefile.pamphlet | 15 +- src/algebra/bags.spad.pamphlet | 499 ----------------- src/algebra/boolean.spad.pamphlet | 583 ------------------- src/axiom-website/patches.html | 2 + 16 files changed, 3372 insertions(+), 1091 deletions(-) New commits: commit 4e3fd92f5f39c48a1ecbbd318e83d630b47d40c0 Author: Tim Daly <da...@ax...> Date: Sun Nov 9 19:25:49 2008 -0500 20081124 tpd src/axiom-website/patches.html 20081124.04.tpd.patch 20081124 tpd books/bookvol10.3.pamphlet 20081124 tpd books/ps/v103stack.ps added 20081124 tpd books/ps/v103reference.ps added 20081124 tpd books/ps/v103queue.ps added 20081124 tpd books/ps/v103indexedbits.ps added 20081124 tpd books/ps/v103heap.ps added 20081124 tpd books/ps/v103dequeue.ps added 20081124 tpd books/ps/v103boolean.ps added 20081124 tpd books/ps/v103bits.ps added 20081124 tpd books/ps/v103arraystack.ps added 20081124 tpd src/algebra/Makefile remove bags.spad, boolean.spad 20081124 tpd src/algebra/boolean.spad removed. move domains to bookvol10.3 20081124 tpd src/algebra/bags.spad removed. move domains to bookvol10.3 |
From: <da...@us...> - 2008-11-24 21:46:27
|
Revision: 1018 http://axiom.svn.sourceforge.net/axiom/?rev=1018&view=rev Author: daly Date: 2008-11-24 21:45:31 +0000 (Mon, 24 Nov 2008) Log Message: ----------- 20081124 tpd src/axiom-website/patches.html 20081124.03.tpd.patch 20081124 tpd src/Makefile output util.ht before compiles (fix 7146) 20081124 tpd src/interp/htcheck.book move util.ht to doc Modified Paths: -------------- trunk/axiom/changelog trunk/axiom/src/axiom-website/patches.html trunk/axiom/src/interp/htcheck.boot.pamphlet Modified: trunk/axiom/changelog =================================================================== --- trunk/axiom/changelog 2008-11-24 17:15:09 UTC (rev 1017) +++ trunk/axiom/changelog 2008-11-24 21:45:31 UTC (rev 1018) @@ -1,4 +1,7 @@ -20081124 tpd src/axiom-website/patches.html +20081124 tpd src/axiom-website/patches.html 20081124.03.tpd.patch +20081124 tpd src/Makefile output util.ht before compiles (fix 7146) +20081124 tpd src/interp/htcheck.book move util.ht to doc +20081124 tpd src/axiom-website/patches.html 20081124.02.tpd.patch 20081124 tpd books/bookvol10.3 add domains 20081124 tpd books/ps/v103twodimensionalarray.ps added 20081124 tpd books/ps/v103tuple.ps added Modified: trunk/axiom/src/axiom-website/patches.html =================================================================== --- trunk/axiom/src/axiom-website/patches.html 2008-11-24 17:15:09 UTC (rev 1017) +++ trunk/axiom/src/axiom-website/patches.html 2008-11-24 21:45:31 UTC (rev 1018) @@ -743,6 +743,8 @@ November release cleanup<br/> <a href="patches/20081124.02.tpd.patch">20081124.02.tpd.patch</a> bookvol10.3 add domains<br/> +<a href="patches/20081124.03.tpd.patch">20081124.03.tpd.patch</a> +move util.ht to doc (fix 7146)<br/> </body> </html> \ No newline at end of file Modified: trunk/axiom/src/interp/htcheck.boot.pamphlet =================================================================== --- trunk/axiom/src/interp/htcheck.boot.pamphlet 2008-11-24 17:15:09 UTC (rev 1017) +++ trunk/axiom/src/interp/htcheck.boot.pamphlet 2008-11-24 21:45:31 UTC (rev 1018) @@ -95,7 +95,7 @@ buildHtMacroTable() == $htMacroTable := MAKE_-HASHTABLE 'UEQUAL - fn := CONCAT(getEnv '"AXIOM", '"/doc/hypertex/pages/util.ht") + fn := CONCAT(getEnv '"AXIOM", '"/doc/util.ht") if PROBE_-FILE(fn) then instream := MAKE_-INSTREAM fn while not EOFP instream repeat This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gi...@ax...> - 2008-11-24 21:46:27
|
changelog | 5 ++++- src/axiom-website/patches.html | 2 ++ src/interp/htcheck.boot.pamphlet | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) New commits: commit 32d82229aabd5bf76d0ee753d286fb2eb1872dc6 Author: Tim Daly <da...@ax...> Date: Sun Nov 9 18:40:06 2008 -0500 20081124 tpd src/axiom-website/patches.html 20081124.03.tpd.patch 20081124 tpd src/Makefile output util.ht before compiles (fix 7146) 20081124 tpd src/interp/htcheck.book move util.ht to doc |
From: <da...@us...> - 2008-11-24 17:15:12
|
Revision: 1017 http://axiom.svn.sourceforge.net/axiom/?rev=1017&view=rev Author: daly Date: 2008-11-24 17:15:09 +0000 (Mon, 24 Nov 2008) Log Message: ----------- 20081124 tpd src/axiom-website/patches.html 20081124 tpd books/bookvol10.3 add domains 20081124 tpd books/ps/v103twodimensionalarray.ps added 20081124 tpd books/ps/v103tuple.ps added 20081124 tpd books/ps/v103simplealgebraicextension.ps added 20081124 tpd books/ps/v103queryequation.ps added 20081124 tpd books/ps/v103primitivearray.ps added 20081124 tpd books/ps/v103planealgebraiccurveplot.ps added 20081124 tpd books/ps/v103onedimensionalarray.ps added 20081124 tpd books/ps/v103numericalpdeproblem.ps added 20081124 tpd books/ps/v103numericaloptimizationproblem.ps added 20081124 tpd books/ps/v103numericalodeproblem.ps added 20081124 tpd books/ps/v103numericalintegrationproblem.ps added 20081124 tpd books/ps/v103none.ps added 20081124 tpd books/ps/v103innerindexedtwodimensionalarray.ps added 20081124 tpd books/ps/v103indexedtwodimensionalarray.ps added 20081124 tpd books/ps/v103indexedonedimensionalarray.ps added 20081124 tpd books/ps/v103indexedflexiblearray.ps added 20081124 tpd books/ps/v103indexcard.ps added 20081124 tpd books/ps/v103flexiblearray.ps added 20081124 tpd books/ps/v103datalist.ps added 20081124 tpd books/ps/v103database.ps added 20081124 tpd books/ps/v103asp9.ps added 20081124 tpd books/ps/v103asp80.ps added 20081124 tpd books/ps/v103asp8.ps added 20081124 tpd books/ps/v103asp78.ps added 20081124 tpd books/ps/v103asp77.ps added 20081124 tpd books/ps/v103asp74.ps added 20081124 tpd books/ps/v103asp73.ps added 20081124 tpd books/ps/v103asp7.ps added 20081124 tpd books/ps/v103asp6.ps added 20081124 tpd books/ps/v103asp55.ps added 20081124 tpd books/ps/v103asp50.ps added 20081124 tpd books/ps/v103asp49.ps added 20081124 tpd books/ps/v103asp42.ps added 20081124 tpd books/ps/v103asp41.ps added 20081124 tpd books/ps/v103asp4.ps added 20081124 tpd books/ps/v103asp35.ps added 20081124 tpd books/ps/v103asp34.ps added 20081124 tpd books/ps/v103asp33.ps added 20081124 tpd books/ps/v103asp31.ps added 20081124 tpd books/ps/v103asp30.ps added 20081124 tpd books/ps/v103asp29.ps added 20081124 tpd books/ps/v103asp28.ps added 20081124 tpd books/ps/v103asp27.ps added 20081124 tpd books/ps/v103asp24.ps added 20081124 tpd books/ps/v103asp20.ps added 20081124 tpd books/ps/v103asp19.ps added 20081124 tpd books/ps/v103asp12.ps added 20081124 tpd books/ps/v103asp10.ps added 20081124 tpd books/ps/v103asp1.ps added 20081124 tpd books/ps/v103any.ps added 20081124 tpd src/algebra/Makefile remove asp.spad 20081124 tpd src/algebra/asp.spad removed, move domains to bookvol10.4 20081124 tpd src/algebra/Makefile remove array2.spad, fix help files 20081124 tpd src/algebra/array2.spad removed, move domains to bookvol10.3 20081124 tpd src/algebra/array1.spad move domains to bookvol10.3 20081124 tpd src/algebra/any.spad move domains to bookvol10.3 20081124 tpd src/axiom-website/patches.html 20081124.01.tpd.patch Modified Paths: -------------- trunk/axiom/books/bookvol10.3.pamphlet trunk/axiom/books/ps/v103denavithartenbergmatrix.ps trunk/axiom/changelog trunk/axiom/src/algebra/Makefile.pamphlet trunk/axiom/src/algebra/acplot.spad.pamphlet trunk/axiom/src/algebra/any.spad.pamphlet trunk/axiom/src/algebra/array1.spad.pamphlet trunk/axiom/src/axiom-website/patches.html Added Paths: ----------- trunk/axiom/books/ps/v103any.ps trunk/axiom/books/ps/v103asp1.ps trunk/axiom/books/ps/v103asp10.ps trunk/axiom/books/ps/v103asp12.ps trunk/axiom/books/ps/v103asp19.ps trunk/axiom/books/ps/v103asp20.ps trunk/axiom/books/ps/v103asp24.ps trunk/axiom/books/ps/v103asp27.ps trunk/axiom/books/ps/v103asp28.ps trunk/axiom/books/ps/v103asp29.ps trunk/axiom/books/ps/v103asp30.ps trunk/axiom/books/ps/v103asp31.ps trunk/axiom/books/ps/v103asp33.ps trunk/axiom/books/ps/v103asp34.ps trunk/axiom/books/ps/v103asp35.ps trunk/axiom/books/ps/v103asp4.ps trunk/axiom/books/ps/v103asp41.ps trunk/axiom/books/ps/v103asp42.ps trunk/axiom/books/ps/v103asp49.ps trunk/axiom/books/ps/v103asp50.ps trunk/axiom/books/ps/v103asp55.ps trunk/axiom/books/ps/v103asp6.ps trunk/axiom/books/ps/v103asp7.ps trunk/axiom/books/ps/v103asp73.ps trunk/axiom/books/ps/v103asp74.ps trunk/axiom/books/ps/v103asp77.ps trunk/axiom/books/ps/v103asp78.ps trunk/axiom/books/ps/v103asp8.ps trunk/axiom/books/ps/v103asp80.ps trunk/axiom/books/ps/v103asp9.ps trunk/axiom/books/ps/v103database.ps trunk/axiom/books/ps/v103datalist.ps trunk/axiom/books/ps/v103flexiblearray.ps trunk/axiom/books/ps/v103indexcard.ps trunk/axiom/books/ps/v103indexedflexiblearray.ps trunk/axiom/books/ps/v103indexedonedimensionalarray.ps trunk/axiom/books/ps/v103indexedtwodimensionalarray.ps trunk/axiom/books/ps/v103innerindexedtwodimensionalarray.ps trunk/axiom/books/ps/v103none.ps trunk/axiom/books/ps/v103numericalintegrationproblem.ps trunk/axiom/books/ps/v103numericalodeproblem.ps trunk/axiom/books/ps/v103numericaloptimizationproblem.ps trunk/axiom/books/ps/v103numericalpdeproblem.ps trunk/axiom/books/ps/v103onedimensionalarray.ps trunk/axiom/books/ps/v103planealgebraiccurveplot.ps trunk/axiom/books/ps/v103primitivearray.ps trunk/axiom/books/ps/v103queryequation.ps trunk/axiom/books/ps/v103simplealgebraicextension.ps trunk/axiom/books/ps/v103tuple.ps trunk/axiom/books/ps/v103twodimensionalarray.ps Removed Paths: ------------- trunk/axiom/src/algebra/algext.spad.pamphlet trunk/axiom/src/algebra/annacat.spad.pamphlet trunk/axiom/src/algebra/array2.spad.pamphlet trunk/axiom/src/algebra/asp.spad.pamphlet Modified: trunk/axiom/books/bookvol10.3.pamphlet =================================================================== --- trunk/axiom/books/bookvol10.3.pamphlet 2008-11-24 11:13:07 UTC (rev 1016) +++ trunk/axiom/books/bookvol10.3.pamphlet 2008-11-24 17:15:09 UTC (rev 1017) @@ -280,8 +280,4472 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %\pagehead{Domain}{ABB} %\pagepic{ps/v103domain.ps}{ABB}{1.00} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Chapter A} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{domain ANY Any} +<<dot>>= +"ANY" -> "SETCAT" +"Any()" -> "SetCategory()" +@ +\pagehead{Any}{ANY} +\pagepic{ps/v103any.ps}{ANY}{1.00} +<<domain ANY Any>>= +)abbrev domain ANY Any +++ Author: Robert S. Sutor +++ Date Created: +++ Change History: +++ Basic Functions: any, domainOf, objectOf, dom, obj, showTypeInOutput +++ Related Constructors: AnyFunctions1 +++ Also See: None +++ AMS Classification: +++ Keywords: +++ Description: +++ \spadtype{Any} implements a type that packages up objects and their +++ types in objects of \spadtype{Any}. Roughly speaking that means +++ that if \spad{s : S} then when converted to \spadtype{Any}, the new +++ object will include both the original object and its type. This is +++ a way of converting arbitrary objects into a single type without +++ losing any of the original information. Any object can be converted +++ to one of \spadtype{Any}. + +Any(): SetCategory with + any : (SExpression, None) -> % + ++ any(type,object) is a technical function for creating + ++ an object of \spadtype{Any}. Arugment \spad{type} is a + ++ \spadgloss{LISP} form for the type of \spad{object}. + domainOf : % -> OutputForm + ++ domainOf(a) returns a printable form of the type of the + ++ original object that was converted to \spadtype{Any}. + objectOf : % -> OutputForm + ++ objectOf(a) returns a printable form of the + ++ original object that was converted to \spadtype{Any}. + dom : % -> SExpression + ++ dom(a) returns a \spadgloss{LISP} form of the type of the + ++ original object that was converted to \spadtype{Any}. + obj : % -> None + ++ obj(a) essentially returns the original object that was + ++ converted to \spadtype{Any} except that the type is forced + ++ to be \spadtype{None}. + showTypeInOutput: Boolean -> String + ++ showTypeInOutput(bool) affects the way objects of + ++ \spadtype{Any} are displayed. If \spad{bool} is true + ++ then the type of the original object that was converted + ++ to \spadtype{Any} will be printed. If \spad{bool} is + ++ false, it will not be printed. + + == add + Rep := Record(dm: SExpression, ob: None) + + printTypeInOutputP:Reference(Boolean) := ref false + + obj x == x.ob + dom x == x.dm + domainOf x == x.dm pretend OutputForm + x = y == (x.dm = y.dm) and EQ(x.ob, y.ob)$Lisp + + objectOf(x : %) : OutputForm == + spad2BootCoerce(x.ob, x.dm, + list("OutputForm"::Symbol)$List(Symbol))$Lisp + + showTypeInOutput(b : Boolean) : String == + printTypeInOutputP := ref b + b=> "Type of object will be displayed in output of a member of Any" + "Type of object will not be displayed in output of a member of Any" + + coerce(x):OutputForm == + obj1 : OutputForm := objectOf x + not deref printTypeInOutputP => obj1 + dom1 := + p:Symbol := prefix2String(devaluate(x.dm)$Lisp)$Lisp + atom?(p pretend SExpression) => list(p)$List(Symbol) + list(p)$Symbol + hconcat cons(obj1, + cons(":"::OutputForm, [a::OutputForm for a in dom1])) + + any(domain, object) == + (isValidType(domain)$Lisp)@Boolean => [domain, object] + domain := devaluate(domain)$Lisp + (isValidType(domain)$Lisp)@Boolean => [domain, object] + error "function any must have a domain as first argument" + +@ +\section{domain ASP1 Asp1} +\pagehead{Asp1}{ASP1} +\pagepic{ps/v103asp1.ps}{ASP1}{1.00} +<<domain ASP1 Asp1>>= +)abbrev domain ASP1 Asp1 +++ Author: Mike Dewar, Grant Keady, Godfrey Nolan +++ Date Created: Mar 1993 +++ Date Last Updated: 18 March 1994 +++ 6 October 1994 +++ Related Constructors: FortranFunctionCategory, FortranProgramCategory. +++ Description: +++ \spadtype{Asp1} produces Fortran for Type 1 ASPs, needed for various +++ NAG routines. Type 1 ASPs take a univariate expression (in the symbol +++ X) and turn it into a Fortran Function like the following: +++\begin{verbatim} +++ DOUBLE PRECISION FUNCTION F(X) +++ DOUBLE PRECISION X +++ F=DSIN(X) +++ RETURN +++ END +++\end{verbatim} + + +Asp1(name): Exports == Implementation where + name : Symbol + + FEXPR ==> FortranExpression + FST ==> FortranScalarType + FT ==> FortranType + SYMTAB ==> SymbolTable + RSFC ==> Record(localSymbols:SymbolTable,code:List(FortranCode)) + FRAC ==> Fraction + POLY ==> Polynomial + EXPR ==> Expression + INT ==> Integer + FLOAT ==> Float + + Exports ==> FortranFunctionCategory with + coerce : FEXPR(['X],[],MachineFloat) -> $ + ++coerce(f) takes an object from the appropriate instantiation of + ++\spadtype{FortranExpression} and turns it into an ASP. + + Implementation ==> add + + -- Build Symbol Table for Rep + syms : SYMTAB := empty()$SYMTAB + declare!(X,fortranReal()$FT,syms)$SYMTAB + real : FST := "real"::FST + + Rep := FortranProgram(name,[real]$Union(fst:FST,void:"void"),[X],syms) + + retract(u:FRAC POLY INT):$ == (retract(u)@FEXPR(['X],[],MachineFloat))::$ + retractIfCan(u:FRAC POLY INT):Union($,"failed") == + foo : Union(FEXPR(['X],[],MachineFloat),"failed") + foo := retractIfCan(u)$FEXPR(['X],[],MachineFloat) + foo case "failed" => "failed" + foo::FEXPR(['X],[],MachineFloat)::$ + + retract(u:FRAC POLY FLOAT):$ == (retract(u)@FEXPR(['X],[],MachineFloat))::$ + retractIfCan(u:FRAC POLY FLOAT):Union($,"failed") == + foo : Union(FEXPR(['X],[],MachineFloat),"failed") + foo := retractIfCan(u)$FEXPR(['X],[],MachineFloat) + foo case "failed" => "failed" + foo::FEXPR(['X],[],MachineFloat)::$ + + retract(u:EXPR FLOAT):$ == (retract(u)@FEXPR(['X],[],MachineFloat))::$ + retractIfCan(u:EXPR FLOAT):Union($,"failed") == + foo : Union(FEXPR(['X],[],MachineFloat),"failed") + foo := retractIfCan(u)$FEXPR(['X],[],MachineFloat) + foo case "failed" => "failed" + foo::FEXPR(['X],[],MachineFloat)::$ + + retract(u:EXPR INT):$ == (retract(u)@FEXPR(['X],[],MachineFloat))::$ + retractIfCan(u:EXPR INT):Union($,"failed") == + foo : Union(FEXPR(['X],[],MachineFloat),"failed") + foo := retractIfCan(u)$FEXPR(['X],[],MachineFloat) + foo case "failed" => "failed" + foo::FEXPR(['X],[],MachineFloat)::$ + + retract(u:POLY FLOAT):$ == (retract(u)@FEXPR(['X],[],MachineFloat))::$ + retractIfCan(u:POLY FLOAT):Union($,"failed") == + foo : Union(FEXPR(['X],[],MachineFloat),"failed") + foo := retractIfCan(u)$FEXPR(['X],[],MachineFloat) + foo case "failed" => "failed" + foo::FEXPR(['X],[],MachineFloat)::$ + + retract(u:POLY INT):$ == (retract(u)@FEXPR(['X],[],MachineFloat))::$ + retractIfCan(u:POLY INT):Union($,"failed") == + foo : Union(FEXPR(['X],[],MachineFloat),"failed") + foo := retractIfCan(u)$FEXPR(['X],[],MachineFloat) + foo case "failed" => "failed" + foo::FEXPR(['X],[],MachineFloat)::$ + + coerce(u:FEXPR(['X],[],MachineFloat)):$ == + coerce((u::Expression(MachineFloat))$FEXPR(['X],[],MachineFloat))$Rep + + coerce(c:List FortranCode):$ == coerce(c)$Rep + + coerce(r:RSFC):$ == coerce(r)$Rep + + coerce(c:FortranCode):$ == coerce(c)$Rep + + coerce(u:$):OutputForm == coerce(u)$Rep + + outputAsFortran(u):Void == + p := checkPrecision()$NAGLinkSupportPackage + outputAsFortran(u)$Rep + p => restorePrecision()$NAGLinkSupportPackage + +@ +\section{domain ASP10 Asp10} +\pagehead{Asp10}{ASP10} +\pagepic{ps/v103asp10.ps}{ASP10}{1.00} +<<domain ASP10 Asp10>>= +)abbrev domain ASP10 Asp10 +++ Author: Mike Dewar and Godfrey Nolan +++ Date Created: Mar 1993 +++ Date Last Updated: 18 March 1994 +++ 6 October 1994 +++ Related Constructors: FortranVectorFunctionCategory, FortranProgramCategory +++ Description: +++\spadtype{ASP10} produces Fortran for Type 10 ASPs, needed for NAG routine +++\axiomOpFrom{d02kef}{d02Package}. This ASP computes the values of a set of functions, for example: +++\begin{verbatim} +++ SUBROUTINE COEFFN(P,Q,DQDL,X,ELAM,JINT) +++ DOUBLE PRECISION ELAM,P,Q,X,DQDL +++ INTEGER JINT +++ P=1.0D0 +++ Q=((-1.0D0*X**3)+ELAM*X*X-2.0D0)/(X*X) +++ DQDL=1.0D0 +++ RETURN +++ END +++\end{verbatim} + +Asp10(name): Exports == Implementation where + name : Symbol + + FST ==> FortranScalarType + FT ==> FortranType + SYMTAB ==> SymbolTable + EXF ==> Expression Float + RSFC ==> Record(localSymbols:SymbolTable,code:List(FortranCode)) + FEXPR ==> FortranExpression(['JINT,'X,'ELAM],[],MFLOAT) + MFLOAT ==> MachineFloat + FRAC ==> Fraction + POLY ==> Polynomial + EXPR ==> Expression + INT ==> Integer + FLOAT ==> Float + VEC ==> Vector + VF2 ==> VectorFunctions2 + + Exports ==> FortranVectorFunctionCategory with + coerce : Vector FEXPR -> % + ++coerce(f) takes objects from the appropriate instantiation of + ++\spadtype{FortranExpression} and turns them into an ASP. + + Implementation ==> add + + real : FST := "real"::FST + syms : SYMTAB := empty()$SYMTAB + declare!(P,fortranReal()$FT,syms)$SYMTAB + declare!(Q,fortranReal()$FT,syms)$SYMTAB + declare!(DQDL,fortranReal()$FT,syms)$SYMTAB + declare!(X,fortranReal()$FT,syms)$SYMTAB + declare!(ELAM,fortranReal()$FT,syms)$SYMTAB + declare!(JINT,fortranInteger()$FT,syms)$SYMTAB + Rep := FortranProgram(name,["void"]$Union(fst:FST,void:"void"), + [P,Q,DQDL,X,ELAM,JINT],syms) + + retract(u:VEC FRAC POLY INT):$ == + v : VEC FEXPR := map(retract,u)$VF2(FRAC POLY INT,FEXPR) + v::$ + + retractIfCan(u:VEC FRAC POLY INT):Union($,"failed") == + v:Union(VEC FEXPR,"failed"):=map(retractIfCan,u)$VF2(FRAC POLY INT,FEXPR) + v case "failed" => "failed" + (v::VEC FEXPR)::$ + + retract(u:VEC FRAC POLY FLOAT):$ == + v : VEC FEXPR := map(retract,u)$VF2(FRAC POLY FLOAT,FEXPR) + v::$ + + retractIfCan(u:VEC FRAC POLY FLOAT):Union($,"failed") == + v:Union(VEC FEXPR,"failed"):=map(retractIfCan,u)$VF2(FRAC POLY FLOAT,FEXPR) + v case "failed" => "failed" + (v::VEC FEXPR)::$ + + retract(u:VEC EXPR INT):$ == + v : VEC FEXPR := map(retract,u)$VF2(EXPR INT,FEXPR) + v::$ + + retractIfCan(u:VEC EXPR INT):Union($,"failed") == + v:Union(VEC FEXPR,"failed"):=map(retractIfCan,u)$VF2(EXPR INT,FEXPR) + v case "failed" => "failed" + (v::VEC FEXPR)::$ + + retract(u:VEC EXPR FLOAT):$ == + v : VEC FEXPR := map(retract,u)$VF2(EXPR FLOAT,FEXPR) + v::$ + + retractIfCan(u:VEC EXPR FLOAT):Union($,"failed") == + v:Union(VEC FEXPR,"failed"):=map(retractIfCan,u)$VF2(EXPR FLOAT,FEXPR) + v case "failed" => "failed" + (v::VEC FEXPR)::$ + + retract(u:VEC POLY INT):$ == + v : VEC FEXPR := map(retract,u)$VF2(POLY INT,FEXPR) + v::$ + + retractIfCan(u:VEC POLY INT):Union($,"failed") == + v:Union(VEC FEXPR,"failed"):=map(retractIfCan,u)$VF2(POLY INT,FEXPR) + v case "failed" => "failed" + (v::VEC FEXPR)::$ + + retract(u:VEC POLY FLOAT):$ == + v : VEC FEXPR := map(retract,u)$VF2(POLY FLOAT,FEXPR) + v::$ + + retractIfCan(u:VEC POLY FLOAT):Union($,"failed") == + v:Union(VEC FEXPR,"failed"):=map(retractIfCan,u)$VF2(POLY FLOAT,FEXPR) + v case "failed" => "failed" + (v::VEC FEXPR)::$ + + coerce(c:FortranCode):% == coerce(c)$Rep + + coerce(r:RSFC):% == coerce(r)$Rep + + coerce(c:List FortranCode):% == coerce(c)$Rep + + -- To help the poor old compiler! + localAssign(s:Symbol,u:Expression MFLOAT):FortranCode == + assign(s,u)$FortranCode + + coerce(u:Vector FEXPR):% == + import Vector FEXPR + not (#u = 3) => error "Incorrect Dimension For Vector" + ([localAssign(P,elt(u,1)::Expression MFLOAT),_ + localAssign(Q,elt(u,2)::Expression MFLOAT),_ + localAssign(DQDL,elt(u,3)::Expression MFLOAT),_ + returns()$FortranCode ]$List(FortranCode))::Rep + + coerce(u:%):OutputForm == coerce(u)$Rep + + outputAsFortran(u):Void == + p := checkPrecision()$NAGLinkSupportPackage + outputAsFortran(u)$Rep + p => restorePrecision()$NAGLinkSupportPackage + +@ +\section{domain ASP12 Asp12} +\pagehead{Asp12}{ASP12} +\pagepic{ps/v103asp12.ps}{ASP12}{1.00} +<<domain ASP12 Asp12>>= +)abbrev domain ASP12 Asp12 +++ Author: Mike Dewar and Godfrey Nolan +++ Date Created: Oct 1993 +++ Date Last Updated: 18 March 1994 +++ 21 June 1994 Changed print to printStatement +++ Related Constructors: +++ Description: +++\spadtype{Asp12} produces Fortran for Type 12 ASPs, needed for NAG routine +++\axiomOpFrom{d02kef}{d02Package} etc., for example: +++\begin{verbatim} +++ SUBROUTINE MONIT (MAXIT,IFLAG,ELAM,FINFO) +++ DOUBLE PRECISION ELAM,FINFO(15) +++ INTEGER MAXIT,IFLAG +++ IF(MAXIT.EQ.-1)THEN +++ PRINT*,"Output from Monit" +++ ENDIF +++ PRINT*,MAXIT,IFLAG,ELAM,(FINFO(I),I=1,4) +++ RETURN +++ END +++\end{verbatim} +Asp12(name): Exports == Implementation where + name : Symbol + + O ==> OutputForm + S ==> Symbol + FST ==> FortranScalarType + FT ==> FortranType + FC ==> FortranCode + SYMTAB ==> SymbolTable + EXI ==> Expression Integer + RSFC ==> Record(localSymbols:SymbolTable,code:List(FortranCode)) + U ==> Union(I: Expression Integer,F: Expression Float,_ + CF: Expression Complex Float,switch:Switch) + UFST ==> Union(fst:FST,void:"void") + + Exports ==> FortranProgramCategory with + outputAsFortran:() -> Void + ++outputAsFortran() generates the default code for \spadtype{ASP12}. + + Implementation ==> add + + import FC + import Switch + + real : FST := "real"::FST + syms : SYMTAB := empty()$SYMTAB + declare!(MAXIT,fortranInteger()$FT,syms)$SYMTAB + declare!(IFLAG,fortranInteger()$FT,syms)$SYMTAB + declare!(ELAM,fortranReal()$FT,syms)$SYMTAB + fType : FT := construct([real]$UFST,["15"::Symbol],false)$FT + declare!(FINFO,fType,syms)$SYMTAB + Rep := FortranProgram(name,["void"]$UFST,[MAXIT,IFLAG,ELAM,FINFO],syms) + + -- eqn : O := (I::O)=(1@Integer::EXI::O) + code:=([cond(EQ([MAXIT@S::EXI]$U,[-1::EXI]$U), + printStatement(["_"Output from Monit_""::O])), + printStatement([MAXIT::O,IFLAG::O,ELAM::O,subscript("(FINFO"::S,[I::O])::O,"I=1"::S::O,"4)"::S::O]), -- YUCK! + returns()]$List(FortranCode))::Rep + + coerce(u:%):OutputForm == coerce(u)$Rep + + outputAsFortran(u:%):Void == outputAsFortran(u)$Rep + outputAsFortran():Void == outputAsFortran(code)$Rep + +@ +\section{domain ASP19 Asp19} +\pagehead{Asp19}{ASP19} +\pagepic{ps/v103asp19.ps}{ASP19}{1.00} +<<domain ASP19 Asp19>>= +)abbrev domain ASP19 Asp19 +++ Author: Mike Dewar, Godfrey Nolan, Grant Keady +++ Date Created: Mar 1993 +++ Date Last Updated: 18 March 1994 +++ 6 October 1994 +++ Related Constructors: FortranVectorFunctionCategory, FortranProgramCategory +++ Description: +++\spadtype{Asp19} produces Fortran for Type 19 ASPs, evaluating a set of +++functions and their jacobian at a given point, for example: +++\begin{verbatim} +++ SUBROUTINE LSFUN2(M,N,XC,FVECC,FJACC,LJC) +++ DOUBLE PRECISION FVECC(M),FJACC(LJC,N),XC(N) +++ INTEGER M,N,LJC +++ INTEGER I,J +++ DO 25003 I=1,LJC +++ DO 25004 J=1,N +++ FJACC(I,J)=0.0D0 +++25004 CONTINUE +++25003 CONTINUE +++ FVECC(1)=((XC(1)-0.14D0)*XC(3)+(15.0D0*XC(1)-2.1D0)*XC(2)+1.0D0)/( +++ &XC(3)+15.0D0*XC(2)) +++ FVECC(2)=((XC(1)-0.18D0)*XC(3)+(7.0D0*XC(1)-1.26D0)*XC(2)+1.0D0)/( +++ &XC(3)+7.0D0*XC(2)) +++ FVECC(3)=((XC(1)-0.22D0)*XC(3)+(4.333333333333333D0*XC(1)-0.953333 +++ &3333333333D0)*XC(2)+1.0D0)/(XC(3)+4.333333333333333D0*XC(2)) +++ FVECC(4)=((XC(1)-0.25D0)*XC(3)+(3.0D0*XC(1)-0.75D0)*XC(2)+1.0D0)/( +++ &XC(3)+3.0D0*XC(2)) +++ FVECC(5)=((XC(1)-0.29D0)*XC(3)+(2.2D0*XC(1)-0.6379999999999999D0)* +++ &XC(2)+1.0D0)/(XC(3)+2.2D0*XC(2)) +++ FVECC(6)=((XC(1)-0.32D0)*XC(3)+(1.666666666666667D0*XC(1)-0.533333 +++ &3333333333D0)*XC(2)+1.0D0)/(XC(3)+1.666666666666667D0*XC(2)) +++ FVECC(7)=((XC(1)-0.35D0)*XC(3)+(1.285714285714286D0*XC(1)-0.45D0)* +++ &XC(2)+1.0D0)/(XC(3)+1.285714285714286D0*XC(2)) +++ FVECC(8)=((XC(1)-0.39D0)*XC(3)+(XC(1)-0.39D0)*XC(2)+1.0D0)/(XC(3)+ +++ &XC(2)) +++ FVECC(9)=((XC(1)-0.37D0)*XC(3)+(XC(1)-0.37D0)*XC(2)+1.285714285714 +++ &286D0)/(XC(3)+XC(2)) +++ FVECC(10)=((XC(1)-0.58D0)*XC(3)+(XC(1)-0.58D0)*XC(2)+1.66666666666 +++ &6667D0)/(XC(3)+XC(2)) +++ FVECC(11)=((XC(1)-0.73D0)*XC(3)+(XC(1)-0.73D0)*XC(2)+2.2D0)/(XC(3) +++ &+XC(2)) +++ FVECC(12)=((XC(1)-0.96D0)*XC(3)+(XC(1)-0.96D0)*XC(2)+3.0D0)/(XC(3) +++ &+XC(2)) +++ FVECC(13)=((XC(1)-1.34D0)*XC(3)+(XC(1)-1.34D0)*XC(2)+4.33333333333 +++ &3333D0)/(XC(3)+XC(2)) +++ FVECC(14)=((XC(1)-2.1D0)*XC(3)+(XC(1)-2.1D0)*XC(2)+7.0D0)/(XC(3)+X +++ &C(2)) +++ FVECC(15)=((XC(1)-4.39D0)*XC(3)+(XC(1)-4.39D0)*XC(2)+15.0D0)/(XC(3 +++ &)+XC(2)) +++ FJACC(1,1)=1.0D0 +++ FJACC(1,2)=-15.0D0/(XC(3)**2+30.0D0*XC(2)*XC(3)+225.0D0*XC(2)**2) +++ FJACC(1,3)=-1.0D0/(XC(3)**2+30.0D0*XC(2)*XC(3)+225.0D0*XC(2)**2) +++ FJACC(2,1)=1.0D0 +++ FJACC(2,2)=-7.0D0/(XC(3)**2+14.0D0*XC(2)*XC(3)+49.0D0*XC(2)**2) +++ FJACC(2,3)=-1.0D0/(XC(3)**2+14.0D0*XC(2)*XC(3)+49.0D0*XC(2)**2) +++ FJACC(3,1)=1.0D0 +++ FJACC(3,2)=((-0.1110223024625157D-15*XC(3))-4.333333333333333D0)/( +++ &XC(3)**2+8.666666666666666D0*XC(2)*XC(3)+18.77777777777778D0*XC(2) +++ &**2) +++ FJACC(3,3)=(0.1110223024625157D-15*XC(2)-1.0D0)/(XC(3)**2+8.666666 +++ &666666666D0*XC(2)*XC(3)+18.77777777777778D0*XC(2)**2) +++ FJACC(4,1)=1.0D0 +++ FJACC(4,2)=-3.0D0/(XC(3)**2+6.0D0*XC(2)*XC(3)+9.0D0*XC(2)**2) +++ FJACC(4,3)=-1.0D0/(XC(3)**2+6.0D0*XC(2)*XC(3)+9.0D0*XC(2)**2) +++ FJACC(5,1)=1.0D0 +++ FJACC(5,2)=((-0.1110223024625157D-15*XC(3))-2.2D0)/(XC(3)**2+4.399 +++ &999999999999D0*XC(2)*XC(3)+4.839999999999998D0*XC(2)**2) +++ FJACC(5,3)=(0.1110223024625157D-15*XC(2)-1.0D0)/(XC(3)**2+4.399999 +++ &999999999D0*XC(2)*XC(3)+4.839999999999998D0*XC(2)**2) +++ FJACC(6,1)=1.0D0 +++ FJACC(6,2)=((-0.2220446049250313D-15*XC(3))-1.666666666666667D0)/( +++ &XC(3)**2+3.333333333333333D0*XC(2)*XC(3)+2.777777777777777D0*XC(2) +++ &**2) +++ FJACC(6,3)=(0.2220446049250313D-15*XC(2)-1.0D0)/(XC(3)**2+3.333333 +++ &333333333D0*XC(2)*XC(3)+2.777777777777777D0*XC(2)**2) +++ FJACC(7,1)=1.0D0 +++ FJACC(7,2)=((-0.5551115123125783D-16*XC(3))-1.285714285714286D0)/( +++ &XC(3)**2+2.571428571428571D0*XC(2)*XC(3)+1.653061224489796D0*XC(2) +++ &**2) +++ FJACC(7,3)=(0.5551115123125783D-16*XC(2)-1.0D0)/(XC(3)**2+2.571428 +++ &571428571D0*XC(2)*XC(3)+1.653061224489796D0*XC(2)**2) +++ FJACC(8,1)=1.0D0 +++ FJACC(8,2)=-1.0D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2)**2) +++ FJACC(8,3)=-1.0D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2)**2) +++ FJACC(9,1)=1.0D0 +++ FJACC(9,2)=-1.285714285714286D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2)* +++ &*2) +++ FJACC(9,3)=-1.285714285714286D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2)* +++ &*2) +++ FJACC(10,1)=1.0D0 +++ FJACC(10,2)=-1.666666666666667D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2) +++ &**2) +++ FJACC(10,3)=-1.666666666666667D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2) +++ &**2) +++ FJACC(11,1)=1.0D0 +++ FJACC(11,2)=-2.2D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2)**2) +++ FJACC(11,3)=-2.2D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2)**2) +++ FJACC(12,1)=1.0D0 +++ FJACC(12,2)=-3.0D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2)**2) +++ FJACC(12,3)=-3.0D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2)**2) +++ FJACC(13,1)=1.0D0 +++ FJACC(13,2)=-4.333333333333333D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2) +++ &**2) +++ FJACC(13,3)=-4.333333333333333D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2) +++ &**2) +++ FJACC(14,1)=1.0D0 +++ FJACC(14,2)=-7.0D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2)**2) +++ FJACC(14,3)=-7.0D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2)**2) +++ FJACC(15,1)=1.0D0 +++ FJACC(15,2)=-15.0D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2)**2) +++ FJACC(15,3)=-15.0D0/(XC(3)**2+2.0D0*XC(2)*XC(3)+XC(2)**2) +++ RETURN +++ END +++\end{verbatim} + +Asp19(name): Exports == Implementation where + name : Symbol + + FST ==> FortranScalarType + FT ==> FortranType + FC ==> FortranCode + SYMTAB ==> SymbolTable + RSFC ==> Record(localSymbols:SymbolTable,code:List(FC)) + FSTU ==> Union(fst:FST,void:"void") + FRAC ==> Fraction + POLY ==> Polynomial + EXPR ==> Expression + INT ==> Integer + FLOAT ==> Float + MFLOAT ==> MachineFloat + VEC ==> Vector + VF2 ==> VectorFunctions2 + MF2 ==> MatrixCategoryFunctions2(FEXPR,VEC FEXPR,VEC FEXPR,Matrix FEXPR,EXPR MFLOAT,VEC EXPR MFLOAT,VEC EXPR MFLOAT,Matrix EXPR MFLOAT) + FEXPR ==> FortranExpression([],['XC],MFLOAT) + S ==> Symbol + + Exports ==> FortranVectorFunctionCategory with + coerce : VEC FEXPR -> $ + ++coerce(f) takes objects from the appropriate instantiation of + ++\spadtype{FortranExpression} and turns them into an ASP. + + Implementation ==> add + + real : FSTU := ["real"::FST]$FSTU + syms : SYMTAB := empty()$SYMTAB + declare!(M,fortranInteger()$FT,syms)$SYMTAB + declare!(N,fortranInteger()$FT,syms)$SYMTAB + declare!(LJC,fortranInteger()$FT,syms)$SYMTAB + xcType : FT := construct(real,[N],false)$FT + declare!(XC,xcType,syms)$SYMTAB + fveccType : FT := construct(real,[M],false)$FT + declare!(FVECC,fveccType,syms)$SYMTAB + fjaccType : FT := construct(real,[LJC,N],false)$FT + declare!(FJACC,fjaccType,syms)$SYMTAB + Rep := FortranProgram(name,["void"]$FSTU,[M,N,XC,FVECC,FJACC,LJC],syms) + + coerce(c:List FC):$ == coerce(c)$Rep + + coerce(r:RSFC):$ == coerce(r)$Rep + + coerce(c:FC):$ == coerce(c)$Rep + + -- Take a symbol, pull of the script and turn it into an integer!! + o2int(u:S):Integer == + o : OutputForm := first elt(scripts(u)$S,sub) + o pretend Integer + + -- To help the poor old compiler! + fexpr2expr(u:FEXPR):EXPR MFLOAT == coerce(u)$FEXPR + + localAssign1(s:S,j:Matrix FEXPR):FC == + j' : Matrix EXPR MFLOAT := map(fexpr2expr,j)$MF2 + assign(s,j')$FC + + localAssign2(s:S,j:VEC FEXPR):FC == + j' : VEC EXPR MFLOAT := map(fexpr2expr,j)$VF2(FEXPR,EXPR MFLOAT) + assign(s,j')$FC + + coerce(u:VEC FEXPR):$ == + -- First zero the Jacobian matrix in case we miss some derivatives which + -- are zero. + import POLY INT + seg1 : Segment (POLY INT) := segment(1::(POLY INT),LJC@S::(POLY INT)) + seg2 : Segment (POLY INT) := segment(1::(POLY INT),N@S::(POLY INT)) + s1 : SegmentBinding POLY INT := equation(I@S,seg1) + s2 : SegmentBinding POLY INT := equation(J@S,seg2) + as : FC := assign(FJACC,[I@S::(POLY INT),J@S::(POLY INT)],0.0::EXPR FLOAT) + clear : FC := forLoop(s1,forLoop(s2,as)) + j:Integer + x:S := XC::S + pu:List(S) := [] + -- Work out which variables appear in the expressions + for e in entries(u) repeat + pu := setUnion(pu,variables(e)$FEXPR) + scriptList : List Integer := map(o2int,pu)$ListFunctions2(S,Integer) + -- This should be the maximum XC_n which occurs (there may be others + -- which don't): + n:Integer := reduce(max,scriptList)$List(Integer) + p:List(S) := [] + for j in 1..n repeat p:= cons(subscript(x,[j::OutputForm])$S,p) + p:= reverse(p) + jac:Matrix(FEXPR) := _ + jacobian(u,p)$MultiVariableCalculusFunctions(S,FEXPR,VEC FEXPR,List(S)) + c1:FC := localAssign2(FVECC,u) + c2:FC := localAssign1(FJACC,jac) + [clear,c1,c2,returns()]$List(FC)::$ + + coerce(u:$):OutputForm == coerce(u)$Rep + + outputAsFortran(u):Void == + p := checkPrecision()$NAGLinkSupportPackage + outputAsFortran(u)$Rep + p => restorePrecision()$NAGLinkSupportPackage + + + retract(u:VEC FRAC POLY INT):$ == + v : VEC FEXPR := map(retract,u)$VF2(FRAC POLY INT,FEXPR) + v::$ + + retractIfCan(u:VEC FRAC POLY INT):Union($,"failed") == + v:Union(VEC FEXPR,"failed"):=map(retractIfCan,u)$VF2(FRAC POLY INT,FEXPR) + v case "failed" => "failed" + (v::VEC FEXPR)::$ + + retract(u:VEC FRAC POLY FLOAT):$ == + v : VEC FEXPR := map(retract,u)$VF2(FRAC POLY FLOAT,FEXPR) + v::$ + + retractIfCan(u:VEC FRAC POLY FLOAT):Union($,"failed") == + v:Union(VEC FEXPR,"failed"):=map(retractIfCan,u)$VF2(FRAC POLY FLOAT,FEXPR) + v case "failed" => "failed" + (v::VEC FEXPR)::$ + + retract(u:VEC EXPR INT):$ == + v : VEC FEXPR := map(retract,u)$VF2(EXPR INT,FEXPR) + v::$ + + retractIfCan(u:VEC EXPR INT):Union($,"failed") == + v:Union(VEC FEXPR,"failed"):=map(retractIfCan,u)$VF2(EXPR INT,FEXPR) + v case "failed" => "failed" + (v::VEC FEXPR)::$ + + retract(u:VEC EXPR FLOAT):$ == + v : VEC FEXPR := map(retract,u)$VF2(EXPR FLOAT,FEXPR) + v::$ + + retractIfCan(u:VEC EXPR FLOAT):Union($,"failed") == + v:Union(VEC FEXPR,"failed"):=map(retractIfCan,u)$VF2(EXPR FLOAT,FEXPR) + v case "failed" => "failed" + (v::VEC FEXPR)::$ + + retract(u:VEC POLY INT):$ == + v : VEC FEXPR := map(retract,u)$VF2(POLY INT,FEXPR) + v::$ + + retractIfCan(u:VEC POLY INT):Union($,"failed") == + v:Union(VEC FEXPR,"failed"):=map(retractIfCan,u)$VF2(POLY INT,FEXPR) + v case "failed" => "failed" + (v::VEC FEXPR)::$ + + retract(u:VEC POLY FLOAT):$ == + v : VEC FEXPR := map(retract,u)$VF2(POLY FLOAT,FEXPR) + v::$ + + retractIfCan(u:VEC POLY FLOAT):Union($,"failed") == + v:Union(VEC FEXPR,"failed"):=map(retractIfCan,u)$VF2(POLY FLOAT,FEXPR) + v case "failed" => "failed" + (v::VEC FEXPR)::$ + +@ +\section{domain ASP20 Asp20} +\pagehead{Asp20}{ASP20} +\pagepic{ps/v103asp20.ps}{ASP20}{1.00} +<<domain ASP20 Asp20>>= +)abbrev domain ASP20 Asp20 +++ Author: Mike Dewar and Godfrey Nolan and Grant Keady +++ Date Created: Dec 1993 +++ Date Last Updated: 21 March 1994 +++ 6 October 1994 +++ Related Constructors: FortranVectorFunctionCategory, FortranProgramCategory +++ Description: +++\spadtype{Asp20} produces Fortran for Type 20 ASPs, for example: +++\begin{verbatim} +++ SUBROUTINE QPHESS(N,NROWH,NCOLH,JTHCOL,HESS,X,HX) +++ DOUBLE PRECISION HX(N),X(N),HESS(NROWH,NCOLH) +++ INTEGER JTHCOL,N,NROWH,NCOLH +++ HX(1)=2.0D0*X(1) +++ HX(2)=2.0D0*X(2) +++ HX(3)=2.0D0*X(4)+2.0D0*X(3) +++ HX(4)=2.0D0*X(4)+2.0D0*X(3) +++ HX(5)=2.0D0*X(5) +++ HX(6)=(-2.0D0*X(7))+(-2.0D0*X(6)) +++ HX(7)=(-2.0D0*X(7))+(-2.0D0*X(6)) +++ RETURN +++ END +++\end{verbatim} + +Asp20(name): Exports == Implementation where + name : Symbol + + FST ==> FortranScalarType + FT ==> FortranType + SYMTAB ==> SymbolTable + PI ==> PositiveInteger + UFST ==> Union(fst:FST,void:"void") + RSFC ==> Record(localSymbols:SymbolTable,code:List(FortranCode)) + FRAC ==> Fraction + POLY ==> Polynomial + EXPR ==> Expression + INT ==> Integer + FLOAT ==> Float + VEC ==> Vector + MAT ==> Matrix + VF2 ==> VectorFunctions2 + MFLOAT ==> MachineFloat + FEXPR ==> FortranExpression([],['X,'HESS],MFLOAT) + O ==> OutputForm + M2 ==> MatrixCategoryFunctions2 + MF2a ==> M2(FRAC POLY INT,VEC FRAC POLY INT,VEC FRAC POLY INT, + MAT FRAC POLY INT,FEXPR,VEC FEXPR,VEC FEXPR,MAT FEXPR) + MF2b ==> M2(FRAC POLY FLOAT,VEC FRAC POLY FLOAT,VEC FRAC POLY FLOAT, + MAT FRAC POLY FLOAT, FEXPR,VEC FEXPR,VEC FEXPR,MAT FEXPR) + MF2c ==> M2(POLY INT,VEC POLY INT,VEC POLY INT,MAT POLY INT, + FEXPR,VEC FEXPR,VEC FEXPR,MAT FEXPR) + MF2d ==> M2(POLY FLOAT,VEC POLY FLOAT,VEC POLY FLOAT, + MAT POLY FLOAT, FEXPR,VEC FEXPR,VEC FEXPR,MAT FEXPR) + MF2e ==> M2(EXPR INT,VEC EXPR INT,VEC EXPR INT,MAT EXPR INT, + FEXPR,VEC FEXPR,VEC FEXPR,MAT FEXPR) + MF2f ==> M2(EXPR FLOAT,VEC EXPR FLOAT,VEC EXPR FLOAT, + MAT EXPR FLOAT, FEXPR,VEC FEXPR,VEC FEXPR,MAT FEXPR) + + + Exports ==> FortranMatrixFunctionCategory with + coerce: MAT FEXPR -> $ + ++coerce(f) takes objects from the appropriate instantiation of + ++\spadtype{FortranExpression} and turns them into an ASP. + + Implementation ==> add + + real : UFST := ["real"::FST]$UFST + syms : SYMTAB := empty() + declare!(N,fortranInteger(),syms)$SYMTAB + declare!(NROWH,fortranInteger(),syms)$SYMTAB + declare!(NCOLH,fortranInteger(),syms)$SYMTAB + declare!(JTHCOL,fortranInteger(),syms)$SYMTAB + hessType : FT := construct(real,[NROWH,NCOLH],false)$FT + declare!(HESS,hessType,syms)$SYMTAB + xType : FT := construct(real,[N],false)$FT + declare!(X,xType,syms)$SYMTAB + declare!(HX,xType,syms)$SYMTAB + Rep := FortranProgram(name,["void"]$UFST, + [N,NROWH,NCOLH,JTHCOL,HESS,X,HX],syms) + + coerce(c:List FortranCode):$ == coerce(c)$Rep + + coerce(r:RSFC):$ == coerce(r)$Rep + + coerce(c:FortranCode):$ == coerce(c)$Rep + + -- To help the poor old compiler! + fexpr2expr(u:FEXPR):EXPR MFLOAT == coerce(u)$FEXPR + + localAssign(s:Symbol,j:VEC FEXPR):FortranCode == + j' : VEC EXPR MFLOAT := map(fexpr2expr,j)$VF2(FEXPR,EXPR MFLOAT) + assign(s,j')$FortranCode + + coerce(u:MAT FEXPR):$ == + j:Integer + x:Symbol := X::Symbol + n := nrows(u)::PI + p:VEC FEXPR := [retract(subscript(x,[j::O])$Symbol)@FEXPR for j in 1..n] + prod:VEC FEXPR := u*p + ([localAssign(HX,prod),returns()$FortranCode]$List(FortranCode))::$ + + retract(u:MAT FRAC POLY INT):$ == + v : MAT FEXPR := map(retract,u)$MF2a + v::$ + + retractIfCan(u:MAT FRAC POLY INT):Union($,"failed") == + v:Union(MAT FEXPR,"failed"):=map(retractIfCan,u)$MF2a + v case "failed" => "failed" + (v::MAT FEXPR)::$ + + retract(u:MAT FRAC POLY FLOAT):$ == + v : MAT FEXPR := map(retract,u)$MF2b + v::$ + + retractIfCan(u:MAT FRAC POLY FLOAT):Union($,"failed") == + v:Union(MAT FEXPR,"failed"):=map(retractIfCan,u)$MF2b + v case "failed" => "failed" + (v::MAT FEXPR)::$ + + retract(u:MAT EXPR INT):$ == + v : MAT FEXPR := map(retract,u)$MF2e + v::$ + + retractIfCan(u:MAT EXPR INT):Union($,"failed") == + v:Union(MAT FEXPR,"failed"):=map(retractIfCan,u)$MF2e + v case "failed" => "failed" + (v::MAT FEXPR)::$ + + retract(u:MAT EXPR FLOAT):$ == + v : MAT FEXPR := map(retract,u)$MF2f + v::$ + + retractIfCan(u:MAT EXPR FLOAT):Union($,"failed") == + v:Union(MAT FEXPR,"failed"):=map(retractIfCan,u)$MF2f + v case "failed" => "failed" + (v::MAT FEXPR)::$ + + retract(u:MAT POLY INT):$ == + v : MAT FEXPR := map(retract,u)$MF2c + v::$ + + retractIfCan(u:MAT POLY INT):Union($,"failed") == + v:Union(MAT FEXPR,"failed"):=map(retractIfCan,u)$MF2c + v case "failed" => "failed" + (v::MAT FEXPR)::$ + + retract(u:MAT POLY FLOAT):$ == + v : MAT FEXPR := map(retract,u)$MF2d + v::$ + + retractIfCan(u:MAT POLY FLOAT):Union($,"failed") == + v:Union(MAT FEXPR,"failed"):=map(retractIfCan,u)$MF2d + v case "failed" => "failed" + (v::MAT FEXPR)::$ + + coerce(u:$):O == coerce(u)$Rep + + outputAsFortran(u):Void == + p := checkPrecision()$NAGLinkSupportPackage + outputAsFortran(u)$Rep + p => restorePrecision()$NAGLinkSupportPackage + +@ +\section{domain ASP24 Asp24} +\pagehead{Asp24}{ASP24} +\pagepic{ps/v103asp24.ps}{ASP24}{1.00} +<<domain ASP24 Asp24>>= +)abbrev domain ASP24 Asp24 +++ Author: Mike Dewar, Grant Keady and Godfrey Nolan +++ Date Created: Mar 1993 +++ Date Last Updated: 21 March 1994 +++ 6 October 1994 +++ Related Constructors: FortranScalarFunctionCategory, FortranProgramCategory +++ Description: +++\spadtype{Asp24} produces Fortran for Type 24 ASPs which evaluate a +++multivariate function at a point (needed for NAG routine \axiomOpFrom{e04jaf}{e04Package}), for example: +++\begin{verbatim} +++ SUBROUTINE FUNCT1(N,XC,FC) +++ DOUBLE PRECISION FC,XC(N) +++ INTEGER N +++ FC=10.0D0*XC(4)**4+(-40.0D0*XC(1)*XC(4)**3)+(60.0D0*XC(1)**2+5 +++ &.0D0)*XC(4)**2+((-10.0D0*XC(3))+(-40.0D0*XC(1)**3))*XC(4)+16.0D0*X +++ &C(3)**4+(-32.0D0*XC(2)*XC(3)**3)+(24.0D0*XC(2)**2+5.0D0)*XC(3)**2+ +++ &(-8.0D0*XC(2)**3*XC(3))+XC(2)**4+100.0D0*XC(2)**2+20.0D0*XC(1)*XC( +++ &2)+10.0D0*XC(1)**4+XC(1)**2 +++ RETURN +++ END +++\end{verbatim} + +Asp24(name): Exports == Implementation where + name : Symbol + + FST ==> FortranScalarType + FT ==> FortranType + SYMTAB ==> SymbolTable + RSFC ==> Record(localSymbols:SymbolTable,code:List(FortranCode)) + FSTU ==> Union(fst:FST,void:"void") + FEXPR ==> FortranExpression([],['XC],MachineFloat) + FRAC ==> Fraction + POLY ==> Polynomial + EXPR ==> Expression + INT ==> Integer + FLOAT ==> Float + + Exports ==> FortranFunctionCategory with + coerce : FEXPR -> $ + ++ coerce(f) takes an object from the appropriate instantiation of + ++ \spadtype{FortranExpression} and turns it into an ASP. + + + Implementation ==> add + + + real : FSTU := ["real"::FST]$FSTU + syms : SYMTAB := empty() + declare!(N,fortranInteger(),syms)$SYMTAB + xcType : FT := construct(real,[N::Symbol],false)$FT + declare!(XC,xcType,syms)$SYMTAB + declare!(FC,fortranReal(),syms)$SYMTAB + Rep := FortranProgram(name,["void"]$FSTU,[N,XC,FC],syms) + + coerce(c:List FortranCode):$ == coerce(c)$Rep + + coerce(r:RSFC):$ == coerce(r)$Rep + + coerce(c:FortranCode):$ == coerce(c)$Rep + + coerce(u:FEXPR):$ == + coerce(assign(FC,u::Expression(MachineFloat))$FortranCode)$Rep + + retract(u:FRAC POLY INT):$ == (retract(u)@FEXPR)::$ + retractIfCan(u:FRAC POLY INT):Union($,"failed") == + foo : Union(FEXPR,"failed") + foo := retractIfCan(u)$FEXPR + foo case "failed" => "failed" + (foo::FEXPR)::$ + + retract(u:FRAC POLY FLOAT):$ == (retract(u)@FEXPR)::$ + retractIfCan(u:FRAC POLY FLOAT):Union($,"failed") == + foo : Union(FEXPR,"failed") + foo := retractIfCan(u)$FEXPR + foo case "failed" => "failed" + (foo::FEXPR)::$ + + retract(u:EXPR FLOAT):$ == (retract(u)@FEXPR)::$ + retractIfCan(u:EXPR FLOAT):Union($,"failed") == + foo : Union(FEXPR,"failed") + foo := retractIfCan(u)$FEXPR + foo case "failed" => "failed" + (foo::FEXPR)::$ + + retract(u:EXPR INT):$ == (retract(u)@FEXPR)::$ + retractIfCan(u:EXPR INT):Union($,"failed") == + foo : Union(FEXPR,"failed") + foo := retractIfCan(u)$FEXPR + foo case "failed" => "failed" + (foo::FEXPR)::$ + + retract(u:POLY FLOAT):$ == (retract(u)@FEXPR)::$ + retractIfCan(u:POLY FLOAT):Union($,"failed") == + foo : Union(FEXPR,"failed") + foo := retractIfCan(u)$FEXPR + foo case "failed" => "failed" + (foo::FEXPR)::$ + + retract(u:POLY INT):$ == (retract(u)@FEXPR)::$ + retractIfCan(u:POLY INT):Union($,"failed") == + foo : Union(FEXPR,"failed") + foo := retractIfCan(u)$FEXPR + foo case "failed" => "failed" + (foo::FEXPR)::$ + + coerce(u:$):OutputForm == coerce(u)$Rep + + outputAsFortran(u):Void == + p := checkPrecision()$NAGLinkSupportPackage + outputAsFortran(u)$Rep + p => restorePrecision()$NAGLinkSupportPackage + +@ +\section{domain ASP27 Asp27} +\pagehead{Asp27}{ASP27} +\pagepic{ps/v103asp27.ps}{ASP27}{1.00} +<<domain ASP27 Asp27>>= +)abbrev domain ASP27 Asp27 +++ Author: Mike Dewar and Godfrey Nolan +++ Date Created: Nov 1993 +++ Date Last Updated: 27 April 1994 +++ 6 October 1994 +++ Related Constructors: FortranScalarFunctionCategory, FortranProgramCategory +++ Description: +++\spadtype{Asp27} produces Fortran for Type 27 ASPs, needed for NAG routine +++\axiomOpFrom{f02fjf}{f02Package} ,for example: +++\begin{verbatim} +++ FUNCTION DOT(IFLAG,N,Z,W,RWORK,LRWORK,IWORK,LIWORK) +++ DOUBLE PRECISION W(N),Z(N),RWORK(LRWORK) +++ INTEGER N,LIWORK,IFLAG,LRWORK,IWORK(LIWORK) +++ DOT=(W(16)+(-0.5D0*W(15)))*Z(16)+((-0.5D0*W(16))+W(15)+(-0.5D0*W(1 +++ &4)))*Z(15)+((-0.5D0*W(15))+W(14)+(-0.5D0*W(13)))*Z(14)+((-0.5D0*W( +++ &14))+W(13)+(-0.5D0*W(12)))*Z(13)+((-0.5D0*W(13))+W(12)+(-0.5D0*W(1 +++ &1)))*Z(12)+((-0.5D0*W(12))+W(11)+(-0.5D0*W(10)))*Z(11)+((-0.5D0*W( +++ &11))+W(10)+(-0.5D0*W(9)))*Z(10)+((-0.5D0*W(10))+W(9)+(-0.5D0*W(8)) +++ &)*Z(9)+((-0.5D0*W(9))+W(8)+(-0.5D0*W(7)))*Z(8)+((-0.5D0*W(8))+W(7) +++ &+(-0.5D0*W(6)))*Z(7)+((-0.5D0*W(7))+W(6)+(-0.5D0*W(5)))*Z(6)+((-0. +++ &5D0*W(6))+W(5)+(-0.5D0*W(4)))*Z(5)+((-0.5D0*W(5))+W(4)+(-0.5D0*W(3 +++ &)))*Z(4)+((-0.5D0*W(4))+W(3)+(-0.5D0*W(2)))*Z(3)+((-0.5D0*W(3))+W( +++ &2)+(-0.5D0*W(1)))*Z(2)+((-0.5D0*W(2))+W(1))*Z(1) +++ RETURN +++ END +++\end{verbatim} + +Asp27(name): Exports == Implementation where + name : Symbol + + O ==> OutputForm + FST ==> FortranScalarType + FT ==> FortranType + SYMTAB ==> SymbolTable + UFST ==> Union(fst:FST,void:"void") + FC ==> FortranCode + PI ==> PositiveInteger + RSFC ==> Record(localSymbols:SymbolTable,code:List(FortranCode)) + EXPR ==> Expression + MAT ==> Matrix + MFLOAT ==> MachineFloat + + + + Exports == FortranMatrixCategory + + Implementation == add + + + real : UFST := ["real"::FST]$UFST + integer : UFST := ["integer"::FST]$UFST + syms : SYMTAB := empty()$SYMTAB + declare!(IFLAG,fortranInteger(),syms)$SYMTAB + declare!(N,fortranInteger(),syms)$SYMTAB + declare!(LRWORK,fortranInteger(),syms)$SYMTAB + declare!(LIWORK,fortranInteger(),syms)$SYMTAB + zType : FT := construct(real,[N],false)$FT + declare!(Z,zType,syms)$SYMTAB + declare!(W,zType,syms)$SYMTAB + rType : FT := construct(real,[LRWORK],false)$FT + declare!(RWORK,rType,syms)$SYMTAB + iType : FT := construct(integer,[LIWORK],false)$FT + declare!(IWORK,iType,syms)$SYMTAB + Rep := FortranProgram(name,real, + [IFLAG,N,Z,W,RWORK,LRWORK,IWORK,LIWORK],syms) + + -- To help the poor old compiler! + localCoerce(u:Symbol):EXPR(MFLOAT) == coerce(u)$EXPR(MFLOAT) + + coerce (u:MAT MFLOAT):$ == + Ws: Symbol := W + Zs: Symbol := Z + code : List FC + l:EXPR MFLOAT := "+"/ _ + [("+"/[localCoerce(elt(Ws,[j::O])$Symbol) * u(j,i)_ + for j in 1..nrows(u)::PI])_ + *localCoerce(elt(Zs,[i::O])$Symbol) for i in 1..ncols(u)::PI] + c := assign(name,l)$FC + code := [c,returns()]$List(FC) + code::$ + + coerce(c:List FortranCode):$ == coerce(c)$Rep + + coerce(r:RSFC):$ == coerce(r)$Rep + + coerce(c:FortranCode):$ == coerce(c)$Rep + + coerce(u:$):OutputForm == coerce(u)$Rep + + outputAsFortran(u):Void == + p := checkPrecision()$NAGLinkSupportPackage + outputAsFortran(u)$Rep + p => restorePrecision()$NAGLinkSupportPackage + +@ +\section{domain ASP28 Asp28} +\pagehead{Asp28}{ASP28} +\pagepic{ps/v103asp28.ps}{ASP28}{1.00} +<<domain ASP28 Asp28>>= +)abbrev domain ASP28 Asp28 +++ Author: Mike Dewar +++ Date Created: 21 March 1994 +++ Date Last Updated: 28 April 1994 +++ 6 October 1994 +++ Related Constructors: FortranVectorFunctionCategory, FortranProgramCategory +++ Description: +++\spadtype{Asp28} produces Fortran for Type 28 ASPs, used in NAG routine +++\axiomOpFrom{f02fjf}{f02Package}, for example: +++\begin{verbatim} +++ SUBROUTINE IMAGE(IFLAG,N,Z,W,RWORK,LRWORK,IWORK,LIWORK) +++ DOUBLE PRECISION Z(N),W(N),IWORK(LRWORK),RWORK(LRWORK) +++ INTEGER N,LIWORK,IFLAG,LRWORK +++ W(1)=0.01707454969713436D0*Z(16)+0.001747395874954051D0*Z(15)+0.00 +++ &2106973900813502D0*Z(14)+0.002957434991769087D0*Z(13)+(-0.00700554 +++ &0882865317D0*Z(12))+(-0.01219194009813166D0*Z(11))+0.0037230647365 +++ &3087D0*Z(10)+0.04932374658377151D0*Z(9)+(-0.03586220812223305D0*Z( +++ &8))+(-0.04723268012114625D0*Z(7))+(-0.02434652144032987D0*Z(6))+0. +++ &2264766947290192D0*Z(5)+(-0.1385343580686922D0*Z(4))+(-0.116530050 +++ &8238904D0*Z(3))+(-0.2803531651057233D0*Z(2))+1.019463911841327D0*Z +++ &(1) +++ W(2)=0.0227345011107737D0*Z(16)+0.008812321197398072D0*Z(15)+0.010 +++ &94012210519586D0*Z(14)+(-0.01764072463999744D0*Z(13))+(-0.01357136 +++ &72105995D0*Z(12))+0.00157466157362272D0*Z(11)+0.05258889186338282D +++ &0*Z(10)+(-0.01981532388243379D0*Z(9))+(-0.06095390688679697D0*Z(8) +++ &)+(-0.04153119955569051D0*Z(7))+0.2176561076571465D0*Z(6)+(-0.0532 +++ &5555586632358D0*Z(5))+(-0.1688977368984641D0*Z(4))+(-0.32440166056 +++ &67343D0*Z(3))+0.9128222941872173D0*Z(2)+(-0.2419652703415429D0*Z(1 +++ &)) +++ W(3)=0.03371198197190302D0*Z(16)+0.02021603150122265D0*Z(15)+(-0.0 +++ &06607305534689702D0*Z(14))+(-0.03032392238968179D0*Z(13))+0.002033 +++ &305231024948D0*Z(12)+0.05375944956767728D0*Z(11)+(-0.0163213312502 +++ &9967D0*Z(10))+(-0.05483186562035512D0*Z(9))+(-0.04901428822579872D +++ &0*Z(8))+0.2091097927887612D0*Z(7)+(-0.05760560341383113D0*Z(6))+(- +++ &0.1236679206156403D0*Z(5))+(-0.3523683853026259D0*Z(4))+0.88929961 +++ &32269974D0*Z(3)+(-0.2995429545781457D0*Z(2))+(-0.02986582812574917 +++ &D0*Z(1)) +++ W(4)=0.05141563713660119D0*Z(16)+0.005239165960779299D0*Z(15)+(-0. +++ &01623427735779699D0*Z(14))+(-0.01965809746040371D0*Z(13))+0.054688 +++ &97337339577D0*Z(12)+(-0.014224695935687D0*Z(11))+(-0.0505181779315 +++ &6355D0*Z(10))+(-0.04353074206076491D0*Z(9))+0.2012230497530726D0*Z +++ &(8)+(-0.06630874514535952D0*Z(7))+(-0.1280829963720053D0*Z(6))+(-0 +++ &.305169742604165D0*Z(5))+0.8600427128450191D0*Z(4)+(-0.32415033802 +++ &68184D0*Z(3))+(-0.09033531980693314D0*Z(2))+0.09089205517109111D0* +++ &Z(1) +++ W(5)=0.04556369767776375D0*Z(16)+(-0.001822737697581869D0*Z(15))+( +++ &-0.002512226501941856D0*Z(14))+0.02947046460707379D0*Z(13)+(-0.014 +++ &45079632086177D0*Z(12))+(-0.05034242196614937D0*Z(11))+(-0.0376966 +++ &3291725935D0*Z(10))+0.2171103102175198D0*Z(9)+(-0.0824949256021352 +++ &4D0*Z(8))+(-0.1473995209288945D0*Z(7))+(-0.315042193418466D0*Z(6)) +++ &+0.9591623347824002D0*Z(5)+(-0.3852396953763045D0*Z(4))+(-0.141718 +++ &5427288274D0*Z(3))+(-0.03423495461011043D0*Z(2))+0.319820917706851 +++ &6D0*Z(1) +++ W(6)=0.04015147277405744D0*Z(16)+0.01328585741341559D0*Z(15)+0.048 +++ &26082005465965D0*Z(14)+(-0.04319641116207706D0*Z(13))+(-0.04931323 +++ &319055762D0*Z(12))+(-0.03526886317505474D0*Z(11))+0.22295383396730 +++ &01D0*Z(10)+(-0.07375317649315155D0*Z(9))+(-0.1589391311991561D0*Z( +++ &8))+(-0.328001910890377D0*Z(7))+0.952576555482747D0*Z(6)+(-0.31583 +++ &09975786731D0*Z(5))+(-0.1846882042225383D0*Z(4))+(-0.0703762046700 +++ &4427D0*Z(3))+0.2311852964327382D0*Z(2)+0.04254083491825025D0*Z(1) +++ W(7)=0.06069778964023718D0*Z(16)+0.06681263884671322D0*Z(15)+(-0.0 +++ &2113506688615768D0*Z(14))+(-0.083996867458326D0*Z(13))+(-0.0329843 +++ &8523869648D0*Z(12))+0.2276878326327734D0*Z(11)+(-0.067356038933017 +++ &95D0*Z(10))+(-0.1559813965382218D0*Z(9))+(-0.3363262957694705D0*Z( +++ &8))+0.9442791158560948D0*Z(7)+(-0.3199955249404657D0*Z(6))+(-0.136 +++ &2463839920727D0*Z(5))+(-0.1006185171570586D0*Z(4))+0.2057504515015 +++ &423D0*Z(3)+(-0.02065879269286707D0*Z(2))+0.03160990266745513D0*Z(1 +++ &) +++ W(8)=0.126386868896738D0*Z(16)+0.002563370039476418D0*Z(15)+(-0.05 +++ &581757739455641D0*Z(14))+(-0.07777893205900685D0*Z(13))+0.23117338 +++ &45834199D0*Z(12)+(-0.06031581134427592D0*Z(11))+(-0.14805474755869 +++ &52D0*Z(10))+(-0.3364014128402243D0*Z(9))+0.9364014128402244D0*Z(8) +++ &+(-0.3269452524413048D0*Z(7))+(-0.1396841886557241D0*Z(6))+(-0.056 +++ &1733845834199D0*Z(5))+0.1777789320590069D0*Z(4)+(-0.04418242260544 +++ &359D0*Z(3))+(-0.02756337003947642D0*Z(2))+0.07361313110326199D0*Z( +++ &1) +++ W(9)=0.07361313110326199D0*Z(16)+(-0.02756337003947642D0*Z(15))+(- +++ &0.04418242260544359D0*Z(14))+0.1777789320590069D0*Z(13)+(-0.056173 +++ &3845834199D0*Z(12))+(-0.1396841886557241D0*Z(11))+(-0.326945252441 +++ &3048D0*Z(10))+0.9364014128402244D0*Z(9)+(-0.3364014128402243D0*Z(8 +++ &))+(-0.1480547475586952D0*Z(7))+(-0.06031581134427592D0*Z(6))+0.23 +++ &11733845834199D0*Z(5)+(-0.07777893205900685D0*Z(4))+(-0.0558175773 +++ &9455641D0*Z(3))+0.002563370039476418D0*Z(2)+0.126386868896738D0*Z( +++ &1) +++ W(10)=0.03160990266745513D0*Z(16)+(-0.02065879269286707D0*Z(15))+0 +++ &.2057504515015423D0*Z(14)+(-0.1006185171570586D0*Z(13))+(-0.136246 +++ &3839920727D0*Z(12))+(-0.3199955249404657D0*Z(11))+0.94427911585609 +++ &48D0*Z(10)+(-0.3363262957694705D0*Z(9))+(-0.1559813965382218D0*Z(8 +++ &))+(-0.06735603893301795D0*Z(7))+0.2276878326327734D0*Z(6)+(-0.032 +++ &98438523869648D0*Z(5))+(-0.083996867458326D0*Z(4))+(-0.02113506688 +++ &615768D0*Z(3))+0.06681263884671322D0*Z(2)+0.06069778964023718D0*Z( +++ &1) +++ W(11)=0.04254083491825025D0*Z(16)+0.2311852964327382D0*Z(15)+(-0.0 +++ &7037620467004427D0*Z(14))+(-0.1846882042225383D0*Z(13))+(-0.315830 +++ &9975786731D0*Z(12))+0.952576555482747D0*Z(11)+(-0.328001910890377D +++ &0*Z(10))+(-0.1589391311991561D0*Z(9))+(-0.07375317649315155D0*Z(8) +++ &)+0.2229538339673001D0*Z(7)+(-0.03526886317505474D0*Z(6))+(-0.0493 +++ &1323319055762D0*Z(5))+(-0.04319641116207706D0*Z(4))+0.048260820054 +++ &65965D0*Z(3)+0.01328585741341559D0*Z(2)+0.04015147277405744D0*Z(1) +++ W(12)=0.3198209177068516D0*Z(16)+(-0.03423495461011043D0*Z(15))+(- +++ &0.1417185427288274D0*Z(14))+(-0.3852396953763045D0*Z(13))+0.959162 +++ &3347824002D0*Z(12)+(-0.315042193418466D0*Z(11))+(-0.14739952092889 +++ &45D0*Z(10))+(-0.08249492560213524D0*Z(9))+0.2171103102175198D0*Z(8 +++ &)+(-0.03769663291725935D0*Z(7))+(-0.05034242196614937D0*Z(6))+(-0. +++ &01445079632086177D0*Z(5))+0.02947046460707379D0*Z(4)+(-0.002512226 +++ &501941856D0*Z(3))+(-0.001822737697581869D0*Z(2))+0.045563697677763 +++ &75D0*Z(1) +++ W(13)=0.09089205517109111D0*Z(16)+(-0.09033531980693314D0*Z(15))+( +++ &-0.3241503380268184D0*Z(14))+0.8600427128450191D0*Z(13)+(-0.305169 +++ &742604165D0*Z(12))+(-0.1280829963720053D0*Z(11))+(-0.0663087451453 +++ &5952D0*Z(10))+0.2012230497530726D0*Z(9)+(-0.04353074206076491D0*Z( +++ &8))+(-0.05051817793156355D0*Z(7))+(-0.014224695935687D0*Z(6))+0.05 +++ &468897337339577D0*Z(5)+(-0.01965809746040371D0*Z(4))+(-0.016234277 +++ &35779699D0*Z(3))+0.005239165960779299D0*Z(2)+0.05141563713660119D0 +++ &*Z(1) +++ W(14)=(-0.02986582812574917D0*Z(16))+(-0.2995429545781457D0*Z(15)) +++ &+0.8892996132269974D0*Z(14)+(-0.3523683853026259D0*Z(13))+(-0.1236 +++ &679206156403D0*Z(12))+(-0.05760560341383113D0*Z(11))+0.20910979278 +++ &87612D0*Z(10)+(-0.04901428822579872D0*Z(9))+(-0.05483186562035512D +++ &0*Z(8))+(-0.01632133125029967D0*Z(7))+0.05375944956767728D0*Z(6)+0 +++ &.002033305231024948D0*Z(5)+(-0.03032392238968179D0*Z(4))+(-0.00660 +++ &7305534689702D0*Z(3))+0.02021603150122265D0*Z(2)+0.033711981971903 +++ &02D0*Z(1) +++ W(15)=(-0.2419652703415429D0*Z(16))+0.9128222941872173D0*Z(15)+(-0 +++ &.3244016605667343D0*Z(14))+(-0.1688977368984641D0*Z(13))+(-0.05325 +++ &555586632358D0*Z(12))+0.2176561076571465D0*Z(11)+(-0.0415311995556 +++ &9051D0*Z(10))+(-0.06095390688679697D0*Z(9))+(-0.01981532388243379D +++ &0*Z(8))+0.05258889186338282D0*Z(7)+0.00157466157362272D0*Z(6)+(-0. +++ &0135713672105995D0*Z(5))+(-0.01764072463999744D0*Z(4))+0.010940122 +++ &10519586D0*Z(3)+0.008812321197398072D0*Z(2)+0.0227345011107737D0*Z +++ &(1) +++ W(16)=1.019463911841327D0*Z(16)+(-0.2803531651057233D0*Z(15))+(-0. +++ &1165300508238904D0*Z(14))+(-0.1385343580686922D0*Z(13))+0.22647669 +++ &47290192D0*Z(12)+(-0.02434652144032987D0*Z(11))+(-0.04723268012114 +++ &625D0*Z(10))+(-0.03586220812223305D0*Z(9))+0.04932374658377151D0*Z +++ &(8)+0.00372306473653087D0*Z(7)+(-0.01219194009813166D0*Z(6))+(-0.0 +++ &07005540882865317D0*Z(5))+0.002957434991769087D0*Z(4)+0.0021069739 +++ &00813502D0*Z(3)+0.001747395874954051D0*Z(2)+0.01707454969713436D0* +++ &Z(1) +++ RETURN +++ END +++\end{verbatim} + +Asp28(name): Exports == Implementation where + name : Symbol + + FST ==> FortranScalarType + FT ==> FortranType + SYMTAB ==> SymbolTable + FC ==> FortranCode + PI ==> PositiveInteger + RSFC ==> Record(localSymbols:SymbolTable,code:List(FortranCode)) + EXPR ==> Expression + MFLOAT ==> MachineFloat + VEC ==> Vector + UFST ==> Union(fst:FST,void:"void") + MAT ==> Matrix + + Exports == FortranMatrixCategory + + Implementation == add + + + real : UFST := ["real"::FST]$UFST + syms : SYMTAB := empty() + declare!(IFLAG,fortranInteger(),syms)$SYMTAB + declare!(N,fortranInteger(),syms)$SYMTAB + declare!(LRWORK,fortranInteger(),syms)$SYMTAB + declare!(LIWORK,fortranInteger(),syms)$SYMTAB + xType : FT := construct(real,[N],false)$FT + declare!(Z,xType,syms)$SYMTAB + declare!(W,xType,syms)$SYMTAB + rType : FT := construct(real,[LRWORK],false)$FT + declare!(RWORK,rType,syms)$SYMTAB + iType : FT := construct(real,[LIWORK],false)$FT + declare!(IWORK,rType,syms)$SYMTAB + Rep := FortranProgram(name,["void"]$UFST, + [IFLAG,N,Z,W,RWORK,LRWORK,IWORK,LIWORK],syms) + + -- To help the poor old compiler! + localCoerce(u:Symbol):EXPR(MFLOAT) == coerce(u)$EXPR(MFLOAT) + + coerce (u:MAT MFLOAT):$ == + Zs: Symbol := Z + code : List FC + r: List EXPR MFLOAT + r := ["+"/[u(j,i)*localCoerce(elt(Zs,[i::OutputForm])$Symbol)_ + for i in 1..ncols(u)$MAT(MFLOAT)::PI]_ + for j in 1..nrows(u)$MAT(MFLOAT)::PI] + code := [assign(W@Symbol,vector(r)$VEC(EXPR MFLOAT)),returns()]$List(FC) + code::$ + + coerce(c:FortranCode):$ == coerce(c)$Rep + + coerce(r:RSFC):$ == coerce(r)$Rep + + coerce(c:List FortranCode):$ == coerce(c)$Rep + + coerce(u:$):OutputForm == coerce(u)$Rep + + outputAsFortran(u):Void == + p := checkPrecision()$NAGLinkSupportPackage + outputAsFortran(u)$Rep + p => restorePrecision()$NAGLinkSupportPackage + +@ +\section{domain ASP29 Asp29} +\pagehead{Asp29}{ASP29} +\pagepic{ps/v103asp29.ps}{ASP29}{1.00} +<<domain ASP29 Asp29>>= +)abbrev domain ASP29 Asp29 +++ Author: Mike Dewar and Godfrey Nolan +++ Date Created: Nov 1993 +++ Date Last Updated: 18 March 1994 +++ Related Constructors: FortranScalarFunctionCategory, FortranProgramCategory +++ Description: +++\spadtype{Asp29} produces Fortran for Type 29 ASPs, needed for NAG routine +++\axiomOpFrom{f02fjf}{f02Package}, for example: +++\begin{verbatim} +++ SUBROUTINE MONIT(ISTATE,NEXTIT,NEVALS,NEVECS,K,F,D) +++ DOUBLE PRECISION D(K),F(K) +++ INTEGER K,NEXTIT,NEVALS,NVECS,ISTATE +++ CALL F02FJZ(ISTATE,NEXTIT,NEVALS,NEVECS,K,F,D) +++ RETURN +++ END +++\end{verbatim} + +Asp29(name): Exports == Implementation where + name : Symbol + + FST ==> FortranScalarType + FT ==> FortranType + FSTU ==> Union(fst:FST,void:"void") + SYMTAB ==> SymbolTable + FC ==> FortranCode + PI ==> PositiveInteger + EXF ==> Expression Float + EXI ==> Expression Integer + VEF ==> Vector Expression Float + VEI ==> Vector Expression Integer + MEI ==> Matrix Expression Integer + MEF ==> Matrix Expression Float + UEXPR ==> Union(I: Expression Integer,F: Expression Float,_ + CF: Expression Complex Float) + RSFC ==> Record(localSymbols:SymbolTable,code:List(FortranCode)) + + Exports == FortranProgramCategory with + outputAsFortran:() -> Void + ++outputAsFortran() generates the default code for \spadtype{ASP29}. + + + Implementation == add + + import FST + import FT + import FC + import SYMTAB + + real : FSTU := ["real"::FST]$FSTU + integer : FSTU := ["integer"::FST]$FSTU + syms : SYMTAB := empty() + declare!(ISTATE,fortranInteger(),syms) + declare!(NEXTIT,fortranInteger(),syms) + declare!(NEVALS,fortranInteger(),syms) + declare!(NVECS,fortranInteger(),syms) + declare!(K,fortranInteger(),syms) + kType : FT := construct(real,[K],false)$FT + declare!(F,kType,syms) + declare!(D,kType,syms) + Rep := FortranProgram(name,["void"]$FSTU, + [ISTATE,NEXTIT,NEVALS,NEVECS,K,F,D],syms) + + + outputAsFortran():Void == + callOne := call("F02FJZ(ISTATE,NEXTIT,NEVALS,NEVECS,K,F,D)") + code : List FC := [callOne,returns()]$List(FC) + outputAsFortran(coerce(code)@Rep)$Rep + +@ +\section{domain ASP30 Asp30} +\pagehead{Asp30}{ASP30} +\pagepic{ps/v103asp30.ps}{ASP30}{1.00} +<<domain ASP30 Asp30>>= +)abbrev domain ASP30 Asp30 +++ Author: Mike Dewar and Godfrey Nolan +++ Date Created: Nov 1993 +++ Date Last Updated: 28 March 1994 +++ 6 October 1994 +++ Related Constructors: FortranScalarFunctionCategory, FortranProgramCategory +++ Description: +++\spadtype{Asp30} produces Fortran for Type 30 ASPs, needed for NAG routine +++\axiomOpFrom{f04qaf}{f04Package}, for example: +++\begin{verbatim} +++ SUBROUTINE APROD(MODE,M,N,X,Y,RWORK,LRWORK,IWORK,LIWORK) +++ DOUBLE PRECISION X(N),Y(M),RWORK(LRWORK) +++ INTEGER M,N,LIWORK,IFAIL,LRWORK,IWORK(LIWORK),MODE +++ DOUBLE PRECISION A(5,5) +++ EXTERNAL F06PAF +++ A(1,1)=1.0D0 +++ A(1,2)=0.0D0 +++ A(1,3)=0.0D0 +++ A(1,4)=-1.0D0 +++ A(1,5)=0.0D0 +++ ... [truncated message content] |
From: <gi...@ax...> - 2008-11-24 17:10:00
|
books/bookvol10.3.pamphlet | 8172 +++++++++++++++++++++++ books/ps/v103any.ps | 248 + books/ps/v103asp1.ps | 248 + books/ps/v103asp10.ps | 248 + books/ps/v103asp12.ps | 248 + books/ps/v103asp19.ps | 248 + books/ps/v103asp20.ps | 248 + books/ps/v103asp24.ps | 248 + books/ps/v103asp27.ps | 248 + books/ps/v103asp28.ps | 248 + books/ps/v103asp29.ps | 248 + books/ps/v103asp30.ps | 248 + books/ps/v103asp31.ps | 248 + books/ps/v103asp33.ps | 248 + books/ps/v103asp34.ps | 248 + books/ps/v103asp35.ps | 248 + books/ps/v103asp4.ps | 248 + books/ps/v103asp41.ps | 248 + books/ps/v103asp42.ps | 248 + books/ps/v103asp49.ps | 248 + books/ps/v103asp50.ps | 248 + books/ps/v103asp55.ps | 248 + books/ps/v103asp6.ps | 248 + books/ps/v103asp7.ps | 248 + books/ps/v103asp73.ps | 248 + books/ps/v103asp74.ps | 248 + books/ps/v103asp77.ps | 248 + books/ps/v103asp78.ps | 248 + books/ps/v103asp8.ps | 248 + books/ps/v103asp80.ps | 248 + books/ps/v103asp9.ps | 248 + books/ps/v103database.ps | 248 + books/ps/v103datalist.ps | 248 + books/ps/v103denavithartenbergmatrix.ps | 32 +- books/ps/v103flexiblearray.ps | 248 + books/ps/v103indexcard.ps | 248 + books/ps/v103indexedflexiblearray.ps | 248 + books/ps/v103indexedonedimensionalarray.ps | 248 + books/ps/v103indexedtwodimensionalarray.ps | 248 + books/ps/v103innerindexedtwodimensionalarray.ps | 248 + books/ps/v103none.ps | 248 + books/ps/v103numericalintegrationproblem.ps | 248 + books/ps/v103numericalodeproblem.ps | 248 + books/ps/v103numericaloptimizationproblem.ps | 248 + books/ps/v103numericalpdeproblem.ps | 248 + books/ps/v103onedimensionalarray.ps | 248 + books/ps/v103planealgebraiccurveplot.ps | 248 + books/ps/v103primitivearray.ps | 248 + books/ps/v103queryequation.ps | 248 + books/ps/v103simplealgebraicextension.ps | 248 + books/ps/v103tuple.ps | 248 + books/ps/v103twodimensionalarray.ps | 248 + changelog | 62 + faq | 61 + readme | 2 +- src/algebra/Makefile.pamphlet | 63 +- src/algebra/acplot.spad.pamphlet | 1253 +---- src/algebra/algext.spad.pamphlet | 240 - src/algebra/annacat.spad.pamphlet | 295 - src/algebra/any.spad.pamphlet | 179 - src/algebra/array1.spad.pamphlet | 1083 --- src/algebra/array2.spad.pamphlet | 654 -- src/algebra/asp.spad.pamphlet | 4297 ------------ src/axiom-website/patches.html | 4 + src/interp/setq.lisp.pamphlet | 2 +- 65 files changed, 20748 insertions(+), 8051 deletions(-) New commits: commit 6eb23f409bf8857b5f0660056c8b1b929906502a Author: Tim Daly <da...@ax...> Date: Sun Nov 9 14:55:05 2008 -0500 20081124 tpd src/axiom-website/patches.html 20081124 tpd books/bookvol10.3 add domains 20081124 tpd books/ps/v103twodimensionalarray.ps added 20081124 tpd books/ps/v103tuple.ps added 20081124 tpd books/ps/v103simplealgebraicextension.ps added 20081124 tpd books/ps/v103queryequation.ps added 20081124 tpd books/ps/v103primitivearray.ps added 20081124 tpd books/ps/v103planealgebraiccurveplot.ps added 20081124 tpd books/ps/v103onedimensionalarray.ps added 20081124 tpd books/ps/v103numericalpdeproblem.ps added 20081124 tpd books/ps/v103numericaloptimizationproblem.ps added 20081124 tpd books/ps/v103numericalodeproblem.ps added 20081124 tpd books/ps/v103numericalintegrationproblem.ps added 20081124 tpd books/ps/v103none.ps added 20081124 tpd books/ps/v103innerindexedtwodimensionalarray.ps added 20081124 tpd books/ps/v103indexedtwodimensionalarray.ps added 20081124 tpd books/ps/v103indexedonedimensionalarray.ps added 20081124 tpd books/ps/v103indexedflexiblearray.ps added 20081124 tpd books/ps/v103indexcard.ps added 20081124 tpd books/ps/v103flexiblearray.ps added 20081124 tpd books/ps/v103datalist.ps added 20081124 tpd books/ps/v103database.ps added 20081124 tpd books/ps/v103asp9.ps added 20081124 tpd books/ps/v103asp80.ps added 20081124 tpd books/ps/v103asp8.ps added 20081124 tpd books/ps/v103asp78.ps added 20081124 tpd books/ps/v103asp77.ps added 20081124 tpd books/ps/v103asp74.ps added 20081124 tpd books/ps/v103asp73.ps added 20081124 tpd books/ps/v103asp7.ps added 20081124 tpd books/ps/v103asp6.ps added 20081124 tpd books/ps/v103asp55.ps added 20081124 tpd books/ps/v103asp50.ps added 20081124 tpd books/ps/v103asp49.ps added 20081124 tpd books/ps/v103asp42.ps added 20081124 tpd books/ps/v103asp41.ps added 20081124 tpd books/ps/v103asp4.ps added 20081124 tpd books/ps/v103asp35.ps added 20081124 tpd books/ps/v103asp34.ps added 20081124 tpd books/ps/v103asp33.ps added 20081124 tpd books/ps/v103asp31.ps added 20081124 tpd books/ps/v103asp30.ps added 20081124 tpd books/ps/v103asp29.ps added 20081124 tpd books/ps/v103asp28.ps added 20081124 tpd books/ps/v103asp27.ps added 20081124 tpd books/ps/v103asp24.ps added 20081124 tpd books/ps/v103asp20.ps added 20081124 tpd books/ps/v103asp19.ps added 20081124 tpd books/ps/v103asp12.ps added 20081124 tpd books/ps/v103asp10.ps added 20081124 tpd books/ps/v103asp1.ps added 20081124 tpd books/ps/v103any.ps added 20081124 tpd src/algebra/Makefile remove asp.spad 20081124 tpd src/algebra/asp.spad removed, move domains to bookvol10.4 20081124 tpd src/algebra/Makefile remove array2.spad, fix help files 20081124 tpd src/algebra/array2.spad removed, move domains to bookvol10.3 20081124 tpd src/algebra/array1.spad move domains to bookvol10.3 20081124 tpd src/algebra/any.spad move domains to bookvol10.3 20081124 tpd src/axiom-website/patches.html 20081124.01.tpd.patch commit a89301778b6b852405832a90221b2b8e9831a189 Author: Tim Daly <da...@ax...> Date: Sun Nov 9 10:08:44 2008 -0500 20081124 tpd src/interp/setq.lisp remove date information for releases 20081124 tpd readme remove date information for releases 20081124 tpd faq document using new GCL |
From: <da...@us...> - 2008-11-24 11:13:11
|
Revision: 1016 http://axiom.svn.sourceforge.net/axiom/?rev=1016&view=rev Author: daly Date: 2008-11-24 11:13:07 +0000 (Mon, 24 Nov 2008) Log Message: ----------- 20081124 tpd src/interp/setq.lisp remove date information for releases 20081124 tpd readme remove date information for releases 20081124 tpd faq document using new GCL Modified Paths: -------------- trunk/axiom/changelog trunk/axiom/faq trunk/axiom/readme trunk/axiom/src/interp/setq.lisp.pamphlet Modified: trunk/axiom/changelog =================================================================== --- trunk/axiom/changelog 2008-11-24 06:11:14 UTC (rev 1015) +++ trunk/axiom/changelog 2008-11-24 11:13:07 UTC (rev 1016) @@ -1,3 +1,6 @@ +20081124 tpd src/interp/setq.lisp remove date information for releases +20081124 tpd readme remove date information for releases +20081124 tpd faq document using new GCL 20081123 tpd src/axiom-website/patches.html 20081123.01.tpd.patch 20081123 tpd src/algebra/fraction.spad missed file for category change 20081122 tpd src/axiom-website/patches.html 20081122.02.tpd.patch Modified: trunk/axiom/faq =================================================================== --- trunk/axiom/faq 2008-11-24 06:11:14 UTC (rev 1015) +++ trunk/axiom/faq 2008-11-24 11:13:07 UTC (rev 1016) @@ -47,6 +47,7 @@ FAQ 46: Axiom trademark information FAQ 47: Axiom won't build on Fedora 9 (SELinux) FAQ 48: Getting Axiom sources from git +FAQ 49: How do I get the lastest GCL? =================================================================== FAQ 0: How do I use Axiom? @@ -1759,3 +1760,63 @@ for further information. +=================================================================== +FAQ 49: How do I get the lastest GCL? +=================================================================== + +You can use the latest version of GCL although it will require +a few steps. Axiom builds GCL by untaring the GCL source tree +from a file in the axiom/zips subdirectory. Then it applies some +local patches to the source tree. Finally, it builds GCL. + +Under the control of axiom/lsp/Makefile(.pamphlet) the steps are: + * axiom/zips/GCLVERSION.tgz -> axiom/lsp/GCLVERSION + * apply patches + * cd axiom/lsp/GCLVERSION + * ./configure GCLOPTS + * make + +The file and patches chosen are prefixed by the GCLVERSION +variable string. For example, if GCLVERSION=gcl-2.6.7 we would see +axiom/zips/gcl-2.6.7.tgz +axiom/zips/gcl-2.6.7-somefilepath1.patch +axiom/zips/gcl-2.6.7-somefilepath2.patch + ... + +Thus we can introduce new versions of GCL by fetching the new +code, giving it a name (in this case gcl-2.6.8pre3), and +setting the GCLVERSION to that name. + +Note that you may have to modify the patches. The patches are applied +using the axiom/lsp/Makefile.pamphlet file so if you add or delete +patches you have to set up corresponding chunks. There are very few +patches as almost every change has been accepted upstream. Most +patches have been stable for the lifetime of Axiom. + +Unless you're chasing a bug it is unlikely you will ever have +to do this. + +1) First we fetch the latest code: +cvs -z3 -d:pserver:ano...@cv...:/sources/gcl + co -r Version_2_6_8pre -d gcl-2.6.8pre gcl + +2) Next we rename it to be the same as the GCLVERSION variable: +mv gcl-2.6.8pre gcl-2.6.8pre3 + +3) Next we tar-gzip the directory +tar -zcf gcl-2.6.8pre3.tgz gcl-2.6.8pre3 + +4) Put the latest tgz file into the proper location in Axiom: +cp gcl-2.6.8pre3.tgz axiom/zips + +5) Modify axiom/Makefile GCLVERSION variable to read: +GCLVERSION=gcl-2.6.8pre3 + +5) Modify axiom/Makefile.pamphlet GCLVERSION variable to read: +GCLVERSION=gcl-2.6.8pre3 + +6) Copy any needed patches from the previous version (likely all) +and rename them using the new GCLVERSION prefix + +7) In the axiom top level directory type: +make \ No newline at end of file Modified: trunk/axiom/readme =================================================================== --- trunk/axiom/readme 2008-11-24 06:11:14 UTC (rev 1015) +++ trunk/axiom/readme 2008-11-24 11:13:07 UTC (rev 1016) @@ -175,7 +175,7 @@ )credits at the axiom command prompt will prettyprint the list. -"An alphabetical listing of contributors to AXIOM (to July, 2007):" +"An alphabetical listing of contributors to AXIOM:" "Cyril Alberga Roy Adler Christian Aistleitner" "Richard Anderson George Andrews S.J. Atkins" "Henry Baker Stephen Balzac Yurij Baransky" Modified: trunk/axiom/src/interp/setq.lisp.pamphlet =================================================================== --- trunk/axiom/src/interp/setq.lisp.pamphlet 2008-11-24 06:11:14 UTC (rev 1015) +++ trunk/axiom/src/interp/setq.lisp.pamphlet 2008-11-24 11:13:07 UTC (rev 1016) @@ -586,7 +586,7 @@ (setq |$profileCompiler| nil) (setq credits '( -"An alphabetical listing of contributors to AXIOM (to July, 2007):" +"An alphabetical listing of contributors to AXIOM:" "Cyril Alberga Roy Adler Christian Aistleitner" "Richard Anderson George Andrews S.J. Atkins" "Henry Baker Stephen Balzac Yurij Baransky" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <da...@us...> - 2008-11-24 06:11:18
|
Revision: 1015 http://axiom.svn.sourceforge.net/axiom/?rev=1015&view=rev Author: daly Date: 2008-11-24 06:11:14 +0000 (Mon, 24 Nov 2008) Log Message: ----------- 20081123 tpd src/axiom-website/patches.html 20081123.01.tpd.patch 20081123 tpd src/algebra/fraction.spad missed file for category change Modified Paths: -------------- trunk/axiom/changelog trunk/axiom/src/algebra/fraction.spad.pamphlet trunk/axiom/src/axiom-website/patches.html Modified: trunk/axiom/changelog =================================================================== --- trunk/axiom/changelog 2008-11-24 03:20:41 UTC (rev 1014) +++ trunk/axiom/changelog 2008-11-24 06:11:14 UTC (rev 1015) @@ -1,3 +1,6 @@ +20081123 tpd src/axiom-website/patches.html 20081123.01.tpd.patch +20081123 tpd src/algebra/fraction.spad missed file for category change +20081122 tpd src/axiom-website/patches.html 20081122.02.tpd.patch 20081122 tpd src/axiom-website put website under change control 20081122 tpd zips/gcl-2.6.8pre3.unixport.makefile.patch added 20081122 tpd zips/gcl-2.6.8pre3.unixport.init_gcl.lsp.in.patch added Modified: trunk/axiom/src/algebra/fraction.spad.pamphlet =================================================================== --- trunk/axiom/src/algebra/fraction.spad.pamphlet 2008-11-24 03:20:41 UTC (rev 1014) +++ trunk/axiom/src/algebra/fraction.spad.pamphlet 2008-11-24 06:11:14 UTC (rev 1015) @@ -109,251 +109,6 @@ characteristic() == characteristic()$A @ -\section{category QFCAT QuotientFieldCategory} -<<category QFCAT QuotientFieldCategory>>= -)abbrev category QFCAT QuotientFieldCategory -++ Author: -++ Date Created: -++ Date Last Updated: 5th March 1996 -++ Basic Functions: + - * / numer denom -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: -++ References: -++ Description: QuotientField(S) is the -++ category of fractions of an Integral Domain S. -QuotientFieldCategory(S: IntegralDomain): Category == - Join(Field, Algebra S, RetractableTo S, FullyEvalableOver S, - DifferentialExtension S, FullyLinearlyExplicitRingOver S, - Patternable S, FullyPatternMatchable S) with - _/ : (S, S) -> % - ++ d1 / d2 returns the fraction d1 divided by d2. - numer : % -> S - ++ numer(x) returns the numerator of the fraction x. - denom : % -> S - ++ denom(x) returns the denominator of the fraction x. - numerator : % -> % - ++ numerator(x) is the numerator of the fraction x converted to %. - denominator : % -> % - ++ denominator(x) is the denominator of the fraction x converted to %. - if S has StepThrough then StepThrough - if S has RetractableTo Integer then - RetractableTo Integer - RetractableTo Fraction Integer - if S has OrderedSet then OrderedSet - if S has OrderedIntegralDomain then OrderedIntegralDomain - if S has RealConstant then RealConstant - if S has ConvertibleTo InputForm then ConvertibleTo InputForm - if S has CharacteristicZero then CharacteristicZero - if S has CharacteristicNonZero then CharacteristicNonZero - if S has RetractableTo Symbol then RetractableTo Symbol - if S has EuclideanDomain then - wholePart: % -> S - ++ wholePart(x) returns the whole part of the fraction x - ++ i.e. the truncated quotient of the numerator by the denominator. - fractionPart: % -> % - ++ fractionPart(x) returns the fractional part of x. - ++ x = wholePart(x) + fractionPart(x) - if S has IntegerNumberSystem then - random: () -> % - ++ random() returns a random fraction. - ceiling : % -> S - ++ ceiling(x) returns the smallest integral element above x. - floor: % -> S - ++ floor(x) returns the largest integral element below x. - if S has PolynomialFactorizationExplicit then - PolynomialFactorizationExplicit - - add - import MatrixCommonDenominator(S, %) - numerator(x) == numer(x)::% - denominator(x) == denom(x) ::% - - if S has StepThrough then - init() == init()$S / 1$S - - nextItem(n) == - m:= nextItem(numer(n)) - m case "failed" => - error "We seem to have a Fraction of a finite object" - m / 1 - - map(fn, x) == (fn numer x) / (fn denom x) - reducedSystem(m:Matrix %):Matrix S == clearDenominator m - characteristic() == characteristic()$S - - differentiate(x:%, deriv:S -> S) == - n := numer x - d := denom x - (deriv n * d - n * deriv d) / (d**2) - - if S has ConvertibleTo InputForm then - convert(x:%):InputForm == (convert numer x) / (convert denom x) - - if S has RealConstant then - convert(x:%):Float == (convert numer x) / (convert denom x) - convert(x:%):DoubleFloat == (convert numer x) / (convert denom x) - - -- Note that being a Join(OrderedSet,IntegralDomain) is not the same - -- as being an OrderedIntegralDomain. - if S has OrderedIntegralDomain then - if S has canonicalUnitNormal then - x:% < y:% == - (numer x * denom y) < (numer y * denom x) - else - x:% < y:% == - if denom(x) < 0 then (x,y):=(y,x) - if denom(y) < 0 then (x,y):=(y,x) - (numer x * denom y) < (numer y * denom x) - else if S has OrderedSet then - x:% < y:% == - (numer x * denom y) < (numer y * denom x) - - if (S has EuclideanDomain) then - fractionPart x == x - (wholePart(x)::%) - - if S has RetractableTo Symbol then - coerce(s:Symbol):% == s::S::% - retract(x:%):Symbol == retract(retract(x)@S) - - retractIfCan(x:%):Union(Symbol, "failed") == - (r := retractIfCan(x)@Union(S,"failed")) case "failed" =>"failed" - retractIfCan(r::S) - - if (S has ConvertibleTo Pattern Integer) then - convert(x:%):Pattern(Integer)==(convert numer x)/(convert denom x) - - if (S has PatternMatchable Integer) then - patternMatch(x:%, p:Pattern Integer, - l:PatternMatchResult(Integer, %)) == - patternMatch(x, p, - l)$PatternMatchQuotientFieldCategory(Integer, S, %) - - if (S has ConvertibleTo Pattern Float) then - convert(x:%):Pattern(Float) == (convert numer x)/(convert denom x) - - if (S has PatternMatchable Float) then - patternMatch(x:%, p:Pattern Float, - l:PatternMatchResult(Float, %)) == - patternMatch(x, p, - l)$PatternMatchQuotientFieldCategory(Float, S, %) - - if S has RetractableTo Integer then - coerce(x:Fraction Integer):% == numer(x)::% / denom(x)::% - - if not(S is Integer) then - retract(x:%):Integer == retract(retract(x)@S) - - retractIfCan(x:%):Union(Integer, "failed") == - (u := retractIfCan(x)@Union(S, "failed")) case "failed" => - "failed" - retractIfCan(u::S) - - if S has IntegerNumberSystem then - random():% == - while zero?(d:=random()$S) repeat d - random()$S / d - - reducedSystem(m:Matrix %, v:Vector %): - Record(mat:Matrix S, vec:Vector S) == - n := reducedSystem(horizConcat(v::Matrix(%), m))@Matrix(S) - [subMatrix(n, minRowIndex n, maxRowIndex n, 1 + minColIndex n, - maxColIndex n), column(n, minColIndex n)] - -@ -\section{QFCAT.lsp BOOTSTRAP} -{\bf QFCAT} depends on a chain of files. We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf QFCAT} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf QFCAT.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. - -Note that this code is not included in the generated catdef.spad file. - -<<QFCAT.lsp BOOTSTRAP>>= - -(|/VERSIONCHECK| 2) - -(SETQ |QuotientFieldCategory;CAT| (QUOTE NIL)) - -(SETQ |QuotientFieldCategory;AL| (QUOTE NIL)) - -(DEFUN |QuotientFieldCategory| (#1=#:G103631) (LET (#2=#:G103632) (COND ((SETQ #2# (|assoc| (|devaluate| #1#) |QuotientFieldCategory;AL|)) (CDR #2#)) (T (SETQ |QuotientFieldCategory;AL| (|cons5| (CONS (|devaluate| #1#) (SETQ #2# (|QuotientFieldCategory;| #1#))) |QuotientFieldCategory;AL|)) #2#)))) - -(DEFUN |QuotientFieldCategory;| (|t#1|) (PROG (#1=#:G103630) (RETURN (PROG1 (LETT #1# (|sublisV| (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) (COND (|QuotientFieldCategory;CAT|) ((QUOTE T) (LETT |QuotientFieldCategory;CAT| (|Join| (|Field|) (|Algebra| (QUOTE |t#1|)) (|RetractableTo| (QUOTE |t#1|)) (|FullyEvalableOver| (QUOTE |t#1|)) (|DifferentialExtension| (QUOTE |t#1|)) (|FullyLinearlyExplicitRingOver| (QUOTE |t#1|)) (|Patternable| (QUOTE |t#1|)) (|FullyPatternMatchable| (QUOTE |t#1|)) (|mkCategory| (QUOTE |domain|) (QUOTE (((|/| (|$| |t#1| |t#1|)) T) ((|numer| (|t#1| |$|)) T) ((|denom| (|t#1| |$|)) T) ((|numerator| (|$| |$|)) T) ((|denominator| (|$| |$|)) T) ((|wholePart| (|t#1| |$|)) (|has| |t#1| (|EuclideanDomain|))) ((|fractionPart| (|$| |$|)) (|has| |t#1| (|EuclideanDomain|))) ((|random| (|$|)) (|has| |t#1| (|IntegerNumberSystem|))) ((|ceiling| (|t#1| |$|)) (|has| |t#1| (|IntegerNumberSystem|))) ((|floor| (|t#1| |$|)) (|has| |t#1| (|IntegerNumberSystem|))))) (QUOTE (((|StepThrough|) (|has| |t#1| (|StepThrough|))) ((|RetractableTo| (|Integer|)) (|has| |t#1| (|RetractableTo| (|Integer|)))) ((|RetractableTo| (|Fraction| (|Integer|))) (|has| |t#1| (|RetractableTo| (|Integer|)))) ((|OrderedSet|) (|has| |t#1| (|OrderedSet|))) ((|OrderedIntegralDomain|) (|has| |t#1| (|OrderedIntegralDomain|))) ((|RealConstant|) (|has| |t#1| (|RealConstant|))) ((|ConvertibleTo| (|InputForm|)) (|has| |t#1| (|ConvertibleTo| (|InputForm|)))) ((|CharacteristicZero|) (|has| |t#1| (|CharacteristicZero|))) ((|CharacteristicNonZero|) (|has| |t#1| (|CharacteristicNonZero|))) ((|RetractableTo| (|Symbol|)) (|has| |t#1| (|RetractableTo| (|Symbol|)))) ((|PolynomialFactorizationExplicit|) (|has| |t#1| (|PolynomialFactorizationExplicit|))))) (QUOTE NIL) NIL)) . #2=(|QuotientFieldCategory|))))) . #2#) (SETELT #1# 0 (LIST (QUOTE |QuotientFieldCategory|) (|devaluate| |t#1|))))))) -@ -\section{QFCAT-.lsp BOOTSTRAP} -{\bf QFCAT-} depends on {\bf QFCAT}. We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf QFCAT-} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf QFCAT-.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. - -Note that this code is not included in the generated catdef.spad file. - -<<QFCAT-.lsp BOOTSTRAP>>= - -(|/VERSIONCHECK| 2) - -(DEFUN |QFCAT-;numerator;2A;1| (|x| |$|) (SPADCALL (SPADCALL |x| (QREFELT |$| 8)) (QREFELT |$| 9))) - -(DEFUN |QFCAT-;denominator;2A;2| (|x| |$|) (SPADCALL (SPADCALL |x| (QREFELT |$| 11)) (QREFELT |$| 9))) - -(DEFUN |QFCAT-;init;A;3| (|$|) (SPADCALL (|spadConstant| |$| 13) (|spadConstant| |$| 14) (QREFELT |$| 15))) - -(DEFUN |QFCAT-;nextItem;AU;4| (|n| |$|) (PROG (|m|) (RETURN (SEQ (LETT |m| (SPADCALL (SPADCALL |n| (QREFELT |$| 8)) (QREFELT |$| 18)) |QFCAT-;nextItem;AU;4|) (EXIT (COND ((QEQCAR |m| 1) (|error| "We seem to have a Fraction of a finite object")) ((QUOTE T) (CONS 0 (SPADCALL (QCDR |m|) (|spadConstant| |$| 14) (QREFELT |$| 15)))))))))) - -(DEFUN |QFCAT-;map;M2A;5| (|fn| |x| |$|) (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT |$| 8)) |fn|) (SPADCALL (SPADCALL |x| (QREFELT |$| 11)) |fn|) (QREFELT |$| 15))) - -(DEFUN |QFCAT-;reducedSystem;MM;6| (|m| |$|) (SPADCALL |m| (QREFELT |$| 26))) - -(DEFUN |QFCAT-;characteristic;Nni;7| (|$|) (SPADCALL (QREFELT |$| 30))) - -(DEFUN |QFCAT-;differentiate;AMA;8| (|x| |deriv| |$|) (PROG (|n| |d|) (RETURN (SEQ (LETT |n| (SPADCALL |x| (QREFELT |$| 8)) |QFCAT-;differentiate;AMA;8|) (LETT |d| (SPADCALL |x| (QREFELT |$| 11)) |QFCAT-;differentiate;AMA;8|) (EXIT (SPADCALL (SPADCALL (SPADCALL (SPADCALL |n| |deriv|) |d| (QREFELT |$| 32)) (SPADCALL |n| (SPADCALL |d| |deriv|) (QREFELT |$| 32)) (QREFELT |$| 33)) (SPADCALL |d| 2 (QREFELT |$| 35)) (QREFELT |$| 15))))))) - -(DEFUN |QFCAT-;convert;AIf;9| (|x| |$|) (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT |$| 8)) (QREFELT |$| 38)) (SPADCALL (SPADCALL |x| (QREFELT |$| 11)) (QREFELT |$| 38)) (QREFELT |$| 39))) - -(DEFUN |QFCAT-;convert;AF;10| (|x| |$|) (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT |$| 8)) (QREFELT |$| 42)) (SPADCALL (SPADCALL |x| (QREFELT |$| 11)) (QREFELT |$| 42)) (QREFELT |$| 43))) - -(DEFUN |QFCAT-;convert;ADf;11| (|x| |$|) (|/| (SPADCALL (SPADCALL |x| (QREFELT |$| 8)) (QREFELT |$| 46)) (SPADCALL (SPADCALL |x| (QREFELT |$| 11)) (QREFELT |$| 46)))) - -(DEFUN |QFCAT-;<;2AB;12| (|x| |y| |$|) (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT |$| 8)) (SPADCALL |y| (QREFELT |$| 11)) (QREFELT |$| 32)) (SPADCALL (SPADCALL |y| (QREFELT |$| 8)) (SPADCALL |x| (QREFELT |$| 11)) (QREFELT |$| 32)) (QREFELT |$| 49))) - -(DEFUN |QFCAT-;<;2AB;13| (|x| |y| |$|) (PROG (|#G19| |#G20| |#G21| |#G22|) (RETURN (SEQ (COND ((SPADCALL (SPADCALL |x| (QREFELT |$| 11)) (|spadConstant| |$| 51) (QREFELT |$| 49)) (PROGN (LETT |#G19| |y| |QFCAT-;<;2AB;13|) (LETT |#G20| |x| |QFCAT-;<;2AB;13|) (LETT |x| |#G19| |QFCAT-;<;2AB;13|) (LETT |y| |#G20| |QFCAT-;<;2AB;13|)))) (COND ((SPADCALL (SPADCALL |y| (QREFELT |$| 11)) (|spadConstant| |$| 51) (QREFELT |$| 49)) (PROGN (LETT |#G21| |y| |QFCAT-;<;2AB;13|) (LETT |#G22| |x| |QFCAT-;<;2AB;13|) (LETT |x| |#G21| |QFCAT-;<;2AB;13|) (LETT |y| |#G22| |QFCAT-;<;2AB;13|)))) (EXIT (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT |$| 8)) (SPADCALL |y| (QREFELT |$| 11)) (QREFELT |$| 32)) (SPADCALL (SPADCALL |y| (QREFELT |$| 8)) (SPADCALL |x| (QREFELT |$| 11)) (QREFELT |$| 32)) (QREFELT |$| 49))))))) - -(DEFUN |QFCAT-;<;2AB;14| (|x| |y| |$|) (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT |$| 8)) (SPADCALL |y| (QREFELT |$| 11)) (QREFELT |$| 32)) (SPADCALL (SPADCALL |y| (QREFELT |$| 8)) (SPADCALL |x| (QREFELT |$| 11)) (QREFELT |$| 32)) (QREFELT |$| 49))) - -(DEFUN |QFCAT-;fractionPart;2A;15| (|x| |$|) (SPADCALL |x| (SPADCALL (SPADCALL |x| (QREFELT |$| 52)) (QREFELT |$| 9)) (QREFELT |$| 53))) - -(DEFUN |QFCAT-;coerce;SA;16| (|s| |$|) (SPADCALL (SPADCALL |s| (QREFELT |$| 56)) (QREFELT |$| 9))) - -(DEFUN |QFCAT-;retract;AS;17| (|x| |$|) (SPADCALL (SPADCALL |x| (QREFELT |$| 58)) (QREFELT |$| 59))) - -(DEFUN |QFCAT-;retractIfCan;AU;18| (|x| |$|) (PROG (|r|) (RETURN (SEQ (LETT |r| (SPADCALL |x| (QREFELT |$| 62)) |QFCAT-;retractIfCan;AU;18|) (EXIT (COND ((QEQCAR |r| 1) (CONS 1 "failed")) ((QUOTE T) (SPADCALL (QCDR |r|) (QREFELT |$| 64))))))))) - -(DEFUN |QFCAT-;convert;AP;19| (|x| |$|) (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT |$| 8)) (QREFELT |$| 67)) (SPADCALL (SPADCALL |x| (QREFELT |$| 11)) (QREFELT |$| 67)) (QREFELT |$| 68))) - -(DEFUN |QFCAT-;patternMatch;AP2Pmr;20| (|x| |p| |l| |$|) (SPADCALL |x| |p| |l| (QREFELT |$| 72))) - -(DEFUN |QFCAT-;convert;AP;21| (|x| |$|) (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT |$| 8)) (QREFELT |$| 76)) (SPADCALL (SPADCALL |x| (QREFELT |$| 11)) (QREFELT |$| 76)) (QREFELT |$| 77))) - -(DEFUN |QFCAT-;patternMatch;AP2Pmr;22| (|x| |p| |l| |$|) (SPADCALL |x| |p| |l| (QREFELT |$| 81))) - -(DEFUN |QFCAT-;coerce;FA;23| (|x| |$|) (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT |$| 86)) (QREFELT |$| 87)) (SPADCALL (SPADCALL |x| (QREFELT |$| 88)) (QREFELT |$| 87)) (QREFELT |$| 89))) - -(DEFUN |QFCAT-;retract;AI;24| (|x| |$|) (SPADCALL (SPADCALL |x| (QREFELT |$| 58)) (QREFELT |$| 91))) - -(DEFUN |QFCAT-;retractIfCan;AU;25| (|x| |$|) (PROG (|u|) (RETURN (SEQ (LETT |u| (SPADCALL |x| (QREFELT |$| 62)) |QFCAT-;retractIfCan;AU;25|) (EXIT (COND ((QEQCAR |u| 1) (CONS 1 "failed")) ((QUOTE T) (SPADCALL (QCDR |u|) (QREFELT |$| 94))))))))) - -(DEFUN |QFCAT-;random;A;26| (|$|) (PROG (|d|) (RETURN (SEQ (SEQ G190 (COND ((NULL (SPADCALL (LETT |d| (SPADCALL (QREFELT |$| 96)) |QFCAT-;random;A;26|) (QREFELT |$| 97))) (GO G191))) (SEQ (EXIT |d|)) NIL (GO G190) G191 (EXIT NIL)) (EXIT (SPADCALL (SPADCALL (QREFELT |$| 96)) |d| (QREFELT |$| 15))))))) - -(DEFUN |QFCAT-;reducedSystem;MVR;27| (|m| |v| |$|) (PROG (|n|) (RETURN (SEQ (LETT |n| (SPADCALL (SPADCALL (SPADCALL |v| (QREFELT |$| 100)) |m| (QREFELT |$| 101)) (QREFELT |$| 102)) |QFCAT-;reducedSystem;MVR;27|) (EXIT (CONS (SPADCALL |n| (SPADCALL |n| (QREFELT |$| 103)) (SPADCALL |n| (QREFELT |$| 104)) (|+| 1 (SPADCALL |n| (QREFELT |$| 105))) (SPADCALL |n| (QREFELT |$| 106)) (QREFELT |$| 107)) (SPADCALL |n| (SPADCALL |n| (QREFELT |$| 105)) (QREFELT |$| 109)))))))) - -(DEFUN |QuotientFieldCategory&| (|#1| |#2|) (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) (RETURN (PROGN (LETT |DV$1| (|devaluate| |#1|) . #1=(|QuotientFieldCategory&|)) (LETT |DV$2| (|devaluate| |#2|) . #1#) (LETT |dv$| (LIST (QUOTE |QuotientFieldCategory&|) |DV$1| |DV$2|) . #1#) (LETT |$| (GETREFV 119) . #1#) (QSETREFV |$| 0 |dv$|) (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 (LIST (|HasCategory| |#2| (QUOTE (|PolynomialFactorizationExplicit|))) (|HasCategory| |#2| (QUOTE (|IntegerNumberSystem|))) (|HasCategory| |#2| (QUOTE (|EuclideanDomain|))) (|HasCategory| |#2| (QUOTE (|RetractableTo| (|Symbol|)))) (|HasCategory| |#2| (QUOTE (|CharacteristicNonZero|))) (|HasCategory| |#2| (QUOTE (|CharacteristicZero|))) (|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|InputForm|)))) (|HasCategory| |#2| (QUOTE (|RealConstant|))) (|HasCategory| |#2| (QUOTE (|OrderedIntegralDomain|))) (|HasCategory| |#2| (QUOTE (|OrderedSet|))) (|HasCategory| |#2| (QUOTE (|RetractableTo| (|Integer|)))) (|HasCategory| |#2| (QUOTE (|StepThrough|))))) . #1#)) (|stuffDomainSlots| |$|) (QSETREFV |$| 6 |#1|) (QSETREFV |$| 7 |#2|) (COND ((|testBitVector| |pv$| 12) (PROGN (QSETREFV |$| 16 (CONS (|dispatchFunction| |QFCAT-;init;A;3|) |$|)) (QSETREFV |$| 20 (CONS (|dispatchFunction| |QFCAT-;nextItem;AU;4|) |$|))))) (COND ((|testBitVector| |pv$| 7) (QSETREFV |$| 40 (CONS (|dispatchFunction| |QFCAT-;convert;AIf;9|) |$|)))) (COND ((|testBitVector| |pv$| 8) (PROGN (QSETREFV |$| 44 (CONS (|dispatchFunction| |QFCAT-;convert;AF;10|) |$|)) (QSETREFV |$| 47 (CONS (|dispatchFunction| |QFCAT-;convert;ADf;11|) |$|))))) (COND ((|testBitVector| |pv$| 9) (COND ((|HasAttribute| |#2| (QUOTE |canonicalUnitNormal|)) (QSETREFV |$| 50 (CONS (|dispatchFunction| |QFCAT-;<;2AB;12|) |$|))) ((QUOTE T) (QSETREFV |$| 50 (CONS (|dispatchFunction| |QFCAT-;<;2AB;13|) |$|))))) ((|testBitVector| |pv$| 10) (QSETREFV |$| 50 (CONS (|dispatchFunction| |QFCAT-;<;2AB;14|) |$|)))) (COND ((|testBitVector| |pv$| 3) (QSETREFV |$| 54 (CONS (|dispatchFunction| |QFCAT-;fractionPart;2A;15|) |$|)))) (COND ((|testBitVector| |pv$| 4) (PROGN (QSETREFV |$| 57 (CONS (|dispatchFunction| |QFCAT-;coerce;SA;16|) |$|)) (QSETREFV |$| 60 (CONS (|dispatchFunction| |QFCAT-;retract;AS;17|) |$|)) (QSETREFV |$| 65 (CONS (|dispatchFunction| |QFCAT-;retractIfCan;AU;18|) |$|))))) (COND ((|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|Pattern| (|Integer|))))) (PROGN (QSETREFV |$| 69 (CONS (|dispatchFunction| |QFCAT-;convert;AP;19|) |$|)) (COND ((|HasCategory| |#2| (QUOTE (|PatternMatchable| (|Integer|)))) (QSETREFV |$| 74 (CONS (|dispatchFunction| |QFCAT-;patternMatch;AP2Pmr;20|) |$|))))))) (COND ((|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|Pattern| (|Float|))))) (PROGN (QSETREFV |$| 78 (CONS (|dispatchFunction| |QFCAT-;convert;AP;21|) |$|)) (COND ((|HasCategory| |#2| (QUOTE (|PatternMatchable| (|Float|)))) (QSETREFV |$| 83 (CONS (|dispatchFunction| |QFCAT-;patternMatch;AP2Pmr;22|) |$|))))))) (COND ((|testBitVector| |pv$| 11) (PROGN (QSETREFV |$| 90 (CONS (|dispatchFunction| |QFCAT-;coerce;FA;23|) |$|)) (COND ((|domainEqual| |#2| (|Integer|))) ((QUOTE T) (PROGN (QSETREFV |$| 92 (CONS (|dispatchFunction| |QFCAT-;retract;AI;24|) |$|)) (QSETREFV |$| 95 (CONS (|dispatchFunction| |QFCAT-;retractIfCan;AU;25|) |$|)))))))) (COND ((|testBitVector| |pv$| 2) (QSETREFV |$| 98 (CONS (|dispatchFunction| |QFCAT-;random;A;26|) |$|)))) |$|)))) - -(MAKEPROP (QUOTE |QuotientFieldCategory&|) (QUOTE |infovec|) (LIST (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (0 . |numer|) (5 . |coerce|) |QFCAT-;numerator;2A;1| (10 . |denom|) |QFCAT-;denominator;2A;2| (15 . |init|) (19 . |One|) (23 . |/|) (29 . |init|) (|Union| |$| (QUOTE "failed")) (33 . |nextItem|) (38 . |One|) (42 . |nextItem|) (|Mapping| 7 7) |QFCAT-;map;M2A;5| (|Matrix| 7) (|Matrix| 6) (|MatrixCommonDenominator| 7 6) (47 . |clearDenominator|) (|Matrix| |$|) |QFCAT-;reducedSystem;MM;6| (|NonNegativeInteger|) (52 . |characteristic|) |QFCAT-;characteristic;Nni;7| (56 . |*|) (62 . |-|) (|PositiveInteger|) (68 . |**|) |QFCAT-;differentiate;AMA;8| (|InputForm|) (74 . |convert|) (79 . |/|) (85 . |convert|) (|Float|) (90 . |convert|) (95 . |/|) (101 . |convert|) (|DoubleFloat|) (106 . |convert|) (111 . |convert|) (|Boolean|) (116 . |<|) (122 . |<|) (128 . |Zero|) (132 . |wholePart|) (137 . |-|) (143 . |fractionPart|) (|Symbol|) (148 . |coerce|) (153 . |coerce|) (158 . |retract|) (163 . |retract|) (168 . |retract|) (|Union| 7 (QUOTE "failed")) (173 . |retractIfCan|) (|Union| 55 (QUOTE "failed")) (178 . |retractIfCan|) (183 . |retractIfCan|) (|Pattern| 84) (188 . |convert|) (193 . |/|) (199 . |convert|) (|PatternMatchResult| 84 6) (|PatternMatchQuotientFieldCategory| 84 7 6) (204 . |patternMatch|) (|PatternMatchResult| 84 |$|) (211 . |patternMatch|) (|Pattern| 41) (218 . |convert|) (223 . |/|) (229 . |convert|) (|PatternMatchResult| 41 6) (|PatternMatchQuotientFieldCategory| 41 7 6) (234 . |patternMatch|) (|PatternMatchResult| 41 |$|) (241 . |patternMatch|) (|Integer|) (|Fraction| 84) (248 . |numer|) (253 . |coerce|) (258 . |denom|) (263 . |/|) (269 . |coerce|) (274 . |retract|) (279 . |retract|) (|Union| 84 (QUOTE "failed")) (284 . |retractIfCan|) (289 . |retractIfCan|) (294 . |random|) (298 . |zero?|) (303 . |random|) (|Vector| 6) (307 . |coerce|) (312 . |horizConcat|) (318 . |reducedSystem|) (323 . |minRowIndex|) (328 . |maxRowIndex|) (333 . |minColIndex|) (338 . |maxColIndex|) (343 . |subMatrix|) (|Vector| 7) (352 . |column|) (|Record| (|:| |mat| 23) (|:| |vec| 108)) (|Vector| |$|) |QFCAT-;reducedSystem;MVR;27| (|Union| 85 (QUOTE "failed")) (|Record| (|:| |mat| 115) (|:| |vec| (|Vector| 84))) (|Matrix| 84) (|List| 55) (|List| 29) (|OutputForm|))) (QUOTE #(|retractIfCan| 358 |retract| 368 |reducedSystem| 378 |random| 389 |patternMatch| 393 |numerator| 407 |nextItem| 412 |map| 417 |init| 423 |fractionPart| 427 |differentiate| 432 |denominator| 438 |convert| 443 |coerce| 468 |characteristic| 478 |<| 482)) (QUOTE NIL) (CONS (|makeByteWordVec2| 1 (QUOTE NIL)) (CONS (QUOTE #()) (CONS (QUOTE #()) (|makeByteWordVec2| 112 (QUOTE (1 6 7 0 8 1 6 0 7 9 1 6 7 0 11 0 7 0 13 0 7 0 14 2 6 0 7 7 15 0 0 0 16 1 7 17 0 18 0 6 0 19 1 0 17 0 20 1 25 23 24 26 0 7 29 30 2 7 0 0 0 32 2 7 0 0 0 33 2 7 0 0 34 35 1 7 37 0 38 2 37 0 0 0 39 1 0 37 0 40 1 7 41 0 42 2 41 0 0 0 43 1 0 41 0 44 1 7 45 0 46 1 0 45 0 47 2 7 48 0 0 49 2 0 48 0 0 50 0 7 0 51 1 6 7 0 52 2 6 0 0 0 53 1 0 0 0 54 1 7 0 55 56 1 0 0 55 57 1 6 7 0 58 1 7 55 0 59 1 0 55 0 60 1 6 61 0 62 1 7 63 0 64 1 0 63 0 65 1 7 66 0 67 2 66 0 0 0 68 1 0 66 0 69 3 71 70 6 66 70 72 3 0 73 0 66 73 74 1 7 75 0 76 2 75 0 0 0 77 1 0 75 0 78 3 80 79 6 75 79 81 3 0 82 0 75 82 83 1 85 84 0 86 1 6 0 84 87 1 85 84 0 88 2 6 0 0 0 89 1 0 0 85 90 1 7 84 0 91 1 0 84 0 92 1 7 93 0 94 1 0 93 0 95 0 7 0 96 1 7 48 0 97 0 0 0 98 1 24 0 99 100 2 24 0 0 0 101 1 6 23 27 102 1 23 84 0 103 1 23 84 0 104 1 23 84 0 105 1 23 84 0 106 5 23 0 0 84 84 84 84 107 2 23 108 0 84 109 1 0 93 0 95 1 0 63 0 65 1 0 84 0 92 1 0 55 0 60 2 0 110 27 111 112 1 0 23 27 28 0 0 0 98 3 0 82 0 75 82 83 3 0 73 0 66 73 74 1 0 0 0 10 1 0 17 0 20 2 0 0 21 0 22 0 0 0 16 1 0 0 0 54 2 0 0 0 21 36 1 0 0 0 12 1 0 45 0 47 1 0 37 0 40 1 0 41 0 44 1 0 66 0 69 1 0 75 0 78 1 0 0 55 57 1 0 0 85 90 0 0 29 31 2 0 48 0 0 50)))))) (QUOTE |lookupComplete|))) -@ \section{package QFCAT2 QuotientFieldCategoryFunctions2} <<package QFCAT2 QuotientFieldCategoryFunctions2>>= )abbrev package QFCAT2 QuotientFieldCategoryFunctions2 @@ -1087,7 +842,6 @@ <<domain LO Localize>> <<domain LA LocalAlgebra>> -<<category QFCAT QuotientFieldCategory>> <<package QFCAT2 QuotientFieldCategoryFunctions2>> <<domain FRAC Fraction>> <<package LPEFRAC LinearPolynomialEquationByFractions>> Modified: trunk/axiom/src/axiom-website/patches.html =================================================================== --- trunk/axiom/src/axiom-website/patches.html 2008-11-24 03:20:41 UTC (rev 1014) +++ trunk/axiom/src/axiom-website/patches.html 2008-11-24 06:11:14 UTC (rev 1015) @@ -733,8 +733,12 @@ <a name="latest"/> In process, not yet released<br/><br/> <hr> +<a href="patches/20081122.01.tpd.patch">20081122.01.tpd.patch</a> +ubuntu64 parallel core support<br/> <a href="patches/20081122.02.tpd.patch">20081122.02.tpd.patch</a> -ubuntu64 parallel core support<br/> +put axiom-website under git control<br/> +<a href="patches/20081123.01.tpd.patch">20081123.01.tpd.patch</a> +fraction.spad missed in category update<br/> </body> </html> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gi...@ax...> - 2008-11-24 06:10:40
|
changelog | 3 + src/algebra/fraction.spad.pamphlet | 246 ------------------------------------ src/axiom-website/patches.html | 6 +- 3 files changed, 8 insertions(+), 247 deletions(-) New commits: commit 9f9302524af5bd346c4c3920fecdefe72716f24a Author: Tim Daly <da...@ax...> Date: Sun Nov 9 06:24:04 2008 -0500 20081123 tpd src/axiom-website/patches.html 20081123.01.tpd.patch 20081123 tpd src/algebra/fraction.spad missed file for category change |
From: <da...@us...> - 2008-11-24 03:20:46
|
Revision: 1014 http://axiom.svn.sourceforge.net/axiom/?rev=1014&view=rev Author: daly Date: 2008-11-24 03:20:41 +0000 (Mon, 24 Nov 2008) Log Message: ----------- 20081122 tpd src/axiom-website put website under change control Modified Paths: -------------- trunk/axiom/changelog Added Paths: ----------- trunk/axiom/src/axiom-website/ trunk/axiom/src/axiom-website/CATS/ trunk/axiom/src/axiom-website/CATS/index.html trunk/axiom/src/axiom-website/CATS/schaum1.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum1.input.pdf trunk/axiom/src/axiom-website/CATS/schaum10.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum10.input.pdf trunk/axiom/src/axiom-website/CATS/schaum11.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum11.input.pdf trunk/axiom/src/axiom-website/CATS/schaum12.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum12.input.pdf trunk/axiom/src/axiom-website/CATS/schaum13.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum13.input.pdf trunk/axiom/src/axiom-website/CATS/schaum14.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum14.input.pdf trunk/axiom/src/axiom-website/CATS/schaum15.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum15.input.pdf trunk/axiom/src/axiom-website/CATS/schaum16.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum16.input.pdf trunk/axiom/src/axiom-website/CATS/schaum17.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum17.input.pdf trunk/axiom/src/axiom-website/CATS/schaum18.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum18.input.pdf trunk/axiom/src/axiom-website/CATS/schaum19.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum19.input.pdf trunk/axiom/src/axiom-website/CATS/schaum2.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum2.input.pdf trunk/axiom/src/axiom-website/CATS/schaum20.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum20.input.pdf trunk/axiom/src/axiom-website/CATS/schaum21.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum21.input.pdf trunk/axiom/src/axiom-website/CATS/schaum22.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum22.input.pdf trunk/axiom/src/axiom-website/CATS/schaum23.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum23.input.pdf trunk/axiom/src/axiom-website/CATS/schaum24.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum24.input.pdf trunk/axiom/src/axiom-website/CATS/schaum25.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum25.input.pdf trunk/axiom/src/axiom-website/CATS/schaum26.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum26.input.pdf trunk/axiom/src/axiom-website/CATS/schaum27.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum27.input.pdf trunk/axiom/src/axiom-website/CATS/schaum28.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum28.input.pdf trunk/axiom/src/axiom-website/CATS/schaum29.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum29.input.pdf trunk/axiom/src/axiom-website/CATS/schaum3.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum3.input.pdf trunk/axiom/src/axiom-website/CATS/schaum30.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum30.input.pdf trunk/axiom/src/axiom-website/CATS/schaum31.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum31.input.pdf trunk/axiom/src/axiom-website/CATS/schaum32.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum32.input.pdf trunk/axiom/src/axiom-website/CATS/schaum33.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum33.input.pdf trunk/axiom/src/axiom-website/CATS/schaum34.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum34.input.pdf trunk/axiom/src/axiom-website/CATS/schaum4.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum4.input.pdf trunk/axiom/src/axiom-website/CATS/schaum5.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum5.input.pdf trunk/axiom/src/axiom-website/CATS/schaum6.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum6.input.pdf trunk/axiom/src/axiom-website/CATS/schaum7.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum7.input.pdf trunk/axiom/src/axiom-website/CATS/schaum8.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum8.input.pdf trunk/axiom/src/axiom-website/CATS/schaum9.input.pamphlet trunk/axiom/src/axiom-website/CATS/schaum9.input.pdf trunk/axiom/src/axiom-website/Journal/ trunk/axiom/src/axiom-website/Journal/index.html trunk/axiom/src/axiom-website/bookvol10.2abb.html trunk/axiom/src/axiom-website/bookvol10.2abb.svg trunk/axiom/src/axiom-website/bookvol10.2full.html trunk/axiom/src/axiom-website/bookvol10.2full.svg trunk/axiom/src/axiom-website/community.html trunk/axiom/src/axiom-website/currentstate.html trunk/axiom/src/axiom-website/developers.html trunk/axiom/src/axiom-website/diff.html trunk/axiom/src/axiom-website/documentation.html trunk/axiom/src/axiom-website/dotabb trunk/axiom/src/axiom-website/dotabb.html trunk/axiom/src/axiom-website/dotabb.svg trunk/axiom/src/axiom-website/download.html trunk/axiom/src/axiom-website/faq.html trunk/axiom/src/axiom-website/index.html trunk/axiom/src/axiom-website/nov2008abb.svg trunk/axiom/src/axiom-website/patches.html trunk/axiom/src/axiom-website/releasenotes.html trunk/axiom/src/axiom-website/rosetta.html trunk/axiom/src/axiom-website/rosetta.tex trunk/axiom/src/axiom-website/screenshots.html Modified: trunk/axiom/changelog =================================================================== --- trunk/axiom/changelog 2008-11-24 02:05:45 UTC (rev 1013) +++ trunk/axiom/changelog 2008-11-24 03:20:41 UTC (rev 1014) @@ -1,3 +1,4 @@ +20081122 tpd src/axiom-website put website under change control 20081122 tpd zips/gcl-2.6.8pre3.unixport.makefile.patch added 20081122 tpd zips/gcl-2.6.8pre3.unixport.init_gcl.lsp.in.patch added 20081122 tpd zips/gcl-2.6.8pre3.cmpnew.gcl_cmpflet.lsp.patch added Added: trunk/axiom/src/axiom-website/CATS/index.html =================================================================== --- trunk/axiom/src/axiom-website/CATS/index.html (rev 0) +++ trunk/axiom/src/axiom-website/CATS/index.html 2008-11-24 03:20:41 UTC (rev 1014) @@ -0,0 +1,128 @@ +<html> + <head> + <title> + (CATS) Computer Algebra Test Suite + </title> + </head> + <body> +This work is part of the Computer Algebra Test Suite (CATS). +These files show the results that Axiom computes given the +set of integrals listed in +<pre> + Spiegel, Murray R. + Mathematical Handbook of Formulas and Tables + Schaum's Outline Series McGraw-Hill 1968 +</pre> +<p> +Each integral is computed by Axiom and compared against the +published result. +<p> +Each Axiom result is differenced from the published result +and reduced to a constant (usually 0). +<p> + + + Schaums 14.59-14.83  + <a href="schaum1.input.pamphlet">source</a> + <a href="schaum1.input.pdf">pdf</a><br/> + Schaums 14.84-14.104  + <a href="schaum2.input.pamphlet">source</a> + <a href="schaum2.input.pdf">pdf</a><br/> + Schaums 14.104-14.112  + <a href="schaum3.input.pamphlet">source</a> + <a href="schaum3.input.pdf">pdf</a><br/> + Schaums 14.113-.119  + <a href="schaum4.input.pamphlet">source</a> + <a href="schaum4.input.pdf">pdf</a><br/> + Schaums 14.120-14.124  + <a href="schaum5.input.pamphlet">source</a> + <a href="schaum5.input.pdf">pdf</a><br/> + Schaums 14.125-14.143  + <a href="schaum6.input.pamphlet">source</a> + <a href="schaum6.input.pdf">pdf</a><br/> + Schaums 14.144-14.162  + <a href="schaum7.input.pamphlet">source</a> + <a href="schaum7.input.pdf">pdf</a><br/> + Schaums 14.163-14.181  + <a href="schaum8.input.pamphlet">source</a> + <a href="schaum8.input.pdf">pdf</a><br/> + Schaums 14.182-14.209  + <a href="schaum9.input.pamphlet">source</a> + <a href="schaum9.input.pdf">pdf</a><br/> + Schaums 14.210-14.236  + <a href="schaum10.input.pamphlet">source</a> + <a href="schaum10.input.pdf">pdf</a><br/> + Schaums 14.237-14.264  + <a href="schaum11.input.pamphlet">source</a> + <a href="schaum11.input.pdf">pdf</a><br/> + Schaums 14.265-14.279  + <a href="schaum12.input.pamphlet">source</a> + <a href="schaum12.input.pdf">pdf</a><br/> + Schaums 14.280-14.298  + <a href="schaum13.input.pamphlet">source</a> + <a href="schaum13.input.pdf">pdf</a><br/> + Schaums 14.299-14.310  + <a href="schaum14.input.pamphlet">source</a> + <a href="schaum14.input.pdf">pdf</a><br/> + Schaums 14.311-14.324  + <a href="schaum15.input.pamphlet">source</a> + <a href="schaum15.input.pdf">pdf</a><br/> + Schaums 14.325-14.338  + <a href="schaum16.input.pamphlet">source</a> + <a href="schaum16.input.pdf">pdf</a><br/> + Schaums 14.339-14.368  + <a href="schaum17.input.pamphlet">source</a> + <a href="schaum17.input.pdf">pdf</a><br/> + Schaums 14.369-14.398  + <a href="schaum18.input.pamphlet">source</a> + <a href="schaum18.input.pdf">pdf</a><br/> + Schaums 14.399-14.428  + <a href="schaum19.input.pamphlet">source</a> + <a href="schaum19.input.pdf">pdf</a><br/> + Schaums 14.429-14.439  + <a href="schaum20.input.pamphlet">source</a> + <a href="schaum20.input.pdf">pdf</a><br/> + Schaums 14.440-14.450  + <a href="schaum21.input.pamphlet">source</a> + <a href="schaum21.input.pdf">pdf</a><br/> + Schaums 14.451-14.460  + <a href="schaum22.input.pamphlet">source</a> + <a href="schaum22.input.pdf">pdf</a><br/> + Schaums 14.461-14.470  + <a href="schaum23.input.pamphlet">source</a> + <a href="schaum23.input.pdf">pdf</a><br/> + Schaums 14.471-14.508  + <a href="schaum24.input.pamphlet">source</a> + <a href="schaum24.input.pdf">pdf</a><br/> + Schaums 14.509-14.524  + <a href="schaum25.input.pamphlet">source</a> + <a href="schaum25.input.pdf">pdf</a><br/> + Schaums 14.525-14.539  + <a href="schaum26.input.pamphlet">source</a> + <a href="schaum26.input.pdf">pdf</a><br/> + Schaums 14.540-14.561  + <a href="schaum27.input.pamphlet">source</a> + <a href="schaum27.input.pdf">pdf</a><br/> + Schaums 14.562-14.589  + <a href="schaum28.input.pamphlet">source</a> + <a href="schaum28.input.pdf">pdf</a><br/> + Schaums 14.590-14.603  + <a href="schaum29.input.pamphlet">source</a> + <a href="schaum29.input.pdf">pdf</a><br/> + Schaums 14.604-14.614  + <a href="schaum30.input.pamphlet">source</a> + <a href="schaum30.input.pdf">pdf</a><br/> + Schaums 14.615-14.625  + <a href="schaum31.input.pamphlet">source</a> + <a href="schaum31.input.pdf">pdf</a><br/> + Schaums 14.626-14.635  + <a href="schaum32.input.pamphlet">source</a> + <a href="schaum32.input.pdf">pdf</a><br/> + Schaums 14.636-14.645  + <a href="schaum33.input.pamphlet">source</a> + <a href="schaum33.input.pdf">pdf</a><br/> + Schaums 14.646-14.677  + <a href="schaum34.input.pamphlet">source</a> + <a href="schaum34.input.pdf">pdf</a><br/> + </body> +</html> \ No newline at end of file Added: trunk/axiom/src/axiom-website/CATS/schaum1.input.pamphlet =================================================================== --- trunk/axiom/src/axiom-website/CATS/schaum1.input.pamphlet (rev 0) +++ trunk/axiom/src/axiom-website/CATS/schaum1.input.pamphlet 2008-11-24 03:20:41 UTC (rev 1014) @@ -0,0 +1,1430 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/input schaum1.input} +\author{Timothy Daly} +\maketitle +\eject +\tableofcontents +\eject +\section{\cite{1}:14.59~~~~~$\displaystyle +\int{\frac{dx}{ax+b}}$} +$$\int{\frac{1}{ax+b}}= +\frac{1}{a}~\ln(ax+b) +$$ +<<*>>= +)spool schaum1.output +)set message test on +)set message auto off +)clear all + +--S 1 +aa:=integrate(1/(a*x+b),x) +--R +--R log(a x + b) +--R (1) ------------ +--R a +--R Type: Union(Expression Integer,...) +--E 1 + +--S 2 +bb:=1/a*log(a*x+b) +--R +--R log(a x + b) +--R (2) ------------ +--R a +--R Type: Expression Integer +--E + +--S 3 14:59 Schaums and Axiom agree +cc:=bb-aa +--R +--R (3) 0 +--R Type: Expression Integer +--E +@ +\section{\cite{1}:14.60~~~~~$\displaystyle +\int{\frac{x~dx}{ax+b}}$} +$$\int{\frac{x}{ax+b}}= +\frac{x}{a}-\frac{b}{a^2}~\ln(ax+b) +$$ +<<*>>= +)clear all + +--S 4 +aa:=integrate(x/(a*x+b),x) +--R +--R +--R - b log(a x + b) + a x +--R (1) ---------------------- +--R 2 +--R a +--R Type: Union(Expression Integer,...) +--E + +--S 5 +bb:=x/a-b/a^2*log(a*x+b) +--R +--R - b log(a x + b) + a x +--R (2) ---------------------- +--R 2 +--R a +--R Type: Expression Integer +--E + +--S 6 14:60 Schaums and Axiom agree +cc:=bb-aa +--R +--R (3) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.61~~~~~$\displaystyle +\int{\frac{x^2~dx}{ax+b}}$} +$$\int{\frac{x^2}{ax+b}}= +\frac{(ax+b)^2}{2a^3}-\frac{2b(ax+b)}{a^3}+\frac{b^2}{a^3}~\ln(ax+b) +$$ +<<*>>= +)clear all + +--S 7 +aa:=integrate(x^2/(a*x+b),x) +--R +--R 2 2 2 +--R 2b log(a x + b) + a x - 2a b x +--R (1) ------------------------------- +--R 3 +--R 2a +--R Type: Union(Expression Integer,...) +--E + +--S 8 +bb:=(a*x+b)^2/(2*a^3)-(2*b*(a*x+b))/a^3+b^2/a^3*log(a*x+b) +--R +--R 2 2 2 2 +--R 2b log(a x + b) + a x - 2a b x - 3b +--R (2) ------------------------------------- +--R 3 +--R 2a +--R Type: Expression Integer +--E + +--S 9 +cc:=bb-aa +--R +--R 2 +--R 3b +--R (3) - --- +--R 3 +--R 2a +--R Type: Expression Integer +--E +@ +This factor is constant with respect to $x$ as shown by taking the +derivative. It is a constant of integration. +<<*>>= +--S 10 14:61 Schaums and Axiom differ by a constant +differentiate(cc,x) +--R +--R (4) 0 +--R Type: Expression Integer +--E +@ +\section{\cite{1}:14.62~~~~~$\displaystyle +\int{\frac{x^3~dx}{ax+b}}$} +$$\int{\frac{x^3}{ax+b}}= +\frac{(ax+b)^3}{3a^4}-\frac{3b(ax+b)^2}{2a^4}+ +\frac{3b^2(ax+b)}{a^4}-\frac{b^3}{a^4}~\ln(ax+b) +$$ +<<*>>= +)clear all + +--S 11 +aa:=integrate(x^3/(a*x+b),x) +--R +--R 3 3 3 2 2 2 +--R - 6b log(a x + b) + 2a x - 3a b x + 6a b x +--R (1) -------------------------------------------- +--R 4 +--R 6a +--R Type: Union(Expression Integer,...) +--E +@ +and the book expression is: +<<*>>= +--S 12 +bb:=(a*x+b)^3/(3*a^4)-(3*b*(a*x+b)^2)/(2*a^4)+(3*b^2*(a*x+b))/a^4-(b^3/a^4)*log(a*x+b) +--R +--R 3 3 3 2 2 2 3 +--R - 6b log(a x + b) + 2a x - 3a b x + 6a b x + 11b +--R (2) --------------------------------------------------- +--R 4 +--R 6a +--R Type: Expression Integer +--E +@ + +The difference is a constant with respect to x: +<<*>>= +--S 13 +cc:=aa-bb +--R +--R 3 +--R 11b +--R (3) - ---- +--R 4 +--R 6a +--R Type: Expression Integer +--E +@ + +If we differentiate each expression we see that this is the integration +constant. +<<*>>= +--S 14 14:62 Schaums and Axiom differ by a constant +dd:=D(cc,x) +--R +--R (4) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.63~~~~~$\displaystyle +\int{\frac{dx}{x~(ax+b)}}$} +$$\int{\frac{1}{x~(ax+b)}}= +\frac{1}{b}~\ln\left(\frac{x}{ax+b}\right) +$$ +<<*>>= +)clear all + +--S 15 +aa:=integrate(1/(x*(a*x+b)),x) +--R +--R - log(a x + b) + log(x) +--R (1) ----------------------- +--R b +--R Type: Union(Expression Integer,...) +--E + +--S 16 +bb:=1/b*log(x/(a*x+b)) +--R +--R x +--R log(-------) +--R a x + b +--R (2) ------------ +--R b +--R Type: Expression Integer +--E + +--S 17 +cc:=aa-bb +--R +--R x +--R - log(a x + b) + log(x) - log(-------) +--R a x + b +--R (3) -------------------------------------- +--R b +--R Type: Expression Integer +--E +@ +but we know that $$\log(a)-\log(b)=\log(\frac{a}{b})$$ + +We can express this fact as a rule: +<<*>>= +--S 18 +logdiv:=rule(log(a)-log(b) == log(a/b)) +--R +--R a +--I (4) - log(b) + log(a) + %I == log(-) + %I +--R b +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E +@ +and use this rule to rewrite the logs into divisions: +<<*>>= +--S 19 14:63 Schaums and Axiom agree +dd:=logdiv cc +--R +--R (5) 0 +--R Type: Expression Integer +--E +@ +so we can see the equivalence directly. + +\section{\cite{1}:14.64~~~~~$\displaystyle +\int{\frac{dx}{x^2~(ax+b)}}$} +$$\int{\frac{1}{x^2~(ax+b)}}= +-\frac{1}{bx}+\frac{a}{b^2}~\ln\left(\frac{ax+b}{x}\right) +$$ +<<*>>= +)clear all + +--S 20 +aa:=integrate(1/(x^2*(a*x+b)),x) +--R +--R a x log(a x + b) - a x log(x) - b +--R (1) --------------------------------- +--R 2 +--R b x +--R Type: Union(Expression Integer,...) +--E +@ + +The original form given in the book expands to: +<<*>>= +--S 21 +bb:=-1/(b*x)+a/b^2*log((a*x+b)/x) +--R +--R a x + b +--R a x log(-------) - b +--R x +--R (2) -------------------- +--R 2 +--R b x +--R Type: Expression Integer +--E + +--S 22 +cc:=aa-bb +--R +--R a x + b +--R a log(a x + b) - a log(x) - a log(-------) +--R x +--R (3) ------------------------------------------ +--R 2 +--R b +--R Type: Expression Integer +--E +@ + +We can define the following rule to expand log forms: +<<*>>= +--S 23 +divlog:=rule(log(a/b) == log(a) - log(b)) +--R +--R a +--R (4) log(-) == - log(b) + log(a) +--R b +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E +@ +and apply it to the difference +<<*>>= +--S 24 14:64 Schaums and Axiom agree +divlog cc +--R +--R (5) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.65~~~~~$\displaystyle +\int{\frac{dx}{x^3~(ax+b)}}$} +$$\int{\frac{1}{x^3~(ax+b)}}= +\frac{2ax-b}{2b^2x^2}+\frac{a^2}{b^3}~\ln\left(\frac{x}{ax+b}\right) +$$ +<<*>>= +)clear all +--S 25 +aa:=integrate(1/(x^3*(a*x+b)),x) +--R +--R 2 2 2 2 2 +--R - 2a x log(a x + b) + 2a x log(x) + 2a b x - b +--R (1) ----------------------------------------------- +--R 3 2 +--R 2b x +--R Type: Union(Expression Integer,...) +--E + +--S 26 +bb:=(2*a*x-b)/(2*b^2*x^2)+a^2/b^3*log(x/(a*x+b)) +--R +--R 2 2 x 2 +--R 2a x log(-------) + 2a b x - b +--R a x + b +--R (2) ------------------------------- +--R 3 2 +--R 2b x +--R Type: Expression Integer +--E + +--S 27 +cc:=aa-bb +--R +--R 2 2 2 x +--R - a log(a x + b) + a log(x) - a log(-------) +--R a x + b +--R (3) -------------------------------------------- +--R 3 +--R b +--R Type: Expression Integer +--E + +--S 28 +divlog:=rule(log(a/b) == log(a) - log(b)) +--R +--R a +--R (4) log(-) == - log(b) + log(a) +--R b +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E + +--S 29 14:65 Schaums and Axiom agree +dd:=divlog cc +--R +--R (5) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.66~~~~~$\displaystyle +\int{\frac{dx}{(ax+b)^2}}$} +$$\int{\frac{1}{(ax+b)^2}}= +\frac{-1}{a~(ax+b)} +$$ +<<*>>= +)clear all + +--S 30 +aa:=integrate(1/(a*x+b)^2,x) +--R +--R 1 +--R (1) - --------- +--R 2 +--R a x + a b +--R Type: Union(Expression Integer,...) +--E + +--S 31 +bb:=-1/(a*(a*x+b)) +--R +--R 1 +--R (2) - --------- +--R 2 +--R a x + a b +--R Type: Fraction Polynomial Integer +--E + +--S 32 14:66 Schaums and Axiom agree +cc:=aa-bb +--R +--R (3) 0 +--R Type: Expression Integer +--E + +@ + +\section{\cite{1}:14.67~~~~~$\displaystyle +\int{\frac{x~dx}{(ax+b)^2}}$} +$$\int{\frac{x}{(ax+b)^2}}= +\frac{b}{a^2~(ax+b)}+\frac{1}{a^2}~\ln(ax+b) +$$ +<<*>>= +)clear all + +--S 33 +aa:=integrate(x/(a*x+b)^2,x) +--R +--R (a x + b)log(a x + b) + b +--R (1) ------------------------- +--R 3 2 +--R a x + a b +--R Type: Union(Expression Integer,...) +--E + +--S 34 +bb:=b/(a^2*(a*x+b))+1/a^2*log(a*x+b) +--R +--R (a x + b)log(a x + b) + b +--R (2) ------------------------- +--R 3 2 +--R a x + a b +--R Type: Expression Integer +--E + +--S 35 14:67 Schaums and Axiom agree +cc:=aa-bb +--R +--R (3) 0 +--R Type: Expression Integer +--E + +@ + +\section{\cite{1}:14.68~~~~~$\displaystyle +\int{\frac{x^2~dx}{(ax+b)^2}}$} +$$\int{\frac{x^2}{(ax+b)^2}}= +\frac{ax+b}{a^3}-\frac{b^2}{a^3~(ax+b)} +-\frac{2b}{a^3}~\ln(ax+b) +$$ +<<*>>= +)clear all + +--S 36 +aa:=integrate(x^2/(a*x+b)^2,x) +--R +--R 2 2 2 2 +--R (- 2a b x - 2b )log(a x + b) + a x + a b x - b +--R (1) ------------------------------------------------ +--R 4 3 +--R a x + a b +--R Type: Union(Expression Integer,...) +--E +@ +and the book expression expands into +<<*>>= +--S 37 +bb:=(a*x+b)/a^3-b^2/(a^3*(a*x+b))-((2*b)/a^3)*log(a*x+b) +--R +--R 2 2 2 +--R (- 2a b x - 2b )log(a x + b) + a x + 2a b x +--R (2) -------------------------------------------- +--R 4 3 +--R a x + a b +--R Type: Expression Integer +--E +@ + +These two expressions differ by the constant +<<*>>= +--S 38 +cc:=aa-bb +--R +--R b +--R (3) - -- +--R 3 +--R a +--R Type: Expression Integer +--E +@ + +That this expression is constant can be shown by differentiation: +<<*>>= +--S 39 14:68 Schaums and Axiom differ by a constant +D(cc,x) +--R +--R (4) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.69~~~~~$\displaystyle +\int{\frac{x^3~dx}{(ax+b)^2}}$} +$$\int{\frac{x^3}{(ax+b)^2}}= +\frac{(ax+b)^2}{2a^4}-\frac{3b(ax+b)}{a^4}+\frac{b^3}{a^4(ax+b)} ++\frac{3b^2}{a^4}~\ln(ax+b) +$$ +<<*>>= +)clear all + +--S 40 +aa:=integrate(x^3/(a*x+b)^2,x) +--R +--R 2 3 3 3 2 2 2 3 +--R (6a b x + 6b )log(a x + b) + a x - 3a b x - 4a b x + 2b +--R (1) ---------------------------------------------------------- +--R 5 4 +--R 2a x + 2a b +--R Type: Union(Expression Integer,...) +--E + +--S 41 +bb:=(a*x+b)^2/(2*a^4)-(3*b*(a*x+b))/a^4+b^3/(a^4*(a*x+b))+(3*b^2/a^4)*log(a*x+b) +--R +--R 2 3 3 3 2 2 2 3 +--R (6a b x + 6b )log(a x + b) + a x - 3a b x - 9a b x - 3b +--R (2) ---------------------------------------------------------- +--R 5 4 +--R 2a x + 2a b +--R Type: Expression Integer +--E + +--S 42 +cc:=aa-bb +--R +--R 2 +--R 5b +--R (3) --- +--R 4 +--R 2a +--R Type: Expression Integer +--E + +--S 43 14:69 Schaums and Axiom differ by a constant +dd:=D(cc,x) +--R +--R (4) 0 +--R Type: Expression Integer +--E +@ +\section{\cite{1}:14.70~~~~~$\displaystyle +\int{\frac{dx}{x~(ax+b)^2}}$} +$$\int{\frac{1}{x~(ax+b)^2}}= +\frac{1}{b~(ax+b)}+\frac{1}{b^2}~\ln\left(\frac{x}{ax+b}\right) +$$ +<<*>>= +)clear all + +--S 44 +aa:=integrate(1/(x*(a*x+b)^2),x) +--R +--R (- a x - b)log(a x + b) + (a x + b)log(x) + b +--R (1) --------------------------------------------- +--R 2 3 +--R a b x + b +--R Type: Union(Expression Integer,...) +--E +@ +and the book says: +<<*>>= +--S 45 +bb:=(1/(b*(a*x+b))+(1/b^2)*log(x/(a*x+b))) +--R +--R x +--R (a x + b)log(-------) + b +--R a x + b +--R (2) ------------------------- +--R 2 3 +--R a b x + b +--R Type: Expression Integer +--E + +--S 46 +cc:=aa-bb +--R +--R x +--R - log(a x + b) + log(x) - log(-------) +--R a x + b +--R (3) -------------------------------------- +--R 2 +--R b +--R Type: Expression Integer +--E +@ +So we look at the divlog rule again: +<<*>>= +--S 47 +divlog:=rule(log(a/b) == log(a) - log(b)) +--R +--R a +--R (4) log(-) == - log(b) + log(a) +--R b +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E +@ + +we apply it: +<<*>>= +--S 48 14:70 Schaums and Axiom agree +dd:=divlog cc +--R +--R (5) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.71~~~~~$\displaystyle +\int{\frac{dx}{x^2~(ax+b)^2}}$} +$$\int{\frac{1}{x^2~(ax+b)^2}}= +\frac{-a}{b^2~(ax+b)}-\frac{1}{b^2~x}+ +\frac{2a}{b^3}~\ln\left(\frac{ax+b}{x}\right) +$$ +<<*>>= +)clear all + +--S 49 +aa:=integrate(1/(x^2*(a*x+b)^2),x) +--R +--R 2 2 2 2 2 +--R (2a x + 2a b x)log(a x + b) + (- 2a x - 2a b x)log(x) - 2a b x - b +--R (1) --------------------------------------------------------------------- +--R 3 2 4 +--R a b x + b x +--R Type: Union(Expression Integer,...) +--E +@ +and the book says: +<<*>>= +--S 50 +bb:=(-a/(b^2*(a*x+b)))-(1/(b^2*x))+((2*a)/b^3)*log((a*x+b)/x) +--R +--R 2 2 a x + b 2 +--R (2a x + 2a b x)log(-------) - 2a b x - b +--R x +--R (2) ------------------------------------------ +--R 3 2 4 +--R a b x + b x +--R Type: Expression Integer +--E + +--S 51 +cc:=aa-bb +--R +--R a x + b +--R 2a log(a x + b) - 2a log(x) - 2a log(-------) +--R x +--R (3) --------------------------------------------- +--R 3 +--R b +--R Type: Expression Integer +--E +@ +which calls for our divlog rule: +<<*>>= +--S 52 +divlog:=rule(log(a/b) == log(a) - log(b)) +--R +--R a +--R (4) log(-) == - log(b) + log(a) +--R b +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E +@ +which we use to transform the result: +<<*>>= +--S 53 14:71 Schaums and Axiom agree +dd:=divlog cc +--R +--R (5) 0 +--R Type: Expression Integer +--E +@ +\section{\cite{1}:14.72~~~~~$\displaystyle +\int{\frac{dx}{x^3~(ax+b)^2}}$} +$$\int{\frac{1}{x^3~(ax+b)^2}}= +-\frac{(ax+b)^2}{2b^4x^2}+\frac{3a(ax+b)}{b^4x}- +\frac{a^3x}{b^4(ax+b)}-\frac{3a^2}{b^4}~\ln\left(\frac{ax+b}{x}\right) +$$ +<<*>>= +)clear all + +--S 54 +aa:=integrate(1/(x^3*(a*x+b)^2),x) +--R +--R (1) +--R 3 3 2 2 3 3 2 2 2 2 +--R (- 6a x - 6a b x )log(a x + b) + (6a x + 6a b x )log(x) + 6a b x +--R + +--R 2 3 +--R 3a b x - b +--R / +--R 4 3 5 2 +--R 2a b x + 2b x +--R Type: Union(Expression Integer,...) +--E + +--S 55 +bb:=-(a*x+b)^2/(2*b^4*x^2)+(3*a*(a*x+b))/(b^4*x)-(a^3*x)/(b^4*(a*x+b))-((3*a^2)/b^4)*log((a*x+b)/x) +--R +--R 3 3 2 2 a x + b 3 3 2 2 2 3 +--R (- 6a x - 6a b x )log(-------) + 3a x + 9a b x + 3a b x - b +--R x +--R (2) --------------------------------------------------------------- +--R 4 3 5 2 +--R 2a b x + 2b x +--R Type: Expression Integer +--E + +--S 56 +cc:=aa-bb +--R +--R 2 2 2 a x + b 2 +--R - 6a log(a x + b) + 6a log(x) + 6a log(-------) - 3a +--R x +--R (3) ----------------------------------------------------- +--R 4 +--R 2b +--R Type: Expression Integer +--E + +--S 57 +divlog:=rule(log(a/b) == log(a) - log(b)) +--R +--R a +--R (4) log(-) == - log(b) + log(a) +--R b +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E + +--S 58 +dd:=divlog cc +--R +--R 2 +--R 3a +--R (5) - --- +--R 4 +--R 2b +--R Type: Expression Integer +--E + +--S 59 14:72 Schaums and Axiom differ by a constant +ee:=D(dd,x) +--R +--R (6) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.73~~~~~$\displaystyle +\int{\frac{dx}{(ax+b)^3}}$} +$$\int{\frac{1}{(ax+b)^3}}= +\frac{-1}{2a(ax+b)^2} +$$ +<<*>>= +)clear all + +--S 60 +aa:=integrate(1/(a*x+b)^3,x) +--R +--R 1 +--R (1) - ---------------------- +--R 3 2 2 2 +--R 2a x + 4a b x + 2a b +--R Type: Union(Expression Integer,...) +--E + +--S 61 +bb:=-1/(2*(a*x+b)^2) +--R +--R 1 +--R (2) - -------------------- +--R 2 2 2 +--R 2a x + 4a b x + 2b +--R Type: Fraction Polynomial Integer +--E + +--S 62 +cc:=aa-bb +--R +--R a - 1 +--R (3) ---------------------- +--R 3 2 2 2 +--R 2a x + 4a b x + 2a b +--R Type: Expression Integer +--E + +--S 63 +dd:=aa/bb +--R +--R 1 +--R (4) - +--R a +--R Type: Expression Integer +--E + +--S 64 14:73 Schaums and Axiom differ by a constant +ee:=D(dd,x) +--R +--R (5) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.74~~~~~$\displaystyle +\int{\frac{x~dx}{(ax+b)^3}}$} +$$\int{\frac{x}{(ax+b)^3}}= +\frac{-1}{a^2(ax+b)}+\frac{b}{2a^2(ax+b)^2} +$$ +<<*>>= +)clear all + +--S 65 +aa:=integrate(x/(a*x+b)^3,x) +--R +--R - 2a x - b +--R (1) ---------------------- +--R 4 2 3 2 2 +--R 2a x + 4a b x + 2a b +--R Type: Union(Expression Integer,...) +--E + +--S 66 +bb:=-1/(a^2*(a*x+b))+b/(2*a^2*(a*x+b)^2) +--R +--R - 2a x - b +--R (2) ---------------------- +--R 4 2 3 2 2 +--R 2a x + 4a b x + 2a b +--R Type: Fraction Polynomial Integer +--E + +--S 67 14:74 Schaums and Axiom agree +cc:=aa-bb +--R +--R (3) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.75~~~~~$\displaystyle +\int{\frac{x^2~dx}{(ax+b)^3}}$} +$$\int{\frac{x^2}{(ax+b)^3}}= +\frac{2b}{a^3(ax+b)}-\frac{b^2}{2a^3(ax+b)^2}+ +\frac{1}{a^3}~\ln(ax+b) +$$ +<<*>>= +)clear all + +--S 68 +aa:=integrate(x^2/(a*x+b)^3,x) +--R +--R 2 2 2 2 +--R (2a x + 4a b x + 2b )log(a x + b) + 4a b x + 3b +--R (1) ------------------------------------------------- +--R 5 2 4 3 2 +--R 2a x + 4a b x + 2a b +--R Type: Union(Expression Integer,...) +--E + +--S 69 +bb:=(2*b)/(a^3*(a*x+b))-(b^2)/(2*a^3*(a*x+b)^2)+1/a^3*log(a*x+b) +--R +--R 2 2 2 2 +--R (2a x + 4a b x + 2b )log(a x + b) + 4a b x + 3b +--R (2) ------------------------------------------------- +--R 5 2 4 3 2 +--R 2a x + 4a b x + 2a b +--R Type: Expression Integer +--E + +--S 70 14:75 Schaums and Axiom agree +cc:=aa-bb +--R +--R (3) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.76~~~~~$\displaystyle +\int{\frac{x^3~dx}{(ax+b)^3}}$} +$$\int{\frac{x^3}{(ax+b)^3}}= +\frac{x}{a^3}-\frac{3b^2}{a^4(ax+b)}+\frac{b^3}{2a^4(ax+b)^2}- +\frac{3b}{a^4}~\ln(ax+b) +$$ +<<*>>= +)clear all +--S 71 +aa:=integrate(x^3/(a*x+b)^3,x) +--R +--R (1) +--R 2 2 2 3 3 3 2 2 2 3 +--R (- 6a b x - 12a b x - 6b )log(a x + b) + 2a x + 4a b x - 4a b x - 5b +--R ------------------------------------------------------------------------ +--R 6 2 5 4 2 +--R 2a x + 4a b x + 2a b +--R Type: Union(Expression Integer,...) +--E + +--S 72 +bb:=(x/a^3)-(3*b^2)/(a^4*(a*x+b))+b^3/(2*a^4*(a*x+b)^2)-(3*b)/a^4*log(a*x+b) +--R +--R (2) +--R 2 2 2 3 3 3 2 2 2 3 +--R (- 6a b x - 12a b x - 6b )log(a x + b) + 2a x + 4a b x - 4a b x - 5b +--R ------------------------------------------------------------------------ +--R 6 2 5 4 2 +--R 2a x + 4a b x + 2a b +--R Type: Expression Integer +--E + +--S 73 14:76 Schaums and Axiom agree +cc:=aa-bb +--R +--R (3) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.77~~~~~$\displaystyle +\int{\frac{dx}{x(ax+b)^3}}$} +$$\int{\frac{1}{x(ax+b)^3}}= +\frac{3}{2b(ax+b)^2}+\frac{2ax}{2b^2(ax+b)^2}- +\frac{1}{b^3}*\ln\left(\frac{ax+b}{x}\right) +$$ + +<<*>>= +)clear all + +--S 74 +aa:=integrate(1/(x*(a*x+b)^3),x) +--R +--R (1) +--R 2 2 2 2 2 2 +--R (- 2a x - 4a b x - 2b )log(a x + b) + (2a x + 4a b x + 2b )log(x) +--R + +--R 2 +--R 2a b x + 3b +--R / +--R 2 3 2 4 5 +--R 2a b x + 4a b x + 2b +--R Type: Union(Expression Integer,...) +--E + +--S 75 +bb:=(a^2*x^2)/(2*b^3*(a*x+b)^2)-(2*a*x)/(b^3*(a*x+b))-(1/b^3)*log((a*x+b)/x) +--R +--R 2 2 2 a x + b 2 2 +--R (- 2a x - 4a b x - 2b )log(-------) - 3a x - 4a b x +--R x +--R (2) ----------------------------------------------------- +--R 2 3 2 4 5 +--R 2a b x + 4a b x + 2b +--R Type: Expression Integer +--E + +--S 76 +cc:=aa-bb +--R +--R a x + b +--R - 2log(a x + b) + 2log(x) + 2log(-------) + 3 +--R x +--R (3) --------------------------------------------- +--R 3 +--R 2b +--R Type: Expression Integer +--E + +--S 77 +divlog:=rule(log(a/b) == log(a) - log(b)) +--R +--R a +--R (4) log(-) == - log(b) + log(a) +--R b +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E + +--S 78 +dd:=divlog cc +--R +--R 3 +--R (5) --- +--R 3 +--R 2b +--R Type: Expression Integer +--E + +--S 79 14:77 Schaums and Axiom differ by a constant +ee:=D(dd,x) +--R +--R (6) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.78~~~~~$\displaystyle +\int{\frac{dx}{x^2(ax+b)^3}}$} +$$\int{\frac{1}{x^2(ax+b)^3}}= +\frac{-a}{2b^2(ax+b)^2}-\frac{2a}{b^3(ax+b)}- +\frac{1}{b^3x}+\frac{3a}{b^4}~\ln\left(\frac{ax+b}{x}\right) +$$ +<<*>>= +)clear all + +--S 80 +aa:=integrate(1/(x^2*(a*x+b)^3),x) +--R +--R (1) +--R 3 3 2 2 2 +--R (6a x + 12a b x + 6a b x)log(a x + b) +--R + +--R 3 3 2 2 2 2 2 2 3 +--R (- 6a x - 12a b x - 6a b x)log(x) - 6a b x - 9a b x - 2b +--R / +--R 2 4 3 5 2 6 +--R 2a b x + 4a b x + 2b x +--R Type: Union(Expression Integer,...) +--E + +--S 81 +bb:=-a/(2*b^2*(a*x+b)^2)-(2*a)/(b^3*(a*x+b))-1/(b^3*x)+((3*a)/b^4)*log((a*x+b)/x) +--R +--R 3 3 2 2 2 a x + b 2 2 2 3 +--R (6a x + 12a b x + 6a b x)log(-------) - 6a b x - 9a b x - 2b +--R x +--R (2) ---------------------------------------------------------------- +--R 2 4 3 5 2 6 +--R 2a b x + 4a b x + 2b x +--R Type: Expression Integer +--E + +--S 82 +cc:=aa-bb +--R +--R a x + b +--R 3a log(a x + b) - 3a log(x) - 3a log(-------) +--R x +--R (3) --------------------------------------------- +--R 4 +--R b +--R Type: Expression Integer +--E + +--S 83 +divlog:=rule(log(a/b) == log(a) - log(b)) +--R +--R a +--R (4) log(-) == - log(b) + log(a) +--R b +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E + +--S 84 14:78 Schaums and Axiom agree +dd:=divlog cc +--R +--R (5) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.79~~~~~$\displaystyle +\int{\frac{dx}{x^3(ax+b)^3}}$} +$$\int{\frac{1}{x^3(ax+b)^3}}= +-\frac{1}{2bx^2(ax+b)^2}+ +\frac{2a}{b^2x(ax+b)^2}+ +\frac{9a^2}{b^3(ax+b)^2}+ +\frac{6a^3x}{b^4(ax+b)^2}- +\frac{6a^2}{b^5}~\ln\left(\frac{ax+b}{x}\right)$$ + +<<*>>= +)clear all + +--S 85 +aa:=integrate(1/(x^3*(a*x+b)^3),x) +--R +--R (1) +--R 4 4 3 3 2 2 2 +--R (- 12a x - 24a b x - 12a b x )log(a x + b) +--R + +--R 4 4 3 3 2 2 2 3 3 2 2 2 3 4 +--R (12a x + 24a b x + 12a b x )log(x) + 12a b x + 18a b x + 4a b x - b +--R / +--R 2 5 4 6 3 7 2 +--R 2a b x + 4a b x + 2b x +--R Type: Union(Expression Integer,...) +--E + +--S 86 +bb:=-1/(2*b*x^2*(a*x+b)^2)_ + +(2*a)/(b^2*x*(a*x+b)^2)_ + +(9*a^2)/(b^3*(a*x+b)^2)_ + +(6*a^3*x)/(b^4*(a*x+b)^2)_ + +(-6*a^2)/b^5*log((a*x+b)/x) +--R +--R (2) +--R 4 4 3 3 2 2 2 a x + b 3 3 2 2 2 +--R (- 12a x - 24a b x - 12a b x )log(-------) + 12a b x + 18a b x +--R x +--R + +--R 3 4 +--R 4a b x - b +--R / +--R 2 5 4 6 3 7 2 +--R 2a b x + 4a b x + 2b x +--R Type: Expression Integer +--E + +--S 87 +cc:=aa-bb +--R +--R 2 2 2 a x + b +--R - 6a log(a x + b) + 6a log(x) + 6a log(-------) +--R x +--R (3) ----------------------------------------------- +--R 5 +--R b +--R Type: Expression Integer +--E + +--S 88 +divlog:=rule(log(a/b) == log(a) - log(b)) +--R +--R a +--R (4) log(-) == - log(b) + log(a) +--R b +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E + +--S 89 14:79 Schaums and Axiom agree +dd:=divlog cc +--R +--R (5) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.80~~~~~$\displaystyle +\int{(ax+b)^n~dx}$} +$$\int{(ax+b)^n}= +\frac{(ax+b)^{n+1}}{(n+1)a}{\rm\ provided\ }n \ne -1 +$$ +<<*>>= +)clear all +--S 90 +aa:=integrate((a*x+b)^n,x) +--R +--R n log(a x + b) +--R (a x + b)%e +--R (1) ------------------------- +--R a n + a +--R Type: Union(Expression Integer,...) +--E + +--S 91 +bb:=(a*x+b)^(n+1)/((n+1)*a) +--R +--R n + 1 +--R (a x + b) +--R (2) -------------- +--R a n + a +--R Type: Expression Integer +--E + +--S 92 +cc:=aa-bb +--R +--R n log(a x + b) n + 1 +--R (a x + b)%e - (a x + b) +--R (3) ------------------------------------------ +--R a n + a +--R Type: Expression Integer +--E +@ +This messy formula can be simplified using the explog rule: +<<*>>= +--S 93 +explog:=rule(%e^(n*log(x)) == x^n) +--R +--R n log(x) n +--R (4) %e == x +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E + +--S 94 +dd:=explog cc +--R +--R n + 1 n +--R - (a x + b) + (a x + b)(a x + b) +--R (5) -------------------------------------- +--R a n + a +--R Type: Expression Integer +--E + +--S 95 14:80 Schaums and Axiom agree +ee:=complexNormalize dd +--R +--R (6) 0 +--R Type: Expression Integer +--E +@ + +\section{\cite{1}:14.81~~~~~$\displaystyle +\int{x(ax+b)^n~dx}$} +$$\int{x(ax+b)^n}= +\frac{(ax+b)^{n+2}}{(n+2)a^2}-\frac{b(ax+b)^{n+1}}{(n+1)a^2} +{\rm\ provided\ }n \ne -1,-2 +$$ +<<*>>= +)clear all +--S 96 +aa:=integrate(x*(a*x+b)^n,x) +--R +--R 2 2 2 2 n log(a x + b) +--R ((a n + a )x + a b n x - b )%e +--R (1) --------------------------------------------- +--R 2 2 2 2 +--R a n + 3a n + 2a +--R Type: Union(Expression Integer,...) +--E + +--S 97 +bb:=((a*x+b)^(n+2))/((n+2)*a^2)-(b*(a*x+b)^(n+1))/((n+1)*a^2) +--R +--R n + 2 n + 1 +--R (n + 1)(a x + b) + (- b n - 2b)(a x + b) +--R (2) -------------------------------------------------- +--R 2 2 2 2 +--R a n + 3a n + 2a +--R Type: Expression Integer +--E + +--S 98 +cc:=aa-bb +--R +--R (3) +--R 2 2 2 2 n log(a x + b) n + 2 +--R ((a n + a )x + a b n x - b )%e + (- n - 1)(a x + b) +--R + +--R n + 1 +--R (b n + 2b)(a x + b) +--R / +--R 2 2 2 2 +--R a n + 3a n + 2a +--R Type: Expression Integer +--E + +--S 99 +explog:=rule(%e^(n*log(x)) == x^n) +--R +--R n log(x) n +--R (4) %e == x +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E + +--S 100 +dd:=explog cc +--R +--R (5) +--R n + 2 n + 1 +--R (- n - 1)(a x + b) + (b n + 2b)(a x + b) +--R + +--R 2 2 2 2 n +--R ((a n + a )x + a b n x - b )(a x + b) +--R / +--R 2 2 2 2 +--R a n + 3a n + 2a +--R Type: Expression Integer +--E + +--S 101 +ee:=complexNormalize dd +--R +--R (6) 0 +--R Type: Expression Integer +--E +@ +\section{\cite{1}:14.82~~~~~$\displaystyle +\int{x^2(ax+b)^n~dx}$} +$$\int{x^2(ax+b)^n}= +\frac{(ax+b)^{n+2}}{(n+3)a^3}- +\frac{2b(ax+b)^{n+2}}{(n+2)a^3}+ +\frac{b^2(ax+b)^{n+1}}{(n+1)a^3} +{\rm\ provided\ }n \ne -1,-2,-3 +$$ + +<<*>>= +)clear all +--S 102 +aa:=integrate(x^2*(a*x+b)^n,x) +--R +--R (1) +--R 3 2 3 3 3 2 2 2 2 2 3 n log(a x + b) +--R ((a n + 3a n + 2a )x + (a b n + a b n)x - 2a b n x + 2b )%e +--R ----------------------------------------------------------------------------- +--R 3 3 3 2 3 3 +--R a n + 6a n + 11a n + 6a +--R Type: Union(Expression Integer,...) +--E + +--S 103 +bb:=(a*x+b)^(n+3)/((n+3)*a^3)-(2*b*(a*x+b)^(n+2))/((n+2)*a^3)+(b^2*(a*x+b)^(n+1))/((n+1)*a^3) +--R +--R (2) +--R 2 n + 3 2 n + 2 +--R (n + 3n + 2)(a x + b) + (- 2b n - 8b n - 6b)(a x + b) +--R + +--R 2 2 2 2 n + 1 +--R (b n + 5b n + 6b )(a x + b) +--R / +--R 3 3 3 2 3 3 +--R a n + 6a n + 11a n + 6a +--R Type: Expression Integer +--E + +--S 104 +cc:=aa-bb +--R +--R (3) +--R 3 2 3 3 3 2 2 2 2 2 3 +--R ((a n + 3a n + 2a )x + (a b n + a b n)x - 2a b n x + 2b ) +--R * +--R n log(a x + b) +--R %e +--R + +--R 2 n + 3 2 n + 2 +--R (- n - 3n - 2)(a x + b) + (2b n + 8b n + 6b)(a x + b) +--R + +--R 2 2 2 2 n + 1 +--R (- b n - 5b n - 6b )(a x + b) +--R / +--R 3 3 3 2 3 3 +--R a n + 6a n + 11a n + 6a +--R Type: Expression Integer +--E + +--S 105 +explog:=rule(%e^(n*log(x)) == x^n) +--R +--R n log(x) n +--R (4) %e == x +--R Type: RewriteRule(Integer,Integer,Expression Integer) +--E + +--S 106 +dd:=explog cc +--R +--R (5) +--R 2 n + 3 2 n + 2 +--R (- n - 3n - 2)(a x + b) + (2b n + 8b n + 6b)(a x + b) +--R + +--R 2 2 2 2 n + 1 +--R (- b n - 5b n - 6b )(a x + b) +--R + +--R 3 2 3 3 3 2 2 2 2 2 3 n +--R ((a n + 3a n + 2a )x + (a b n + a b n)x - 2a b n x + 2b )(a x + b) +--R / +--R 3 3 3 2 3 3 +--R a n + 6a n + 11a n + 6a +--R Type: Expression Integer +--E + +--S 107 14:82 Schaums and Axiom agree +ee:=complexNormalize dd +--R +--R (6) 0 +--R Type: Expression Integer +--E +@ +\section{\cite{1}:14.83~~~~~$\displaystyle +\int{x^m(ax+b)^n}~dx$} +$$\int{x^m(ax+b)^n} +\left\{ +\begin{array}{l} +\displaystyle +\frac{x^{m+1}(ax+b)^n}{m+n+1} ++\frac{nb}{m+n+1}\int{x^m(ax+b)^{n-1}}\\ +\\ +\displaystyle +\frac{x^{m+1}(ax+b)^{n+1}}{(m+n+1)a} +-\frac{mb}{(m+n+1)a}\int{x^{m-1}(ax+b)^n}\\ +\\ +\displaystyle +\frac{-x^{m+1}(ax+b)^{n+1}}{(n+1)b} ++\frac{m+n+2}{(n+1)b}\int{x^m(ax+b)^{n+1}}\\ +\end{array} +\right. +$$ + +<<*>>= +--S 108 14:83 Axiom cannot do this integration +aa:=integrate(x^m*(a*x+b)^n,x) +--R +--R x +--R ++ m n +--I (1) | %U (b + %U a) d%U +--R ++ +--R Type: Union(Expression Integer,...) +--E + +)spool +)lisp (bye) +@ + +\eject +\begin{thebibliography}{99} +\bibitem{1} Spiegel, Murray R. +{\sl Mathematical Handbook of Formulas and Tables}\\ +Schaum's Outline Series McGraw-Hill 1968 pp60-61 +\end{thebibliography} +\end{document} Added: trunk/axiom/src/axiom-website/CATS/schaum1.input.pdf =================================================================== --- trunk/axiom/src/axiom-website/CATS/schaum1.input.pdf (rev 0) +++ trunk/axiom/src/axiom-website/CATS/schaum1.input.pdf 2008-11-24 03:20:41 UTC (rev 1014) @@ -0,0 +1,3364 @@ +%PDF-1.2 +7 0 obj +<< +/Type/Encoding +/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress +160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis] +>> +endobj +10 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F1 +/FontDescriptor 9 0 R +/BaseFont/FPGSSG+CMR17 +/FirstChar 33 +/LastChar 196 +/Widths[249.6 458.6 772.1 458.6 772.1 719.8 249.6 354.1 354.1 458.6 719.8 249.6 301.9 +249.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 249.6 249.6 +249.6 719.8 432.5 432.5 719.8 693.3 654.3 667.6 706.6 628.2 602.1 726.3 693.3 327.6 +471.5 719.4 576 850 693.3 719.8 628.2 719.8 680.5 510.9 667.6 693.3 693.3 954.5 693.3 +693.3 563.1 249.6 458.6 249.6 458.6 249.6 249.6 458.6 510.9 406.4 510.9 406.4 275.8 +458.6 510.9 249.6 275.8 484.7 249.6 772.1 510.9 458.6 510.9 484.7 354.1 359.4 354.1 +510.9 484.7 667.6 484.7 484.7 406.4 458.6 917.2 458.6 458.6 458.6 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 576 772.1 719.8 641.1 615.3 693.3 +667.6 719.8 667.6 719.8 0 0 667.6 525.4 499.3 499.3 748.9 748.9 249.6 275.8 458.6 +458.6 458.6 458.6 458.6 693.3 406.4 458.6 667.6 719.8 458.6 837.2 941.7 719.8 249.6 +458.6] +>> +endobj +13 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F2 +/FontDescriptor 12 0 R +/BaseFont/ZTNFWY+CMR12 +/FirstChar 33 +/LastChar 196 +/Widths[272 489.6 816 489.6 816 761.6 272 380.8 380.8 489.6 761.6 272 326.4 272 489.6 +489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 +462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 +734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 +272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 +544 516.8 380.8 386.2 380.8 544 516.8 707.2 516.8 516.8 435.2 489.6 979.2 489.6 489.6 +489.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611.8 816 +761.6 679.6 652.8 734 707.2 761.6 707.2 761.6 0 0 707.2 571.2 544 544 816 816 272 +299.2 489.6 489.6 489.6 489.6 489.6 734 435.2 489.6 707.2 761.6 489.6 883.8 992.6 +761.6 272 489.6] +>> +endobj +16 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F3 +/FontDescriptor 15 0 R +/BaseFont/KHZWRY+CMR10 +/FirstChar 33 +/LastChar 196 +/Widths[277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 +500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 +750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 +680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 +277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 +500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 +500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 833.3 +777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 0 0 722.2 583.3 555.6 555.6 833.3 833.3 +277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 +277.8 500] +>> +endobj +18 0 obj +<< +/Filter[/FlateDecode] +/Length 179 +>> +stream +x\xDA%\x8E\xB1\x82@\x86w\x9F\xA2\x83ÑH\xB9\xB6w\x8CĄ\xC9\xC4ی1*$\x82&\xC2\xC0\xDB\xC7Ԧ\xF9\xBF\xEF/h\xD4^\xC6 >) \xC8"\xF8'\x90\xB2\x83\x98\xB4\xC1ԁ/\xAEj{9G֩}\x91\xB4\xFDw\xA2X4\xA9\xDF=\xE2T5\xF5\xD8\xAE盯\x92\x92\x81\xF3t1e\x89!\x83\xCE\x8Fo\xBB\xCF\xD0Dl\xD54;f\xBA\xA8\xDFӂͯ\xE4b +\xC9j\xECK$S\x94\xEEօ\xB5vk\x85@\x8Ey\xB64㌙̢\x95\xC0Q\xB0\xFD\xE64\xB16 +endstream +endobj +20 0 obj +<< +/F1 10 0 R +/F2 13 0 R +/F3 16 0 R +>> +endobj +6 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 20 0 R +>> +endobj +25 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F4 +/FontDescriptor 24 0 R +/BaseFont/DKLHRG+CMBX12 +/FirstChar 33 +/LastChar 196 +/Widths[342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 +562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 +875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 +675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 +687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 +343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 +593.7 500 562.5 1125 562.5 562.5 562.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 675.9 937.5 875 787 750 879.6 812.5 875 812.5 875 0 0 812.5 +656.2 625 625 937.5 937.5 312.5 343.7 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 +812.5 875 562.5 1018.5 1143.5 875 312.5 562.5] +>> +endobj +28 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F5 +/FontDescriptor 27 0 R +/BaseFont/OOVPHA+CMBX10 +/FirstChar 33 +/LastChar 196 +/Widths[350 602.8 958.3 575 958.3 894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4 +575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 +869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 +863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 +319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 +319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9 +511.1 575 1150 575 575 575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 691.7 958.3 894.4 805.6 766.7 900 830.6 894.4 830.6 894.4 0 0 830.6 670.8 +638.9 638.9 958.3 958.3 319.4 351.4 575 575 575 575 575 869.4 511.1 597.2 830.6 894.4 +575 1041.7 1169.4 894.4 319.4 575] +>> +endobj +31 0 obj +<< +/Type/Font +/Subtype/Type1 +/Name/F6 +/FontDescriptor 30 0 R +/BaseFont/IORQIL+CMEX10 +/FirstChar 33 +/LastChar 196 +/Widths[791.7 583.3 583.3 638.9 638.9 638.9 638.9 805.6 805.6 805.6 805.6 1277.8 +1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 +888.9 888.9 888.9 888.9 666.7 875 875 875 875 611.1 611.1 833.3 1111.1 472.2 555.6 +1111.1 1511.1 1111.1 1511.1 1111.1 1511.1 1055.6 944.4 472.2 833.3 833.3 833.3 833.3 +833.3 1444.4 1277.8 555.6 1111.1 1111.1 1111.1 1111.1 1111.1 944.4 1277.8 555.6 1000 +1444.4 555.6 1000 1444.4 472.2 472.2 527.8 527.8 527.8 527.8 666.7 666.7 1000 1000 +1000 1000 1055.6 1055.6 1055.6 777.8 666.7 666.7 450 450 450 450 777.8 777.8 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 458.3 458.3 416.7 416.7 +472.2 472.2 472.2 472.2 583.3 583.3 0 0 472.2 472.2 333.3 555.6 577.8 577.8 597.2 +597.2 736.1 736.1 527.8 527.8 583.3 583.3 583.3 583.3 750 750 750 750 1044.4 1044.4 +791.7 777.8] +>> +endobj +32 0 obj +<< +/Type/Encoding +/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/omega/epsilon/theta1/pi1/rho1/sigma1/phi1/arrowlefttophalf/arrowleftbothalf/arrowrighttophalf/arrowrightbothalf/arrowhookleft/arrowhookright/triangleright/triangleleft/zerooldstyle/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle/sevenoldstyle/eightoldstyle/nineoldstyle/period/comma/less/slash/greater/star/partialdiff/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/flat/natural/sharp/slurbelow/slurabove/lscript/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/dotlessi/dotlessj/weierstrass/vector/tie/psi +160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/tie] +>> +endobj +35 0 obj +<< +/Encoding 32 0 R +/Type/Font +/Subtype/Type1 +/Name/F7 +/FontDescriptor 34 0 R +/BaseFont/ZHEONB+CMMI10 +/FirstChar 33 +/LastChar 196 +/Widths[622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 +500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 +750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5 +762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 +388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 +298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 36... [truncated message content] |
From: <gi...@ax...> - 2008-11-24 03:06:30
|
changelog | 1 + src/axiom-website/CATS/index.html | 128 + src/axiom-website/CATS/schaum1.input.pamphlet | 1430 ++++++ src/axiom-website/CATS/schaum1.input.pdf | 3029 +++++++++++ src/axiom-website/CATS/schaum10.input.pamphlet | 2310 +++++++++ src/axiom-website/CATS/schaum10.input.pdf | 3941 ++++++++++++++ src/axiom-website/CATS/schaum11.input.pamphlet | 2522 +++++++++ src/axiom-website/CATS/schaum11.input.pdf | 3980 +++++++++++++++ src/axiom-website/CATS/schaum12.input.pamphlet | 2870 +++++++++++ src/axiom-website/CATS/schaum12.input.pdf | 3958 +++++++++++++++ src/axiom-website/CATS/schaum13.input.pamphlet | 5196 +++++++++++++++++++ src/axiom-website/CATS/schaum13.input.pdf | 6474 ++++++++++++++++++++++++ src/axiom-website/CATS/schaum14.input.pamphlet | 621 +++ src/axiom-website/CATS/schaum14.input.pdf | 2081 ++++++++ src/axiom-website/CATS/schaum15.input.pamphlet | 1332 +++++ src/axiom-website/CATS/schaum15.input.pdf | 2698 ++++++++++ src/axiom-website/CATS/schaum16.input.pamphlet | 748 +++ src/axiom-website/CATS/schaum16.input.pdf | 2228 ++++++++ src/axiom-website/CATS/schaum17.input.pamphlet | 3077 +++++++++++ src/axiom-website/CATS/schaum17.input.pdf | 4492 ++++++++++++++++ src/axiom-website/CATS/schaum18.input.pamphlet | 2310 +++++++++ src/axiom-website/CATS/schaum18.input.pdf | 3846 ++++++++++++++ src/axiom-website/CATS/schaum19.input.pamphlet | 2781 ++++++++++ src/axiom-website/CATS/schaum19.input.pdf | 4477 ++++++++++++++++ src/axiom-website/CATS/schaum2.input.pamphlet | 1549 ++++++ src/axiom-website/CATS/schaum2.input.pdf | 3076 +++++++++++ src/axiom-website/CATS/schaum20.input.pamphlet | 688 +++ src/axiom-website/CATS/schaum20.input.pdf | 1939 +++++++ src/axiom-website/CATS/schaum21.input.pamphlet | 720 +++ src/axiom-website/CATS/schaum21.input.pdf | 2068 ++++++++ src/axiom-website/CATS/schaum22.input.pamphlet | 796 +++ src/axiom-website/CATS/schaum22.input.pdf | 2102 ++++++++ src/axiom-website/CATS/schaum23.input.pamphlet | 875 ++++ src/axiom-website/CATS/schaum23.input.pdf | 2155 ++++++++ src/axiom-website/CATS/schaum24.input.pamphlet | 2555 ++++++++++ src/axiom-website/CATS/schaum24.input.pdf | 4546 +++++++++++++++++ src/axiom-website/CATS/schaum25.input.pamphlet | 618 +++ src/axiom-website/CATS/schaum25.input.pdf | 2023 ++++++++ src/axiom-website/CATS/schaum26.input.pamphlet | 552 ++ src/axiom-website/CATS/schaum26.input.pdf | 1950 +++++++ src/axiom-website/CATS/schaum27.input.pamphlet | 1571 ++++++ src/axiom-website/CATS/schaum27.input.pdf | 3038 +++++++++++ src/axiom-website/CATS/schaum28.input.pamphlet | 2854 +++++++++++ src/axiom-website/CATS/schaum28.input.pdf | 4223 ++++++++++++++++ src/axiom-website/CATS/schaum29.input.pamphlet | 1431 ++++++ src/axiom-website/CATS/schaum29.input.pdf | 2801 ++++++++++ src/axiom-website/CATS/schaum3.input.pamphlet | 398 ++ src/axiom-website/CATS/schaum3.input.pdf | 1944 +++++++ src/axiom-website/CATS/schaum30.input.pamphlet | 744 +++ src/axiom-website/CATS/schaum30.input.pdf | 2070 ++++++++ src/axiom-website/CATS/schaum31.input.pamphlet | 735 +++ src/axiom-website/CATS/schaum31.input.pdf | 2067 ++++++++ src/axiom-website/CATS/schaum32.input.pamphlet | 999 ++++ src/axiom-website/CATS/schaum32.input.pdf | 2318 +++++++++ src/axiom-website/CATS/schaum33.input.pamphlet | 1021 ++++ src/axiom-website/CATS/schaum33.input.pdf | 2315 +++++++++ src/axiom-website/CATS/schaum34.input.pamphlet | 2492 +++++++++ src/axiom-website/CATS/schaum34.input.pdf | 3928 ++++++++++++++ src/axiom-website/CATS/schaum4.input.pamphlet | 525 ++ src/axiom-website/CATS/schaum4.input.pdf | 1765 +++++++ src/axiom-website/CATS/schaum5.input.pamphlet | 1667 ++++++ src/axiom-website/CATS/schaum5.input.pdf | 2930 +++++++++++ src/axiom-website/CATS/schaum6.input.pamphlet | 886 ++++ src/axiom-website/CATS/schaum6.input.pdf | 2336 +++++++++ src/axiom-website/CATS/schaum7.input.pamphlet | 1009 ++++ src/axiom-website/CATS/schaum7.input.pdf | 2604 ++++++++++ src/axiom-website/CATS/schaum8.input.pamphlet | 1198 +++++ src/axiom-website/CATS/schaum8.input.pdf | 2710 ++++++++++ src/axiom-website/CATS/schaum9.input.pamphlet | 1700 +++++++ src/axiom-website/CATS/schaum9.input.pdf | 3328 ++++++++++++ src/axiom-website/Journal/index.html | 10 + src/axiom-website/axiom.png | Bin src/axiom-website/axiom.png.org | Bin src/axiom-website/bookvol10.2abb.html | 121 + src/axiom-website/bookvol10.2abb.svg | 926 ++++ src/axiom-website/bookvol10.2full.html | 121 + src/axiom-website/bookvol10.2full.svg | 1438 ++++++ src/axiom-website/community.html | 248 + src/axiom-website/currentstate.html | 811 +++ src/axiom-website/developers.html | 263 + src/axiom-website/dhmatrix.spad.pdf | Bin src/axiom-website/diff.html | 78 + src/axiom-website/documentation.html | 257 + src/axiom-website/dotabb | 646 +++ src/axiom-website/dotabb.html | 46 + src/axiom-website/dotabb.svg | 2352 +++++++++ src/axiom-website/download.html | 1050 ++++ src/axiom-website/endpaper.pdf | Bin src/axiom-website/faq.html | 255 + src/axiom-website/index.html | 214 + src/axiom-website/nov2008abb.svg | 3537 +++++++++++++ src/axiom-website/patches.html | 740 +++ src/axiom-website/releasenotes.html | 1280 +++++ src/axiom-website/rosetta.html | 5781 +++++++++++++++++++++ src/axiom-website/rosetta.pdf | Bin src/axiom-website/rosetta.tex | 1511 ++++++ src/axiom-website/screenshot2.jpg | Bin src/axiom-website/screenshot3.png | Bin src/axiom-website/screenshots.html | 301 ++ 99 files changed, 176335 insertions(+), 0 deletions(-) New commits: commit e480180deb4da14a82a3602f8cf0ee97f6e34013 Author: Tim Daly <da...@ax...> Date: Sun Nov 9 04:32:16 2008 -0500 20081122 tpd src/axiom-website put website under change control |
From: <da...@us...> - 2008-11-24 02:05:52
|
Revision: 1013 http://axiom.svn.sourceforge.net/axiom/?rev=1013&view=rev Author: daly Date: 2008-11-24 02:05:45 +0000 (Mon, 24 Nov 2008) Log Message: ----------- 20081122 tpd zips/gcl-2.6.8pre3.unixport.makefile.patch added 20081122 tpd zips/gcl-2.6.8pre3.unixport.init_gcl.lsp.in.patch added 20081122 tpd zips/gcl-2.6.8pre3.cmpnew.gcl_cmpflet.lsp.patch added 20081122 tpd zips/gcl-2.6.8pre3.configure.in.patch added 20081122 tpd zips/gcl-2.6.8pre3.configure.patch added 20081122 tpd zips/gcl-2.6.8pre3.h.linux.defs.patch added 20081122 tpd zips/gcl-2.6.8pre3.tgz added 20081122 tpd lsp/Makefile add gcl-2.6.8pre3 chunks 20081122 tpd src/input/Makefile fix parallel race condition. don't rm files. 20081122 tpd Makefile add ubuntu64 chunk Modified Paths: -------------- trunk/axiom/Makefile.pamphlet trunk/axiom/changelog trunk/axiom/lsp/Makefile.pamphlet trunk/axiom/src/input/Makefile.pamphlet Added Paths: ----------- trunk/axiom/zips/gcl-2.6.8pre3.cmpnew.gcl_cmpflet.lsp.patch trunk/axiom/zips/gcl-2.6.8pre3.configure.in.patch trunk/axiom/zips/gcl-2.6.8pre3.configure.patch trunk/axiom/zips/gcl-2.6.8pre3.h.linux.defs.patch trunk/axiom/zips/gcl-2.6.8pre3.tgz trunk/axiom/zips/gcl-2.6.8pre3.unixport.init_gcl.lsp.in.patch trunk/axiom/zips/gcl-2.6.8pre3.unixport.makefile.patch Modified: trunk/axiom/Makefile.pamphlet =================================================================== --- trunk/axiom/Makefile.pamphlet 2008-11-20 01:43:32 UTC (rev 1012) +++ trunk/axiom/Makefile.pamphlet 2008-11-24 02:05:45 UTC (rev 1013) @@ -751,6 +751,7 @@ #GCLVERSION=gcl-2.6.7 GCLVERSION=gcl-2.6.8pre #GCLVERSION=gcl-2.6.8pre2 +#GCLVERSION=gcl-2.6.8pre3 @ \subsubsection{The [[GCLOPTS]] configure variable} @@ -1508,6 +1509,52 @@ <<clean>> @ +\subsection{Makefile.ubuntu64} +<<Makefile.ubuntu64>>= +# System dependent Makefile for the Intel/Linux platform +# Platform variable +PLF=LINUXplatform +# C compiler flags +CCF="-O2 -fno-strength-reduce -Wall -D_GNU_SOURCE -D${PLF} -I/usr/X11/include" +# Loader flags +LDF=" -L/usr/X11R6/lib -L/usr/lib ${XLIB}/libXpm.a " +# C compiler to use +CC=gcc +AWK=gawk +RANLIB=ranlib +TOUCH=touch +TAR=tar +AXIOMXLROOT=${AXIOM}/compiler +O=o +BYE=bye +LISP=lsp +DAASE=${SRC}/share +# where the libXpm.a library lives +XLIB=/usr/lib +<<GCLOPTS-LOCBFD>> +<<SRCDIRS>> +PATCH=patch + +ENV=PLF=${PLF} CCF=${CCF} LDF=${LDF} CC=${CC} AWK=${AWK} RANLIB=${RANLIB} \ + TOUCH=${TOUCH} TAR=${TAR} AXIOMXLROOT=${AXIOMXLROOT} O=${O} BYE=${BYE} \ + LISP=${LISP} DAASE=${DAASE} XLIB=${XLIB} GCLOPTS=${GCLOPTS} \ + SRCDIRS=${SRCDIRS} PATCH=${PATCH} + +all: rootdirs noweb srcsetup lspdir srcdir + @echo 45 Makefile.linux called + @echo 46 Environment : ${ENV} + @echo 47 finished system build on `date` | tee >lastBuildDate + +<<rootdirs>> +<<noweb>> +<<literate commands>> +<<srcsetup>> +<<src>> +<<lsp>> +<<document>> +<<clean>> + +@ \subsection{Makefile.macosxppc} <<Makefile.macosxppc>>= # System dependent Makefile for the MAC/BSD platform Modified: trunk/axiom/changelog =================================================================== --- trunk/axiom/changelog 2008-11-20 01:43:32 UTC (rev 1012) +++ trunk/axiom/changelog 2008-11-24 02:05:45 UTC (rev 1013) @@ -1,3 +1,21 @@ +20081122 tpd zips/gcl-2.6.8pre3.unixport.makefile.patch added +20081122 tpd zips/gcl-2.6.8pre3.unixport.init_gcl.lsp.in.patch added +20081122 tpd zips/gcl-2.6.8pre3.cmpnew.gcl_cmpflet.lsp.patch added +20081122 tpd zips/gcl-2.6.8pre3.configure.in.patch added +20081122 tpd zips/gcl-2.6.8pre3.configure.patch added +20081122 tpd zips/gcl-2.6.8pre3.h.linux.defs.patch added +20081122 tpd zips/gcl-2.6.8pre3.tgz added +20081122 tpd lsp/Makefile add gcl-2.6.8pre3 chunks +20081122 tpd src/input/Makefile fix parallel race condition. don't rm files. +20081122 tpd Makefile add ubuntu64 chunk +20081121 tpd src/algebra/Makefile remove annacat.spad +20081121 tpd src/algebra/annacat.spad move domains to bookvol10.3, delete +20081121 tpd src/algebra/alql.spad move domains to bookvol10.3 +20081121 tpd src/algebra/Makefile remove algext.spad +20081121 tpd src/algebra/algext.spad move domains to bookvol10.3, delete +20081121 tpd src/algebra/acplot.spad move domains to bookvol10.3 +20081119 tpd src/input/Makefile fix parallel test +20081119 tpd books/Makefile.pamphlet add toc entries for toc.pdf 20081119 tpd Makefile modify VERSION number for release 20081119 tpd Makefile.pamphlet modify VERSION number for release 20081119 tpd books/ps/v71releasenotes.eps modified for november 2008 release Modified: trunk/axiom/lsp/Makefile.pamphlet =================================================================== --- trunk/axiom/lsp/Makefile.pamphlet 2008-11-20 01:43:32 UTC (rev 1012) +++ trunk/axiom/lsp/Makefile.pamphlet 2008-11-24 02:05:45 UTC (rev 1013) @@ -209,6 +209,14 @@ touch ${OBJ}/${SYS}/lib/cfuns-c.ini ; \ touch ${OBJ}/${SYS}/lib/sockio-c.ini ) @ +<<gcl-2.6.8pre3.socket.patch>>= + @(cd ${GCLVERSION}/h ; \ + echo 3 applying EXTRAS patch to h/linux.defs ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.h.linux.defs.patch ) + @(echo 4 setup ini files for EXTRAS patch ; \ + touch ${OBJ}/${SYS}/lib/cfuns-c.ini ; \ + touch ${OBJ}/${SYS}/lib/sockio-c.ini ) +@ \subsubsection{fortran patch} Communication over sockets (basically to the NAG fortran library) requires us to have XDR enabled. @@ -290,6 +298,11 @@ echo 6 applying libspad.a patch to unixport/makefile ; \ ${PATCH} <${SPD}/zips/${GCLVERSION}.unixport.makefile.patch ) @ +<<gcl-2.6.8pre3.libspad.patch>>= + @(cd ${GCLVERSION}/unixport ; \ + echo 6 applying libspad.a patch to unixport/makefile ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.unixport.makefile.patch ) +@ \subsubsection{toploop patch} This patch turns off the banner display every time GCL starts. We could use the -batch flag but that would be a pervasive change. @@ -353,6 +366,11 @@ echo 7 applying toploop patch to unixport/init_gcl.lsp ; \ ${PATCH} <${SPD}/zips/${GCLVERSION}.unixport.init_gcl.lsp.in.patch ) @ +<<gcl-2.6.8pre3.toploop.patch>>= + @(cd ${GCLVERSION}/unixport ; \ + echo 7 applying toploop patch to unixport/init_gcl.lsp ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.unixport.init_gcl.lsp.in.patch ) +@ \subsubsection{object to float patch} GCL 2.5.2 contains no reference to this function and it was removed. Axiom uses this function so we re-implement it here. @@ -569,6 +587,14 @@ echo 27 copy sys-proclaim.lisp to ${OBJ}/${SYS}/lsp/sys-proclaim.lisp ; \ cp sys-proclaim.lisp ${OBJ}/${SYS}/lsp/sys-proclaim.lisp ) @ +<<gcl-2.6.8pre3.collectfn.fix>>= + @(cd ${GCLVERSION}/cmpnew ; \ + echo 26 copy gcl_collectfn.lsp to ${OBJ}/${SYS}/lsp/collectfn.lsp ; \ + cp gcl_collectfn.lsp ${OBJ}/${SYS}/lsp/collectfn.lsp ) + @(cd ${GCLVERSION}/lsp ; \ + echo 27 copy sys-proclaim.lisp to ${OBJ}/${SYS}/lsp/sys-proclaim.lisp ; \ + cp sys-proclaim.lisp ${OBJ}/${SYS}/lsp/sys-proclaim.lisp ) +@ \subsection{The GCL-2.5.2 stanza} \subsubsection{Configure and Make GCL} We enable several features of GCL. @@ -1178,6 +1204,47 @@ @( cd ccl ; ${ENV} ${MAKE} clean ) @ +\subsection{The GCL-2.6.8pre3 stanza} +This stanza will be written when the GCLVERSION variable is +``gcl-2.6.8pre3''. It will overwrite the default version. See the +top level Makefile.pamphlet. +<<gcl-2.6.8pre3>>= +# gcl version 2.6.8pre3 +OUT=${OBJ}/${SYS}/bin + +all: + @echo 1 building ${LSP} ${GCLVERSION} + +gcldir: + @echo 2 building ${GCLVERSION} + @tar -zxf ${ZIPS}/${GCLVERSION}.tgz +<<gcl-2.6.8pre3.socket.patch>> +<<gcl-2.6.8pre3.libspad.patch>> +<<gcl-2.6.8pre3.toploop.patch>> +<<gcl-2.6.8pre3.collectfn.fix>> +<<gclConfigureMake>> + @echo 13 finished system build on `date` | tee >gcldir + +ccldir: ${LSP}/ccl/Makefile + @echo 14 building CCL + @mkdir -p ${INT}/ccl + @mkdir -p ${OBJ}/${SYS}/ccl + @( cd ccl ; ${ENV} ${MAKE} ) + +${LSP}/ccl/Makefile: ${LSP}/ccl/Makefile.pamphlet + @echo 15 making ${LSP}/ccl/Makefile from ${LSP}/ccl/Makefile.pamphlet + @( cd ccl ; ${DOCUMENT} ${NOISE} Makefile ) + +document: + @echo 16 making docs in ${LSP} + @mkdir -p ${INT}/doc/lsp/ccl + @( cd ccl ; ${ENV} ${MAKE} document ) + +clean: + @echo 17 cleaning ${LSP}/ccl + @( cd ccl ; ${ENV} ${MAKE} clean ) + +@ \section{Gnu Common Lisp 2.5} GCL 2.5 requires a different Makefile. In particular, GCL 2.5 has a different method of building the lisp image. And, just to Modified: trunk/axiom/src/input/Makefile.pamphlet =================================================================== --- trunk/axiom/src/input/Makefile.pamphlet 2008-11-20 01:43:32 UTC (rev 1012) +++ trunk/axiom/src/input/Makefile.pamphlet 2008-11-24 02:05:45 UTC (rev 1013) @@ -398,21 +398,24 @@ spurious differences caused by the Version and Timestamp lines in the standard Axiom banner. These cause mismatches in otherwise identical output. + +The input files are not removed because this parallel builds +create race conditions. <<regression tests>>= %.output: %.input - @ echo running test file $* using $*${TMPFN}.input - @ echo ')set message test on' > $*${TMPFN}.input - @ echo ')set message auto off' >> $*${TMPFN}.input - @ echo ')read $*' >> $*${TMPFN}.input - @ echo ')lisp (bye)' >> $*${TMPFN}.input + @ echo generic 17 running test file $* using $*.input + @ echo ')set message test on' > $*.input + @ echo ')set message auto off' >> $*.input + @ echo ')read $*' >> $*.input + @ echo ')lisp (bye)' >> $*.input @ if [ -z "${NOISE}" ] ; then \ - echo ")read $*${TMPFN}.input" | ${TESTSYS} \ + echo ")read $*.input" | ${TESTSYS} \ | egrep -v '(Timestamp|Version)' | tee $*.output ; \ else \ - echo ")read $*${TMPFN}.input" | ${TESTSYS} \ + echo ")read $*.input" | ${TESTSYS} \ | egrep -v '(Timestamp|Version)' > $*.output ; \ fi - @ rm $*${TMPFN}.input +# @ rm $*.input @ A regression test file will run the input file. Each input file Added: trunk/axiom/zips/gcl-2.6.8pre3.cmpnew.gcl_cmpflet.lsp.patch =================================================================== --- trunk/axiom/zips/gcl-2.6.8pre3.cmpnew.gcl_cmpflet.lsp.patch (rev 0) +++ trunk/axiom/zips/gcl-2.6.8pre3.cmpnew.gcl_cmpflet.lsp.patch 2008-11-24 02:05:45 UTC (rev 1013) @@ -0,0 +1,15 @@ +--- gcl_cmpflet.lsp Sun Jul 24 12:54:29 2005 ++++ gcl_cmpflet.lsp.tpd Sun Jul 24 13:44:18 2005 +@@ -390,8 +390,10 @@ + (wt-label *exit*)) + (unwind-no-exit 'tail-recursion-mark) + (wt-nl "goto TTL;") +- (cmpnote "Tail-recursive call of ~s was replaced by iteration." +- (fun-name (car fd)))) ++; 20031022000 tpd we don't need to know this ++; (cmpnote "Tail-recursive call of ~s was replaced by iteration." ++; (fun-name (car fd))) ++ ) + (t (push-args args) + (wt-nl (c-function-name "L" (fun-cfun (car fd)) (fun-name (car fd))) "(") + (dotimes** (n (fun-level (car fd))) (wt "base" n ",")) Added: trunk/axiom/zips/gcl-2.6.8pre3.configure.in.patch =================================================================== --- trunk/axiom/zips/gcl-2.6.8pre3.configure.in.patch (rev 0) +++ trunk/axiom/zips/gcl-2.6.8pre3.configure.in.patch 2008-11-24 02:05:45 UTC (rev 1013) @@ -0,0 +1,11 @@ +--- configure.in Sat Jan 15 14:17:17 2005 ++++ configure.in.tpd Tue Jan 17 09:32:15 2006 +@@ -538,7 +538,7 @@ + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then +- system=MP-RAS-`${AWK} '{print $3}' /etc/.relid'` ++ system=MP-RAS-`${AWK} '{print $3}' '/etc/.relid'` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` Added: trunk/axiom/zips/gcl-2.6.8pre3.configure.patch =================================================================== --- trunk/axiom/zips/gcl-2.6.8pre3.configure.patch (rev 0) +++ trunk/axiom/zips/gcl-2.6.8pre3.configure.patch 2008-11-24 02:05:45 UTC (rev 1013) @@ -0,0 +1,11 @@ +--- configure Sat Jan 15 14:17:17 2005 ++++ configure.tpd Sun Apr 16 23:12:48 2006 +@@ -6187,7 +6187,7 @@ + echo "configure:6188: checking emacs site lisp directory" >&5 + if [ "$EMACS_SITE_LISP" = "unknown" ] ; then + if [ "$EMACS" != "" ] ; then +- EMACS_SITE_LISP=`$EMACS -q -batch --no-site-file -l conftest.el 2>&1 | sed -e /Loading/d | sed -e /load/d ` ++ EMACS_SITE_LISP=`$EMACS -q -batch --no-site-file -l conftest.el 2>&1 | grep -v ^Warning: | sed -e /Loading/d | sed -e /load/d ` + else + EMACS_SITE_LISP="" + fi Added: trunk/axiom/zips/gcl-2.6.8pre3.h.linux.defs.patch =================================================================== --- trunk/axiom/zips/gcl-2.6.8pre3.h.linux.defs.patch (rev 0) +++ trunk/axiom/zips/gcl-2.6.8pre3.h.linux.defs.patch 2008-11-24 02:05:45 UTC (rev 1013) @@ -0,0 +1,13 @@ +--- linux.defs Sun Jul 24 12:55:14 2005 ++++ linux.defs.tpd Sun Jul 24 13:55:26 2005 +@@ -8,6 +8,10 @@ + + # Machine dependent makefile definitions for intel 386,486 running linux + ++# 20031022000 tpd link Axiom's code into the image ++EXTRAS = ${OBJ}/${SYS}/lib/cfuns-c.o ${OBJ}/${SYS}/lib/sockio-c.o ++OFLAG = -O ++ + LBINDIR=/usr/local/bin + + #OFLAG = -g -Wall Added: trunk/axiom/zips/gcl-2.6.8pre3.tgz =================================================================== (Binary files differ) Property changes on: trunk/axiom/zips/gcl-2.6.8pre3.tgz ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/axiom/zips/gcl-2.6.8pre3.unixport.init_gcl.lsp.in.patch =================================================================== --- trunk/axiom/zips/gcl-2.6.8pre3.unixport.init_gcl.lsp.in.patch (rev 0) +++ trunk/axiom/zips/gcl-2.6.8pre3.unixport.init_gcl.lsp.in.patch 2008-11-24 02:05:45 UTC (rev 1013) @@ -0,0 +1,11 @@ +--- init_gcl.lsp.in 2008-11-22 05:33:51.000000000 -0500 ++++ init_gcl.lsp.in.new 2008-11-22 05:34:00.000000000 -0500 +@@ -85,7 +85,7 @@ + (cond ((si::get-command-arg "-batch") + (setq si::*top-level-hook* 'bye)) + ((si::get-command-arg "-f")) +- (t (format t si::*system-banner*) ++ (t ;(format t si::*system-banner*) + (format t "Temporary directory for compiler files set to ~a~%" *tmp-dir*))) + (setq si::*ihs-top* 1) + (in-package 'system::user) (incf system::*ihs-top* 2) Added: trunk/axiom/zips/gcl-2.6.8pre3.unixport.makefile.patch =================================================================== --- trunk/axiom/zips/gcl-2.6.8pre3.unixport.makefile.patch (rev 0) +++ trunk/axiom/zips/gcl-2.6.8pre3.unixport.makefile.patch 2008-11-24 02:05:45 UTC (rev 1013) @@ -0,0 +1,12 @@ +--- makefile Sun Jul 24 12:55:39 2005 ++++ makefile.tpd Sun Jul 24 15:40:01 2005 +@@ -14,7 +14,8 @@ + PORTDIR = $(shell pwd) + + LD_LIBS_PRE=$(FIRST_FILE) $(addprefix -u ,$(PATCHED_SYMBOLS)) +-LD_LIBS_POST=$(LIBS) $(LIBC) -lgclp $(LAST_FILE) ++# 20031022000 tpd link axiom's C library code ++LD_LIBS_POST=$(LIBS) $(LIBC) -lgclp ${OBJ}/${SYS}/lib/libspad.a $(LAST_FILE) + + ifeq ($(ARRS),) + ARRS:=ar rs This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gi...@ax...> - 2008-11-24 01:51:04
|
Makefile.pamphlet | 47 ++++++++++++++ changelog | 18 ++++++ lsp/Makefile.pamphlet | 67 +++++++++++++++++++++ src/input/Makefile.pamphlet | 19 ++++--- zips/gcl-2.6.8pre3.cmpnew.gcl_cmpflet.lsp.patch | 15 +++++ zips/gcl-2.6.8pre3.configure.in.patch | 11 ++++ zips/gcl-2.6.8pre3.configure.patch | 11 ++++ zips/gcl-2.6.8pre3.h.linux.defs.patch | 13 ++++ zips/gcl-2.6.8pre3.tgz | Bin zips/gcl-2.6.8pre3.unixport.init_gcl.lsp.in.patch | 11 ++++ zips/gcl-2.6.8pre3.unixport.makefile.patch | 12 ++++ 11 files changed, 216 insertions(+), 8 deletions(-) New commits: commit 3e5d25e885f2cba3cbd299f1d12eba18a72f1641 Author: Tim Daly <da...@ax...> Date: Sun Nov 9 03:37:23 2008 -0500 20081122 tpd zips/gcl-2.6.8pre3.unixport.makefile.patch added 20081122 tpd zips/gcl-2.6.8pre3.unixport.init_gcl.lsp.in.patch added 20081122 tpd zips/gcl-2.6.8pre3.cmpnew.gcl_cmpflet.lsp.patch added 20081122 tpd zips/gcl-2.6.8pre3.configure.in.patch added 20081122 tpd zips/gcl-2.6.8pre3.configure.patch added 20081122 tpd zips/gcl-2.6.8pre3.h.linux.defs.patch added 20081122 tpd zips/gcl-2.6.8pre3.tgz added 20081122 tpd lsp/Makefile add gcl-2.6.8pre3 chunks 20081122 tpd src/input/Makefile fix parallel race condition. don't rm files. 20081122 tpd Makefile add ubuntu64 chunk |
From: <da...@us...> - 2008-11-20 01:43:36
|
Revision: 1012 http://axiom.svn.sourceforge.net/axiom/?rev=1012&view=rev Author: daly Date: 2008-11-20 01:43:32 +0000 (Thu, 20 Nov 2008) Log Message: ----------- November 2008 release Modified Paths: -------------- trunk/axiom/src/algebra/algfunc.spad.pamphlet trunk/axiom/src/algebra/clifford.spad.pamphlet trunk/axiom/src/algebra/clip.spad.pamphlet trunk/axiom/src/algebra/cmplxrt.spad.pamphlet trunk/axiom/src/algebra/color.spad.pamphlet trunk/axiom/src/algebra/combinat.spad.pamphlet trunk/axiom/src/algebra/complet.spad.pamphlet trunk/axiom/src/algebra/constant.spad.pamphlet trunk/axiom/src/algebra/cont.spad.pamphlet trunk/axiom/src/algebra/contfrac.spad.pamphlet trunk/axiom/src/algebra/coordsys.spad.pamphlet trunk/axiom/src/algebra/cra.spad.pamphlet trunk/axiom/src/algebra/laurent.spad.pamphlet trunk/axiom/src/algebra/polset.spad.pamphlet trunk/axiom/src/algebra/regset.spad.pamphlet trunk/axiom/src/algebra/sregset.spad.pamphlet Added Paths: ----------- trunk/axiom/books/ps/v102algebraicallyclosedfunctionspace.ps trunk/axiom/books/ps/v102pointcategory.ps trunk/axiom/books/ps/v102regulartriangularsetcategory.ps trunk/axiom/books/ps/v102squarefreeregulartriangularsetcategory.ps trunk/axiom/books/ps/v102univariatelaurentseriesconstructorcategory.ps Added: trunk/axiom/books/ps/v102algebraicallyclosedfunctionspace.ps =================================================================== --- trunk/axiom/books/ps/v102algebraicallyclosedfunctionspace.ps (rev 0) +++ trunk/axiom/books/ps/v102algebraicallyclosedfunctionspace.ps 2008-11-20 01:43:32 UTC (rev 1012) @@ -0,0 +1,1000 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 921 296 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 921 296 +%%PageOrientation: Portrait +gsave +36 36 885 260 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 258 lineto +883 258 lineto +883 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 258 lineto +883 258 lineto +883 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% AlgebraicallyClosedFunctionSpace(a:Join(OrderedSet,IntegralDomain)) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 627 252 moveto +205 252 lineto +205 216 lineto +627 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 627 252 moveto +205 252 lineto +205 216 lineto +627 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +213 229 moveto +(AlgebraicallyClosedFunctionSpace\(a:Join\(OrderedSet,IntegralDomain\)\)) +[10.08 3.84 6.72 6.24 6.96 4.8 6.24 3.84 6.24 6.24 3.84 3.6 6.96 9.36 3.84 6.96 5.52 6.24 6.96 7.44 6.96 6.96 6.24 3.84 3.84 6.96 6.96 7.68 6.96 6.24 6.24 6.24 4.56 6.24 3.84 5.52 6.96 3.84 6.96 4.56 10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 3.6 4.56 6.96 3.84 6.24 7.2 4.8 6.24 3.84 10.08 6.96 10.8 6.24 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% AlgebraicallyClosedField() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 403 180 moveto +233 180 lineto +233 144 lineto +403 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 403 180 moveto +233 180 lineto +233 144 lineto +403 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +241 157 moveto +(AlgebraicallyClosedField\(\)) +[10.08 3.84 6.72 6.24 6.96 4.8 6.24 3.84 6.24 6.24 3.84 3.6 6.96 9.36 3.84 6.96 5.52 6.24 6.96 7.44 3.84 6.24 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% AlgebraicallyClosedFunctionSpace(a:Join(OrderedSet,IntegralDomain))->AlgebraicallyClosedField() +newpath 391 216 moveto +379 207 364 196 350 186 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 352 183 moveto +342 180 lineto +348 189 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 352 183 moveto +342 180 lineto +348 189 lineto +closepath +stroke +end grestore +% FunctionSpace(a:OrderedSet) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 606 180 moveto +424 180 lineto +424 144 lineto +606 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 606 180 moveto +424 180 lineto +424 144 lineto +606 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +432 157 moveto +(FunctionSpace\(a:OrderedSet\)) +[7.44 6.96 6.96 6.24 3.84 3.84 6.96 6.96 7.68 6.96 6.24 6.24 6.24 4.56 6.24 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 4.56] +xshow +end grestore +end grestore +% AlgebraicallyClosedFunctionSpace(a:Join(OrderedSet,IntegralDomain))->FunctionSpace(a:OrderedSet) +newpath 441 216 moveto +453 207 468 196 482 186 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 484 189 moveto +490 180 lineto +480 183 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 484 189 moveto +490 180 lineto +480 183 lineto +closepath +stroke +end grestore +% Field() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 200 108 moveto +146 108 lineto +146 72 lineto +200 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 200 108 moveto +146 108 lineto +146 72 lineto +200 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +154 85 moveto +(Field\(\)) +[7.44 3.84 6.24 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% AlgebraicallyClosedField()->Field() +newpath 281 144 moveto +259 134 231 119 209 108 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 211 105 moveto +200 104 lineto +208 111 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 211 105 moveto +200 104 lineto +208 111 lineto +closepath +stroke +end grestore +% RadicalCategory() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 378 108 moveto +258 108 lineto +258 72 lineto +378 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 378 108 moveto +258 108 lineto +258 72 lineto +378 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +266 85 moveto +(RadicalCategory\(\)) +[9.36 6.24 6.96 3.84 6.24 6.24 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 4.56] +xshow +end grestore +end grestore +% AlgebraicallyClosedField()->RadicalCategory() +newpath 318 144 moveto +318 136 318 127 318 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 322 118 moveto +318 108 lineto +315 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 322 118 moveto +318 108 lineto +315 118 lineto +closepath +stroke +end grestore +% ExpressionSpace() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 573 108 moveto +451 108 lineto +451 72 lineto +573 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 573 108 moveto +451 108 lineto +451 72 lineto +573 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +459 85 moveto +(ExpressionSpace\(\)) +[8.64 6.96 6.96 4.8 6.24 5.52 5.52 3.84 6.96 6.96 7.68 6.96 6.24 6.24 6.24 4.56 4.56] +xshow +end grestore +end grestore +% FunctionSpace(a:OrderedSet)->ExpressionSpace() +newpath 514 144 moveto +513 136 513 127 513 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 517 118 moveto +513 108 lineto +510 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 517 118 moveto +513 108 lineto +510 118 lineto +closepath +stroke +end grestore +% RETRACT... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 460 36 moveto +370 36 lineto +370 0 lineto +460 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 460 36 moveto +370 36 lineto +370 0 lineto +460 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +378 13 moveto +(RETRACT...) +[9.36 8.64 8.64 9.36 9.36 9.36 7.44 3.6 3.6 3.6] +xshow +end grestore +end grestore +% FunctionSpace(a:OrderedSet)->RETRACT... +newpath 482 144 moveto +468 135 452 123 442 108 curveto +429 90 421 65 418 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 421 46 moveto +417 36 lineto +415 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 421 46 moveto +417 36 lineto +415 46 lineto +closepath +stroke +end grestore +% PATAB... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 663 108 moveto +591 108 lineto +591 72 lineto +663 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 663 108 moveto +591 108 lineto +591 72 lineto +663 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +599 85 moveto +(PATAB...) +[6.48 9.36 7.92 10.08 9.36 3.6 3.6 3.6] +xshow +end grestore +end grestore +% FunctionSpace(a:OrderedSet)->PATAB... +newpath 543 144 moveto +557 135 575 124 590 114 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 593 116 moveto +599 108 lineto +589 111 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 593 116 moveto +599 108 lineto +589 111 lineto +closepath +stroke +end grestore +% FPATMAB... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 773 108 moveto +681 108 lineto +681 72 lineto +773 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 773 108 moveto +681 108 lineto +681 72 lineto +773 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +689 85 moveto +(FPATMAB...) +[7.68 6.48 9.36 8.64 12.48 10.08 9.36 3.6 3.6 3.6] +xshow +end grestore +end grestore +% FunctionSpace(a:OrderedSet)->FPATMAB... +newpath 568 144 moveto +600 133 640 120 671 109 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 672 112 moveto +681 106 lineto +670 106 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 672 112 moveto +681 106 lineto +670 106 lineto +closepath +stroke +end grestore +% FRETRCT... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 877 108 moveto +791 108 lineto +791 72 lineto +877 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 877 108 moveto +791 108 lineto +791 72 lineto +877 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +798 85 moveto +(FRETRCT...) +[7.68 9.36 8.64 8.64 8.88 9.36 7.44 3.6 3.6 3.6] +xshow +end grestore +end grestore +% FunctionSpace(a:OrderedSet)->FRETRCT... +newpath 606 146 moveto +655 137 718 124 781 108 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 782 111 moveto +791 105 lineto +780 105 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 782 111 moveto +791 105 lineto +780 105 lineto +closepath +stroke +end grestore +% EUCDOM... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 88 36 moveto +0 36 lineto +0 0 lineto +88 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 88 36 moveto +0 36 lineto +0 0 lineto +88 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 13 moveto +(EUCDOM...) +[8.64 10.08 9.36 10.08 10.08 12.48 3.6 3.6 3.6] +xshow +end grestore +end grestore +% Field()->EUCDOM... +newpath 146 75 moveto +129 65 105 52 85 41 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 86 38 moveto +76 36 lineto +83 44 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 86 38 moveto +76 36 lineto +83 44 lineto +closepath +stroke +end grestore +% UFD... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 162 36 moveto +106 36 lineto +106 0 lineto +162 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 162 36 moveto +106 36 lineto +106 0 lineto +162 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +114 13 moveto +(UFD...) +[10.08 7.68 10.08 3.6 3.6 3.6] +xshow +end grestore +end grestore +% Field()->UFD... +newpath 163 72 moveto +159 64 154 54 149 45 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 152 43 moveto +144 36 lineto +146 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 152 43 moveto +144 36 lineto +146 46 lineto +closepath +stroke +end grestore +% DIVRING... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 266 36 moveto +180 36 lineto +180 0 lineto +266 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 266 36 moveto +180 36 lineto +180 0 lineto +266 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +187 13 moveto +(DIVRING...) +[10.08 4.56 10.08 9.36 4.56 9.84 10.08 3.6 3.6 3.6] +xshow +end grestore +end grestore +% Field()->DIVRING... +newpath 186 72 moveto +191 64 198 54 204 44 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 207 46 moveto +210 36 lineto +201 42 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 207 46 moveto +210 36 lineto +201 42 lineto +closepath +stroke +end grestore +% Category +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 352 36 moveto +284 36 lineto +284 0 lineto +352 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 352 36 moveto +284 36 lineto +284 0 lineto +352 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +292 13 moveto +(Category) +[9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96] +xshow +end grestore +end grestore +% RadicalCategory()->Category +newpath 318 72 moveto +318 64 318 55 318 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 322 46 moveto +318 36 lineto +315 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 322 46 moveto +318 36 lineto +315 46 lineto +closepath +stroke +end grestore +% ExpressionSpace()->RETRACT... +newpath 488 72 moveto +476 63 461 52 447 42 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 449 39 moveto +439 36 lineto +445 45 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 449 39 moveto +439 36 lineto +445 45 lineto +closepath +stroke +end grestore +% ORDSET... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 558 36 moveto +478 36 lineto +478 0 lineto +558 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 558 36 moveto +478 36 lineto +478 0 lineto +558 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +485 13 moveto +(ORDSET...) +[10.08 9.36 10.08 7.68 8.64 7.44 3.6 3.6 3.6] +xshow +end grestore +end grestore +% ExpressionSpace()->ORDSET... +newpath 514 72 moveto +515 64 515 55 516 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 520 46 moveto +516 36 lineto +513 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 520 46 moveto +516 36 lineto +513 46 lineto +closepath +stroke +end grestore +% IEVALAB... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 664 36 moveto +576 36 lineto +576 0 lineto +664 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 664 36 moveto +576 36 lineto +576 0 lineto +664 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +584 13 moveto +(IEVALAB...) +[4.56 8.64 8.4 10.08 8.64 10.08 9.36 3.6 3.6 3.6] +xshow +end grestore +end grestore +% ExpressionSpace()->IEVALAB... +newpath 539 72 moveto +553 63 570 52 584 42 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 587 44 moveto +593 36 lineto +583 39 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 587 44 moveto +593 36 lineto +583 39 lineto +closepath +stroke +end grestore +% EVALABLE... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 782 36 moveto +682 36 lineto +682 0 lineto +782 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 782 36 moveto +682 36 lineto +682 0 lineto +782 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +690 13 moveto +(EVALABLE...) +[8.64 8.4 10.08 8.64 10.08 9.36 8.64 8.64 3.6 3.6 3.6] +xshow +end grestore +end grestore +% ExpressionSpace()->EVALABLE... +newpath 567 72 moveto +599 62 639 49 672 38 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 673 41 moveto +682 35 lineto +671 35 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 673 41 moveto +682 35 lineto +671 35 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF Added: trunk/axiom/books/ps/v102pointcategory.ps =================================================================== --- trunk/axiom/books/ps/v102pointcategory.ps (rev 0) +++ trunk/axiom/books/ps/v102pointcategory.ps 2008-11-20 01:43:32 UTC (rev 1012) @@ -0,0 +1,611 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 359 584 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 359 584 +%%PageOrientation: Portrait +gsave +36 36 323 548 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 546 lineto +321 546 lineto +321 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 546 lineto +321 546 lineto +321 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% PointCategory(a:Ring) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 263 540 moveto +119 540 lineto +119 504 lineto +263 504 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 263 540 moveto +119 540 lineto +119 504 lineto +263 504 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +126 517 moveto +(PointCategory\(a:Ring\)) +[7.44 6.96 3.84 6.96 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.84 9.36 3.84 6.96 6.96 4.56] +xshow +end grestore +end grestore +% VectorCategory(a:Ring) +gsave 10 dict begin +filled +0.404 0.667 0.545 nodecolor +0.404 0.667 0.545 nodecolor +newpath 267 468 moveto +115 468 lineto +115 432 lineto +267 432 lineto +closepath +fill +0.404 0.667 0.545 nodecolor +newpath 267 468 moveto +115 468 lineto +115 432 lineto +267 432 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +122 445 moveto +(VectorCategory\(a:Ring\)) +[8.88 6.24 6.24 3.84 6.96 4.8 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.84 9.36 3.84 6.96 6.96 4.56] +xshow +end grestore +end grestore +% PointCategory(a:Ring)->VectorCategory(a:Ring) +newpath 191 504 moveto +191 496 191 487 191 478 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 195 478 moveto +191 468 lineto +188 478 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 195 478 moveto +191 468 lineto +188 478 lineto +closepath +stroke +end grestore +% VectorCategory(a:Type) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 267 396 moveto +115 396 lineto +115 360 lineto +267 360 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 267 396 moveto +115 396 lineto +115 360 lineto +267 360 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +122 373 moveto +(VectorCategory\(a:Type\)) +[8.88 6.24 6.24 3.84 6.96 4.8 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.84 7.2 6.96 6.96 6.24 4.56] +xshow +end grestore +end grestore +% VectorCategory(a:Ring)->VectorCategory(a:Type) +newpath 191 432 moveto +191 424 191 415 191 406 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 195 406 moveto +191 396 lineto +188 406 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 195 406 moveto +191 396 lineto +188 406 lineto +closepath +stroke +end grestore +% OneDimensionalArrayAggregate(a:Type) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 315 324 moveto +67 324 lineto +67 288 lineto +315 288 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 315 324 moveto +67 324 lineto +67 288 lineto +315 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +74 301 moveto +(OneDimensionalArrayAggregate\(a:Type\)) +[10.08 6.96 6.24 10.08 3.84 10.8 6.24 6.96 5.52 3.84 6.96 6.96 6.24 3.84 10.08 5.28 4.8 5.76 6.96 9.84 6.96 7.2 4.8 6.24 6.72 6.24 3.84 6.24 4.56 6.24 3.84 7.2 6.96 6.96 6.24 4.56] +xshow +end grestore +end grestore +% VectorCategory(a:Type)->OneDimensionalArrayAggregate(a:Type) +newpath 191 360 moveto +191 352 191 343 191 334 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 195 334 moveto +191 324 lineto +188 334 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 195 334 moveto +191 324 lineto +188 334 lineto +closepath +stroke +end grestore +% FiniteLinearAggregate(a:Type) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 286 252 moveto +96 252 lineto +96 216 lineto +286 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 286 252 moveto +96 252 lineto +96 216 lineto +286 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +104 229 moveto +(FiniteLinearAggregate\(a:Type\)) +[7.44 3.84 6.96 3.84 3.84 6.24 8.64 3.84 6.96 6.24 6.24 4.8 9.84 6.96 7.2 4.8 6.24 6.72 6.24 3.84 6.24 4.56 6.24 3.84 7.2 6.96 6.96 6.24 4.56] +xshow +end grestore +end grestore +% OneDimensionalArrayAggregate(a:Type)->FiniteLinearAggregate(a:Type) +newpath 191 288 moveto +191 280 191 271 191 262 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 195 262 moveto +191 252 lineto +188 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 195 262 moveto +191 252 lineto +188 262 lineto +closepath +stroke +end grestore +% LinearAggregate(a:Type) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 270 180 moveto +112 180 lineto +112 144 lineto +270 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 270 180 moveto +112 180 lineto +112 144 lineto +270 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +120 157 moveto +(LinearAggregate\(a:Type\)) +[8.64 3.84 6.96 6.24 6.24 4.8 9.84 6.96 7.2 4.8 6.24 6.72 6.24 3.84 6.24 4.56 6.24 3.84 7.2 6.96 6.96 6.24 4.56] +xshow +end grestore +end grestore +% FiniteLinearAggregate(a:Type)->LinearAggregate(a:Type) +newpath 191 216 moveto +191 208 191 199 191 190 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 195 190 moveto +191 180 lineto +188 190 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 195 190 moveto +191 180 lineto +188 190 lineto +closepath +stroke +end grestore +% IndexedAggregate(b:Integer,a:Type) +gsave 10 dict begin +filled +0.404 0.667 0.545 nodecolor +0.404 0.667 0.545 nodecolor +newpath 218 108 moveto +0 108 lineto +0 72 lineto +218 72 lineto +closepath +fill +0.404 0.667 0.545 nodecolor +newpath 218 108 moveto +0 108 lineto +0 72 lineto +218 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 85 moveto +(IndexedAggregate\(b:Integer,a:Type\)) +[4.56 6.96 6.96 5.76 6.48 6.24 6.96 9.84 6.96 7.2 4.8 6.24 6.72 6.24 3.84 6.24 4.56 6.96 3.84 4.56 6.96 3.84 6.24 6.72 6.24 4.32 3.6 6.24 3.84 7.2 6.96 6.96 6.24 4.56] +xshow +end grestore +end grestore +% LinearAggregate(a:Type)->IndexedAggregate(b:Integer,a:Type) +newpath 170 144 moveto +160 135 148 124 137 115 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 139 112 moveto +129 108 lineto +134 117 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 139 112 moveto +129 108 lineto +134 117 lineto +closepath +stroke +end grestore +% CLAGG... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 310 108 moveto +236 108 lineto +236 72 lineto +310 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 310 108 moveto +236 108 lineto +236 72 lineto +310 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +243 85 moveto +(CLAGG...) +[9.36 8.64 9.36 10.08 10.08 3.6 3.6 3.6] +xshow +end grestore +end grestore +% LinearAggregate(a:Type)->CLAGG... +newpath 212 144 moveto +222 135 234 124 245 115 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 248 117 moveto +253 108 lineto +243 112 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 248 117 moveto +253 108 lineto +243 112 lineto +closepath +stroke +end grestore +% IXAGG... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 145 36 moveto +73 36 lineto +73 0 lineto +145 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 145 36 moveto +73 36 lineto +73 0 lineto +145 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +80 13 moveto +(IXAGG...) +[4.56 10.08 9.36 10.08 10.08 3.6 3.6 3.6] +xshow +end grestore +end grestore +% IndexedAggregate(b:Integer,a:Type)->IXAGG... +newpath 109 72 moveto +109 64 109 55 109 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 113 46 moveto +109 36 lineto +106 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 113 46 moveto +109 36 lineto +106 46 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF Added: trunk/axiom/books/ps/v102regulartriangularsetcategory.ps =================================================================== --- trunk/axiom/books/ps/v102regulartriangularsetcategory.ps (rev 0) +++ trunk/axiom/books/ps/v102regulartriangularsetcategory.ps 2008-11-20 01:43:32 UTC (rev 1012) @@ -0,0 +1,565 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 788 440 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 788 440 +%%PageOrientation: Portrait +gsave +36 36 752 404 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 402 lineto +750 402 lineto +750 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 402 lineto +750 402 lineto +750 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% RegularTriangularSetCategory(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 744 396 moveto +0 396 lineto +0 360 lineto +744 360 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 744 396 moveto +0 396 lineto +0 360 lineto +744 360 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 373 moveto +(RegularTriangularSetCategory\(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory\(a,b,c\)\)) +[9.12 6.24 6.96 6.96 3.84 6.24 4.8 7.92 5.04 3.84 6.24 6.96 6.96 6.96 3.84 6.24 4.8 7.68 6 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.84 10.08 6.24 6.96 10.08 6.96 10.8 6.24 3.84 6.96 3.6 6.96 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 7.68 6.96 6.96 3.6 6.24 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 3.6 6.96 3.84 9.12 6.24 6.24 6.96 4.8 5.52 3.84 6.48 6.24 7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.6 6.96 3.6 6.24 4.56 4.56] +xshow +end grestore +end grestore +% TriangularSetCategory(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +gsave 10 dict begin +filled +0.404 0.667 0.545 nodecolor +0.404 0.667 0.545 nodecolor +newpath 722 324 moveto +22 324 lineto +22 288 lineto +722 288 lineto +closepath +fill +0.404 0.667 0.545 nodecolor +newpath 722 324 moveto +22 324 lineto +22 288 lineto +722 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +30 301 moveto +(TriangularSetCategory\(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory\(a,b,c\)\)) +[7.92 5.04 3.84 6.24 6.96 6.96 6.96 3.84 6.24 4.8 7.68 6 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.84 10.08 6.24 6.96 10.08 6.96 10.8 6.24 3.84 6.96 3.6 6.96 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 7.68 6.96 6.96 3.6 6.24 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 3.6 6.96 3.84 9.12 6.24 6.24 6.96 4.8 5.52 3.84 6.48 6.24 7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.6 6.96 3.6 6.24 4.56 4.56] +xshow +end grestore +end grestore +% RegularTriangularSetCategory(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c))->TriangularSetCategory(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +newpath 372 360 moveto +372 352 372 343 372 334 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 376 334 moveto +372 324 lineto +369 334 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 376 334 moveto +372 324 lineto +369 334 lineto +closepath +stroke +end grestore +% TriangularSetCategory(a:IntegralDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 732 252 moveto +12 252 lineto +12 216 lineto +732 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 732 252 moveto +12 252 lineto +12 216 lineto +732 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +20 229 moveto +(TriangularSetCategory\(a:IntegralDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory\(a,b,c\)\)) +[7.92 5.04 3.84 6.24 6.96 6.96 6.96 3.84 6.24 4.8 7.68 6 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.84 4.56 6.96 3.84 6.24 7.2 4.8 6.24 3.84 10.08 6.96 10.8 6.24 3.84 6.96 3.6 6.96 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 7.68 6.96 6.96 3.6 6.24 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 3.6 6.96 3.84 9.12 6.24 6.24 6.96 4.8 5.52 3.84 6.48 6.24 7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.6 6.96 3.6 6.24 4.56 4.56] +xshow +end grestore +end grestore +% TriangularSetCategory(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c))->TriangularSetCategory(a:IntegralDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +newpath 372 288 moveto +372 280 372 271 372 262 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 376 262 moveto +372 252 lineto +369 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 376 262 moveto +372 252 lineto +369 262 lineto +closepath +stroke +end grestore +% PolynomialSetCategory(a:IntegralDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +gsave 10 dict begin +filled +0.404 0.667 0.545 nodecolor +0.404 0.667 0.545 nodecolor +newpath 735 180 moveto +9 180 lineto +9 144 lineto +735 144 lineto +closepath +fill +0.404 0.667 0.545 nodecolor +newpath 735 180 moveto +9 180 lineto +9 144 lineto +735 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +17 157 moveto +(PolynomialSetCategory\(a:IntegralDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory\(a,b,c\)\)) +[7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84 7.68 6 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.84 4.56 6.96 3.84 6.24 7.2 4.8 6.24 3.84 10.08 6.96 10.8 6.24 3.84 6.96 3.6 6.96 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 7.68 6.96 6.96 3.6 6.24 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 3.6 6.96 3.84 9.12 6.24 6.24 6.96 4.8 5.52 3.84 6.48 6.24 7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.6 6.96 3.6 6.24 4.56 4.56] +xshow +end grestore +end grestore +% TriangularSetCategory(a:IntegralDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c))->PolynomialSetCategory(a:IntegralDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +newpath 372 216 moveto +372 208 372 199 372 190 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 376 190 moveto +372 180 lineto +369 190 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 376 190 moveto +372 180 lineto +369 190 lineto +closepath +stroke +end grestore +% PolynomialSetCategory(a:Ring,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 704 108 moveto +40 108 lineto +40 72 lineto +704 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 704 108 moveto +40 108 lineto +40 72 lineto +704 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +48 85 moveto +(PolynomialSetCategory\(a:Ring,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory\(a,b,c\)\)) +[7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84 7.68 6 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.84 9.36 3.84 6.96 6.96 3.6 6.96 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 7.68 6.96 6.96 3.6 6.24 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 3.6 6.96 3.84 9.12 6.24 6.24 6.96 4.8 5.52 3.84 6.48 6.24 7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.6 6.96 3.6 6.24 4.56 4.56] +xshow +end grestore +end grestore +% PolynomialSetCategory(a:IntegralDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c))->PolynomialSetCategory(a:Ring,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +newpath 372 144 moveto +372 136 372 127 372 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 376 118 moveto +372 108 lineto +369 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 376 118 moveto +372 108 lineto +369 118 lineto +closepath +stroke +end grestore +% SETCAT... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 317 36 moveto +239 36 lineto +239 0 lineto +317 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 317 36 moveto +239 36 lineto +239 0 lineto +317 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +247 13 moveto +(SETCAT...) +[7.68 8.64 8.64 9.12 9.36 7.44 3.6 3.6 3.6] +xshow +end grestore +end grestore +% PolynomialSetCategory(a:Ring,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c))->SETCAT... +newpath 348 72 moveto +337 63 322 52 309 42 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 311 39 moveto +301 36 lineto +307 45 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 311 39 moveto +301 36 lineto +307 45 lineto +closepath +stroke +end grestore +% CLAGG... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 409 36 moveto +335 36 lineto +335 0 lineto +409 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 409 36 moveto +335 36 lineto +335 0 lineto +409 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +342 13 moveto +(CLAGG...) +[9.36 8.64 9.36 10.08 10.08 3.6 3.6 3.6] +xshow +end grestore +end grestore +% PolynomialSetCategory(a:Ring,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c))->CLAGG... +newpath 372 72 moveto +372 64 372 55 372 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 376 46 moveto +372 36 lineto +369 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 376 46 moveto +372 36 lineto +369 46 lineto +closepath +stroke +end grestore +% KOERCE... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 509 36 moveto +427 36 lineto +427 0 lineto +509 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 509 36 moveto +427 36 lineto +427 0 lineto +509 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +434 13 moveto +(KOERCE...) +[9.12 10.08 8.64 8.88 9.36 8.64 3.6 3.6 3.6] +xshow +end grestore +end grestore +% PolynomialSetCategory(a:Ring,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c))->KOERCE... +newpath 396 72 moveto +408 63 423 52 436 42 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 438 45 moveto +444 36 lineto +434 39 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 438 45 moveto +444 36 lineto +434 39 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF Added: trunk/axiom/books/ps/v102squarefreeregulartriangularsetcategory.ps =================================================================== --- trunk/axiom/books/ps/v102squarefreeregulartriangularsetcategory.ps (rev 0) +++ trunk/axiom/books/ps/v102squarefreeregulartriangularsetcategory.ps 2008-11-20 01:43:32 UTC (rev 1012) @@ -0,0 +1,611 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 850 512 +%%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 + dup 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 aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + 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 +%%Page: 1 1 +%%PageBoundingBox: 36 36 850 512 +%%PageOrientation: Portrait +gsave +36 36 814 476 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 474 lineto +812 474 lineto +812 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 474 lineto +812 474 lineto +812 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% SquareFreeRegularTriangularSetCategory(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 806 468 moveto +0 468 lineto +0 432 lineto +806 432 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 806 468 moveto +0 468 lineto +0 432 lineto +806 432 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 445 moveto +(SquareFreeRegularTriangularSetCategory\(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory\(a,b,c\)\)) +[7.68 6.72 6.96 6.24 4.8 6.24 7.44 4.8 6.24 6.24 9.12 6.24 6.96 6.96 3.84 6.24 4.8 7.92 5.04 3.84 6.24 6.96 6.96 6.96 3.84 6.24 4.8 7.68 6 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.84 10.08 6.24 6.96 10.08 6.96 10.8 6.24 3.84 6.96 3.6 6.96 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 7.68 6.96 6.96 3.6 6.24 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 3.6 6.96 3.84 9.12 6.24 6.24 6.96 4.8 5.52 3.84 6.48 6.24 7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.6 6.96 3.6 6.24 4.56 4.56] +xshow +end grestore +end grestore +% RegularTriangularSetCategory(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 775 396 moveto +31 396 lineto +31 360 lineto +775 360 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 775 396 moveto +31 396 lineto +31 360 lineto +775 360 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +39 373 moveto +(RegularTriangularSetCategory\(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory\(a,b,c\)\)) +[9.12 6.24 6.96 6.96 3.84 6.24 4.8 7.92 5.04 3.84 6.24 6.96 6.96 6.96 3.84 6.24 4.8 7.68 6 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.84 10.08 6.24 6.96 10.08 6.96 10.8 6.24 3.84 6.96 3.6 6.96 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 7.68 6.96 6.96 3.6 6.24 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 3.6 6.96 3.84 9.12 6.24 6.24 6.96 4.8 5.52 3.84 6.48 6.24 7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.6 6.96 3.6 6.24 4.56 4.56] +xshow +end grestore +end grestore +% SquareFreeRegularTriangularSetCategory(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c))->RegularTriangularSetCategory(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +newpath 403 432 moveto +403 424 403 415 403 406 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 407 406 moveto +403 396 lineto +400 406 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 407 406 moveto +403 396 lineto +400 406 lineto +closepath +stroke +end grestore +% TriangularSetCategory(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +gsave 10 dict begin +filled +0.404 0.667 0.545 nodecolor +0.404 0.667 0.545 nodecolor +newpath 753 324 moveto +53 324 lineto +53 288 lineto +753 288 lineto +closepath +fill +0.404 0.667 0.545 nodecolor +newpath 753 324 moveto +53 324 lineto +53 288 lineto +753 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +61 301 moveto +(TriangularSetCategory\(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory\(a,b,c\)\)) +[7.92 5.04 3.84 6.24 6.96 6.96 6.96 3.84 6.24 4.8 7.68 6 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.84 10.08 6.24 6.96 10.08 6.96 10.8 6.24 3.84 6.96 3.6 6.96 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 7.68 6.96 6.96 3.6 6.24 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 3.6 6.96 3.84 9.12 6.24 6.24 6.96 4.8 5.52 3.84 6.48 6.24 7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.6 6.96 3.6 6.24 4.56 4.56] +xshow +end grestore +end grestore +% RegularTriangularSetCategory(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c))->TriangularSetCategory(a:GcdDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +newpath 403 360 moveto +403 352 403 343 403 334 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 407 334 moveto +403 324 lineto +400 334 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 407 334 moveto +403 324 lineto +400 334 lineto +closepath +stroke +end grestore +% TriangularSetCategory(a:IntegralDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory(a,b,c)) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 763 252 moveto +43 252 lineto +43 216 lineto +763 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 763 252 moveto +43 252 lineto +43 216 lineto +763 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +51 229 moveto +(TriangularSetCategory\(a:IntegralDomain,b:OrderedAbelianMonoidSup,c:OrderedSet,d:RecursivePolynomialCategory\(a,b,c\)\)) +[7.92 5.04 3.84 6.24 6.96 6.96 6.96 3.84 6.24 4.8 7.68 6 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.84 4.56 6.96 3.84 6.24 7.2 4.8 6.24 3.84 10.08 6.96 10.8 6.24 3.84 6.96 3.6 6.96 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 7.68 6.96 6.96 3.6 6.24 3.84 10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 3.6 6.96 3.84 9.12 6.24 6.24 6.96 4.8 5.52 3.84 6.48 6.24 7.44 6.96 3.6 6.96 6.96 6.96 10.8 3.84 6.24 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 6.24 3.6 6.96 3.6 6.24 4.56 4.56] +xshow +end grestore +end... [truncated message content] |
From: <da...@us...> - 2008-11-20 01:13:44
|
Revision: 1011 http://axiom.svn.sourceforge.net/axiom/?rev=1011&view=rev Author: daly Date: 2008-11-20 01:13:41 +0000 (Thu, 20 Nov 2008) Log Message: ----------- 20081119 tpd src/input/Makefile fix parallel test 20081119 tpd books/Makefile.pamphlet add toc entries for toc.pdf Modified Paths: -------------- trunk/axiom/books/Makefile.pamphlet trunk/axiom/src/input/Makefile.pamphlet Modified: trunk/axiom/books/Makefile.pamphlet =================================================================== --- trunk/axiom/books/Makefile.pamphlet 2008-11-19 20:05:24 UTC (rev 1010) +++ trunk/axiom/books/Makefile.pamphlet 2008-11-20 01:13:41 UTC (rev 1011) @@ -161,18 +161,23 @@ echo "\\newpage" >>toc.toc ; \ echo "\\section*{Volume 10: Axiom Algebra: Implementation}" >>toc.toc ; \ <<sed pattern>> + <bookvol10.toc >>toc.toc ; \ echo "\\newpage" >>toc.toc ; \ echo "\\section*{Volume 10.1: Axiom Algebra: Theory}" >>toc.toc ; \ <<sed pattern>> + <bookvol10.1.toc >>toc.toc ; \ echo "\\newpage" >>toc.toc ; \ echo "\\section*{Volume 10.2: Axiom Algebra: Categories}" >>toc.toc ; \ <<sed pattern>> + <bookvol10.2.toc >>toc.toc ; \ echo "\\newpage" >>toc.toc ; \ echo "\\section*{Volume 10.3: Axiom Algebra: Domains}" >>toc.toc ; \ <<sed pattern>> + <bookvol10.3.toc >>toc.toc ; \ echo "\\newpage" >>toc.toc ; \ echo "\\section*{Volume 10.4: Axiom Algebra: Packages}" >>toc.toc ; \ <<sed pattern>> + <bookvol10.4.toc >>toc.toc ; \ <bookvol10.toc >>toc.toc ; \ echo "\\newpage" >>toc.toc ; \ echo "\\section*{Volume 11: Axiom Browser}" >>toc.toc ; \ Modified: trunk/axiom/src/input/Makefile.pamphlet =================================================================== --- trunk/axiom/src/input/Makefile.pamphlet 2008-11-19 20:05:24 UTC (rev 1010) +++ trunk/axiom/src/input/Makefile.pamphlet 2008-11-20 01:13:41 UTC (rev 1011) @@ -72,7 +72,8 @@ ${TANGLE} ${IN}/$*.as.pamphlet >$*.as) ${DOC}/%.input.dvi: ${IN}/%.input.pamphlet - @ echo generic 14 making ${DOC}/$*.input.dvi from ${IN}/$*.input.pamphlet + @ echo generic 14 making ${DOC}/$*.input.dvi from \ + ${IN}/$*.input.pamphlet @ (cd ${DOC} ; \ cp ${IN}/$*.input.pamphlet ${DOC} ; \ ${DOCUMENT} ${NOISE} $*.input ; \ @@ -377,13 +378,14 @@ IN= ${SRC}/input MID= ${INT}/input +TMPFN:=$(shell echo $$RANDOM) all: ${OUTS} ${REGRES} @ echo 0 starting algebra regression testing @ (cd ${MID} ; \ ${TANGLE} -t8 -R"algebra.regress" ${SRC}/algebra/Makefile.pamphlet \ >Makefile.algebra ; \ - make -f Makefile.algebra ) + ${MAKE} -f Makefile.algebra ) @ echo 1 finished ${INT}/input %.input: ${IN}/%.input.pamphlet @@ -398,19 +400,19 @@ identical output. <<regression tests>>= %.output: %.input - @ echo running test file $* - @ echo ')set message test on' > tmp.input - @ echo ')set message auto off' >> tmp.input - @ echo ')read $*' >> tmp.input - @ echo ')lisp (bye)' >> tmp.input + @ echo running test file $* using $*${TMPFN}.input + @ echo ')set message test on' > $*${TMPFN}.input + @ echo ')set message auto off' >> $*${TMPFN}.input + @ echo ')read $*' >> $*${TMPFN}.input + @ echo ')lisp (bye)' >> $*${TMPFN}.input @ if [ -z "${NOISE}" ] ; then \ - echo ")read tmp.input" | ${TESTSYS} \ + echo ")read $*${TMPFN}.input" | ${TESTSYS} \ | egrep -v '(Timestamp|Version)' | tee $*.output ; \ else \ - echo ")read tmp.input" | ${TESTSYS} \ + echo ")read $*${TMPFN}.input" | ${TESTSYS} \ | egrep -v '(Timestamp|Version)' > $*.output ; \ fi - @ rm tmp.input + @ rm $*${TMPFN}.input @ A regression test file will run the input file. Each input file @@ -434,7 +436,6 @@ else \ echo ')read $*.input' | ${TESTSYS} >${TMP}/trace ; \ fi ; \ - rm $*.input ; \ if [ -z "${NOISE}" ] ; then \ echo ')lisp (regress "$*.output")' | ${TESTSYS} \ | egrep -v '(Timestamp|Version)' | tee $*.regress ; \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |