diff --git a/books/Makefile.pamphlet b/books/Makefile.pamphlet index 29d14bc..ffc5dbf 100644 --- a/books/Makefile.pamphlet +++ b/books/Makefile.pamphlet @@ -35,7 +35,8 @@ BOOKPDF=${PDF}/bookvol0.pdf ${PDF}/bookvol1.pdf ${PDF}/bookvol2.pdf \ ${PDF}/bookvol10.pdf ${PDF}/bookvol10.1.pdf ${PDF}/bookvol10.2.pdf \ ${PDF}/bookvol10.3.pdf ${PDF}/bookvol10.4.pdf ${PDF}/bookvol10.5.pdf \ ${PDF}/bookvol11.pdf ${PDF}/bookvol12.pdf ${PDF}/bookvol13.pdf \ - ${PDF}/bookvolbib.pdf + ${PDF}/bookvolbib.pdf \ + ${PDF}/refcard.pdf ${PDF}/endpaper.pdf ${PDF}/rosetta.pdf all: announce ${BOOKPDF} ${PDF}/toc.pdf @(cd ${PDF} ; ${RM} *.out *.toc *.sty *.def *.png) diff --git a/books/endpaper.pamphlet b/books/endpaper.pamphlet new file mode 100644 index 0000000..20cb1b0 --- /dev/null +++ b/books/endpaper.pamphlet @@ -0,0 +1,617 @@ +\documentclass{book} +%\usepackage{axiom} +% +% 2006-04-08. The original (correct) usepackage line below +%\usepackage[dvips,final,colorlinks=true,pdfstartview=FitH]{hyperref} +% has been changed to the following one inorder to ease the +% compilation of axiom on distributions (like Debian sarge) that have +% an older version of hyperref TeX package (where the `final' option +% is missing). It should be restored once the latest version (>= +% 2003/11/30 v6.74m) of hyperref are more widespread. +\usepackage[dvips,colorlinks=true,pdfstartview=FitH]{hyperref} +\usepackage{pstricks} +\usepackage{pst-node} +\begin{document} +\title{endpapers} +\author{Timothy Daly} +\maketitle +\tableofcontents +\vfill +\eject +\section{Basic Algebra Hierarchy Diagram} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +. +{\hbox{\hskip 4.0cm}} +% SETCAT SetCategory +{\psframebox{{\rnode{setcat}{\href{catdef.spad.dvi}{setcat}}}}}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 2 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\hbox{\hskip 1.0cm}} +{\vbox{\vskip 1.0cm}} +% ABELSG AbelianSemiGroup +{\psframebox{{\rnode{abelsg}{\href{catdef.spad.dvi}{abelsg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{setcat}{abelsg} +{\hbox{\hskip 0.1cm}} +% SGROUP SemiGroup +{\psframebox{{\rnode{sgroup}{\href{catdef.spad.dvi}{sgroup}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{setcat}{sgroup} +{\hbox{\hskip 0.2cm}} +% ORDSET OrderedSet +{\psframebox{{\rnode{ordset}{\href{catdef.spad.dvi}{ordset}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{setcat}{ordset} +{\hbox{\hskip 4.0cm}} +% FINITE Finite +{\psframebox{{\rnode{finite}{\href{catdef.spad.dvi}{finite}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{setcat}{finite}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 3 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 1.0cm}} +% ABELMON AbelianMonoid +{\psframebox{{\rnode{abelmon}{\href{catdef.spad.dvi}{abelmon}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{abelsg}{abelmon} +% MONOID Monoid +{\psframebox{{\rnode{monoid}{\href{catdef.spad.dvi}{monoid}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{sgroup}{monoid} +{\hbox{\hskip 1.5cm}} +% ORDFIN OrderedFinite +{\psframebox{{\rnode{ordfin}{\href{catdef.spad.dvi}{ordfin}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ordset}{ordfin} +\ncLine[nodesep=3pt,linestyle=solid]{finite}{ordfin}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 4 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 1.0cm}} +% CABMON CancellationAbelianMonoid +{\psframebox{{\rnode{cabmon}{\href{catdef.spad.dvi}{cabmon}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{abelmon}{cabmon} +{\hbox{\hskip 2.0cm}} +% OASGP OrderedAbelianSemiGroup +{\psframebox{{\rnode{oasgp}{\href{catdef.spad.dvi}{oasgp}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{abelmon}{oasgp} +\ncLine[nodesep=3pt,linestyle=solid]{ordset}{oasgp} +{\hbox{\hskip 0.2cm}} +% GROUP Group +{\hbox{\hskip 0.1cm}} +{\psframebox{{\rnode{group}{\href{catdef.spad.dvi}{group}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{monoid}{group} +{\hbox{\hskip 0.55cm}} +% ORDMON OrderedMonoid +{\psframebox{{\rnode{ordmon}{\href{catdef.spad.dvi}{ordmon}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ordset}{ordmon} +\ncLine[nodesep=3pt,linestyle=solid]{monoid}{ordmon}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 5 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.6cm}} +{\hbox{\hskip 3.6cm}} +% OAMON OrderedAbelianMonoid +{\psframebox{{\rnode{oamon}{\href{catdef.spad.dvi}{oamon}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{oasgp}{oamon} +\ncLine[nodesep=3pt,linestyle=solid]{abelmon}{oamon}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 6 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.5cm}} +% OCAMON OrderedCancellationAbelianMonoid +{\psframebox{{\rnode{ocamon}{\href{catdef.spad.dvi}{ocamon}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{oamon}{ocamon} +\ncLine[nodesep=3pt,linestyle=solid]{cabmon}{ocamon} +{\hbox{\hskip 2.2cm}} +% ABELGRP AbelianGroup +{\psframebox{{\rnode{abelgrp}{\href{catdef.spad.dvi}{abelgrp}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{cabmon}{abelgrp}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 7 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.875cm}} +% OAMONS OrderedAbelianMonoidSup +{\psframebox{{\rnode{oamons}{\href{catdef.spad.dvi}{oamons}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ocamon}{oamons} +{\hbox{\hskip 0.9cm}} +% RNG Rng +{\psframebox{{\rnode{rng}{\href{catdef.spad.dvi}{rng}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{rng} +\ncLine[nodesep=3pt,linestyle=solid]{sgroup}{rng} +{\hbox{\hskip 0.1cm}} +% LMODULE LeftModule +{\psframebox{{\rnode{lmodule}{\href{catdef.spad.dvi}{lmodule}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{lmodule} +% RMODULE RightModule +{\psframebox{{\rnode{rmodule}{\href{catdef.spad.dvi}{rmodule}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{rmodule} +{\hbox{\hskip 1.7cm}} +% OAGROUP OrderedAbelianGroup +{\psframebox{{\rnode{oagroup}{\href{catdef.spad.dvi}{oagroup}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{oagroup} +\ncLine[nodesep=3pt,linestyle=solid]{ocamon}{oagroup}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 8 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 1.0cm}} +{\hbox{\hskip 0.7cm}} +% RING Ring +{\psframebox{{\rnode{ring}{\href{catdef.spad.dvi}{ring}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{lmodule}{ring} +\ncLine[nodesep=3pt,linestyle=solid]{rng}{ring} +\ncLine[nodesep=3pt,linestyle=solid]{monoid}{ring} +{\hbox{\hskip 4.2cm}} +% BMODULE BiModule +{\psframebox{{\rnode{bmodule}{\href{catdef.spad.dvi}{bmodule}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{lmodule}{bmodule} +\ncLine[nodesep=3pt,linestyle=solid]{rmodule}{bmodule}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.2cm}} +{\hbox{\hskip 4.5cm}} +% LINEXP LinearlyExplicitRingOver +{\psframebox{{\rnode{linexp}{\href{catdef.spad.dvi}{linexp}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ring}{linexp} +{\hbox{\hskip 1.3cm}} +% MODULE Module +{\psframebox{{\rnode{module}{\href{catdef.spad.dvi}{module}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{bmodule}{module}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 10 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\hbox{\hskip 5.0cm}} +% FLINEXP FullyLinearlyExplicitRingOver +{\psframebox{{\rnode{flinexp}{\href{catdef.spad.dvi}{flinexp}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{linexp}{flinexp}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 11 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\hbox{\hskip 7.7cm}} +% VSPACE VectorSpace +{\psframebox{{\rnode{vspace}{\href{catdef.spad.dvi}{vspace}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{module}{vspace}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 12 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 1.2cm}} +{\hbox{\hskip 0.7cm}} +% DIFRING DifferentialRing +{\psframebox{{\rnode{difring}{\href{catdef.spad.dvi}{difring}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ring}{difring} +{\hbox{\hskip 0.4cm}} +% CHARNZ CharacteristicNonZero +{\psframebox{{\rnode{charnz}{\href{catdef.spad.dvi}{charnz}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ring}{charnz}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 13 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% PDRING PartialDifferentialRing +{\psframebox{{\rnode{pdring}{\href{catdef.spad.dvi}{pdring}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ring}{pdring} +{\hbox{\hskip 0.6cm}} +% CHARZ CharacteristicZero +{\psframebox{{\rnode{charz}{\href{catdef.spad.dvi}{charz}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ring}{charz} +{\hbox{\hskip 1.0cm}} +% ALGEBRA Algebra +{\psframebox{{\rnode{algebra}{\href{catdef.spad.dvi}{algebra}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ring}{algebra} +\ncLine[nodesep=3pt,linestyle=solid]{module}{algebra} +\ncLine[nodesep=3pt,linestyle=solid]{charnz}{algebra} +% ENTIRER EntireRing +{\psframebox{{\rnode{entirer}{\href{catdef.spad.dvi}{entirer}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{bmodule}{entirer} +\ncLine[nodesep=3pt,linestyle=solid]{ring}{entirer} +% COMRING CommutativeRing +{\psframebox{{\rnode{comring}{\href{catdef.spad.dvi}{comring}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{bmodule}{comring} +\ncLine[nodesep=3pt,linestyle=solid]{ring}{comring} +% ORDRING OrderedRing +{\psframebox{{\rnode{ordring}{\href{catdef.spad.dvi}{ordring}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ring}{ordring} +\ncLine[nodesep=3pt,linestyle=solid]{oagroup}{ordring} +\ncLine[nodesep=3pt,linestyle=solid]{ordmon}{ordring}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 14 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 1.8cm}} +{\hbox{\hskip 2.1cm}} +% DIFEXT DifferentialExtension +{\psframebox{{\rnode{difext}{\href{catdef.spad.dvi}{difext}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{pdring}{difext} +\ncLine[nodesep=3pt,linestyle=solid]{difring}{difext} +\ncLine[nodesep=3pt,linestyle=solid]{charz}{difext} +\ncLine[nodesep=3pt,linestyle=solid]{charnz}{difext} +{\hbox{\hskip 2.0cm}} +% DIVRING DivisionRing +{\psframebox{{\rnode{divring}{\href{catdef.spad.dvi}{divring}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{algebra}{divring} +\ncLine[nodesep=3pt,linestyle=solid]{entirer}{divring} +% INTDOM IntegralDomain +{\psframebox{{\rnode{intdom}{\href{catdef.spad.dvi}{intdom}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{algebra}{intdom} +\ncLine[nodesep=3pt,linestyle=solid]{comring}{intdom} +\ncLine[nodesep=3pt,linestyle=solid]{entirer}{intdom}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 15 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.2cm}} +{\hbox{\hskip 7.3cm}} +% GCDDOM GcdDomain +{\psframebox{{\rnode{gcddom}{\href{catdef.spad.dvi}{gcddom}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{intdom}{gcddom}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 16 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.2cm}} +{\hbox{\hskip 5.4cm}} +% UFD UniqueFactorizationDomain +{\psframebox{{\rnode{ufd}{\href{catdef.spad.dvi}{ufd}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{gcddom}{ufd} +{\hbox{\hskip 2.5cm}} +% PID PrincipalIdealDomain +{\psframebox{{\rnode{pid}{\href{catdef.spad.dvi}{pid}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{gcddom}{pid}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 17 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.2cm}} +{\hbox{\hskip 5.0cm}} +% PFECAT PolynomialFactorizationExplicit +{\psframebox{{\rnode{pfecat}{\href{catdef.spad.dvi}{pfecat}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ufd}{pfecat} +{\hbox{\hskip 2.0cm}} +% EUCDOM EuclideanDomain +{\psframebox{{\rnode{eucdom}{\href{catdef.spad.dvi}{eucdom}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{pid}{eucdom}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 18 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.2cm}} +{\hbox{\hskip 7.0cm}} +% FIELD Field +{\psframebox{{\rnode{field}{\href{catdef.spad.dvi}{field}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ufd}{field} +\ncLine[nodesep=3pt,linestyle=solid]{eucdom}{field} +\ncLine[nodesep=3pt,linestyle=solid]{divring}{field}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 19 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\hbox{\hskip 5.0cm}} +% FPC FieldOfPrimeCharacteristic +{\psframebox{{\rnode{fpc}{\href{ffcat.spad.dvi}{fpc}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{field}{fpc} +\ncLine[nodesep=3pt,linestyle=solid]{charnz}{fpc}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 20 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\hbox{\hskip 9.7cm}} +% FFIELDC FiniteFieldCategory +{\psframebox{{\rnode{ffieldc}{\href{ffcat.spad.dvi}{ffieldc}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{fpc}{ffieldc} +\ncLine[nodesep=3pt,linestyle=solid]{finite}{ffieldc} +\vfill +\eject +\section{Basic Algebra Hierarchy} +{\bf SETCAT SetCategory}\\ +{\bf ABELSG AbelianSemiGroup}\\ +{\bf SGROUP SemiGroup}\\ +{\bf ORDSET OrderedSet}\\ +{\bf FINITE Finite}\\ +{\bf ABELMON AbelianMonoid}\\ +{\bf MONOID Monoid}\\ +{\bf ORDFIN OrderedFinite}\\ +{\bf CABMON CancellationAbelianMonoid}\\ +{\bf OASGP OrderedAbelianSemiGroup}\\ +{\bf GROUP Group}\\ +{\bf ORDMON OrderedMonoid}\\ +{\bf OAMON OrderedAbelianMonoid}\\ +{\bf OCAMON OrderedCancellationAbelianMonoid}\\ +{\bf ABELGRP AbelianGroup}\\ +{\bf OAMONS OrderedAbelianMonoidSup}\\ +{\bf RNG Rng}\\ +{\bf LMODULE LeftModule}\\ +{\bf RMODULE RightModule}\\ +{\bf OAGROUP OrderedAbelianGroup}\\ +{\bf RING Ring}\\ +{\bf BMODULE BiModule}\\ +{\bf LINEXP LinearlyExplicitRingOver}\\ +{\bf MODULE Module}\\ +{\bf FLINEXP FullyLinearlyExplicitRingOver}\\ +{\bf VSPACE VectorSpace}\\ +{\bf DIFRING DifferentialRing}\\ +{\bf CHARNZ CharacteristicNonZero}\\ +{\bf PDRING PartialDifferentialRing}\\ +{\bf CHARZ CharacteristicZero}\\ +{\bf ALGEBRA Algebra}\\ +{\bf ENTIRER EntireRing}\\ +{\bf COMRING CommutativeRing}\\ +{\bf ORDRING OrderedRing}\\ +{\bf DIFEXT DifferentialExtension}\\ +{\bf DIVRING DivisionRing}\\ +{\bf INTDOM IntegralDomain}\\ +{\bf GCDDOM GcdDomain}\\ +{\bf UFD UniqueFactorizationDomain}\\ +{\bf PID PrincipalIdealDomain}\\ +{\bf PFECAT PolynomialFactorizationExplicit}\\ +{\bf EUCDOM EuclideanDomain}\\ +{\bf FIELD Field}\\ +{\bf FPC FieldOfPrimeCharacteristic}\\ +{\bf FFIELDC FiniteFieldCategory} +\vfill +\eject +\section{Data Structure Hierarchy Diagram} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +. +{\hbox{\hskip 2.8cm}} +% SETCAT SetCategory +{\psframebox{{\rnode{setcat}{\href{catdef.spad.dvi}{setcat}}}}} +{\hbox{\hskip 1.0cm}} +% AGG Aggregate +{\psframebox{{\rnode{agg}{\href{catdef.spad.dvi}{agg}}}}} +{\hbox{\hskip 0.5cm}} +% ELTAGG EltableAggregate +{\psframebox{{\rnode{eltagg}{\href{catdef.spad.dvi}{eltagg}}}}}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 2 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\hbox{\hskip 4.2cm}} +% HOAGG HomogeneousAggregate +{\psframebox{{\rnode{hoagg}{\href{catdef.spad.dvi}{hoagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{setcat}{hoagg} +\ncLine[nodesep=3pt,linestyle=solid]{agg}{hoagg}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 3 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 1.0cm}} +% ARR2CAT TwoDimensionalArrayCategory +{\psframebox{{\rnode{arr2cat}{\href{array2.spad.dvi}{arr2cat}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{arr2cat}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 4 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.3cm}} +% MATCAT MatrixCategory +{\psframebox{{\rnode{matcat}{\href{matcat.spad.dvi}{matcat}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{arr2cat}{matcat} +% BGAGG BagAggregate +{\psframebox{{\rnode{bgagg}{\href{aggcat.spad.dvi}{bgagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{bgagg}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 5 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.8cm}} +% SKAGG StackAggregate +{\psframebox{{\rnode{skagg}{\href{aggcat.spad.dvi}{skagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{skagg} +{\hbox{\hskip 0.75cm}} +% QUAGG QueueAggregate +{\psframebox{{\rnode{quagg}{\href{aggcat.spad.dvi}{quagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{quagg}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 6 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.5cm}} +% DQAGG DequeueAggregate +{\psframebox{{\rnode{dqagg}{\href{aggcat.spad.dvi}{dqagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{skagg}{dqagg} +\ncLine[nodesep=3pt,linestyle=solid]{quagg}{dqagg}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 7 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.5cm}} +{\hbox{\hskip 3.4cm}} +% CLAGG Collection +{\psframebox{{\rnode{clagg}{\href{aggcat.spad.dvi}{clagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{clagg}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 8 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 1.2cm}} +% DIOPS DictionaryOperations +{\psframebox{{\rnode{diops}{\href{aggcat.spad.dvi}{diops}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{diops} +\ncLine[nodesep=3pt,linestyle=solid]{clagg}{diops} +% PRQAGG PriorityQueueAggregate +{\psframebox{{\rnode{prqagg}{\href{aggcat.spad.dvi}{prqagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{prqagg} +% FINITE Finite +{\psframebox{{\rnode{finite}{\href{catdef.spad.dvi}{finite}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{setcat}{finite} +{\hbox{\hskip 1.7cm}} +% SETAGG SetAggregate +{\psframebox{{\rnode{setagg}{\href{aggcat.spad.dvi}{setagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{clagg}{setagg} +% RCAGG RecursiveAggregate +{\psframebox{{\rnode{rcagg}{\href{aggcat.spad.dvi}{rcagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{rcagg} +% IXAGG IndexedAggregate +{\psframebox{{\rnode{ixagg}{\href{aggcat.spad.dvi}{ixagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{ixagg} +\ncLine[nodesep=3pt,linestyle=solid]{eltagg}{ixagg}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.5cm}} +{\hbox{\hskip 6.0cm}} +% DLAGG DoublyLinkedAggregate +{\psframebox{{\rnode{dlagg}{\href{aggcat.spad.dvi}{dlagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{rcagg}{dlagg} +{\hbox{\hskip 1.3cm}} +% DIRPCAT DirectProductCategory +{\psframebox{{\rnode{dirpcat}{\href{vector.spad.dvi}{dirpcat}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ixagg}{dirpcat}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 10 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 3.1cm}} +{\hbox{\hskip 6.3cm}} +% LNAGG LinearAggregate +{\psframebox{{\rnode{lnagg}{\href{aggcat.spad.dvi}{lnagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{clagg}{lnagg} +\ncLine[nodesep=3pt,linestyle=solid]{ixagg}{lnagg} +% URAGG UnaryRecursiveAggregate +{\psframebox{{\rnode{uragg}{\href{aggcat.spad.dvi}{uragg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{rcagg}{uragg} +% BRAGG BinaryRecursiveAggregate +{\psframebox{{\rnode{bragg}{\href{aggcat.spad.dvi}{bragg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{rcagg}{bragg}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 11 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 0.5cm}} +{\hbox{\hskip 9.0cm}} +% BTCAT BinaryTreeCategory +{\psframebox{{\rnode{btcat}{\href{tree.spad.dvi}{btcat}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{bragg}{btcat}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 12 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 1.0cm}} +% DIAGG Dictionary +{\psframebox{{\rnode{diagg}{\href{aggcat.spad.dvi}{diagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{diops}{diagg} +{\hbox{\hskip 3.1cm}} +% MDAGG MultiDictionary +{\psframebox{{\rnode{mdagg}{\href{aggcat.spad.dvi}{mdagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{diops}{mdagg} +% ORDSET OrderedSet +{\psframebox{{\rnode{ordset}{\href{catdef.spad.dvi}{ordset}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{setcat}{ordset} +% ELAGG ExtensibleLinearAggregate +{\psframebox{{\rnode{elagg}{\href{aggcat.spad.dvi}{elagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{lnagg}{elagg} +% STAGG StreamAggregate +{\psframebox{{\rnode{stagg}{\href{aggcat.spad.dvi}{stagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{lnagg}{stagg} +\ncLine[nodesep=3pt,linestyle=solid]{uragg}{stagg} +% FLAGG FiniteLinearAggregate +{\psframebox{{\rnode{flagg}{\href{aggcat.spad.dvi}{flagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{lnagg}{flagg}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 13 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 1.5cm}} +% KDAGG KeyedDictionary +{\psframebox{{\rnode{kdagg}{\href{aggcat.spad.dvi}{kdagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{diagg}{kdagg} +{\hbox{\hskip 1.0cm}} +% FSAGG FiniteSetAggregate +{\psframebox{{\rnode{fsagg}{\href{aggcat.spad.dvi}{fsagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{diagg}{fsagg} +\ncLine[nodesep=3pt,linestyle=solid]{finite}{fsagg} +\ncLine[nodesep=3pt,linestyle=solid]{clagg}{fsagg} +% MSETAGG MultisetAggregate +{\psframebox{{\rnode{msetagg}{\href{aggcat.spad.dvi}{msetagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{mdagg}{msetagg} +\ncLine[nodesep=3pt,linestyle=solid]{clagg}{msetagg} +{\hbox{\hskip 1.4cm}} +% LZSTAGG LazyStreamAggregate +{\psframebox{{\rnode{lzstagg}{\href{stream.spad.dvi}{lzstagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{stagg}{lzstagg} +% LSAGG ListAggregate +{\psframebox{{\rnode{lsagg}{\href{aggcat.spad.dvi}{lsagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{elagg}{lsagg} +\ncLine[nodesep=3pt,linestyle=solid]{stagg}{lsagg} +\ncLine[nodesep=3pt,linestyle=solid]{flagg}{lsagg} +{\hbox{\hskip 0.3cm}} +% A1AGG OneDimensionalArrayAggregate +{\psframebox{{\rnode{a1agg}{\href{aggcat.spad.dvi}{a1agg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{flagg}{a1agg}\\ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% level 14 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\vbox{\vskip 1.0cm}} +% TBAGG TableAggregate +{\psframebox{{\rnode{tbagg}{\href{aggcat.spad.dvi}{tbagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{kdagg}{tbagg} +\ncLine[nodesep=3pt,linestyle=solid]{ixagg}{tbagg} +% OMSAGG OrderedMultiSetAggregate +{\psframebox{{\rnode{omsagg}{\href{aggcat.spad.dvi}{omsagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{prqagg}{omsagg} +\ncLine[nodesep=3pt,linestyle=solid]{msetagg}{omsagg} +{\hbox{\hskip 3.1cm}} +% BTAGG BitAggregate +{\psframebox{{\rnode{btagg}{\href{aggcat.spad.dvi}{btagg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{ordset}{btagg} +\ncLine[nodesep=3pt,linestyle=solid]{a1agg}{btagg} +{\hbox{\hskip 1.0cm}} +% SRAGG StringAggregate +{\psframebox{{\rnode{sragg}{\href{aggcat.spad.dvi}{sragg}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{a1agg}{sragg} +% VECTCAT VectorCategory +{\psframebox{{\rnode{vectcat}{\href{vector.spad.dvi}{vectcat}}}}} +\ncLine[nodesep=3pt,linestyle=solid]{a1agg}{vectcat} +\vfill +\eject +\section{Data Structure Hierarchy Diagram} +{\bf SETCAT SetCategory}\\ +{\bf AGG Aggregate}\\ +{\bf ELTAGG EltableAggregate}\\ +{\bf HOAGG HomogeneousAggregate}\\ +{\bf ARR2CAT TwoDimensionalArrayCategory}\\ +{\bf MATCAT MatrixCategory}\\ +{\bf BGAGG BagAggregate}\\ +{\bf SKAGG StackAggregate}\\ +{\bf QUAGG QueueAggregate}\\ +{\bf DQAGG DequeueAggregate}\\ +{\bf CLAGG Collection}\\ +{\bf DIOPS DictionaryOperations}\\ +{\bf PRQAGG PriorityQueueAggregate}\\ +{\bf FINITE Finite}\\ +{\bf SETAGG SetAggregate}\\ +{\bf RCAGG RecursiveAggregate}\\ +{\bf IXAGG IndexedAggregate}\\ +{\bf DLAGG DoublyLinkedAggregate}\\ +{\bf DIRPCAT DirectProductCategory}\\ +{\bf LNAGG LinearAggregate}\\ +{\bf URAGG UnaryRecursiveAggregate}\\ +{\bf BRAGG BinaryRecursiveAggregate}\\ +{\bf BTCAT BinaryTreeCategory}\\ +{\bf DIAGG Dictionary}\\ +{\bf MDAGG MultiDictionary}\\ +{\bf ORDSET OrderedSet}\\ +{\bf ELAGG ExtensibleLinearAggregate}\\ +{\bf STAGG StreamAggregate}\\ +{\bf FLAGG FiniteLinearAggregate}\\ +{\bf KDAGG KeyedDictionary}\\ +{\bf FSAGG FiniteSetAggregate}\\ +{\bf MSETAGG MultisetAggregate}\\ +{\bf LZSTAGG LazyStreamAggregate}\\ +{\bf LSAGG ListAggregate}\\ +{\bf A1AGG OneDimensionalArrayAggregate}\\ +{\bf TBAGG TableAggregate}\\ +{\bf OMSAGG OrderedMultiSetAggregate}\\ +{\bf BTAGG BitAggregate}\\ +{\bf SRAGG StringAggregate}\\ +{\bf VECTCAT VectorCategory} +\vfill +\eject +\begin{thebibliography}{99} +\bibitem{1} Jenks, Richard D., Sutor, Robert S., +{\sl AXIOM The Scientific Computation System}, +Springer-Verlag, NY 1992, +ISBN 0-387-97855-0 +\bibitem{2} The Axiom Team, +{\sl AXIOM The 30 Year Horizon}, +Tim Daly (Ed), 2004, +{\bf http://savannah.nongnu.org/projects/axiom} +\bibitem{3} The Axiom Team, +{\sl AXIOM Volume 1 Tutorial}, +Tim Daly (Ed), 2004, +{\bf http://savannah.nongnu.org/projects/axiom} +\bibitem{4} The Axiom Team, +{\sl AXIOM Volume 2 Programming}, +Tim Daly (Ed), 2004, +{\bf http://savannah.nongnu.org/projects/axiom} +\bibitem{5} The Axiom Team, +{\sl AXIOM Volume 3 Reference}, +Tim Daly (Ed), 2004, +{\bf http://savannah.nongnu.org/projects/axiom} +\bibitem{6} The Axiom Team, +{\sl AXIOM Volume 4 Developers}, +Tim Daly (Ed), 2004, +{\bf http://savannah.nongnu.org/projects/axiom} +\end{thebibliography} +\end{document} diff --git a/books/refcard.pamphlet b/books/refcard.pamphlet new file mode 100644 index 0000000..ef6afbe --- /dev/null +++ b/books/refcard.pamphlet @@ -0,0 +1,514 @@ +\documentclass{article} +\usepackage[landscape]{geometry} +\usepackage{multicol} +\usepackage{amsmath} +\usepackage{amsfonts} +\advance\topmargin-.8in +\advance\textheight2in +\advance\textwidth3in +\advance\oddsidemargin-1.5in +\advance\evensidemargin-1.5in +\parindent0pt +\parskip2pt +\newcommand{\hr}{\centerline{\rule{3.5in}{1pt}}} +\begin{document} +\begin{multicols*}{3} +\begin{center} +\textbf{Axiom Quick Reference (January 2008)}\\ +\end{center} + +\textbf{Command Line} + +)cd $\langle$pathname$\rangle$ + +)clear all -- clear workspace + +)display op $\langle$function$\rangle$ -- function arguments + +)set message autoload off -- quietly load algebra + +)set message bottom on -- show selection process + +)set stream calculate 20 -- number of terms to calculate + +)show $\langle$domain$\rangle$ -- list all functions + +)spool $\langle${\sl filename}$\rangle$ -- start save session + +)spool -- close spool file + +)trace $\langle$domain$\rangle$ )math -- trace execution + +)quit -- exit Axiom + +)read $\langle$filename$\rangle$[.input] -- evaluate a file + +)sys $\langle$command line$\rangle$ -- execute command + +\_ continues input lines or escapes chars \verb|a_ b| = ``a b'' + +\% is last value + +\%\%(n) is $n$th value + +-- and ++ start comment lines + +%********************************************* +\hr\textbf{Programming} + +assignment: var := value\\ +\hbox{\hskip 2cm}x:=3 + +conditional: if $\langle$pred$\rangle$ then $\langle$truecase$\rangle$ +else $\langle$falsecase$\rangle$\\ +\hbox{\hskip 2cm}\verb|if (2 > 4) then 4 else 5| + +loop: for $\langle$pred$\rangle$ repeat $\langle$block$\rangle$\\ +\hbox{\hskip 2cm}\verb|for i in 1..5 repeat print i| +\hbox{\hskip 2cm}\verb|while i < 3 repeat (print i ; i:=i+1)| + +function: $f(x)=x^2$ \\ +\hbox{\hskip 2cm}\verb|f(x)==x^2| + +anon. function: \verb|g:=x +-> x+1| \quad g(3) $\rightarrow$ 4 + +Indentation is significant:\\ +\hbox{\hskip 2cm}\verb|f(x)==(x > 3 => x ; 0)|\\ +\hbox{\hskip 2cm}\verb|f(x)==|\\ +\hbox{\hskip 2.4cm}\verb|x > 3 => x|\\ +\hbox{\hskip 2.4cm}\verb|0| + +%********************************************* +\hr\textbf{Basic constants and functions} + +$\pi=$ \verb|%pi| \quad $e=$ \verb|%e| \quad $i=$ \verb|%i| +\quad $\infty=$ \verb|%infinity| + +$+\infty$=\verb|%plusInfinity|\quad $-\infty$=\verb|%minusInfinity| + +\verb|numeric(%pi)| $=3.1415926535\ 897932385$ + +%Binary operations: \verb|+ - * / ^| + +Functions: \verb|sin cos tan sec csc cot sinh cosh tanh| \verb|sech csch coth log ln exp| + +$ab=$ \verb|a*b| \quad $\frac a b=$ \verb|a/b| +\quad +$a^b=$ \verb|a^b| \quad $\sqrt{x}=$ \verb|sqrt(x)| + +$\sqrt[n]{x}=$\verb|x^(1/n)| +$|x|=$\verb|abs(x)| +$\log_b(x)=$\verb|log(x)/log(b)| + +%********************************************* +\hr\textbf{Operations on expressions} + +\verb|factor(...)|\qquad \verb|expand(...)|\qquad \verb|simplify(...)| + +Symbolic equations: \verb|f(x)=g(x)| + +Solve $f(x)=g(x)$: \verb| solve(f(x)=g(x),x)| + +\verb|solve([x^2*y-1,x*y^2-2],.01)|\\ +\hbox{\hskip 2.0cm} $\rightarrow$ $[[y=1.5859375,x=0.79296875]]$ + +\verb|complexSolve([x^2*y-1,x*y^2-2],1/1000)| + +\verb|radicalSolve([x^2/a+a+y^3-1,a*y+a+1],[x,y])| + +$\displaystyle\sum_{i=k}^n f(i)=$ \verb|reduce(+,[f(i) for i in k..n])| + +$\displaystyle\prod_{i=k}^n f(i)=$ \verb|reduce(*,[f(i) for i in k..n])| + +%********************************************* +\hr\textbf{Pattern Matching} + +logrule:=rule log(x)+log(y) == log(x*y) $\rightarrow$\\ +\hbox{\hskip 2.1cm}\verb|log(y)+log(x)+%B==log(x y)+%B| + +f:=log sin x + log x $\rightarrow$ log(sin(x))+log(x) + +logrule f $\rightarrow$ log(x sin(x)) + +%********************************************* +\hr\textbf{Calculus} + +$\displaystyle\lim_{x\to a} f(x)=$ \verb|limit(f(x), x=a)| + +$\displaystyle\lim_{x\to a^-} f(x)=$ \verb|limit(f(x), x=a, "left")| + +$\displaystyle\lim_{x\to a^+} f(x)=$ \verb|limit(f(x), x=a, "right")| + +$\displaystyle\lim_{x\to \infty} f(x)=$ \verb|limit(f(x), x=%plusInfinity)| + +\verb|limit(sin(x)/x,x=%plusInfinity)| $\rightarrow$ 0 + +\verb|complexLimit(sin(x)/x,x=%infinity)| $\rightarrow$ "failed" + +$\frac{d}{dx}(f(x))=$ \verb|D(f(x),x)| + +$\frac{\partial}{\partial x}(f(x,y))=$ \verb|D(f(x,y),x)| + +$\int f(x)dx=$ \verb|integrate(f(x),x)| + +$\int_a^b f(x)dx=$ \verb|integrate(f(x),x=a..b)| + +%********************************************* +\hr\textbf{Series} + +x:=series 'x + +y:=sin(x) $\rightarrow$ +$x-\frac{1}{6}x^3+\frac{1}{120}x^5-\frac{1}{5040}x^7+O(x^9)$ + +coefficient(y,3) $\rightarrow$ $-\frac{1}{6}$ + +taylor(f(x),x=a) + +laurent(x/log(x),x=1) + +\verb|puiseux(sqrt(sec(x)),x=3*%pi/2)| + +%********************************************* +\hr\textbf{2D graphics} + +\verb|draw(cos(5*t/8),t=0..16*%pi,coordinates==polar)| + +\verb|f(t:SF):SF == sin(3*t/5)| + +\verb|g(t:SF):SF == sin(t)| + +\verb|draw(curve(f,g),0..%pi)| + +\verb|draw(x^2+y^3-1=0,x,y,range==[-1..1,-1..1])| + +v1:=draw(Gamma(i),i=-4.2..4,adaptive==true) + +v2:=draw(1/Gamma(i),i=-4.2..4,adaptive==true) + +putGraph(v2,getGraph(v1,1),2) + +makeViewport2D(v2) + +options: adaptive clip toScale curveColor pointColor\\ +unit range coordinates + +%********************************************* +\hr\textbf{3D graphics} + +m(u:SF,v:SF):SF == 1 + +\verb|draw(m,0..2*%pi,0..%pi,coordinates==spherical)| + +options: title style colorFunction coordinates tubeRadius +tubePoints var1Steps var2Steps space + +%********************************************* +\hr\textbf{Discrete math} + +$\lfloor x\rfloor=$ \verb|floor(x)| +\quad +$\lceil x\rceil=$ \verb|ceiling(x)| + +Remainder of $n$ divided by $k=$ \verb|rem(n,k) |, $k|n$ iff \verb| n%k==0| + +$n!=$ \verb|factorial(n)| \qquad +${x\choose m}=$ \verb|binomial(x,m)| + +$\phi(n)=$ \texttt{eulerPhi($n$)}\quad Tuples: \ \verb|(1,'Hello,x)| + +%********************************************* +\hr\textbf{Type Conversions} + +\verb|r:=(2/3)*x^2-y+4/5| $\rightarrow$ $-y+\frac{2}{3}x^2+\frac{4}{5}$\\ +\hbox{\hskip 2.0cm} Type: Polynomial Fraction Integer + +r::FRAC POLY INT $\rightarrow$ $\frac{-15y+10x^2+12}{15}$\\ +\hbox{\hskip 2.0cm} Type: Fraction Polynomial Integer + +\verb|s:=(3+4*%i)/(7+3*%i)| $\rightarrow$ $\frac{33}{58}+\frac{19}{58}\%i$ + +s::FRAC COMPLEX INT $\rightarrow$ $\frac{3+4\%i}{7+3\%i}$ + +%********************************************* +\hr\textbf{Equation} + +eq1:=3*x+4*y=5 $\rightarrow$ $4y+3x=5$ + +eq2:=2*x+2*y=3 $\rightarrow$ $2y+2x=3$ + +lhs eq1 $\rightarrow$ $4y+3x$ + +rhs eq1 $\rightarrow$ 5 + +eq1+eq2 $\rightarrow$ $6y+5x=8$ + +%********************************************* +\hr\textbf{Factored} + +g:=factor(4312) $\rightarrow$ $2^3 7^2 11$ + +unit g $\rightarrow$ 1 + +numberOfFactors g $\rightarrow$ 3 + +nthFactor(g,2) $\rightarrow$ 7 + +nthExponent(g,2) $\rightarrow$ 2 + +nthFlag(g,2) $\rightarrow$ "prime" + +map(factor,55739/2520) $\rightarrow$ $\frac{139\ 401}{2^3\ 3^2\ 5\ 7}$ + +%********************************************* +\hr\textbf{List} + +a:=[1,2,3,4] $\rightarrow$ $[1,2,3,4]$ + +b:=[3,4,5,6] $\rightarrow$ $[3,4,5,6]$ + +append(a,b) $\rightarrow$ $[1,2,3,4,3,4,5,6]$ + +cons(10,a) $\rightarrow$ $[10,1,2,3,4]$ + +empty? a $\rightarrow$ false + +a.2 $\rightarrow$ 2 + +a.2 := 99 $\rightarrow$ $[1,99,3,4]$ + +reverse b $\rightarrow$ $[6,5,4,3]$ + +%********************************************* +\hr\textbf{MakeFunction} + +\verb|expr:=(x+a)^3| $\rightarrow$ $x^3+ 3ax^2 + 3a^2x + a^3$ + +function(expr,f,x) $\rightarrow$ f + +f(2) $\rightarrow$ $a^3 + 6a^2 + 12a + 8$ + +function(expr,g,a) $\rightarrow$ g + +g(2) $\rightarrow$ $x^3 + 6x^2 + 12x + 8$ + +%********************************************* +\hr\textbf{Matrix} + +A:=matrix([[1,2],[3,4]]) $\rightarrow$ +$ +\left[ +\begin{array}{cc} +1 & 2\\ +3 & 4\\ +\end{array} +\right] +$ + +determinant A $\rightarrow$ -2 + +v:=vector([1,2]) $\rightarrow$ $[1,2]$ + +A*v $\rightarrow$ $[5,11]$ + +\verb|A^-1| $\rightarrow$ +$ +\left[ +\begin{array}{cc} +2 & 1\\ +\frac{3}{2} & \frac{1}{2}\\ +\end{array} +\right] +$ + +transpose(A) $\rightarrow$ +$ +\left[ +\begin{array}{cc} +1 & 3\\ +2 & 4\\ +\end{array} +\right] +$ + +nrows A $\rightarrow$ 2 + +ncols A $\rightarrow$ 2 + +nullity A $\rightarrow$ 0 + +rank A $\rightarrow$ 2 + +trace A $\rightarrow$ 5 + +%********************************************* +\hr\textbf{Polynomial} + +x+1 yields Type {\bf Polynomial Integer} + +z-2.3 yields Type {\bf Polynomial Float} + +\verb|y^2-z+3/4| yields Type {\bf Polynomial Fraction Integer} + +\verb|p:=(y-1)^2*x*z| $\rightarrow$ $(xy^2-2xy+x)z$ + +\verb|q:=(y-1)*x*(z+5)| $\rightarrow$ $(xy - x)z + 5xy - 5x$ + +gcd(p,q) $\rightarrow$ $x y - x$ + +mainVariable p $\rightarrow$ $z$ + +variables p $\rightarrow$ $[z,y,x]$ + +degree(p,y) $\rightarrow$ 2 + +totaldegree p $\rightarrow$ 4 + +eval(p,x,w) $\rightarrow$ $(wy^2 - 2wy + w)z$ + +D(p,x) $\rightarrow$ $(y^2- 2y + 1)z$ + +integrate(p,x) $\rightarrow$ $(\frac{1}{2}x^2y^2-x^2y+\frac{1}{2}x^2)z$ + +%********************************************* +\hr\textbf{PrimeField} + +x:PrimeField(7):=5 $\rightarrow$ 5 + +\verb|x^3| $\rightarrow$ 6 + +1/x $\rightarrow$ 3 + +%********************************************* +\hr\textbf{Set} + +\verb|s:=brace([1,2,3,4,5])| $\rightarrow$ $\{1,2,3,4,5\}$ + +\verb;t:=brace([2,3,5,7]); $\rightarrow$ $\{2,3,5,7\}$ + +intersect(s,t) $\rightarrow$ $\{2,3,5\}$ + +union(s,t) $\rightarrow$ $\{1,2,3,4,5,7\}$ + +difference(s,t) $\rightarrow$ $\{1,4\}$ + +insert!(7,s) $\rightarrow$ $\{1,2,3,4,5,7\}$ + +remove!(7,s) $\rightarrow$ $\{1,2,3,4,5\}$ + +$\{1,2,1,a\}=$ \verb|brace([1,2,1,'a])| \ ($=\{1,2,a\}$) + +$\{f(x):x\in X,x>0\}\approx$\verb?brace([f(x) for x in X | x>0])? + +%********************************************* +\hr\textbf{Special Functions} + +[fibonacci(k) for k in 0..] $\rightarrow$ [0,1,1,2,3,5,...] + +[legendre(i,11) for i in 0..5] $\rightarrow$ [0,1,- 1,1,1,1] + +[jacobi(i,15) for i in 0..5] $\rightarrow$ [0,1,1,0,1,0] + +[eulerPhi i for i in 1..] $\rightarrow$ [1,1,2,2,4,2,...] + +[moebiusMu i for i in 1..] $\rightarrow$ [1,- 1,- 1,0,- 1,1,...] + +E1(0.01) $\rightarrow$ 4.0379295765381134 + +Gamma(0.01) $\rightarrow$ 99.432585119150588 + +%********************************************* +\hr\textbf{Stream} + +)set streams calculate 6 + +\verb|ints := [i for i in 1..]| $\rightarrow$ \verb|[1,2,3,4,5,6,...]| + +ints.20 $\rightarrow$ 20 + +\verb;[i for i in ints | odd? i]; $\rightarrow$ \verb|[1,3,5,7,9,11,...]| + +%********************************************* +\hr\textbf{String} + +creation: \ s:= \verb|"Hello"| + +concatenate \verb|"He" "llo"| $\rightarrow$ \verb|"Hello"| + +\texttt{s(1)='H' \quad s.1='H' \quad s(2..3)='el' \quad s(4..)='lo'} + +split("hi there",char " ") $\rightarrow$ \verb|["hi","there"]| + +prefix?("He","Hello") $\rightarrow$ true + +substring?("ll","Hello",3) $\rightarrow$ true + +%********************************************* +\hr\textbf{TwoDimensionalArray} + +creation: \verb|arr:ARRAY2 INT:=new(2,3,0)| $\rightarrow$ +$ +\left[ +\begin{array}{ccc} +0 & 0 & 0\\ +0 & 0 & 0\\ +\end{array} +\right] +$ + +nrows arr $\rightarrow$ 2 + +ncols arr $\rightarrow$ 3 + +setelt(arr,1,1,17) $\rightarrow$ +$ +\left[ +\begin{array}{ccc} +17 & 0 & 0\\ +0 & 0 & 0\\ +\end{array} +\right] +$ + +arr(1,1) $\rightarrow$ 17 + +%********************************************* +\hr\textbf{Univariate Polynomial} + +creation: \verb|p:UP(x,INT):=(3*x-1)^2*(2*x+8)|\\ +\hbox{\hskip 1.5cm}\verb|q:UP(x,INT):=(1-6*x+9*x^2)^2| + +leadingCoefficient p $\rightarrow$ 18 + +degree p $\rightarrow$ 3 + +reductum p $\rightarrow$ $60x^2-46x+8$ + +gcd(p,q) $\rightarrow$ $9x^2-6x+1$ + +lcm(p,q) $\rightarrow$ $162x^5+432x^4-756x^3+408x^2-94x+8$ + +resultant(p,q) $\rightarrow$ 0 + +p(2) $\rightarrow$ 300 (used as function) + +D(p) $\rightarrow$ $54x^2+120x-46$ (derivative) + +%********************************************* +\hr\textbf{Vector} + +creation: \verb|v := vector([1,2,3,4,5])| $\rightarrow$ $[1,2,3,4,5]$ + +length: \verb|#v| $\rightarrow$ 5 + +access: v.2 $\rightarrow$ 2 + +add: v+v $\rightarrow$ $[2,4,6,8,10]$ + +multiply: 5*v $\rightarrow$ $[5,10,15,20,25]$ + +assign: v.2 := 7 $\rightarrow$ $[1,7,3,4,5]$ + +\end{multicols*} + +\end{document} \ No newline at end of file diff --git a/books/rosetta.pamphlet b/books/rosetta.pamphlet new file mode 100644 index 0000000..9e14ccc --- /dev/null +++ b/books/rosetta.pamphlet @@ -0,0 +1,1511 @@ +\documentclass{article} +\normalsize\baselineskip=12pt +\parskip=0pt +\parindent=10pt +\tolerance=5000 +\pretolerance=5000 +\frenchspacing +\hangindent=10pt +\skip\footins=18pt +\global\textwidth 31pc \global\textheight 47pc +\headsep 12pt +\oddsidemargin 0pt +\evensidemargin 0pt +% +\renewcommand{\textfraction}{.1} +\renewcommand{\floatpagefraction}{.75} +% +\catcode`@=11 +\def\ps@plain{\let\@mkboth\@gobbletwo% + \let\@oddhead\@empty\def\@oddfoot{\sysdetails} + \let\@evenhead\@empty\let\@evenfoot\@oddfoot} +\def\ps@empty{\let\@mkboth\@gobbletwo% + \let\@oddhead\@empty\def\@oddfoot{\sysdetails} + \let\@evenhead\@empty\let\@evenfoot\@oddfoot} +\catcode`@=12 +% +\def\sysdetails{\parbox{\textwidth}{% +Based on material originally published in {\sl Computer Algebra Systems: A +Practical Guide\/} edited by Michael J.\ Wester, John Wiley \& Sons, +Chichester, United Kingdom, ISBN 0-471-98353-5, xvi+436 pages, 1999.}} +% +\pagestyle{plain} + +\begin{document} +% +% \nth{n} produces 1^{st}, 2^{nd}, 3^{rd}, 4^{th}, etc. +% +\def\nth#1{$#1^{\rm \ifcase#1 th\or st\or nd\or rd\else th\fi}$} +% +% Abbreviations +% +\newcommand{\Axiom}{{\sf Axiom}} +\newcommand{\Derive}{{\sf Derive}} +\newcommand{\DoCon}{{\sf DoCon}} +\newcommand{\GAP}{{\sf GAP}} +\newcommand{\Gmp}{{\sf Gmp}} +\newcommand{\Macsyma}{{\sf Macsyma}} +\newcommand{\Magnus}{{\sf Magnus}} +\newcommand{\Maxima}{{\sf Maxima}} +\newcommand{\Maple}{{\sf Maple}} +\newcommand{\Mathematica}{{\sf Mathematica}} +\newcommand{\MuPAD}{{\sf MuPAD}} +\newcommand{\Octave}{{\sf Octave}} +\newcommand{\Pari}{{\sf Pari}} +\newcommand{\Reduce}{{\sf Reduce}} +\newcommand{\Scilab}{{\sf Scilab}} +\newcommand{\Sumit}{{\sf Sumit}} +\newcommand{\Yacas}{{\sf Yacas}} + +\section{Introduction} + +The following is a collection of synonyms for various operations in +the computer algebra systems \Axiom, \Derive, \GAP, \Gmp, \DoCon, +\Macsyma, \Magnus, \Maxima, \Maple, \Mathematica, \MuPAD, \Octave, +\Pari, \Reduce, \Scilab, \Sumit\ and \Yacas. This collection does not +attempt to be comprehensive, but hopefully it will be useful in giving +an indication of how to translate between the syntaxes used by the +different systems in many common situations. Note that a blank entry +means either (a) that there may be an exact translation of a +particular operation for the indicated system, but we don't know what +it is or (b) there is no exact translation but it may still be +possible to work around this lack with a related functionality. + +While commercial systems are not provided on this CD the intent of the +Rosetta effort is to make it possible for experienced Computer Algebra +users to experiment with other systems. Thus the commands for +commercial systems are included to allow users of those systems to +translate. + +Some of these systems are special purpose and do not support a lot of +the functionality of the more general purpose systems. Where they do +support an interpreter the commands are provided. + +Originally written by Michael Wester. +Modified for Rosetta by Timothy Daly, Alexander Hulpke (GAP). + +\section{System availability} + +\begin{tabular}{l|lll} +System & \rm{License} & \rm{Status (May 2002)} & \rm{Web Location} \\ +\hline +\Axiom & BSD & available & http://www.aldor.org \\ +\Axiom & open source & pending & http://home.earthlink.net/~jgg964/axiom.html \\ +\Derive & commercial & available & http://www.mathware.com \\ +\DoCon & open source & available & http://www.haskell.org/docon \\ +\GAP & GPL & Rosetta & http://www.gap-system.org/~gap \\ +\Gmp & GPL & Rosetta & http://www.swox.com/gmp \\ +\Macsyma & commercial & dead & unavailable \\ +\Magnus & GPL & Rosetta & http://sourceforge.net/projects/magnus \\ +\Maxima & GPL & Rosetta & http://www.ma.utexas.edu/maxima.html\\ +\Maple & commercial & available & http://www.maplesoft.com \\ +\Mathematica & commercial & available & http://www.wolfram.com \\ +\MuPAD & commercial & available & http://www.mupad.de \\ +\Octave & GPL & Rosetta & http://www.octave.org \\ +\Pari & GPL & Rosetta & http://www.parigp-home.de \\ +\Reduce & commercial & available & http://www.zib.de/Symbolik/reduce \\ +\Scilab & Scilab & available & http://www-rocq.inria.fr/scilab \\ +\Sumit & & available & http://www-sop.inria.fr/cafe/soft-f.html \\ +\Yacas & GPL & available & http://yacas.sourceforge.net \\ +\end{tabular} \\[10pt] +\\ +\begin{tabular}{l|ll} +System & \rm{Type} & \rm{Interpreted or Compiled}\\ +\hline +\Axiom & General Purpose & both \\ +\Derive & General Purpose & \\ +\DoCon & General Purpose & Interpreted in Haskell \\ +\GAP & Group Theory & \\ +\Gmp & arb. prec. arithmetic & \\ +\Macsyma & General Purpose & \\ +\Magnus & Infinite Group Theory & \\ +\Maxima & General Purpose & \\ +\Maple & General Purpose & \\ +\Mathematica & General Purpose & \\ +\MuPAD & General Purpose & \\ +\Octave & Numerical Computing & \\ +\Pari & Number Theory & \\ +\Reduce & General Purpose & \\ +\Scilab & General Purpose & \\ +\Sumit & Functional Equations & \\ +\Yacas & General Purpose & \\ +\end{tabular} \\[10pt] + +\section{Programming and Miscellaneous} + +\begingroup +\newcommand{\OR}{{\em or }} +\newcommand{\fnm}{\footnotemark} +\newcommand{\h}[1]{{\rm #1}} +\newcommand{\m}[2]{\multicolumn{#1}{l}{#2}} +\newcommand{\q}{\quad} +\newcommand{\st}{\small\tt} +\parindent=0pt +\hfuzz=1pt +\begin{tt} + +\begin{tabular}{l|ll} +& \m{2}{\rm Unix/Microsoft user initialization file} \\ +\hline +\Axiom & \~{}/axiom.input & \\ +\GAP & \~{}/.gaprc & GAP.RC \\ +\Gmp & & \\ +\DoCon & & \\ +\Derive & & derive.ini \\ +\Macsyma & \~{}/macsyma-init.macsyma & mac-init.mac \\ +\Magnus & & \\ +\Maxima & \~{}/macsyma-init.macsyma & mac-init.mac \\ +\Maple & \~{}/.mapleinit & maplev5.ini \\ +\Mathematica & \~{}/init.m & init.m \\ +\MuPAD & \~{}/.mupadinit & + $\backslash$mupad$\backslash$bin$\backslash$userinit.mu \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & \~{}/.reducerc & reduce.rc \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Describe {\em keyword}} & \h{Find keywords containing {\em pattern}} \\ +\hline +\Axiom & & )what operations pattern \\ +\Derive & & \\ +\DoCon & & \\ +\GAP & ?keyword & ??keyword\\ +\Gmp & & \\ +\Macsyma & describe("keyword")\$ & apropos("pattern"); \\ +\Magnus & & \\ +\Maxima & describe("keyword")\$ & apropos("pattern"); \\ +\Maple & ?keyword & ?pattern\,\fnm \\ +\Mathematica & ?keyword & ?*pattern* \\ +\MuPAD & ?keyword & ?*pattern* \\ +\Octave & help -i keyword & \\ +\Pari & & \\ +\Reduce & & \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\footnotetext{Only if the pattern is not a keyword and then the matches are +simplistic.} + +\begin{tabular}{l|l@{ }llll} +& & & \h{Prev.} & \h{Case} & \h{Variables} \\ +& \h{Comment} & \h{Line continuation} & \h{expr.} & \h{sensitive} & \h{assumed} + \\ +\hline +\Axiom & -- comment & input \_input & \% & Yes & real \\ +\Derive & "comment" & input \~{}input & & No & real \\ +\DoCon & & & & & \\ +\GAP & \# comment & input$\backslash$input&last&Yes&no assumption\\ +\Gmp & & & & & \\ +\Macsyma & /* comment */ & inputinput; & \% & No & real \\ +\Magnus & & & & & \\ +\Maxima & /* comment */ & inputinput; & \% & No & real \\ +\Maple & \# comment & inputinput; & \% & Yes & complex \\ +\Mathematica & (* comment *) & inputinput & \% & Yes & complex \\ +\MuPAD & \# comment \# & inputinput; & \% & Yes & complex \\ +\Octave & \#\# & & & Yes & \\ +\Pari & & & & & \\ +\Reduce & \% comment & inputinput; & ws & No & complex \\ +\Scilab & & & & & \\ +\Sumit & & & & & \\ +\Yacas & & & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{Load a file} & \h{Time a command} & \h{Quit} \\ +\hline +\Axiom & )read "file" )quiet & )set messages time on & )quit \\ +\Derive & [Transfer Load Derive] & & [Quit] \\ +\DoCon & & & \\ +\GAP & Read("file"); & time; \h{(also see {\tt Runtime();})}&quit;\\ +\Gmp & & & \\ +\Macsyma & load("file")\$ & showtime: all\$ & quit(); \\ +\Magnus & & & \\ +\Maxima & load("file")\$ & showtime: all\$ & quit(); \\ +\Maple & read("file"): & readlib(showtime): on; & quit \\ +\Mathematica & @<< file & Timing[command] & Quit[] \\ +\MuPAD & read("file"): & time(command); & quit \\ +\Octave & load file & tic(); cmd ; toc() & quit \OR\ exit\\ +\Pari & & & \\ +\Reduce & in "file"\$ & on time; & quit; \\ +\Scilab & & & quit \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{Display} & \h{Suppress} & \\ +& \h{output} & \h{output} & \h{Substitution: $f(x, y) \rightarrow f(z, w)$} \\ +\hline +\Axiom & input & input; & subst(f(x, y), [x = z, y = w]) \\ +\Derive & input & var:= input & [Manage Substitute] \\ +\DoCon & & & \\ +\GAP & input; & input;; & Value(f,[x,y],[z,w]);\fnm \\ +\Gmp & & & \\ +\Macsyma & input; & input\$ & subst([x = z, y = w], f(x, y)); \\ +\Magnus & & & \\ +\Maxima & input; & input\$ & subst([x = z, y = w], f(x, y)); \\ +\Maple & input; & input: & subs(\{x = z, y = w\}, f(x, y)); \\ +\Mathematica & input & input; & f[x, y] /. \{x -> z, y -> w\} \\ +\MuPAD & input; & input: & subs(f(x, y), [x = z, y = w]); \\ +\Octave & input & input; & \\ +\Pari & & & \\ +\Reduce & input; & input\$ & sub(\{x = z, y = w\}, f(x, y)); \\ +\Scilab & & & \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{Set} & \h{List} & \h{Matrix} \\ +\hline +\Axiom & set [1, 2] & [1, 2] & matrix(@[[1, 2],[3, 4]]) \\ +\Derive & \{1, 2\} & [1, 2] & @[[1,2], [3,4]] \\ +\DoCon & & & \\ +\GAP & Set([1,2]) & [1, 2] & @[[1,2], [3,4]]\fnm \\ +\Gmp & & & \\ +\Macsyma & [1, 2] & [1, 2] & matrix([1, 2], [3, 4]) \\ +\Magnus & & & \\ +\Maxima & [1, 2] & [1, 2] & matrix([1, 2], [3, 4]) \\ +\Maple & \{1, 2\} & [1, 2] & matrix(@[[1, 2], [3, 4]]) \\ +\Mathematica & \{1, 2\} & \{1, 2\} & \{\{1, 2\}, \{3, 4\}\} \\ +\MuPAD & \{1, 2\} & [1, 2] & export(Dom): \q export(linalg): \\ + & & & matrix:= ExpressionField(normal)): \\ + & & & matrix(@[[1, 2], [3, 4]]) \\ +\Octave & & & \\ +\Pari & & & \\ +\Reduce & \{1, 2\} & \{1, 2\} & mat((1, 2), (3, 4)) \\ +\Scilab & & list(1,2) & A=[1,2;3,4]\\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|llll} +& \h{Equation} & \h{List element} & \h{Matrix element} & \h{Length of a list} \\ +\hline +\Axiom & x = 0 & l . 2 & m(2, 3) & \#l \\ +\Derive & x = 0 & l SUB 2 & m SUB 2 SUB 3 & DIMENSION(l) \\ +\DoCon & & & & \\ +\GAP & x=0 & l[2] & m[2][3] & Length(l) \\ +\Gmp & & & & \\ +\Macsyma & x = 0 & l[2] & m[2, 3] & length(l) \\ +\Magnus & & & & \\ +\Maxima & x = 0 & l[2] & m[2, 3] & length(l) \\ +\Maple & x = 0 & l[2] & m[2, 3] & nops(l) \\ +\Mathematica & x == 0 & l@[[2]] & m@[[2, 3]] & Length[l] \\ +\MuPAD & x = 0 & l[2] & m[2, 3] & nops(l) \\ +\Octave & & & & \\ +\Pari & & & & \\ +\Reduce & x = 0 & part(l, 2) & m(2, 3) & length(l) \\ +\Scilab & & l(2) & & \\ +\Sumit & & & & \\ +\Yacas & & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \m{2}{\rm Prepend/append an element to a list} & \h{Append two lists} \\ +\hline +\Axiom & cons(e, l) & concat(l, e) & append(l1, l2) \\ +\Derive & APPEND([e], l) & APPEND(l, [e]) & APPEND(l1, l2) \\ +\DoCon & & & \\ +\GAP & Concatenation([e],l) & Add(l,e) & Append(l1, l2) \\ +\Gmp & & & \\ +\Macsyma & cons(e, l) & endcons(e, l) & append(l1, l2) \\ +\Magnus & & & \\ +\Maxima & cons(e, l) & endcons(e, l) & append(l1, l2) \\ +\Maple & [e, op(l)] & [op(l), e] & [op(l1), op(l2)] \\ +\Mathematica & Prepend[l, e] & Append[l, e] & Join[l1, l2] \\ +\MuPAD & [e, op(l)] & append(l, e) & l1 . l2 \\ +\Octave & & & \\ +\Pari & & & \\ +\Reduce & e . l & append(l, {e}) & append(l1, l2) \\ +\Scilab & & & \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Matrix column dimension} & \h{Convert a list into a column vector} \\ +\hline +\Axiom & ncols(m) & transpose(matrix([l])) \\ +\Derive & DIMENSION(m SUB 1) & [l]\`{} \\ +\DoCon & & \\ +\GAP & Length(mat[1]) & \h{objects are identical} \\ +\Gmp & & \\ +\Macsyma & mat\_\,ncols(m) & transpose(matrix(l)) \\ +\Magnus & & \\ +\Maxima & mat\_\,ncols(m) & transpose(matrix(l)) \\ +\Maple & linalg[coldim](m) & linalg[transpose](matrix([l])) \\ +\Mathematica & Dimensions[m]@[[2]] & Transpose[\{l\}] \\ +\MuPAD & linalg::ncols(m) & transpose(matrix([l]))\,\fnm \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & load\_\,package(linalg)\$ & matrix v(length(l), 1)\$ \\ + & column\_dim(m) & for i:=1:length(l) do \\ + & & \q\q v(i, 1):= part(l, i) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\footnotetext{See the definition of {\tt matrix} above.} + +\begin{tabular}{l|l} +& \h{Convert a column vector into a list} \\ +\hline +\Axiom & [v(i, 1) for i in 1..nrows(v)] \\ +\Derive & v\`{} SUB 1 \\ +\DoCon & \\ +\GAP & \h{objects are identical} \\ +\Gmp & \\ +\Macsyma & part(transpose(v), 1) \\ +\Magnus & \\ +\Maxima & part(transpose(v), 1) \\ +\Maple & op(convert(linalg[transpose](v), listlist)) \\ +\Mathematica & Flatten[v] \\ +\MuPAD & [op(v)] \\ +\Octave & \\ +\Pari & \\ +\Reduce & load\_\,package(linalg)\$ \\ + & for i:=1:row\_\,dim(v) collect(v(i, 1)) \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lllllll} +& \h{True} & \h{False} & \h{And} & \h{Or} & \h{Not} & \h{Equal} & \h{Not equal} + \\ +\hline +\Axiom & true & false & and & or & not & = & \~{}= \\ +\Derive & TRUE & FALSE & AND & OR & NOT & = & /= \\ +\DoCon & & & & & & & \\ +\GAP & true & false\fnm & and & or & not & = & <> \\ +\Gmp & & & & & & & \\ +\Macsyma & true & false & and & or & not & = & \# \\ +\Magnus & & & & & & & \\ +\Maxima & true & false & and & or & not & = & \# \\ +\Maple & true & false & and & or & not & = & <> \\ +\Mathematica & True & False & \&\& & || & ! & == & != \\ +\MuPAD & true & false & and & or & not & = & <> \\ +\Octave & & & & & & & \\ +\Pari & & & & & & & \\ +\Reduce & t & nil & and & or & not & = & neq \\ +\Scilab & \%t & \%f & & & & & \\ +\Sumit & & & & & & & \\ +\Yacas & & & & & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{If+then+else statements} & \h{Strings (concatenated)} \\ +\hline +\Axiom & if \_ then \_ else if \_ then \_ else \_ & concat(["x", "y"]) \\ +\Derive & IF(\_, \_, IF(\_, \_, \_)) & "xy" \\ +\DoCon & & \\ +\GAP & if \_ then \_ elif \_ then \_ else \_ fi & Concatenation("x","y")\\ +\Gmp & & \\ +\Macsyma & if \_ then \_ else if \_ then \_ else \_ & concat("x", "y") \\ +\Magnus & & \\ +\Maxima & if \_ then \_ else if \_ then \_ else \_ & concat("x", "y") \\ +\Maple & if \_ then \_ elif \_ then \_ else \_ fi & "x" . "y" \\ +\Mathematica & If[\_, \_, If[\_, \_, \_]] & "x" <> "y" \\ +\MuPAD & if \_ then \_ elif \_ then \_ else \_ & "x" . "y" \\ + & \q\q end\_if & \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & if \_ then \_ else if \_ then \_ else \_ & "xy" \OR\ mkid(x, y)\\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Simple loop and Block} & \h{Generate the list $[1, 2, \ldots, n]$} \\ +\hline +\Axiom & for i in 1..n repeat ( x; y ) & [f(i) for i in 1..n] \\ +\Derive & VECTOR([x, y], i, 1, n) & VECTOR(f(i), i, 1, n) \\ +\DoCon & & \\ +\GAP & for i in [1..n] do \_ od; & [1..n] {\rm or} [1,2..n]\\ +\Gmp & & \\ +\Macsyma & for i:1 thru n do (x, y); & makelist(f(i), i, 1, n); \\ +\Magnus & & \\ +\Maxima & for i:1 thru n do (x, y); & makelist(f(i), i, 1, n); \\ +\Maple & for i from 1 to n do x; y od; & [f(i) \$ i = 1..n]; \\ +\Mathematica & Do[x; y, \{i, 1, n\}] & Table[f[i], \{i, 1, n\}] \\ +\MuPAD & for i from 1 to n do x; y & [f(i) \$ i = 1..n]; \\ + & \q\q end\_for; & \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & for i:=1:n do @<>; & for i:=1:n collect f(i); \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Complex loop iterating on a list} \\ +\hline +\Axiom & for x in [2, 3, 5] while x**2 < 10 repeat output(x) \\ +\Derive & \\ +\DoCon & \\ +\GAP & for x in [2, 3, 5] do while x\^{}2<10 do Print(x);od;od; \\ +\Gmp & \\ +\Macsyma & for x in [2, 3, 5] while x\^{}2 < 10 do print(x)\$ \\ +\Magnus & \\ +\Maxima & for x in [2, 3, 5] while x\^{}2 < 10 do print(x)\$ \\ +\Maple & for x in [2, 3, 5] while x\^{}2 < 10 do print(x) od: \\ +\Mathematica & For[l = \{2, 3, 5\}, l != \{\} \&\& l@[[1]]\^{}2 < 10, \\ + & \q l = Rest[l], Print[l@[[1]]] ] \\ +\MuPAD & for x in [2, 3, 5] do if x\^{}2 < 10 then print(x) end\_if \\ + & \q end\_for: \\ +\Octave & \\ +\Pari & \\ +\Reduce & for each x in \{2, 3, 5\} do if x\^{}2 < 10 then write(x)\$ \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{\small Assignment} & \h{Function definition} & \h{Clear vars and funs} \\ +\hline +\Axiom & y:= f(x) & f(x, y) == x*y & + {\small\tt )clear properties y f} \\ +\Derive & y:= f(x) & f(x, y):= x*y & y:= f:= \\ +\DoCon & & & \\ +\GAP & y:= f(x); & f:=function(x, y) return x*y; end; & \h{There are +no symbolic variables}\\ +\Gmp & & & \\ +\Macsyma & y: f(x); & f(x, y):= x*y; & remvalue(y)\$ \\ + & & & remfunction(f)\$ \\ +\Magnus & & & \\ +\Maxima & y: f(x); & f(x, y):= x*y; & remvalue(y)\$ \\ + & & & remfunction(f)\$ \\ +\Maple & y:= f(x); & f:= proc(x, y) x*y end; & y:= 'y': f:= 'f': \\ +\Mathematica & y = f[x] & f[x\_, y\_\,]:= x*y & Clear[y, f] \\ +\MuPAD & y:= f(x); & f:= proc(x, y) & y:= NIL: f:= NIL: \\ + & & \q\q begin x*y end\_\,proc; & \\ +\Octave & & & \\ +\Pari & & & \\ +\Reduce & y:= f(x); & procedure f(x, y); x*y; & clear y, f; \\ +\Scilab & & & \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Function definition with a local variable} \\ +\hline +\Axiom & f(x) == (local n; n:= 2; n*x) \\ +\Derive & \\ +\DoCon & \\ +\GAP & f:=function(x) local n; n:=2;return n*x; end; \\ +\Gmp & \\ +\Macsyma & f(x):= block([n], n: 2, n*x); \\ +\Magnus & \\ +\Maxima & f(x):= block([n], n: 2, n*x); \\ +\Maple & f:= proc(x) local n; n:= 2; n*x end; \\ +\Mathematica & f[x\_\,]:= Module[\{n\}, n = 2; n*x] \\ +\MuPAD & f:= proc(x) local n; begin n:= 2; n*x end\_\,proc; \\ +\Octave & \\ +\Pari & \\ +\Reduce & procedure f(x); begin scalar n; n:= 2; return(n*x) end; \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Return unevaluated symbol} & \h{Define a function from an expression} \\ +\hline +\Axiom & e:= x*y;\q 'e & function(e, f, x, y) \\ +\Derive & e:= x*y\q 'e & f(x, y):== e \\ +\DoCon & & \\ +\GAP & \h{No unevaluated symbols}\fnm&\\ +\Gmp & & \\ +\Macsyma & e: x*y\$\q 'e; & define(f(x, y), e); \\ +\Magnus & & \\ +\Maxima & e: x*y\$\q 'e; & define(f(x, y), e); \\ +\Maple & e:= x*y:\q 'e'; & f:= unapply(e, x, y); \\ +\Mathematica & e = x*y;\q HoldForm[e] & f[x\_, y\_\,] = e \\ +\MuPAD & e:= x*y:\q hold(e); & f:= hold(func)(e, x, y); \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & e:= x*y\$ & for all x, y let f(x, y):= e; \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] +\footnotetext{Variables can be assigned to generators of a suitable free +object, for example {\tt x:=X(Rationals,"x");} or {\tt +f:=FreeGroup(2);x:=f.1;}.} +\addtocounter{footnote}{-1}% + +\begin{tabular}{l|ll} +& \h{Fun.\ of an indefinite number of args} & \h{Apply ``+'' to sum a list} \\ +\hline +\Axiom & & reduce(+, [1, 2]) \\ +\Derive & LST l:= l & \\ +\DoCon & & \\ +\GAP & lst:=function(args) \_ end; & Sum([1,2])\\ +\Gmp & & \\ +\Macsyma & lst([l]):= l; & apply("+", [1, 2]) \\ +\Magnus & & \\ +\Maxima & lst([l]):= l; & apply("+", [1, 2]) \\ +\Maple & lst:=proc() [args[1..nargs]] end; & convert([1, 2], \`{}+\`{}) \\ +\Mathematica & lst[l\_\,\_\,\_\,]:= \{l\} & Apply[Plus, \{1, 2\}] \\ +\MuPAD & lst:= proc(l) begin [args()] & \_\,plus(op([1, 2])) \\ + & \q\q\q end\_\,proc; & \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & & xapply(+, \{1, 2\})\,\fnm \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\footnotetext{\tt procedure xapply(f, lst); lisp(f . cdr(lst))\$} +\addtocounter{footnote}{-1}% + +\begin{tabular}{l|ll} +& \h{Apply a fun.\ to a} & \\ +& \h{list of its args} & \h{Map an anonymous function onto a list} \\ +\hline +\Axiom & reduce(f, l) & map(x +-> x + y, [1, 2]) \\ +\Derive & & x:= [1, 2] \\ + & & VECTOR(x SUB i + y, i, 1, DIMENSION(x)) \\ +\DoCon & & \\ +\GAP & List(l,f) & List([1,2],x->x+y) \\ +\Gmp & & \\ +\Macsyma & apply(f, l) & map(lambda([x], x + y), [1, 2]) \\ +\Magnus & & \\ +\Maxima & apply(f, l) & map(lambda([x], x + y), [1, 2]) \\ +\Maple & f(op(l)) & map(x -> x + y, [1, 2]) \\ +\Mathematica & Apply[f, l] & Map[\# + y \&, \{1, 2\}] \\ +\MuPAD & f(op(l)) & map([1, 2], func(x + y, x)) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & xapply(f, l)\,\fnm & for each x in \{1, 2\} collect x + y \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Pattern matching: $f(3 y) + f(z y) \rightarrow 3 f(y) + f(z y)$} \\ +\hline +\Axiom & f:= operator('f); \\ + & ( rule f((n | integer?(n)) * x) == n*f(x) )( \_ \\ + & \q\q f(3*y) + f(z*y)) \\ +\Derive & \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & matchdeclare(n, integerp, x, true)\$ \\ + & defrule(fnx, f(n*x), n*f(x))\$ \\ + & apply1(f(3*y) + f(z*y), fnx); \\ +\Magnus & \\ +\Maxima & matchdeclare(n, integerp, x, true)\$ \\ + & defrule(fnx, f(n*x), n*f(x))\$ \\ + & apply1(f(3*y) + f(z*y), fnx); \\ +\Maple & map(proc(q) local m; \\ + & \q\q\q if match(q = f(n*y), y, 'm') and \\ + & \q\q\q\q\q type(rhs(op(m)), integer) then \\ + & \q\q\q\q subs(m, n * f(y)) else q fi \\ + & \q\q end, \\ + & \q\q f(3*y) + f(z*y)); \\ +\Mathematica & f[3*y] + f[z*y] /. f[n\_Integer * x\_\,] -> n*f[x] \\ +\MuPAD & d:= domain("match"): \q d::FREEVARIABLE:= TRUE: \\ + & n:= new(d, "n", func(testtype(m, DOM\_INT), m)): \\ + & x:= new(d, "x", TRUE): \\ + & map(f(3*y) + f(z*y), \\ + & \q\q proc(q) local m; begin m:= match(q, f(n*x)); \\ + & \q\q\q if m = FAIL then q \\ + & \q\q\q else subs(hold("n" * f("x")), m) end\_if \\ + & \q\q end\_\,proc); \\ +\Octave & \\ +\Pari & \\ +\Reduce & operator f; \\ + & f(3*y) + f(z*y) \\ + & \q\q where \{f(\~{}n * \~{}x) => n*f(x) when fixp(n)\}; \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Define a new infix operator and then use it} \\ +\hline +\Axiom & \\ +\Derive & \\ +\DoCon & \\ +\GAP &\h{One can overload existing infix operators for ones own purposes}\\ +\Gmp & \\ +\Macsyma & infix("\~{}")\$ \q "\~{}"(x, y):= sqrt(x\^{}2 + y\^{}2)\$ \q + 3 \~{} 4; \\ +\Magnus & \\ +\Maxima & infix("\~{}")\$ \q "\~{}"(x, y):= sqrt(x\^{}2 + y\^{}2)\$ \q + 3 \~{} 4; \\ +\Maple & \`{}\&\~{}\`{}:= (x, y) -> sqrt(x\^{}2 + y\^{}2): \q 3 \&\~{} 4; + \\ +\Mathematica & x\_ $\backslash$[Tilde] y\_:= Sqrt[x\^{}2 + y\^{}2]; \q + 3 $\backslash$[Tilde] 4 \\ +\MuPAD & tilde:= proc(x, y) begin sqrt(x\^{}2 + y\^{}2) end\_\,proc: \\ + & \q 3 \&tilde 4; \\ +\Octave & \\ +\Pari & \\ +\Reduce & infix |\$ \q procedure |(x, y); sqrt(x\^{}2 + y\^{}2)\$ \q + 3 | 4; \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{Main expression} & & \\ +& \h{operator} & \h{\nth{1} operand} & \h{List of expression operands} \\ +\hline +\Axiom\fnm & & kernels(e) . 1 & kernels(e) \\ +\Derive & & & {\em various}\fnm \\ +\DoCon & & & \\ +\GAP &\m{3}{\rm There are no formal unevaluated expressions}\\ +\Gmp & & & \\ +\Macsyma & part(e, 0) & part(e, 1) & args(e) \\ +\Magnus & & & \\ +\Maxima & part(e, 0) & part(e, 1) & args(e) \\ +\Maple & op(0, e) & op(1, e) & [op(e)] \\ +\Mathematica & Head[e] & e@[[1]] & ReplacePart[e, List, 0] \\ +\MuPAD & op(e, 0) & op(e, 1) & [op(e)] \\ +\Octave & & & \\ +\Pari & & & \\ +\Reduce & part(e, 0) & part(e, 1) & for i:=1:arglength(e) \\ + & & & \q\q collect part(e, i) \\ +\Scilab & & & \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\addtocounter{footnote}{-1}% +\footnotetext{The following commands work only on expressions that consist of a +single level (e.g., $x + y + z$ but not $a/b + c/d$).} +\addtocounter{footnote}{-1}% +\footnotetext{{\tt TERMS}, {\tt FACTORS}, {\tt NUMERATOR}, {\tt LHS}, etc.} + +\begin{tabular}{l|l} +& \h{Print text and results} \\ +\hline +\Axiom & output(concat(["sin(", string(0), ") = ", \\ + & \q string(sin(0))])); \\ +\Derive & "sin(0)" = sin(0) \\ +\DoCon & \\ +\GAP & Print("There is no sin, but factors(10)= ",Factors(10), +"$\backslash$n")\\ +\Gmp & \\ +\Macsyma & print("sin(", 0, ") =", sin(0))\$ \\ +\Magnus & \\ +\Maxima & print("sin(", 0, ") =", sin(0))\$ \\ +\Maple & printf("sin(\%a) = \%a$\backslash$n", 0, sin(0)): \\ +\Mathematica & Print[StringForm["sin(\`{}\`{}) = \`{}\`{}", 0, Sin[0]]]; \\ +\MuPAD & print(Unquoted, "sin(".0.")" = sin(0)): \\ +\Octave & \\ +\Pari & \\ +\Reduce & write("sin(", 0, ") = ", sin(0))\$ \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Generate FORTRAN} & \h{Generate \TeX/\LaTeX} \\ +\hline +\Axiom & outputAsFortran(e) & outputAsTex(e) \\ +\Derive & [Transfer Save Fortran] & \\ +\DoCon & & \\ +\GAP &&Print(LaTeX(e));\\ +\Gmp & & \\ +\Macsyma & fortran(e)\$ \OR gentran(eval(e))\$ & tex(e); \\ +\Magnus & & \\ +\Maxima & fortran(e)\$ \OR gentran(eval(e))\$ & tex(e); \\ +\Maple & fortran([e]); & latex(e); \\ +\Mathematica & FortranForm[e] & TexForm[e] \\ +\MuPAD & generate::fortran(e); & generate::TeX(e); \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & on fort; \q e; \q off fort; \OR & load\_\,package(tri)\$ \\ + & load\_\,package(gentran)\$ gentran e; & on TeX; e; off TeX; \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Import two space separated columns of integers from {\tt file}} \\ +\hline +\Axiom & \\ +\Derive & [Transfer Load daTa] ({\rm from} file.dat) \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & xy: read\_num\_data\_to\_matrix("file", nrows, 2)\$ \\ +\Magnus & \\ +\Maxima & xy: read\_num\_data\_to\_matrix("file", nrows, 2)\$ \\ +\Maple & xy:= readdata("file", integer, 2): \\ +\Mathematica & xy = ReadList["file", Number, RecordLists -> True] \\ +\MuPAD & \\ +\Octave & \\ +\Pari & \\ +\Reduce & \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Export two space separated columns of integers to {\tt file}\fnm} \\ +\hline +\Axiom & )set output algebra "file" \q ({\rm creates} file.spout) \\ + & for i in 1..n repeat output( \_ \\ + & \q concat([string(xy(i, 1)), " ", string(xy(i, 2))]) ) \\ + & )set output algebra console \\ +\Derive & xy [Transfer Print Expressions File]\q({\rm creates} file.prt)\\ +\DoCon & \\ +\GAP & PrintTo("file");for i in [1..n] do\\ + &\q AppendTo("file",xy[i][1]," ",xy[i][2],"$\backslash$n");od;\\ +\Gmp & \\ +\Macsyma & writefile("file")\$ \q for i:1 thru n do \\ + & \q print(xy[i, 1], xy[i, 2])\$ \q closefile()\$ \\ +\Magnus & \\ +\Maxima & writefile("file")\$ \q for i:1 thru n do \\ + & \q print(xy[i, 1], xy[i, 2])\$ \q closefile()\$ \\ +\Maple & writedata("file", xy); \\ +\Mathematica & outfile = OpenWrite["file"]; \\ + & Do[WriteString[outfile, \\ + & \q xy@[[i, 1]], " ", xy@[[i, 2]], "$\backslash$n"], \{i, 1, n\}] \\ + & Close[outfile]; \\ +\MuPAD & fprint(Unquoted, Text, "file", \\ + & \q ("$\backslash$n", xy[i, 1], xy[i, 2]) \$ i = 1..n): \\ +\Octave & \\ +\Pari & \\ +\Reduce & out "file"; \q for i:=1:n do \\ + & \q write(xy(i, 1), " ", xy(i, 2)); \q shut "file"; \\ +\Scilab & \\ +\Sumit & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\footnotetext{Some editing of {\tt file} will be necessary for all systems but +\Maple\ and \Mathematica.} + +\section{Mathematics and Graphics} + +{\rm Since {\GAP} aims at discrete mathematics, it does not provide much of +the calculus functionality listed in the following section.} + +\begin{tabular}{l|llllll} +& $e$ & $\pi$ & $i$ & $+\infty$ & $\sqrt{2}$ & $2^{1/3}$ \\ +\hline +\Axiom & \%e & \%pi & \%i & \%plusInfinity & sqrt(2) & 2**(1/3) \\ +\Derive & \#e & pi & \#i & inf & SQRT(2) & 2\^{}(1/3) \\ +\DoCon & & & & & & \\ +\GAP & & & E(4) & infinity & ER(2)\fnm &\\ +\Gmp & & & & & & \\ +\Macsyma & \%e & \%pi & \%i & inf & sqrt(2) & 2\^{}(1/3) \\ +\Magnus & & & & & & \\ +\Maxima & \%e & \%pi & \%i & inf & sqrt(2) & 2\^{}(1/3) \\ +\Maple & exp(1) & Pi & I & infinity & sqrt(2) & 2\^{}(1/3) \\ +\Mathematica & E & Pi & I & Infinity & Sqrt[2] & 2\^{}(1/3) \\ +\MuPAD & E & PI & I & infinity & sqrt(2) & 2\^{}(1/3) \\ +\Octave & & & & & & \\ +\Pari & & & & & & \\ +\Reduce & e & pi & i & infinity & sqrt(2) & 2\^{}(1/3) \\ +\Scilab & & & & & & \\ +\Sumit & & & & & & \\ +\Yacas & & & & & & \\ +\end{tabular} \\[10pt] +\footnotetext{{\tt ER} represents special cyclotomic numbers and is not a +root function.} +\addtocounter{footnote}{-1}% + +\begin{tabular}{l|llll} +& \h{Euler's constant} & \h{Natural log} & \h{Arctangent} & $n!$ \\ +\hline +\Axiom & & log(x) & atan(x) & factorial(n) \\ +\Derive & euler\_\,gamma & LOG(x) & ATAN(x) & n! \\ +\DoCon & & & & \\ +\GAP & & LogInt(x,base) && Factorial(n) \\ +\Gmp & & & & \\ +\Macsyma & \%gamma & log(x) & atan(x) & n! \\ +\Magnus & & & & \\ +\Maxima & \%gamma & log(x) & atan(x) & n! \\ +\Maple & gamma & log(x) & arctan(x) & n! \\ +\Mathematica & EulerGamma & Log[x] & ArcTan[x] & n! \\ +\MuPAD & EULER & ln(x) & atan(x) & n! \\ +\Octave & & & & \\ +\Pari & & & & \\ +\Reduce & Euler\_\,Gamma & log(x) & atan(x) & factorial(n) \\ +\Scilab & & & & \\ +\Sumit & & & & \\ +\Yacas & & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Legendre polynomial} & \h{Chebyshev poly.\ of the \nth{1} kind} \\ +\hline +\Axiom & legendreP(n, x) & chebyshevT(n, x) \\ +\Derive & LEGENDRE\_\,P(n, x) & CHEBYCHEV\_\,T(n, x) \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & legendre\_\,p(n, x) & chebyshev\_\,t(n, x) \\ +\Magnus & & \\ +\Maxima & legendre\_\,p(n, x) & chebyshev\_\,t(n, x) \\ +\Maple & orthopoly[P](n, x) & orthopoly[T](n, x) \\ +\Mathematica & LegendreP[n, x] & ChebyshevT[n, x] \\ +\MuPAD & orthpoly::legendre(n, x) & orthpoly::chebyshev1(n, x) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & LegendreP(n, x) & ChebyshevT(n, x) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Fibonacci number} & \h{Elliptic integral of the \nth{1} kind} \\ +\hline +\Axiom & fibonacci(n) & \\ +\Derive & FIBONACCI(n) & ELLIPTIC\_\,E(phi, k\^{}2) \\ +\DoCon & & \\ +\GAP & Fibonacci(n) & \\ +\Gmp & & \\ +\Macsyma & fib(n) & elliptic\_\,e(phi, k\^{}2) \\ +\Magnus & & \\ +\Maxima & fib(n) & elliptic\_\,e(phi, k\^{}2) \\ +\Maple & combinat[fibonacci](n) & EllipticE(sin(phi), k) \\ +\Mathematica & Fibonacci[n] & EllipticE[phi, k\^{}2] \\ +\MuPAD & numlib::fibonacci(n) & \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & & EllipticE(phi, k\^{}2) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|llll} +& $\Gamma(x)$ & $\psi(x)$ & \h{Cosine integral} & \h{Bessel fun.\ (\nth{1})} \\ +\hline +\Axiom & Gamma(x) & psi(x) & real(Ei(\%i*x)) & besselJ(n, x) \\ +\Derive & GAMMA(x) & PSI(x) & CI(x) & BESSEL\_\,J(n, x) \\ +\DoCon & & & & \\ +\GAP & & & & \\ +\Gmp & & & & \\ +\Macsyma & gamma(x) & psi[0](x) & cos\_\,int(x) & bessel\_j[n](x) \\ +\Magnus & & & & \\ +\Maxima & gamma(x) & psi[0](x) & cos\_\,int(x) & bessel\_j[n](x) \\ +\Maple & GAMMA(x) & Psi(x) & Ci(x) & BesselJ(n, x) \\ +\Mathematica & Gamma[x] & PolyGamma[x] & CosIntegral[x] & BesselJ[n, x] \\ +\MuPAD & gamma(x) & psi(x) & & besselJ(n, x) \\ +\Octave & & & & \\ +\Pari & & & & \\ +\Reduce & Gamma(x) & Psi(x) & Ci(x) & BesselJ(n, x) \\ +\Scilab & & & & \\ +\Sumit & & & & \\ +\Yacas & & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{Hypergeometric fun.\ ${}_2F_1(a, b; c; x)$} & \h{Dirac delta} & + \h{Unit step fun.} \\ +\hline +\Axiom & & & \\ +\Derive & GAUSS(a, b, c, x) & & STEP(x) \\ +\DoCon & & & \\ +\GAP & & & \\ +\Gmp & & & \\ +\Macsyma & hgfred([a, b], [c], x) & delta(x) & unit\_\,step(x) + \\ +\Magnus & & & \\ +\Maxima & hgfred([a, b], [c], x) & delta(x) & unit\_\,step(x) + \\ +\Maple & hypergeom([a, b], [c], x) & Dirac(x) & Heaviside(x) \\ +\Mathematica & HypergeometricPFQ[\{a,b\},\{c\},x] & + \m{2}{@<< Calculus\`{}DiracDelta\`{}} \\ +\MuPAD & & dirac(x) & heaviside(x) \\ +\Octave & & & \\ +\Pari & & & \\ +\Reduce & hypergeometric(\{a, b\}, \{c\}, x) & & \\ +\Scilab & & & \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Define $|x|$ via a piecewise function} \\ +\hline +\Axiom & \\ +\Derive & a(x):= -x*CHI(-inf, x, 0) + x*CHI(0, x, inf) \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & a(x):= -x*unit\_\,step(-x) + x*unit\_\,step(x)\$ \\ +\Magnus & \\ +\Maxima & a(x):= -x*unit\_\,step(-x) + x*unit\_\,step(x)\$ \\ +\Maple & a:= x -> piecewise(x < 0, -x, x): \\ +\Mathematica & @<< Calculus\`{}DiracDelta\`{} \\ + & a[x\_]:= -x*UnitStep[-x] + x*UnitStep[x] \\ +\MuPAD & a:= proc(x) begin -x*heaviside(-x) + x*heaviside(x) \\ + & \q\q end\_\,proc: \\ +\Octave & \\ +\Pari & \\ +\Reduce & \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Assume $x$ is real} & \h{Remove that assumption} \\ +\hline +\Axiom & & \\ +\Derive & x :epsilon Real & x:= \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & declare(x, real)\$ & remove(x, real)\$ \\ +\Magnus & & \\ +\Maxima & declare(x, real)\$ & remove(x, real)\$ \\ +\Maple & assume(x, real); & x:= 'x': \\ +\Mathematica & x/: Im[x] = 0; & Clear[x] \\ +\MuPAD & assume(x, Type::RealNum): & unassume(x, Type::RealNum): \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & & \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Assume $0 < x \le 1$} & \h{Remove that assumption} \\ +\hline +\Axiom & & \\ +\Derive & x :epsilon (0, 1] & x:= \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & assume(x > 0, x <= 1)\$ & forget(x > 0, x <= 1)\$ \\ +\Magnus & & \\ +\Maxima & assume(x > 0, x <= 1)\$ & forget(x > 0, x <= 1)\$ \\ +\Maple & assume(x > 0); & x:= 'x': \\ + & additionally(x <= 1); & \\ +\Mathematica & Assumptions -> 0 < x <= 1\,\fnm & \\ +\MuPAD & assume(x > 0): assume(x <= 1): & unassume(x): \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & & \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\footnotetext{This is an option for {\tt Integrate}.} + +\begin{tabular}{l|l} +& \h{Basic simplification of an expression $e$} \\ +\hline +\Axiom & simplify(e) \OR\ normalize(e) \OR\ complexNormalize(e) \\ +\Derive & e \\ +\DoCon & \\ +\GAP & e \\ +\Gmp & \\ +\Macsyma & ratsimp(e) \OR\ radcan(e) \\ +\Magnus & \\ +\Maxima & ratsimp(e) \OR\ radcan(e) \\ +\Maple & simplify(e) \\ +\Mathematica & Simplify[e] \OR\ FullSimplify[e] \\ +\MuPAD & simplify(e) \OR\ normal(e) \\ +\Octave & \\ +\Pari & \\ +\Reduce & e \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Use an unknown function} & \h{Numerically evaluate an expr.} \\ +\hline +\Axiom & f:= operator('f); \q f(x) & exp(1) :: Complex Float \\ +\Derive & f(x):= & Precision:= Approximate \\ + & f(x) & APPROX(EXP(1)) \\ + & & Precision:= Exact \\ +\DoCon & & \\ +\GAP & & EvalF(123/456)\\ +\Gmp & & \\ +\Macsyma & f(x) & sfloat(exp(1)); \\ +\Magnus & & \\ +\Maxima & f(x) & sfloat(exp(1)); \\ +\Maple & f(x) & evalf(exp(1)); \\ +\Mathematica & f[x] & N[Exp[1]] \\ +\MuPAD & f(x) & float(exp(1)); \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & operator f; \q f(x) & on rounded; \q exp(1); \\ + & & off rounded; \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& $ n \bmod m$ & \h{Solve $e \equiv 0 \bmod m$ for $x$} \\ +\hline +\Axiom & rem(n, m) & solve(e = 0 :: PrimeField(m), x) \\ +\Derive & MOD(n, m) & SOLVE\_\,MOD(e = 0, x, m) \\ +\DoCon & & \\ +\GAP & n mod m & \h{solve using finite fields}\\ +\Gmp & & \\ +\Macsyma & mod(n, m) & modulus: m\$ \q solve(e = 0, x) \\ +\Magnus & & \\ +\Maxima & mod(n, m) & modulus: m\$ \q solve(e = 0, x) \\ +\Maple & n mod m & msolve(e = 0, m) \\ +\Mathematica & Mod[n, m] & Solve[\{e == 0, Modulus == m\}, x] \\ +\MuPAD & n mod m & solve(poly(e = 0, [x], IntMod(m)), x) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & on modular; & load\_\,package(modsr)\$ \q on modular; \\ + & setmod m\$ \q n & setmod m\$ \q m\_solve(e = 0, x) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Put over common denominator} & \h{Expand into separate fractions} \\ +\hline +\Axiom & a/b + c/d & (a*d + b*c)/(b*d) :: \_ \\ + & & \q MPOLY([a], FRAC POLY INT) \\ +\Derive & FACTOR(a/b + c/d, Trivial) & EXPAND((a*d + b*c)/(b*d)) \\ +\DoCon & & \\ +\GAP & a/b+c/d &\\ +\Gmp & & \\ +\Macsyma & xthru(a/b + c/d) & expand((a*d + b*c)/(b*d)) \\ +\Magnus & & \\ +\Maxima & xthru(a/b + c/d) & expand((a*d + b*c)/(b*d)) \\ +\Maple & normal(a/b + c/d) & expand((a*d + b*c)/(b*d)) \\ +\Mathematica & Together[a/b + c/d] & Apart[(a*d + b*c)/(b*d)] \\ +\MuPAD & normal(a/b + c/d) & expand((a*d + b*c)/(b*d)) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & a/b + c/d & on div; (a*d + b*c)/(b*d) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Manipulate the root of a polynomial} \\ +\hline +\Axiom & a:= rootOf(x**2 - 2); \q a**2 \\ +\Derive & \\ +\DoCon & \\ +\GAP & x:=X(Rationals,"x");\\ +&\q a:=RootOfDefiningPolynomial(AlgebraicExtension(Rationals,x\^{}2-2)); +a\^{}2\\ +\Gmp & \\ +\Macsyma & algebraic:true\$ \q tellrat(a\^{}2 - 2)\$ \q rat(a\^{}2); \\ +\Magnus & \\ +\Maxima & algebraic:true\$ \q tellrat(a\^{}2 - 2)\$ \q rat(a\^{}2); \\ +\Maple & a:= RootOf(x\^{}2 - 2): \q simplify(a\^{}2); \\ +\Mathematica & a = Root[\#\^{}2 - 2 \&, 2] \q a\^{}2 \\ +\MuPAD & \\ +\Octave & \\ +\Pari & \\ +\Reduce & load\_\,package(arnum)\$ \q defpoly(a\^{}2 - 2); \q a\^{}2; \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Noncommutative multiplication} & \h{Solve a pair of equations} \\ +\hline +\Axiom & & solve([eqn1, eqn2], [x, y]) \\ +\Derive & x :epsilon Nonscalar & SOLVE([eqn1, eqn2], [x, y]) \\ + & y :epsilon Nonscalar & \\ + & x . y & \\ +\DoCon & & \\ +\GAP &*&\\ +\Gmp & & \\ +\Macsyma & x . y & solve([eqn1, eqn2], [x, y]) \\ +\Magnus & & \\ +\Maxima & x . y & solve([eqn1, eqn2], [x, y]) \\ +\Maple & x \&* y & solve(\{eqn1, eqn2\}, \{x, y\}) \\ +\Mathematica & x ** y & Solve[\{eqn1, eqn2\}, \{x, y\}] \\ +\MuPAD & & solve(\{eqn1, eqn2\}, \{x, y\}) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & operator x, y; & solve(\{eqn1, eqn2\}, \{x, y\}) \\ + & noncom x, y; & \\ + & x() * y() & \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \m{2}{\rm Decrease/increase angles in trigonometric functions} \\ +\hline +\Axiom & \m{2}{simplify(normalize(sin(2*x)))} \\ +\Derive & Trigonometry:= Expand & Trigonometry:= Collect \\ + & sin(2*x) & 2*sin(x)*cos(x) \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & trigexpand(sin(2*x)) & trigreduce(2*sin(x)*cos(x)) \\ +\Magnus & & \\ +\Maxima & trigexpand(sin(2*x)) & trigreduce(2*sin(x)*cos(x)) \\ +\Maple & expand(sin(2*x)) & combine(2*sin(x)*cos(x)) \\ +\Mathematica & TrigExpand[Sin[2*x]] & TrigReduce[2*Sin[x]*Cos[x]] \\ +\MuPAD & expand(sin(2*x)) & combine(2*sin(x)*cos(x), sincos) + \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & load\_\,package(assist)\$ \\ + & trigexpand(sin(2*x)) & trigreduce(2*sin(x)*cos(x)) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Gr\"obner basis} \\ +\hline +\Axiom & groebner([p1, p2, ...]) \\ +\Derive & \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & grobner([p1, p2, ...]) \\ +\Magnus & \\ +\Maxima & grobner([p1, p2, ...]) \\ +\Maple & Groebner[gbasis]([p1, p2, ...], plex(x1, x2, ...)) \\ +\Mathematica & GroebnerBasis[\{p1, p2, ...\}, \{x1, x2, ...\}] \\ +\MuPAD & groebner::gbasis([p1, p2, ...]) \\ +\Octave & \\ +\Pari & \\ +\Reduce & load\_\,package(groebner)\$ \q groebner(\{p1, p2, ...\}) \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Factorization of $e$ over $i = \sqrt{-1}$} \\ +\hline +\Axiom & factor(e, [rootOf(i**2 + 1)]) \\ +\Derive & FACTOR(e, Complex) \\ +\DoCon & \\ +\GAP & Factors(GaussianIntegers,e)\\ +\Gmp & \\ +\Macsyma & gfactor(e); \OR\ factor(e, i\^{}2 + 1); \\ +\Magnus & \\ +\Maxima & gfactor(e); \OR\ factor(e, i\^{}2 + 1); \\ +\Maple & factor(e, I); \\ +\Mathematica & Factor[e, Extension -> I] \\ +\MuPAD & QI:= Dom::AlgebraicExtension(Dom::Rational, i\^{}2 + 1); \\ + & QI::name:= "QI": \q Factor(poly(e, QI)); \\ +\Octave & \\ +\Pari & \\ +\Reduce & on complex, factor; \q e; \q off complex, factor; \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Real part} & \h{Convert a complex expr.\ to rectangular form} \\ +\hline +\Axiom & real(f(z)) & complexForm(f(z)) \\ +\Derive & RE(f(z)) & f(z) \\ +\DoCon & & \\ +\GAP & (f(z)+GaloisCyc(f(z),-1))/2&\\ +\Gmp & & \\ +\Macsyma & realpart(f(z)) & rectform(f(z)) \\ +\Magnus & & \\ +\Maxima & realpart(f(z)) & rectform(f(z)) \\ +\Maple & Re(f(z)) & evalc(f(z)) \\ +\Mathematica & Re[f[z]] & ComplexExpand[f[z]] \\ +\MuPAD & Re(f(z)) & rectform(f(z)) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & repart(f(z)) & repart(f(z)) + i*impart(f(z)) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{Matrix addition} & \h{Matrix multiplication} & \h{Matrix transpose} \\ +\hline +\Axiom & A + B & A * B & transpose(A) \\ +\Derive & A + B & A . B & A\`{} \\ +\DoCon & & & \\ +\GAP & A + B & A * B & TransposedMat(A)\\ +\Gmp & & & \\ +\Macsyma & A + B & A . B & transpose(A) \\ +\Magnus & & & \\ +\Maxima & A + B & A . B & transpose(A) \\ +\Maple & evalm(A + B) & evalm(A \&* B) & linalg[transpose](A) \\ +\Mathematica & A + B & A . B & Transpose[A] \\ +\MuPAD & A + B & A * B & transpose(A) \\ +\Octave & & & \\ +\Pari & & & \\ +\Reduce & A + B & A * B & tp(A) \\ +\Scilab & & & \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Solve the matrix equation $A x = b$} \\ +\hline +\Axiom & solve(A, transpose(b)) . 1 . particular :: Matrix \_\_\_ \\ +\Derive & \\ +\DoCon & \\ +\GAP & SolutionMat(TransposedMat(A),b)\\ +\Gmp & \\ +\Macsyma & xx: genvector('x, mat\_nrows(b))\$ \\ + & x: part(matlinsolve(A . xx = b, xx), 1, 2) \\ +\Magnus & \\ +\Maxima & xx: genvector('x, mat\_nrows(b))\$ \\ + & x: part(matlinsolve(A . xx = b, xx), 1, 2) \\ +\Maple & x:= linalg[linsolve](A, b) \\ +\Mathematica & x = LinearSolve[A, b] \\ +\MuPAD & \\ +\Octave & \\ +\Pari & \\ +\Reduce & \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Sum: $\sum_{i = 1}^n f(i)$} & \h{Product: $\prod_{i = 1}^n f(i)$} \\ +\hline +\Axiom & sum(f(i), i = 1..n) & product(f(i), i = 1..n) \\ +\Derive & SUM(f(i), i, 1, n) & PRODUCT(f(i), i, 1, n) \\ +\DoCon & & \\ +\GAP & Sum([1..n],f) & Product([1..n],f)\\ +\Gmp & & \\ +\Macsyma & closedform( & closedform( \\ + & \q sum(f(i), i, 1, n)) & \q product(f(i), i, 1, n)) \\ +\Magnus & & \\ +\Maxima & closedform( & closedform( \\ + & \q sum(f(i), i, 1, n)) & \q product(f(i), i, 1, n)) \\ +\Maple & sum(f(i), i = 1..n) & product(f(i), i = 1..n) \\ +\Mathematica & Sum[f[i], \{i, 1, n\}] & Product[f[i], \{i, 1, n\}] \\ +\MuPAD & sum(f(i), i = 1..n) & product(f(i), i = 1..n) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & sum(f(i), i, 1, n) & prod(f(i), i, 1, n) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Limit: $\lim_{x \rightarrow 0-} f(x)$} & \h{Taylor/Laurent/etc.\ series} \\ +\hline +\Axiom & limit(f(x), x = 0, "left") & series(f(x), x = 0, 3) \\ +\Derive & LIM(f(x), x, 0, -1) & TAYLOR(f(x), x, 0, 3) \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & limit(f(x), x, 0, minus) & taylor(f(x), x, 0, 3) \\ +\Magnus & & \\ +\Maxima & limit(f(x), x, 0, minus) & taylor(f(x), x, 0, 3) \\ +\Maple & limit(f(x), x = 0, left) & series(f(x), x = 0, 4) \\ +\Mathematica & Limit[f[x], x->0, Direction->1] & Series[f[x],\{x, 0, 3\}] \\ +\MuPAD & limit(f(x), x = 0, Left) & series(f(x), x = 0, 4) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & limit!-(f(x), x, 0) & taylor(f(x), x, 0, 3) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Differentiate: $\frac{d^3 f(x, y)}{dx \, dy^2}$} & + \h{Integrate: $\int_0^1 f(x) \, dx$} \\ +\hline +\Axiom & D(f(x, y), [x, y], [1, 2]) & integrate(f(x), x = 0..1) \\ +\Derive & DIF(DIF(f(x, y), x), y, 2) & INT(f(x), x, 0, 1) \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & diff(f(x, y), x, 1, y, 2) & integrate(f(x), x, 0, 1) \\ +\Magnus & & \\ +\Maxima & diff(f(x, y), x, 1, y, 2) & integrate(f(x), x, 0, 1) \\ +\Maple & diff(f(x, y), x, y\$2) & int(f(x), x = 0..1) \\ +\Mathematica & D[f[x, y], x, \{y, 2\}] & Integrate[f[x], \{x, 0, 1\}] \\ +\MuPAD & diff(f(x, y), x, y\$2) & int(f(x), x = 0..1) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & df(f(x, y), x, y, 2) & int(f(x), x, 0, 1) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Laplace transform} & \h{Inverse Laplace transform} \\ +\hline +\Axiom & laplace(e, t, s) & inverseLaplace(e, s, t) \\ +\Derive & LAPLACE(e, t, s) & \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & laplace(e, t, s) & ilt(e, s, t) \\ +\Magnus & & \\ +\Maxima & laplace(e, t, s) & ilt(e, s, t) \\ +\Maple & inttrans[laplace](e,t,s) & inttrans[invlaplace](e,s,t) \\ +\Mathematica & \m{2}{\q @<< Calculus\`{}LaplaceTransform\`{}} \\ + & LaplaceTransform[e, t, s] & {\st InverseLaplaceTransform[e,s,t]} + \\ +\MuPAD & transform::laplace(e,t,s) & transform::ilaplace(e, s, t) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & \m{2}{\q load\_\,package(laplace)\$ \q load\_\,package(defint)\$} + \\ + & laplace(e, t, s) & invlap(e, t, s) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Solve an ODE (with the initial condition $y'(0) = 1$)} \\ +\hline +\Axiom & solve(eqn, y, x) \\ +\Derive & APPLY\_\,IC(RHS(ODE(eqn, x, y, y\_)), [x, 0], [y, 1]) \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & ode\_ibc(ode(eqn, y(x), x), x = 0, diff(y(x), x) = 1) \\ +\Magnus & \\ +\Maxima & ode\_ibc(ode(eqn, y(x), x), x = 0, diff(y(x), x) = 1) \\ +\Maple & dsolve(\{eqn, D(y)(0) = 1\}, y(x)) \\ +\Mathematica & DSolve[\{eqn, y'[0] == 1\}, y[x], x] \\ +\MuPAD & solve(ode(\{eqn, D(y)(0) = 1\}, y(x))) \\ +\Octave & \\ +\Pari & \\ +\Reduce & odesolve(eqn, y(x), x) \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Define the differential operator $L = D_x + I$ and apply it to $\sin x$} \\ +\hline +\Axiom & DD : LODO(Expression Integer, e +-> D(e, x)) := D(); \\ + & L:= DD + 1; \q L(sin(x)) \\ +\Derive & \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & load(opalg)\$ \q L: (diffop(x) - 1)\$ \q L(sin(x)); \\ +\Magnus & \\ +\Maxima & load(opalg)\$ \q L: (diffop(x) - 1)\$ \q L(sin(x)); \\ +\Maple & id:= x -> x: \q L:= (D + id): \q L(sin)(x); \\ +\Mathematica & L = D[\#, x]\& + Identity; \q Through[L[Sin[x]]] \\ +\MuPAD & L:= (D + id): \q L(sin)(x); \\ +\Octave & \\ +\Pari & \\ +\Reduce & \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{2D plot of two separate curves overlayed} \\ +\hline +\Axiom & draw(x, x = 0..1); \q draw(acsch(x), x = 0..1); \\ +\Derive & [Plot Overlay] \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & plot(x, x, 0, 1)\$ \q plot(acsch(x), x, 0, 1)\$ \\ +\Magnus & \\ +\Maxima & plot(x, x, 0, 1)\$ \q plot(acsch(x), x, 0, 1)\$ \\ +\Maple & plot(\{x, arccsch(x)\}, x = 0..1): \\ +\Mathematica & Plot[\{x, ArcCsch[x]\}, \{x, 0, 1\}]; \\ +\MuPAD & plotfunc(x, acsch(x), x = 0..1): \\ +\Octave & \\ +\Pari & \\ +\Reduce & load\_\,package(gnuplot)\$ \q plot(y = x, x = (0 .. 1))\$ \\ + & plot(y = acsch(x), x = (0 .. 1))\$ \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Simple 3D plotting} \\ +\hline +\Axiom & draw(abs(x*y), x = 0..1, y = 0..1); \\ +\Derive & [Plot Overlay] \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & plot3d(abs(x*y), x, 0, 1, y, 0, 1)\$ \\ +\Magnus & \\ +\Maxima & plot3d(abs(x*y), x, 0, 1, y, 0, 1)\$ \\ +\Maple & plot3d(abs(x*y), x = 0..1, y = 0..1): \\ +\Mathematica & Plot3D[Abs[x*y], \{x, 0, 1\}, \{y, 0, 1\}]; \\ +\MuPAD & plotfunc(abs(x*y), x = 0..1, y = 0..1): \\ +\Octave & \\ +\Pari & \\ +\Reduce & load\_\,package(gnuplot)\$ \\ + & plot(z = abs(x*y), x = (0 .. 1), y = (0 .. 1))\$ \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +%\begin{tabular}{l|l} +%& \h{} \\ +%\hline +%\Axiom & \\ +%\Derive & \\ +%\DoCon & \\ +%\GAP & \\ +%\Gmp & \\ +%\Macsyma & \\ +%\Magnus & \\ +%\Maxima & \\ +%\Maple & \\ +%\Mathematica & \\ +%\MuPAD & \\ +%\Octave & \\ +%\Pari & \\ +%\Reduce & \\ +%\Scilab & \\ +%\Sumit & \\ +%\Yacas & \\ +%\end{tabular} \\[10pt] + +\end{tt} +\endgroup +\end{document} diff --git a/changelog b/changelog index 9f7cc56..bcaa591 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,10 @@ +20140731 tpd src/axiom-website/patches.html 20140731.01.tpd.patch +20140731 tpd books/Makefile.pamphlet +20140731 tpd src/doc/endpaper.pamphlet -> books/endpaper.pamphlet +20140731 tpd src/doc/refcard.pamphlet -> books/refcard.pamphlet +20140731 tpd src/doc/rosetta.pamphlet -> books/rosetta.pamphlet +20140731 tpd src/Makefile.pamphlet +20140731 tpd src/doc/Makefile.pamphlet 20140729 tpd src/axiom-website/patches.html 20140729.05.tpd.patch 20140729 tpd src/lib/xspadfill.c 'maxDither' is set but never used, removed 20140729 tpd src/axiom-website/patches.html 20140729.04.tpd.patch diff --git a/patch b/patch index 7e6c93e..661cb77 100644 --- a/patch +++ b/patch @@ -1 +1,3 @@ -src/lib/xspadfill.c 'maxDither' is set but never used, removed +src/doc/Makefile removed + +The file manipulated by Makefile are now handled by books/Makefile diff --git a/src/Makefile.pamphlet b/src/Makefile.pamphlet index e4093d3..c99e0ad 100644 --- a/src/Makefile.pamphlet +++ b/src/Makefile.pamphlet @@ -148,33 +148,6 @@ shareclean: ${SRC}/share/Makefile @rm -f ${SRC}/share/Makefile.dvi \end{chunk} -\subsection{The booklet directory} -The {\bf booklet} directory contains pamphlet files that document -Axiom at a "higher level" than any particular pamphlet file. Booklets -can be stand-alone descriptions (e.g. the Rosetta.pamphlet), -top-down slices thru the system (e.g. the Integration.pamphlet), -or horizontal slices thru the system (e.g. the Matrix.pamphlet). -\begin{chunk}{bookletsdir} -bookletsdir: ${SRC}/booklets/Makefile - @echo 13 making ${SRC}/booklets - @(cd booklets ; ${ENV} ${MAKE} ) - -${SRC}/booklets/Makefile: ${SRC}/booklets/Makefile.pamphlet - @echo 14 making ${SRC}/booklets/Makefile from \ - ${SRC}/booklets/Makefile.pamphlet - @( cd booklets ; ${DOCUMENT} ${NOISE} Makefile ) - -bookletsdocument: ${SRC}/booklets/Makefile - @echo 15 documenting ${SRC}/booklets - @mkdir -p ${INT}/doc/src/booklets - @( cd booklets ; ${ENV} ${MAKE} ) - -bookletsclean: ${SRC}/booklets/Makefile - @echo 16 cleaning ${SRC}/booklets - @( cd booklets ; ${ENV} ${MAKE} clean ) - - -\end{chunk} \subsection{The lib directory} The {\bf lib} directory is used to build {\bf libspad.a} which contains C code for extending the underlying Common Lisp systems. @@ -385,7 +358,7 @@ This takes all of the Axiom volumes and creates .pdf copies in the final doc directory. \begin{chunk}{docdir} -docdir: ${SRC}/doc/Makefile +docdir: @echo 41 making ${SRC}/doc @mkdir -p ${INT}/doc @mkdir -p ${MNT}/${SYS}/bin @@ -405,25 +378,6 @@ docdir: ${SRC}/doc/Makefile ${BOOKS}/tanglec ${SPD}/books/bookvol11.pamphlet >Makefile11 ; \ ${ENV} ${MAKE} -f Makefile11 ; \ rm -f Makefile11 ) - @(cd doc ; ${ENV} ${MAKE} ) - -${SRC}/doc/Makefile: ${SRC}/doc/Makefile.pamphlet - @echo 42 making ${SRC}/doc/Makefile from ${SRC}/doc/Makefile.pamphlet - @( cd doc ; \ - ${EXTRACT} Makefile ; \ - cp Makefile.pdf ${MNT}/${SYS}/doc/src/doc.Makefile.pdf ) - -docdocument: ${SRC}/doc/Makefile - @echo 43 documenting ${SRC}/doc - @mkdir -p ${INT}/doc/src/doc - @( cd doc ; ${ENV} ${MAKE} document ) - -docclean: ${SRC}/doc/Makefile - @echo 44 cleaning ${SRC}/doc - @( cd doc ; ${ENV} ${MAKE} clean ) - @rm -rf ${OBJ}/${SYS}/doc - @rm -f ${SRC}/doc/Makefile - @rm -f ${SRC}/doc/Makefile.dvi \end{chunk} \subsection{Volume 7:Axiom Hyperdoc book} @@ -588,7 +542,6 @@ setup: ${SETUP} \getchunk{smandir} \getchunk{sharedir} \getchunk{docdir} -\getchunk{bookletsdir} \getchunk{libdir} \getchunk{bootdir} \getchunk{interpdir} diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 80fc353..2772f8f 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -4586,6 +4586,8 @@ src/lib/pixmap.c 'status' is set but never used, removed
src/lib/sockio-c.c 'val is set but never used, removed
20140729.05.tpd.patch src/lib/xspadfill.c 'maxDither' is set but never used, removed
+20140731.01.tpd.patch +src/doc/Makefile removed
diff --git a/src/doc/Makefile.pamphlet b/src/doc/Makefile.pamphlet deleted file mode 100644 index 8487383..0000000 --- a/src/doc/Makefile.pamphlet +++ /dev/null @@ -1,116 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/doc Makefile} -\author{Timothy Daly} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{The Reference Card} -This is the one-page, 2 sided reference card -\begin{chunk}{refcard} -${DVI}/refcard.pdf: ${IN}/refcard.pamphlet - @echo sd02 making ${DVI}/refcard.dvi from ${IN}/refcard.pamphlet - @(cd ${MID} ; \ - cp ${IN}/refcard.pamphlet ${MID} ;\ - latex refcard.pamphlet ; \ - dvipdf refcard.dvi ; \ - cp refcard.pdf ${DVI} ; \ - rm refcard.log ; \ - rm refcard.aux ) - -\end{chunk} -\section{The End Papers} -This document reproduces the diagrams on the inside covers of the -original Jenks Axiom book but adds hyperlinks. -\begin{chunk}{Endpapers} -${DVI}/endpaper.pdf: ${IN}/endpaper.pamphlet - @echo sd03 making ${DVI}/endpaper.pdf from ${IN}/endpaper.pamphlet - @(cd ${MID} ; \ - cp ${IN}/endpaper.pamphlet ${MID} ; \ - mkdir -p ${MID}/ps ; \ - cp ${IN}/ps/*ps* ${MID}/ps ; \ - latex endpaper.pamphlet ; \ - latex endpaper.pamphlet ; \ - dvipdf endpaper.dvi ; \ - cp endpaper.pdf ${DVI} ; \ - rm endpaper.* ; \ - mkdir -p ${DVI}/ps ; \ - cp ${IN}/ps/*ps* ${DVI}/ps ) - -\end{chunk} -\section{rosetta} -The rosetta document is an effort to give a command-by-command -way of moving between various computer algebra systems. It was -originally created for the "rosetta" series of CDs. These rosetta -CDs contained multiple, free computer algebra systems. -\begin{chunk}{rosetta} -${DVI}/rosetta.pdf: ${IN}/rosetta.pamphlet - @echo sd04 building ${DVI}/rosetta.dvi from ${IN}/rosetta.pamphlet - @(cd ${MID} ; \ - cp ${IN}/rosetta.pamphlet ${MID} ; \ - latex rosetta.pamphlet ; \ - dvipdf rosetta.dvi ; \ - cp rosetta.pdf ${DVI} ) - -\end{chunk} -\section{The booklet command} -\begin{chunk}{booklet} -${OUT}/booklet: ${MID}/booklet.o - @echo sd05 making ${OUT}/booklet from ${MID}/booklet.o - @(cd ${OUT} ; \ - ${CC} ${MID}/booklet.o -o booklet ) - -${MID}/booklet.o: ${INT}/booklet.c - @echo sd06 making ${MID}/booklet.o from ${INT}/booklet.c - @(cd ${MID} ; \ - ${CC} -c ${INT}/booklet.c ) - -${INT}/booklet.c: ${IN}/booklet.c.pamphlet - @echo sd07 making ${INT}/booklet.c from ${IN}/booklet.c.pamphlet - @(cd ${INT} ; \ - ${BOOKS}/tanglec ${IN}/booklet.c.pamphlet >booklet.c ) - -\end{chunk} -\section{The Makefile} -We need to document the commands. -\begin{chunk}{*} -IN=${SRC}/doc -MID=${INT}/doc -OUT=${MNT}/${SYS}/bin -STY=${OUT}/tex -DVI=${MNT}/${SYS}/doc -DOC=${INT}/doc - -FILES= ${DVI}/refcard.pdf ${DVI}/endpaper.pdf ${DVI}/rosetta.pdf - -CMDS=${OUT}/booklet - -all: announce ${FILES} ${CMDS} - @echo sd08 finished ${IN} - -announce: - @ echo ====================================== - @ echo src/doc BUILDING DOC FILES - @ echo ====================================== - -\getchunk{booklet} -\getchunk{refcard} -\getchunk{Endpapers} -\getchunk{rosetta} - -document: - @echo sd09 documenting ${SRC}/doc - -clean: - @echo sd10 cleaning ${SRC}/doc -\end{chunk} -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/doc/endpaper.pamphlet b/src/doc/endpaper.pamphlet deleted file mode 100644 index 20cb1b0..0000000 --- a/src/doc/endpaper.pamphlet +++ /dev/null @@ -1,617 +0,0 @@ -\documentclass{book} -%\usepackage{axiom} -% -% 2006-04-08. The original (correct) usepackage line below -%\usepackage[dvips,final,colorlinks=true,pdfstartview=FitH]{hyperref} -% has been changed to the following one inorder to ease the -% compilation of axiom on distributions (like Debian sarge) that have -% an older version of hyperref TeX package (where the `final' option -% is missing). It should be restored once the latest version (>= -% 2003/11/30 v6.74m) of hyperref are more widespread. -\usepackage[dvips,colorlinks=true,pdfstartview=FitH]{hyperref} -\usepackage{pstricks} -\usepackage{pst-node} -\begin{document} -\title{endpapers} -\author{Timothy Daly} -\maketitle -\tableofcontents -\vfill -\eject -\section{Basic Algebra Hierarchy Diagram} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 1 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -. -{\hbox{\hskip 4.0cm}} -% SETCAT SetCategory -{\psframebox{{\rnode{setcat}{\href{catdef.spad.dvi}{setcat}}}}}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 2 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\hbox{\hskip 1.0cm}} -{\vbox{\vskip 1.0cm}} -% ABELSG AbelianSemiGroup -{\psframebox{{\rnode{abelsg}{\href{catdef.spad.dvi}{abelsg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{setcat}{abelsg} -{\hbox{\hskip 0.1cm}} -% SGROUP SemiGroup -{\psframebox{{\rnode{sgroup}{\href{catdef.spad.dvi}{sgroup}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{setcat}{sgroup} -{\hbox{\hskip 0.2cm}} -% ORDSET OrderedSet -{\psframebox{{\rnode{ordset}{\href{catdef.spad.dvi}{ordset}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{setcat}{ordset} -{\hbox{\hskip 4.0cm}} -% FINITE Finite -{\psframebox{{\rnode{finite}{\href{catdef.spad.dvi}{finite}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{setcat}{finite}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 3 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 1.0cm}} -% ABELMON AbelianMonoid -{\psframebox{{\rnode{abelmon}{\href{catdef.spad.dvi}{abelmon}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{abelsg}{abelmon} -% MONOID Monoid -{\psframebox{{\rnode{monoid}{\href{catdef.spad.dvi}{monoid}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{sgroup}{monoid} -{\hbox{\hskip 1.5cm}} -% ORDFIN OrderedFinite -{\psframebox{{\rnode{ordfin}{\href{catdef.spad.dvi}{ordfin}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ordset}{ordfin} -\ncLine[nodesep=3pt,linestyle=solid]{finite}{ordfin}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 4 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 1.0cm}} -% CABMON CancellationAbelianMonoid -{\psframebox{{\rnode{cabmon}{\href{catdef.spad.dvi}{cabmon}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{abelmon}{cabmon} -{\hbox{\hskip 2.0cm}} -% OASGP OrderedAbelianSemiGroup -{\psframebox{{\rnode{oasgp}{\href{catdef.spad.dvi}{oasgp}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{abelmon}{oasgp} -\ncLine[nodesep=3pt,linestyle=solid]{ordset}{oasgp} -{\hbox{\hskip 0.2cm}} -% GROUP Group -{\hbox{\hskip 0.1cm}} -{\psframebox{{\rnode{group}{\href{catdef.spad.dvi}{group}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{monoid}{group} -{\hbox{\hskip 0.55cm}} -% ORDMON OrderedMonoid -{\psframebox{{\rnode{ordmon}{\href{catdef.spad.dvi}{ordmon}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ordset}{ordmon} -\ncLine[nodesep=3pt,linestyle=solid]{monoid}{ordmon}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 5 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.6cm}} -{\hbox{\hskip 3.6cm}} -% OAMON OrderedAbelianMonoid -{\psframebox{{\rnode{oamon}{\href{catdef.spad.dvi}{oamon}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{oasgp}{oamon} -\ncLine[nodesep=3pt,linestyle=solid]{abelmon}{oamon}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 6 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.5cm}} -% OCAMON OrderedCancellationAbelianMonoid -{\psframebox{{\rnode{ocamon}{\href{catdef.spad.dvi}{ocamon}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{oamon}{ocamon} -\ncLine[nodesep=3pt,linestyle=solid]{cabmon}{ocamon} -{\hbox{\hskip 2.2cm}} -% ABELGRP AbelianGroup -{\psframebox{{\rnode{abelgrp}{\href{catdef.spad.dvi}{abelgrp}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{cabmon}{abelgrp}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 7 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.875cm}} -% OAMONS OrderedAbelianMonoidSup -{\psframebox{{\rnode{oamons}{\href{catdef.spad.dvi}{oamons}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ocamon}{oamons} -{\hbox{\hskip 0.9cm}} -% RNG Rng -{\psframebox{{\rnode{rng}{\href{catdef.spad.dvi}{rng}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{rng} -\ncLine[nodesep=3pt,linestyle=solid]{sgroup}{rng} -{\hbox{\hskip 0.1cm}} -% LMODULE LeftModule -{\psframebox{{\rnode{lmodule}{\href{catdef.spad.dvi}{lmodule}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{lmodule} -% RMODULE RightModule -{\psframebox{{\rnode{rmodule}{\href{catdef.spad.dvi}{rmodule}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{rmodule} -{\hbox{\hskip 1.7cm}} -% OAGROUP OrderedAbelianGroup -{\psframebox{{\rnode{oagroup}{\href{catdef.spad.dvi}{oagroup}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{oagroup} -\ncLine[nodesep=3pt,linestyle=solid]{ocamon}{oagroup}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 8 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 1.0cm}} -{\hbox{\hskip 0.7cm}} -% RING Ring -{\psframebox{{\rnode{ring}{\href{catdef.spad.dvi}{ring}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{lmodule}{ring} -\ncLine[nodesep=3pt,linestyle=solid]{rng}{ring} -\ncLine[nodesep=3pt,linestyle=solid]{monoid}{ring} -{\hbox{\hskip 4.2cm}} -% BMODULE BiModule -{\psframebox{{\rnode{bmodule}{\href{catdef.spad.dvi}{bmodule}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{lmodule}{bmodule} -\ncLine[nodesep=3pt,linestyle=solid]{rmodule}{bmodule}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 9 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.2cm}} -{\hbox{\hskip 4.5cm}} -% LINEXP LinearlyExplicitRingOver -{\psframebox{{\rnode{linexp}{\href{catdef.spad.dvi}{linexp}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ring}{linexp} -{\hbox{\hskip 1.3cm}} -% MODULE Module -{\psframebox{{\rnode{module}{\href{catdef.spad.dvi}{module}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{bmodule}{module}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 10 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\hbox{\hskip 5.0cm}} -% FLINEXP FullyLinearlyExplicitRingOver -{\psframebox{{\rnode{flinexp}{\href{catdef.spad.dvi}{flinexp}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{linexp}{flinexp}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 11 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\hbox{\hskip 7.7cm}} -% VSPACE VectorSpace -{\psframebox{{\rnode{vspace}{\href{catdef.spad.dvi}{vspace}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{module}{vspace}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 12 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 1.2cm}} -{\hbox{\hskip 0.7cm}} -% DIFRING DifferentialRing -{\psframebox{{\rnode{difring}{\href{catdef.spad.dvi}{difring}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ring}{difring} -{\hbox{\hskip 0.4cm}} -% CHARNZ CharacteristicNonZero -{\psframebox{{\rnode{charnz}{\href{catdef.spad.dvi}{charnz}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ring}{charnz}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 13 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% PDRING PartialDifferentialRing -{\psframebox{{\rnode{pdring}{\href{catdef.spad.dvi}{pdring}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ring}{pdring} -{\hbox{\hskip 0.6cm}} -% CHARZ CharacteristicZero -{\psframebox{{\rnode{charz}{\href{catdef.spad.dvi}{charz}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ring}{charz} -{\hbox{\hskip 1.0cm}} -% ALGEBRA Algebra -{\psframebox{{\rnode{algebra}{\href{catdef.spad.dvi}{algebra}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ring}{algebra} -\ncLine[nodesep=3pt,linestyle=solid]{module}{algebra} -\ncLine[nodesep=3pt,linestyle=solid]{charnz}{algebra} -% ENTIRER EntireRing -{\psframebox{{\rnode{entirer}{\href{catdef.spad.dvi}{entirer}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{bmodule}{entirer} -\ncLine[nodesep=3pt,linestyle=solid]{ring}{entirer} -% COMRING CommutativeRing -{\psframebox{{\rnode{comring}{\href{catdef.spad.dvi}{comring}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{bmodule}{comring} -\ncLine[nodesep=3pt,linestyle=solid]{ring}{comring} -% ORDRING OrderedRing -{\psframebox{{\rnode{ordring}{\href{catdef.spad.dvi}{ordring}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ring}{ordring} -\ncLine[nodesep=3pt,linestyle=solid]{oagroup}{ordring} -\ncLine[nodesep=3pt,linestyle=solid]{ordmon}{ordring}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 14 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 1.8cm}} -{\hbox{\hskip 2.1cm}} -% DIFEXT DifferentialExtension -{\psframebox{{\rnode{difext}{\href{catdef.spad.dvi}{difext}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{pdring}{difext} -\ncLine[nodesep=3pt,linestyle=solid]{difring}{difext} -\ncLine[nodesep=3pt,linestyle=solid]{charz}{difext} -\ncLine[nodesep=3pt,linestyle=solid]{charnz}{difext} -{\hbox{\hskip 2.0cm}} -% DIVRING DivisionRing -{\psframebox{{\rnode{divring}{\href{catdef.spad.dvi}{divring}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{algebra}{divring} -\ncLine[nodesep=3pt,linestyle=solid]{entirer}{divring} -% INTDOM IntegralDomain -{\psframebox{{\rnode{intdom}{\href{catdef.spad.dvi}{intdom}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{algebra}{intdom} -\ncLine[nodesep=3pt,linestyle=solid]{comring}{intdom} -\ncLine[nodesep=3pt,linestyle=solid]{entirer}{intdom}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 15 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.2cm}} -{\hbox{\hskip 7.3cm}} -% GCDDOM GcdDomain -{\psframebox{{\rnode{gcddom}{\href{catdef.spad.dvi}{gcddom}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{intdom}{gcddom}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 16 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.2cm}} -{\hbox{\hskip 5.4cm}} -% UFD UniqueFactorizationDomain -{\psframebox{{\rnode{ufd}{\href{catdef.spad.dvi}{ufd}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{gcddom}{ufd} -{\hbox{\hskip 2.5cm}} -% PID PrincipalIdealDomain -{\psframebox{{\rnode{pid}{\href{catdef.spad.dvi}{pid}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{gcddom}{pid}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 17 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.2cm}} -{\hbox{\hskip 5.0cm}} -% PFECAT PolynomialFactorizationExplicit -{\psframebox{{\rnode{pfecat}{\href{catdef.spad.dvi}{pfecat}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ufd}{pfecat} -{\hbox{\hskip 2.0cm}} -% EUCDOM EuclideanDomain -{\psframebox{{\rnode{eucdom}{\href{catdef.spad.dvi}{eucdom}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{pid}{eucdom}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 18 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.2cm}} -{\hbox{\hskip 7.0cm}} -% FIELD Field -{\psframebox{{\rnode{field}{\href{catdef.spad.dvi}{field}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ufd}{field} -\ncLine[nodesep=3pt,linestyle=solid]{eucdom}{field} -\ncLine[nodesep=3pt,linestyle=solid]{divring}{field}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 19 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\hbox{\hskip 5.0cm}} -% FPC FieldOfPrimeCharacteristic -{\psframebox{{\rnode{fpc}{\href{ffcat.spad.dvi}{fpc}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{field}{fpc} -\ncLine[nodesep=3pt,linestyle=solid]{charnz}{fpc}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 20 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\hbox{\hskip 9.7cm}} -% FFIELDC FiniteFieldCategory -{\psframebox{{\rnode{ffieldc}{\href{ffcat.spad.dvi}{ffieldc}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{fpc}{ffieldc} -\ncLine[nodesep=3pt,linestyle=solid]{finite}{ffieldc} -\vfill -\eject -\section{Basic Algebra Hierarchy} -{\bf SETCAT SetCategory}\\ -{\bf ABELSG AbelianSemiGroup}\\ -{\bf SGROUP SemiGroup}\\ -{\bf ORDSET OrderedSet}\\ -{\bf FINITE Finite}\\ -{\bf ABELMON AbelianMonoid}\\ -{\bf MONOID Monoid}\\ -{\bf ORDFIN OrderedFinite}\\ -{\bf CABMON CancellationAbelianMonoid}\\ -{\bf OASGP OrderedAbelianSemiGroup}\\ -{\bf GROUP Group}\\ -{\bf ORDMON OrderedMonoid}\\ -{\bf OAMON OrderedAbelianMonoid}\\ -{\bf OCAMON OrderedCancellationAbelianMonoid}\\ -{\bf ABELGRP AbelianGroup}\\ -{\bf OAMONS OrderedAbelianMonoidSup}\\ -{\bf RNG Rng}\\ -{\bf LMODULE LeftModule}\\ -{\bf RMODULE RightModule}\\ -{\bf OAGROUP OrderedAbelianGroup}\\ -{\bf RING Ring}\\ -{\bf BMODULE BiModule}\\ -{\bf LINEXP LinearlyExplicitRingOver}\\ -{\bf MODULE Module}\\ -{\bf FLINEXP FullyLinearlyExplicitRingOver}\\ -{\bf VSPACE VectorSpace}\\ -{\bf DIFRING DifferentialRing}\\ -{\bf CHARNZ CharacteristicNonZero}\\ -{\bf PDRING PartialDifferentialRing}\\ -{\bf CHARZ CharacteristicZero}\\ -{\bf ALGEBRA Algebra}\\ -{\bf ENTIRER EntireRing}\\ -{\bf COMRING CommutativeRing}\\ -{\bf ORDRING OrderedRing}\\ -{\bf DIFEXT DifferentialExtension}\\ -{\bf DIVRING DivisionRing}\\ -{\bf INTDOM IntegralDomain}\\ -{\bf GCDDOM GcdDomain}\\ -{\bf UFD UniqueFactorizationDomain}\\ -{\bf PID PrincipalIdealDomain}\\ -{\bf PFECAT PolynomialFactorizationExplicit}\\ -{\bf EUCDOM EuclideanDomain}\\ -{\bf FIELD Field}\\ -{\bf FPC FieldOfPrimeCharacteristic}\\ -{\bf FFIELDC FiniteFieldCategory} -\vfill -\eject -\section{Data Structure Hierarchy Diagram} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 1 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -. -{\hbox{\hskip 2.8cm}} -% SETCAT SetCategory -{\psframebox{{\rnode{setcat}{\href{catdef.spad.dvi}{setcat}}}}} -{\hbox{\hskip 1.0cm}} -% AGG Aggregate -{\psframebox{{\rnode{agg}{\href{catdef.spad.dvi}{agg}}}}} -{\hbox{\hskip 0.5cm}} -% ELTAGG EltableAggregate -{\psframebox{{\rnode{eltagg}{\href{catdef.spad.dvi}{eltagg}}}}}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 2 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\hbox{\hskip 4.2cm}} -% HOAGG HomogeneousAggregate -{\psframebox{{\rnode{hoagg}{\href{catdef.spad.dvi}{hoagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{setcat}{hoagg} -\ncLine[nodesep=3pt,linestyle=solid]{agg}{hoagg}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 3 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 1.0cm}} -% ARR2CAT TwoDimensionalArrayCategory -{\psframebox{{\rnode{arr2cat}{\href{array2.spad.dvi}{arr2cat}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{arr2cat}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 4 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.3cm}} -% MATCAT MatrixCategory -{\psframebox{{\rnode{matcat}{\href{matcat.spad.dvi}{matcat}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{arr2cat}{matcat} -% BGAGG BagAggregate -{\psframebox{{\rnode{bgagg}{\href{aggcat.spad.dvi}{bgagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{bgagg}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 5 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.8cm}} -% SKAGG StackAggregate -{\psframebox{{\rnode{skagg}{\href{aggcat.spad.dvi}{skagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{skagg} -{\hbox{\hskip 0.75cm}} -% QUAGG QueueAggregate -{\psframebox{{\rnode{quagg}{\href{aggcat.spad.dvi}{quagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{quagg}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 6 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.5cm}} -% DQAGG DequeueAggregate -{\psframebox{{\rnode{dqagg}{\href{aggcat.spad.dvi}{dqagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{skagg}{dqagg} -\ncLine[nodesep=3pt,linestyle=solid]{quagg}{dqagg}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 7 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.5cm}} -{\hbox{\hskip 3.4cm}} -% CLAGG Collection -{\psframebox{{\rnode{clagg}{\href{aggcat.spad.dvi}{clagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{clagg}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 8 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 1.2cm}} -% DIOPS DictionaryOperations -{\psframebox{{\rnode{diops}{\href{aggcat.spad.dvi}{diops}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{diops} -\ncLine[nodesep=3pt,linestyle=solid]{clagg}{diops} -% PRQAGG PriorityQueueAggregate -{\psframebox{{\rnode{prqagg}{\href{aggcat.spad.dvi}{prqagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{prqagg} -% FINITE Finite -{\psframebox{{\rnode{finite}{\href{catdef.spad.dvi}{finite}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{setcat}{finite} -{\hbox{\hskip 1.7cm}} -% SETAGG SetAggregate -{\psframebox{{\rnode{setagg}{\href{aggcat.spad.dvi}{setagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{clagg}{setagg} -% RCAGG RecursiveAggregate -{\psframebox{{\rnode{rcagg}{\href{aggcat.spad.dvi}{rcagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{rcagg} -% IXAGG IndexedAggregate -{\psframebox{{\rnode{ixagg}{\href{aggcat.spad.dvi}{ixagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{ixagg} -\ncLine[nodesep=3pt,linestyle=solid]{eltagg}{ixagg}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 9 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.5cm}} -{\hbox{\hskip 6.0cm}} -% DLAGG DoublyLinkedAggregate -{\psframebox{{\rnode{dlagg}{\href{aggcat.spad.dvi}{dlagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{rcagg}{dlagg} -{\hbox{\hskip 1.3cm}} -% DIRPCAT DirectProductCategory -{\psframebox{{\rnode{dirpcat}{\href{vector.spad.dvi}{dirpcat}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ixagg}{dirpcat}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 10 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 3.1cm}} -{\hbox{\hskip 6.3cm}} -% LNAGG LinearAggregate -{\psframebox{{\rnode{lnagg}{\href{aggcat.spad.dvi}{lnagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{clagg}{lnagg} -\ncLine[nodesep=3pt,linestyle=solid]{ixagg}{lnagg} -% URAGG UnaryRecursiveAggregate -{\psframebox{{\rnode{uragg}{\href{aggcat.spad.dvi}{uragg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{rcagg}{uragg} -% BRAGG BinaryRecursiveAggregate -{\psframebox{{\rnode{bragg}{\href{aggcat.spad.dvi}{bragg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{rcagg}{bragg}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 11 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 0.5cm}} -{\hbox{\hskip 9.0cm}} -% BTCAT BinaryTreeCategory -{\psframebox{{\rnode{btcat}{\href{tree.spad.dvi}{btcat}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{bragg}{btcat}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 12 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 1.0cm}} -% DIAGG Dictionary -{\psframebox{{\rnode{diagg}{\href{aggcat.spad.dvi}{diagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{diops}{diagg} -{\hbox{\hskip 3.1cm}} -% MDAGG MultiDictionary -{\psframebox{{\rnode{mdagg}{\href{aggcat.spad.dvi}{mdagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{diops}{mdagg} -% ORDSET OrderedSet -{\psframebox{{\rnode{ordset}{\href{catdef.spad.dvi}{ordset}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{setcat}{ordset} -% ELAGG ExtensibleLinearAggregate -{\psframebox{{\rnode{elagg}{\href{aggcat.spad.dvi}{elagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{lnagg}{elagg} -% STAGG StreamAggregate -{\psframebox{{\rnode{stagg}{\href{aggcat.spad.dvi}{stagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{lnagg}{stagg} -\ncLine[nodesep=3pt,linestyle=solid]{uragg}{stagg} -% FLAGG FiniteLinearAggregate -{\psframebox{{\rnode{flagg}{\href{aggcat.spad.dvi}{flagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{lnagg}{flagg}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 13 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 1.5cm}} -% KDAGG KeyedDictionary -{\psframebox{{\rnode{kdagg}{\href{aggcat.spad.dvi}{kdagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{diagg}{kdagg} -{\hbox{\hskip 1.0cm}} -% FSAGG FiniteSetAggregate -{\psframebox{{\rnode{fsagg}{\href{aggcat.spad.dvi}{fsagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{diagg}{fsagg} -\ncLine[nodesep=3pt,linestyle=solid]{finite}{fsagg} -\ncLine[nodesep=3pt,linestyle=solid]{clagg}{fsagg} -% MSETAGG MultisetAggregate -{\psframebox{{\rnode{msetagg}{\href{aggcat.spad.dvi}{msetagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{mdagg}{msetagg} -\ncLine[nodesep=3pt,linestyle=solid]{clagg}{msetagg} -{\hbox{\hskip 1.4cm}} -% LZSTAGG LazyStreamAggregate -{\psframebox{{\rnode{lzstagg}{\href{stream.spad.dvi}{lzstagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{stagg}{lzstagg} -% LSAGG ListAggregate -{\psframebox{{\rnode{lsagg}{\href{aggcat.spad.dvi}{lsagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{elagg}{lsagg} -\ncLine[nodesep=3pt,linestyle=solid]{stagg}{lsagg} -\ncLine[nodesep=3pt,linestyle=solid]{flagg}{lsagg} -{\hbox{\hskip 0.3cm}} -% A1AGG OneDimensionalArrayAggregate -{\psframebox{{\rnode{a1agg}{\href{aggcat.spad.dvi}{a1agg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{flagg}{a1agg}\\ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% level 14 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -{\vbox{\vskip 1.0cm}} -% TBAGG TableAggregate -{\psframebox{{\rnode{tbagg}{\href{aggcat.spad.dvi}{tbagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{kdagg}{tbagg} -\ncLine[nodesep=3pt,linestyle=solid]{ixagg}{tbagg} -% OMSAGG OrderedMultiSetAggregate -{\psframebox{{\rnode{omsagg}{\href{aggcat.spad.dvi}{omsagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{prqagg}{omsagg} -\ncLine[nodesep=3pt,linestyle=solid]{msetagg}{omsagg} -{\hbox{\hskip 3.1cm}} -% BTAGG BitAggregate -{\psframebox{{\rnode{btagg}{\href{aggcat.spad.dvi}{btagg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{ordset}{btagg} -\ncLine[nodesep=3pt,linestyle=solid]{a1agg}{btagg} -{\hbox{\hskip 1.0cm}} -% SRAGG StringAggregate -{\psframebox{{\rnode{sragg}{\href{aggcat.spad.dvi}{sragg}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{a1agg}{sragg} -% VECTCAT VectorCategory -{\psframebox{{\rnode{vectcat}{\href{vector.spad.dvi}{vectcat}}}}} -\ncLine[nodesep=3pt,linestyle=solid]{a1agg}{vectcat} -\vfill -\eject -\section{Data Structure Hierarchy Diagram} -{\bf SETCAT SetCategory}\\ -{\bf AGG Aggregate}\\ -{\bf ELTAGG EltableAggregate}\\ -{\bf HOAGG HomogeneousAggregate}\\ -{\bf ARR2CAT TwoDimensionalArrayCategory}\\ -{\bf MATCAT MatrixCategory}\\ -{\bf BGAGG BagAggregate}\\ -{\bf SKAGG StackAggregate}\\ -{\bf QUAGG QueueAggregate}\\ -{\bf DQAGG DequeueAggregate}\\ -{\bf CLAGG Collection}\\ -{\bf DIOPS DictionaryOperations}\\ -{\bf PRQAGG PriorityQueueAggregate}\\ -{\bf FINITE Finite}\\ -{\bf SETAGG SetAggregate}\\ -{\bf RCAGG RecursiveAggregate}\\ -{\bf IXAGG IndexedAggregate}\\ -{\bf DLAGG DoublyLinkedAggregate}\\ -{\bf DIRPCAT DirectProductCategory}\\ -{\bf LNAGG LinearAggregate}\\ -{\bf URAGG UnaryRecursiveAggregate}\\ -{\bf BRAGG BinaryRecursiveAggregate}\\ -{\bf BTCAT BinaryTreeCategory}\\ -{\bf DIAGG Dictionary}\\ -{\bf MDAGG MultiDictionary}\\ -{\bf ORDSET OrderedSet}\\ -{\bf ELAGG ExtensibleLinearAggregate}\\ -{\bf STAGG StreamAggregate}\\ -{\bf FLAGG FiniteLinearAggregate}\\ -{\bf KDAGG KeyedDictionary}\\ -{\bf FSAGG FiniteSetAggregate}\\ -{\bf MSETAGG MultisetAggregate}\\ -{\bf LZSTAGG LazyStreamAggregate}\\ -{\bf LSAGG ListAggregate}\\ -{\bf A1AGG OneDimensionalArrayAggregate}\\ -{\bf TBAGG TableAggregate}\\ -{\bf OMSAGG OrderedMultiSetAggregate}\\ -{\bf BTAGG BitAggregate}\\ -{\bf SRAGG StringAggregate}\\ -{\bf VECTCAT VectorCategory} -\vfill -\eject -\begin{thebibliography}{99} -\bibitem{1} Jenks, Richard D., Sutor, Robert S., -{\sl AXIOM The Scientific Computation System}, -Springer-Verlag, NY 1992, -ISBN 0-387-97855-0 -\bibitem{2} The Axiom Team, -{\sl AXIOM The 30 Year Horizon}, -Tim Daly (Ed), 2004, -{\bf http://savannah.nongnu.org/projects/axiom} -\bibitem{3} The Axiom Team, -{\sl AXIOM Volume 1 Tutorial}, -Tim Daly (Ed), 2004, -{\bf http://savannah.nongnu.org/projects/axiom} -\bibitem{4} The Axiom Team, -{\sl AXIOM Volume 2 Programming}, -Tim Daly (Ed), 2004, -{\bf http://savannah.nongnu.org/projects/axiom} -\bibitem{5} The Axiom Team, -{\sl AXIOM Volume 3 Reference}, -Tim Daly (Ed), 2004, -{\bf http://savannah.nongnu.org/projects/axiom} -\bibitem{6} The Axiom Team, -{\sl AXIOM Volume 4 Developers}, -Tim Daly (Ed), 2004, -{\bf http://savannah.nongnu.org/projects/axiom} -\end{thebibliography} -\end{document} diff --git a/src/doc/refcard.pamphlet b/src/doc/refcard.pamphlet deleted file mode 100644 index ef6afbe..0000000 --- a/src/doc/refcard.pamphlet +++ /dev/null @@ -1,514 +0,0 @@ -\documentclass{article} -\usepackage[landscape]{geometry} -\usepackage{multicol} -\usepackage{amsmath} -\usepackage{amsfonts} -\advance\topmargin-.8in -\advance\textheight2in -\advance\textwidth3in -\advance\oddsidemargin-1.5in -\advance\evensidemargin-1.5in -\parindent0pt -\parskip2pt -\newcommand{\hr}{\centerline{\rule{3.5in}{1pt}}} -\begin{document} -\begin{multicols*}{3} -\begin{center} -\textbf{Axiom Quick Reference (January 2008)}\\ -\end{center} - -\textbf{Command Line} - -)cd $\langle$pathname$\rangle$ - -)clear all -- clear workspace - -)display op $\langle$function$\rangle$ -- function arguments - -)set message autoload off -- quietly load algebra - -)set message bottom on -- show selection process - -)set stream calculate 20 -- number of terms to calculate - -)show $\langle$domain$\rangle$ -- list all functions - -)spool $\langle${\sl filename}$\rangle$ -- start save session - -)spool -- close spool file - -)trace $\langle$domain$\rangle$ )math -- trace execution - -)quit -- exit Axiom - -)read $\langle$filename$\rangle$[.input] -- evaluate a file - -)sys $\langle$command line$\rangle$ -- execute command - -\_ continues input lines or escapes chars \verb|a_ b| = ``a b'' - -\% is last value - -\%\%(n) is $n$th value - --- and ++ start comment lines - -%********************************************* -\hr\textbf{Programming} - -assignment: var := value\\ -\hbox{\hskip 2cm}x:=3 - -conditional: if $\langle$pred$\rangle$ then $\langle$truecase$\rangle$ -else $\langle$falsecase$\rangle$\\ -\hbox{\hskip 2cm}\verb|if (2 > 4) then 4 else 5| - -loop: for $\langle$pred$\rangle$ repeat $\langle$block$\rangle$\\ -\hbox{\hskip 2cm}\verb|for i in 1..5 repeat print i| -\hbox{\hskip 2cm}\verb|while i < 3 repeat (print i ; i:=i+1)| - -function: $f(x)=x^2$ \\ -\hbox{\hskip 2cm}\verb|f(x)==x^2| - -anon. function: \verb|g:=x +-> x+1| \quad g(3) $\rightarrow$ 4 - -Indentation is significant:\\ -\hbox{\hskip 2cm}\verb|f(x)==(x > 3 => x ; 0)|\\ -\hbox{\hskip 2cm}\verb|f(x)==|\\ -\hbox{\hskip 2.4cm}\verb|x > 3 => x|\\ -\hbox{\hskip 2.4cm}\verb|0| - -%********************************************* -\hr\textbf{Basic constants and functions} - -$\pi=$ \verb|%pi| \quad $e=$ \verb|%e| \quad $i=$ \verb|%i| -\quad $\infty=$ \verb|%infinity| - -$+\infty$=\verb|%plusInfinity|\quad $-\infty$=\verb|%minusInfinity| - -\verb|numeric(%pi)| $=3.1415926535\ 897932385$ - -%Binary operations: \verb|+ - * / ^| - -Functions: \verb|sin cos tan sec csc cot sinh cosh tanh| \verb|sech csch coth log ln exp| - -$ab=$ \verb|a*b| \quad $\frac a b=$ \verb|a/b| -\quad -$a^b=$ \verb|a^b| \quad $\sqrt{x}=$ \verb|sqrt(x)| - -$\sqrt[n]{x}=$\verb|x^(1/n)| -$|x|=$\verb|abs(x)| -$\log_b(x)=$\verb|log(x)/log(b)| - -%********************************************* -\hr\textbf{Operations on expressions} - -\verb|factor(...)|\qquad \verb|expand(...)|\qquad \verb|simplify(...)| - -Symbolic equations: \verb|f(x)=g(x)| - -Solve $f(x)=g(x)$: \verb| solve(f(x)=g(x),x)| - -\verb|solve([x^2*y-1,x*y^2-2],.01)|\\ -\hbox{\hskip 2.0cm} $\rightarrow$ $[[y=1.5859375,x=0.79296875]]$ - -\verb|complexSolve([x^2*y-1,x*y^2-2],1/1000)| - -\verb|radicalSolve([x^2/a+a+y^3-1,a*y+a+1],[x,y])| - -$\displaystyle\sum_{i=k}^n f(i)=$ \verb|reduce(+,[f(i) for i in k..n])| - -$\displaystyle\prod_{i=k}^n f(i)=$ \verb|reduce(*,[f(i) for i in k..n])| - -%********************************************* -\hr\textbf{Pattern Matching} - -logrule:=rule log(x)+log(y) == log(x*y) $\rightarrow$\\ -\hbox{\hskip 2.1cm}\verb|log(y)+log(x)+%B==log(x y)+%B| - -f:=log sin x + log x $\rightarrow$ log(sin(x))+log(x) - -logrule f $\rightarrow$ log(x sin(x)) - -%********************************************* -\hr\textbf{Calculus} - -$\displaystyle\lim_{x\to a} f(x)=$ \verb|limit(f(x), x=a)| - -$\displaystyle\lim_{x\to a^-} f(x)=$ \verb|limit(f(x), x=a, "left")| - -$\displaystyle\lim_{x\to a^+} f(x)=$ \verb|limit(f(x), x=a, "right")| - -$\displaystyle\lim_{x\to \infty} f(x)=$ \verb|limit(f(x), x=%plusInfinity)| - -\verb|limit(sin(x)/x,x=%plusInfinity)| $\rightarrow$ 0 - -\verb|complexLimit(sin(x)/x,x=%infinity)| $\rightarrow$ "failed" - -$\frac{d}{dx}(f(x))=$ \verb|D(f(x),x)| - -$\frac{\partial}{\partial x}(f(x,y))=$ \verb|D(f(x,y),x)| - -$\int f(x)dx=$ \verb|integrate(f(x),x)| - -$\int_a^b f(x)dx=$ \verb|integrate(f(x),x=a..b)| - -%********************************************* -\hr\textbf{Series} - -x:=series 'x - -y:=sin(x) $\rightarrow$ -$x-\frac{1}{6}x^3+\frac{1}{120}x^5-\frac{1}{5040}x^7+O(x^9)$ - -coefficient(y,3) $\rightarrow$ $-\frac{1}{6}$ - -taylor(f(x),x=a) - -laurent(x/log(x),x=1) - -\verb|puiseux(sqrt(sec(x)),x=3*%pi/2)| - -%********************************************* -\hr\textbf{2D graphics} - -\verb|draw(cos(5*t/8),t=0..16*%pi,coordinates==polar)| - -\verb|f(t:SF):SF == sin(3*t/5)| - -\verb|g(t:SF):SF == sin(t)| - -\verb|draw(curve(f,g),0..%pi)| - -\verb|draw(x^2+y^3-1=0,x,y,range==[-1..1,-1..1])| - -v1:=draw(Gamma(i),i=-4.2..4,adaptive==true) - -v2:=draw(1/Gamma(i),i=-4.2..4,adaptive==true) - -putGraph(v2,getGraph(v1,1),2) - -makeViewport2D(v2) - -options: adaptive clip toScale curveColor pointColor\\ -unit range coordinates - -%********************************************* -\hr\textbf{3D graphics} - -m(u:SF,v:SF):SF == 1 - -\verb|draw(m,0..2*%pi,0..%pi,coordinates==spherical)| - -options: title style colorFunction coordinates tubeRadius -tubePoints var1Steps var2Steps space - -%********************************************* -\hr\textbf{Discrete math} - -$\lfloor x\rfloor=$ \verb|floor(x)| -\quad -$\lceil x\rceil=$ \verb|ceiling(x)| - -Remainder of $n$ divided by $k=$ \verb|rem(n,k) |, $k|n$ iff \verb| n%k==0| - -$n!=$ \verb|factorial(n)| \qquad -${x\choose m}=$ \verb|binomial(x,m)| - -$\phi(n)=$ \texttt{eulerPhi($n$)}\quad Tuples: \ \verb|(1,'Hello,x)| - -%********************************************* -\hr\textbf{Type Conversions} - -\verb|r:=(2/3)*x^2-y+4/5| $\rightarrow$ $-y+\frac{2}{3}x^2+\frac{4}{5}$\\ -\hbox{\hskip 2.0cm} Type: Polynomial Fraction Integer - -r::FRAC POLY INT $\rightarrow$ $\frac{-15y+10x^2+12}{15}$\\ -\hbox{\hskip 2.0cm} Type: Fraction Polynomial Integer - -\verb|s:=(3+4*%i)/(7+3*%i)| $\rightarrow$ $\frac{33}{58}+\frac{19}{58}\%i$ - -s::FRAC COMPLEX INT $\rightarrow$ $\frac{3+4\%i}{7+3\%i}$ - -%********************************************* -\hr\textbf{Equation} - -eq1:=3*x+4*y=5 $\rightarrow$ $4y+3x=5$ - -eq2:=2*x+2*y=3 $\rightarrow$ $2y+2x=3$ - -lhs eq1 $\rightarrow$ $4y+3x$ - -rhs eq1 $\rightarrow$ 5 - -eq1+eq2 $\rightarrow$ $6y+5x=8$ - -%********************************************* -\hr\textbf{Factored} - -g:=factor(4312) $\rightarrow$ $2^3 7^2 11$ - -unit g $\rightarrow$ 1 - -numberOfFactors g $\rightarrow$ 3 - -nthFactor(g,2) $\rightarrow$ 7 - -nthExponent(g,2) $\rightarrow$ 2 - -nthFlag(g,2) $\rightarrow$ "prime" - -map(factor,55739/2520) $\rightarrow$ $\frac{139\ 401}{2^3\ 3^2\ 5\ 7}$ - -%********************************************* -\hr\textbf{List} - -a:=[1,2,3,4] $\rightarrow$ $[1,2,3,4]$ - -b:=[3,4,5,6] $\rightarrow$ $[3,4,5,6]$ - -append(a,b) $\rightarrow$ $[1,2,3,4,3,4,5,6]$ - -cons(10,a) $\rightarrow$ $[10,1,2,3,4]$ - -empty? a $\rightarrow$ false - -a.2 $\rightarrow$ 2 - -a.2 := 99 $\rightarrow$ $[1,99,3,4]$ - -reverse b $\rightarrow$ $[6,5,4,3]$ - -%********************************************* -\hr\textbf{MakeFunction} - -\verb|expr:=(x+a)^3| $\rightarrow$ $x^3+ 3ax^2 + 3a^2x + a^3$ - -function(expr,f,x) $\rightarrow$ f - -f(2) $\rightarrow$ $a^3 + 6a^2 + 12a + 8$ - -function(expr,g,a) $\rightarrow$ g - -g(2) $\rightarrow$ $x^3 + 6x^2 + 12x + 8$ - -%********************************************* -\hr\textbf{Matrix} - -A:=matrix([[1,2],[3,4]]) $\rightarrow$ -$ -\left[ -\begin{array}{cc} -1 & 2\\ -3 & 4\\ -\end{array} -\right] -$ - -determinant A $\rightarrow$ -2 - -v:=vector([1,2]) $\rightarrow$ $[1,2]$ - -A*v $\rightarrow$ $[5,11]$ - -\verb|A^-1| $\rightarrow$ -$ -\left[ -\begin{array}{cc} -2 & 1\\ -\frac{3}{2} & \frac{1}{2}\\ -\end{array} -\right] -$ - -transpose(A) $\rightarrow$ -$ -\left[ -\begin{array}{cc} -1 & 3\\ -2 & 4\\ -\end{array} -\right] -$ - -nrows A $\rightarrow$ 2 - -ncols A $\rightarrow$ 2 - -nullity A $\rightarrow$ 0 - -rank A $\rightarrow$ 2 - -trace A $\rightarrow$ 5 - -%********************************************* -\hr\textbf{Polynomial} - -x+1 yields Type {\bf Polynomial Integer} - -z-2.3 yields Type {\bf Polynomial Float} - -\verb|y^2-z+3/4| yields Type {\bf Polynomial Fraction Integer} - -\verb|p:=(y-1)^2*x*z| $\rightarrow$ $(xy^2-2xy+x)z$ - -\verb|q:=(y-1)*x*(z+5)| $\rightarrow$ $(xy - x)z + 5xy - 5x$ - -gcd(p,q) $\rightarrow$ $x y - x$ - -mainVariable p $\rightarrow$ $z$ - -variables p $\rightarrow$ $[z,y,x]$ - -degree(p,y) $\rightarrow$ 2 - -totaldegree p $\rightarrow$ 4 - -eval(p,x,w) $\rightarrow$ $(wy^2 - 2wy + w)z$ - -D(p,x) $\rightarrow$ $(y^2- 2y + 1)z$ - -integrate(p,x) $\rightarrow$ $(\frac{1}{2}x^2y^2-x^2y+\frac{1}{2}x^2)z$ - -%********************************************* -\hr\textbf{PrimeField} - -x:PrimeField(7):=5 $\rightarrow$ 5 - -\verb|x^3| $\rightarrow$ 6 - -1/x $\rightarrow$ 3 - -%********************************************* -\hr\textbf{Set} - -\verb|s:=brace([1,2,3,4,5])| $\rightarrow$ $\{1,2,3,4,5\}$ - -\verb;t:=brace([2,3,5,7]); $\rightarrow$ $\{2,3,5,7\}$ - -intersect(s,t) $\rightarrow$ $\{2,3,5\}$ - -union(s,t) $\rightarrow$ $\{1,2,3,4,5,7\}$ - -difference(s,t) $\rightarrow$ $\{1,4\}$ - -insert!(7,s) $\rightarrow$ $\{1,2,3,4,5,7\}$ - -remove!(7,s) $\rightarrow$ $\{1,2,3,4,5\}$ - -$\{1,2,1,a\}=$ \verb|brace([1,2,1,'a])| \ ($=\{1,2,a\}$) - -$\{f(x):x\in X,x>0\}\approx$\verb?brace([f(x) for x in X | x>0])? - -%********************************************* -\hr\textbf{Special Functions} - -[fibonacci(k) for k in 0..] $\rightarrow$ [0,1,1,2,3,5,...] - -[legendre(i,11) for i in 0..5] $\rightarrow$ [0,1,- 1,1,1,1] - -[jacobi(i,15) for i in 0..5] $\rightarrow$ [0,1,1,0,1,0] - -[eulerPhi i for i in 1..] $\rightarrow$ [1,1,2,2,4,2,...] - -[moebiusMu i for i in 1..] $\rightarrow$ [1,- 1,- 1,0,- 1,1,...] - -E1(0.01) $\rightarrow$ 4.0379295765381134 - -Gamma(0.01) $\rightarrow$ 99.432585119150588 - -%********************************************* -\hr\textbf{Stream} - -)set streams calculate 6 - -\verb|ints := [i for i in 1..]| $\rightarrow$ \verb|[1,2,3,4,5,6,...]| - -ints.20 $\rightarrow$ 20 - -\verb;[i for i in ints | odd? i]; $\rightarrow$ \verb|[1,3,5,7,9,11,...]| - -%********************************************* -\hr\textbf{String} - -creation: \ s:= \verb|"Hello"| - -concatenate \verb|"He" "llo"| $\rightarrow$ \verb|"Hello"| - -\texttt{s(1)='H' \quad s.1='H' \quad s(2..3)='el' \quad s(4..)='lo'} - -split("hi there",char " ") $\rightarrow$ \verb|["hi","there"]| - -prefix?("He","Hello") $\rightarrow$ true - -substring?("ll","Hello",3) $\rightarrow$ true - -%********************************************* -\hr\textbf{TwoDimensionalArray} - -creation: \verb|arr:ARRAY2 INT:=new(2,3,0)| $\rightarrow$ -$ -\left[ -\begin{array}{ccc} -0 & 0 & 0\\ -0 & 0 & 0\\ -\end{array} -\right] -$ - -nrows arr $\rightarrow$ 2 - -ncols arr $\rightarrow$ 3 - -setelt(arr,1,1,17) $\rightarrow$ -$ -\left[ -\begin{array}{ccc} -17 & 0 & 0\\ -0 & 0 & 0\\ -\end{array} -\right] -$ - -arr(1,1) $\rightarrow$ 17 - -%********************************************* -\hr\textbf{Univariate Polynomial} - -creation: \verb|p:UP(x,INT):=(3*x-1)^2*(2*x+8)|\\ -\hbox{\hskip 1.5cm}\verb|q:UP(x,INT):=(1-6*x+9*x^2)^2| - -leadingCoefficient p $\rightarrow$ 18 - -degree p $\rightarrow$ 3 - -reductum p $\rightarrow$ $60x^2-46x+8$ - -gcd(p,q) $\rightarrow$ $9x^2-6x+1$ - -lcm(p,q) $\rightarrow$ $162x^5+432x^4-756x^3+408x^2-94x+8$ - -resultant(p,q) $\rightarrow$ 0 - -p(2) $\rightarrow$ 300 (used as function) - -D(p) $\rightarrow$ $54x^2+120x-46$ (derivative) - -%********************************************* -\hr\textbf{Vector} - -creation: \verb|v := vector([1,2,3,4,5])| $\rightarrow$ $[1,2,3,4,5]$ - -length: \verb|#v| $\rightarrow$ 5 - -access: v.2 $\rightarrow$ 2 - -add: v+v $\rightarrow$ $[2,4,6,8,10]$ - -multiply: 5*v $\rightarrow$ $[5,10,15,20,25]$ - -assign: v.2 := 7 $\rightarrow$ $[1,7,3,4,5]$ - -\end{multicols*} - -\end{document} \ No newline at end of file diff --git a/src/doc/rosetta.pamphlet b/src/doc/rosetta.pamphlet deleted file mode 100644 index 9e14ccc..0000000 --- a/src/doc/rosetta.pamphlet +++ /dev/null @@ -1,1511 +0,0 @@ -\documentclass{article} -\normalsize\baselineskip=12pt -\parskip=0pt -\parindent=10pt -\tolerance=5000 -\pretolerance=5000 -\frenchspacing -\hangindent=10pt -\skip\footins=18pt -\global\textwidth 31pc \global\textheight 47pc -\headsep 12pt -\oddsidemargin 0pt -\evensidemargin 0pt -% -\renewcommand{\textfraction}{.1} -\renewcommand{\floatpagefraction}{.75} -% -\catcode`@=11 -\def\ps@plain{\let\@mkboth\@gobbletwo% - \let\@oddhead\@empty\def\@oddfoot{\sysdetails} - \let\@evenhead\@empty\let\@evenfoot\@oddfoot} -\def\ps@empty{\let\@mkboth\@gobbletwo% - \let\@oddhead\@empty\def\@oddfoot{\sysdetails} - \let\@evenhead\@empty\let\@evenfoot\@oddfoot} -\catcode`@=12 -% -\def\sysdetails{\parbox{\textwidth}{% -Based on material originally published in {\sl Computer Algebra Systems: A -Practical Guide\/} edited by Michael J.\ Wester, John Wiley \& Sons, -Chichester, United Kingdom, ISBN 0-471-98353-5, xvi+436 pages, 1999.}} -% -\pagestyle{plain} - -\begin{document} -% -% \nth{n} produces 1^{st}, 2^{nd}, 3^{rd}, 4^{th}, etc. -% -\def\nth#1{$#1^{\rm \ifcase#1 th\or st\or nd\or rd\else th\fi}$} -% -% Abbreviations -% -\newcommand{\Axiom}{{\sf Axiom}} -\newcommand{\Derive}{{\sf Derive}} -\newcommand{\DoCon}{{\sf DoCon}} -\newcommand{\GAP}{{\sf GAP}} -\newcommand{\Gmp}{{\sf Gmp}} -\newcommand{\Macsyma}{{\sf Macsyma}} -\newcommand{\Magnus}{{\sf Magnus}} -\newcommand{\Maxima}{{\sf Maxima}} -\newcommand{\Maple}{{\sf Maple}} -\newcommand{\Mathematica}{{\sf Mathematica}} -\newcommand{\MuPAD}{{\sf MuPAD}} -\newcommand{\Octave}{{\sf Octave}} -\newcommand{\Pari}{{\sf Pari}} -\newcommand{\Reduce}{{\sf Reduce}} -\newcommand{\Scilab}{{\sf Scilab}} -\newcommand{\Sumit}{{\sf Sumit}} -\newcommand{\Yacas}{{\sf Yacas}} - -\section{Introduction} - -The following is a collection of synonyms for various operations in -the computer algebra systems \Axiom, \Derive, \GAP, \Gmp, \DoCon, -\Macsyma, \Magnus, \Maxima, \Maple, \Mathematica, \MuPAD, \Octave, -\Pari, \Reduce, \Scilab, \Sumit\ and \Yacas. This collection does not -attempt to be comprehensive, but hopefully it will be useful in giving -an indication of how to translate between the syntaxes used by the -different systems in many common situations. Note that a blank entry -means either (a) that there may be an exact translation of a -particular operation for the indicated system, but we don't know what -it is or (b) there is no exact translation but it may still be -possible to work around this lack with a related functionality. - -While commercial systems are not provided on this CD the intent of the -Rosetta effort is to make it possible for experienced Computer Algebra -users to experiment with other systems. Thus the commands for -commercial systems are included to allow users of those systems to -translate. - -Some of these systems are special purpose and do not support a lot of -the functionality of the more general purpose systems. Where they do -support an interpreter the commands are provided. - -Originally written by Michael Wester. -Modified for Rosetta by Timothy Daly, Alexander Hulpke (GAP). - -\section{System availability} - -\begin{tabular}{l|lll} -System & \rm{License} & \rm{Status (May 2002)} & \rm{Web Location} \\ -\hline -\Axiom & BSD & available & http://www.aldor.org \\ -\Axiom & open source & pending & http://home.earthlink.net/~jgg964/axiom.html \\ -\Derive & commercial & available & http://www.mathware.com \\ -\DoCon & open source & available & http://www.haskell.org/docon \\ -\GAP & GPL & Rosetta & http://www.gap-system.org/~gap \\ -\Gmp & GPL & Rosetta & http://www.swox.com/gmp \\ -\Macsyma & commercial & dead & unavailable \\ -\Magnus & GPL & Rosetta & http://sourceforge.net/projects/magnus \\ -\Maxima & GPL & Rosetta & http://www.ma.utexas.edu/maxima.html\\ -\Maple & commercial & available & http://www.maplesoft.com \\ -\Mathematica & commercial & available & http://www.wolfram.com \\ -\MuPAD & commercial & available & http://www.mupad.de \\ -\Octave & GPL & Rosetta & http://www.octave.org \\ -\Pari & GPL & Rosetta & http://www.parigp-home.de \\ -\Reduce & commercial & available & http://www.zib.de/Symbolik/reduce \\ -\Scilab & Scilab & available & http://www-rocq.inria.fr/scilab \\ -\Sumit & & available & http://www-sop.inria.fr/cafe/soft-f.html \\ -\Yacas & GPL & available & http://yacas.sourceforge.net \\ -\end{tabular} \\[10pt] -\\ -\begin{tabular}{l|ll} -System & \rm{Type} & \rm{Interpreted or Compiled}\\ -\hline -\Axiom & General Purpose & both \\ -\Derive & General Purpose & \\ -\DoCon & General Purpose & Interpreted in Haskell \\ -\GAP & Group Theory & \\ -\Gmp & arb. prec. arithmetic & \\ -\Macsyma & General Purpose & \\ -\Magnus & Infinite Group Theory & \\ -\Maxima & General Purpose & \\ -\Maple & General Purpose & \\ -\Mathematica & General Purpose & \\ -\MuPAD & General Purpose & \\ -\Octave & Numerical Computing & \\ -\Pari & Number Theory & \\ -\Reduce & General Purpose & \\ -\Scilab & General Purpose & \\ -\Sumit & Functional Equations & \\ -\Yacas & General Purpose & \\ -\end{tabular} \\[10pt] - -\section{Programming and Miscellaneous} - -\begingroup -\newcommand{\OR}{{\em or }} -\newcommand{\fnm}{\footnotemark} -\newcommand{\h}[1]{{\rm #1}} -\newcommand{\m}[2]{\multicolumn{#1}{l}{#2}} -\newcommand{\q}{\quad} -\newcommand{\st}{\small\tt} -\parindent=0pt -\hfuzz=1pt -\begin{tt} - -\begin{tabular}{l|ll} -& \m{2}{\rm Unix/Microsoft user initialization file} \\ -\hline -\Axiom & \~{}/axiom.input & \\ -\GAP & \~{}/.gaprc & GAP.RC \\ -\Gmp & & \\ -\DoCon & & \\ -\Derive & & derive.ini \\ -\Macsyma & \~{}/macsyma-init.macsyma & mac-init.mac \\ -\Magnus & & \\ -\Maxima & \~{}/macsyma-init.macsyma & mac-init.mac \\ -\Maple & \~{}/.mapleinit & maplev5.ini \\ -\Mathematica & \~{}/init.m & init.m \\ -\MuPAD & \~{}/.mupadinit & - $\backslash$mupad$\backslash$bin$\backslash$userinit.mu \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & \~{}/.reducerc & reduce.rc \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Describe {\em keyword}} & \h{Find keywords containing {\em pattern}} \\ -\hline -\Axiom & & )what operations pattern \\ -\Derive & & \\ -\DoCon & & \\ -\GAP & ?keyword & ??keyword\\ -\Gmp & & \\ -\Macsyma & describe("keyword")\$ & apropos("pattern"); \\ -\Magnus & & \\ -\Maxima & describe("keyword")\$ & apropos("pattern"); \\ -\Maple & ?keyword & ?pattern\,\fnm \\ -\Mathematica & ?keyword & ?*pattern* \\ -\MuPAD & ?keyword & ?*pattern* \\ -\Octave & help -i keyword & \\ -\Pari & & \\ -\Reduce & & \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\footnotetext{Only if the pattern is not a keyword and then the matches are -simplistic.} - -\begin{tabular}{l|l@{ }llll} -& & & \h{Prev.} & \h{Case} & \h{Variables} \\ -& \h{Comment} & \h{Line continuation} & \h{expr.} & \h{sensitive} & \h{assumed} - \\ -\hline -\Axiom & -- comment & input \_input & \% & Yes & real \\ -\Derive & "comment" & input \~{}input & & No & real \\ -\DoCon & & & & & \\ -\GAP & \# comment & input$\backslash$input&last&Yes&no assumption\\ -\Gmp & & & & & \\ -\Macsyma & /* comment */ & inputinput; & \% & No & real \\ -\Magnus & & & & & \\ -\Maxima & /* comment */ & inputinput; & \% & No & real \\ -\Maple & \# comment & inputinput; & \% & Yes & complex \\ -\Mathematica & (* comment *) & inputinput & \% & Yes & complex \\ -\MuPAD & \# comment \# & inputinput; & \% & Yes & complex \\ -\Octave & \#\# & & & Yes & \\ -\Pari & & & & & \\ -\Reduce & \% comment & inputinput; & ws & No & complex \\ -\Scilab & & & & & \\ -\Sumit & & & & & \\ -\Yacas & & & & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|lll} -& \h{Load a file} & \h{Time a command} & \h{Quit} \\ -\hline -\Axiom & )read "file" )quiet & )set messages time on & )quit \\ -\Derive & [Transfer Load Derive] & & [Quit] \\ -\DoCon & & & \\ -\GAP & Read("file"); & time; \h{(also see {\tt Runtime();})}&quit;\\ -\Gmp & & & \\ -\Macsyma & load("file")\$ & showtime: all\$ & quit(); \\ -\Magnus & & & \\ -\Maxima & load("file")\$ & showtime: all\$ & quit(); \\ -\Maple & read("file"): & readlib(showtime): on; & quit \\ -\Mathematica & @<< file & Timing[command] & Quit[] \\ -\MuPAD & read("file"): & time(command); & quit \\ -\Octave & load file & tic(); cmd ; toc() & quit \OR\ exit\\ -\Pari & & & \\ -\Reduce & in "file"\$ & on time; & quit; \\ -\Scilab & & & quit \\ -\Sumit & & & \\ -\Yacas & & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|lll} -& \h{Display} & \h{Suppress} & \\ -& \h{output} & \h{output} & \h{Substitution: $f(x, y) \rightarrow f(z, w)$} \\ -\hline -\Axiom & input & input; & subst(f(x, y), [x = z, y = w]) \\ -\Derive & input & var:= input & [Manage Substitute] \\ -\DoCon & & & \\ -\GAP & input; & input;; & Value(f,[x,y],[z,w]);\fnm \\ -\Gmp & & & \\ -\Macsyma & input; & input\$ & subst([x = z, y = w], f(x, y)); \\ -\Magnus & & & \\ -\Maxima & input; & input\$ & subst([x = z, y = w], f(x, y)); \\ -\Maple & input; & input: & subs(\{x = z, y = w\}, f(x, y)); \\ -\Mathematica & input & input; & f[x, y] /. \{x -> z, y -> w\} \\ -\MuPAD & input; & input: & subs(f(x, y), [x = z, y = w]); \\ -\Octave & input & input; & \\ -\Pari & & & \\ -\Reduce & input; & input\$ & sub(\{x = z, y = w\}, f(x, y)); \\ -\Scilab & & & \\ -\Sumit & & & \\ -\Yacas & & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|lll} -& \h{Set} & \h{List} & \h{Matrix} \\ -\hline -\Axiom & set [1, 2] & [1, 2] & matrix(@[[1, 2],[3, 4]]) \\ -\Derive & \{1, 2\} & [1, 2] & @[[1,2], [3,4]] \\ -\DoCon & & & \\ -\GAP & Set([1,2]) & [1, 2] & @[[1,2], [3,4]]\fnm \\ -\Gmp & & & \\ -\Macsyma & [1, 2] & [1, 2] & matrix([1, 2], [3, 4]) \\ -\Magnus & & & \\ -\Maxima & [1, 2] & [1, 2] & matrix([1, 2], [3, 4]) \\ -\Maple & \{1, 2\} & [1, 2] & matrix(@[[1, 2], [3, 4]]) \\ -\Mathematica & \{1, 2\} & \{1, 2\} & \{\{1, 2\}, \{3, 4\}\} \\ -\MuPAD & \{1, 2\} & [1, 2] & export(Dom): \q export(linalg): \\ - & & & matrix:= ExpressionField(normal)): \\ - & & & matrix(@[[1, 2], [3, 4]]) \\ -\Octave & & & \\ -\Pari & & & \\ -\Reduce & \{1, 2\} & \{1, 2\} & mat((1, 2), (3, 4)) \\ -\Scilab & & list(1,2) & A=[1,2;3,4]\\ -\Sumit & & & \\ -\Yacas & & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|llll} -& \h{Equation} & \h{List element} & \h{Matrix element} & \h{Length of a list} \\ -\hline -\Axiom & x = 0 & l . 2 & m(2, 3) & \#l \\ -\Derive & x = 0 & l SUB 2 & m SUB 2 SUB 3 & DIMENSION(l) \\ -\DoCon & & & & \\ -\GAP & x=0 & l[2] & m[2][3] & Length(l) \\ -\Gmp & & & & \\ -\Macsyma & x = 0 & l[2] & m[2, 3] & length(l) \\ -\Magnus & & & & \\ -\Maxima & x = 0 & l[2] & m[2, 3] & length(l) \\ -\Maple & x = 0 & l[2] & m[2, 3] & nops(l) \\ -\Mathematica & x == 0 & l@[[2]] & m@[[2, 3]] & Length[l] \\ -\MuPAD & x = 0 & l[2] & m[2, 3] & nops(l) \\ -\Octave & & & & \\ -\Pari & & & & \\ -\Reduce & x = 0 & part(l, 2) & m(2, 3) & length(l) \\ -\Scilab & & l(2) & & \\ -\Sumit & & & & \\ -\Yacas & & & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|lll} -& \m{2}{\rm Prepend/append an element to a list} & \h{Append two lists} \\ -\hline -\Axiom & cons(e, l) & concat(l, e) & append(l1, l2) \\ -\Derive & APPEND([e], l) & APPEND(l, [e]) & APPEND(l1, l2) \\ -\DoCon & & & \\ -\GAP & Concatenation([e],l) & Add(l,e) & Append(l1, l2) \\ -\Gmp & & & \\ -\Macsyma & cons(e, l) & endcons(e, l) & append(l1, l2) \\ -\Magnus & & & \\ -\Maxima & cons(e, l) & endcons(e, l) & append(l1, l2) \\ -\Maple & [e, op(l)] & [op(l), e] & [op(l1), op(l2)] \\ -\Mathematica & Prepend[l, e] & Append[l, e] & Join[l1, l2] \\ -\MuPAD & [e, op(l)] & append(l, e) & l1 . l2 \\ -\Octave & & & \\ -\Pari & & & \\ -\Reduce & e . l & append(l, {e}) & append(l1, l2) \\ -\Scilab & & & \\ -\Sumit & & & \\ -\Yacas & & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Matrix column dimension} & \h{Convert a list into a column vector} \\ -\hline -\Axiom & ncols(m) & transpose(matrix([l])) \\ -\Derive & DIMENSION(m SUB 1) & [l]\`{} \\ -\DoCon & & \\ -\GAP & Length(mat[1]) & \h{objects are identical} \\ -\Gmp & & \\ -\Macsyma & mat\_\,ncols(m) & transpose(matrix(l)) \\ -\Magnus & & \\ -\Maxima & mat\_\,ncols(m) & transpose(matrix(l)) \\ -\Maple & linalg[coldim](m) & linalg[transpose](matrix([l])) \\ -\Mathematica & Dimensions[m]@[[2]] & Transpose[\{l\}] \\ -\MuPAD & linalg::ncols(m) & transpose(matrix([l]))\,\fnm \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & load\_\,package(linalg)\$ & matrix v(length(l), 1)\$ \\ - & column\_dim(m) & for i:=1:length(l) do \\ - & & \q\q v(i, 1):= part(l, i) \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\footnotetext{See the definition of {\tt matrix} above.} - -\begin{tabular}{l|l} -& \h{Convert a column vector into a list} \\ -\hline -\Axiom & [v(i, 1) for i in 1..nrows(v)] \\ -\Derive & v\`{} SUB 1 \\ -\DoCon & \\ -\GAP & \h{objects are identical} \\ -\Gmp & \\ -\Macsyma & part(transpose(v), 1) \\ -\Magnus & \\ -\Maxima & part(transpose(v), 1) \\ -\Maple & op(convert(linalg[transpose](v), listlist)) \\ -\Mathematica & Flatten[v] \\ -\MuPAD & [op(v)] \\ -\Octave & \\ -\Pari & \\ -\Reduce & load\_\,package(linalg)\$ \\ - & for i:=1:row\_\,dim(v) collect(v(i, 1)) \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|lllllll} -& \h{True} & \h{False} & \h{And} & \h{Or} & \h{Not} & \h{Equal} & \h{Not equal} - \\ -\hline -\Axiom & true & false & and & or & not & = & \~{}= \\ -\Derive & TRUE & FALSE & AND & OR & NOT & = & /= \\ -\DoCon & & & & & & & \\ -\GAP & true & false\fnm & and & or & not & = & <> \\ -\Gmp & & & & & & & \\ -\Macsyma & true & false & and & or & not & = & \# \\ -\Magnus & & & & & & & \\ -\Maxima & true & false & and & or & not & = & \# \\ -\Maple & true & false & and & or & not & = & <> \\ -\Mathematica & True & False & \&\& & || & ! & == & != \\ -\MuPAD & true & false & and & or & not & = & <> \\ -\Octave & & & & & & & \\ -\Pari & & & & & & & \\ -\Reduce & t & nil & and & or & not & = & neq \\ -\Scilab & \%t & \%f & & & & & \\ -\Sumit & & & & & & & \\ -\Yacas & & & & & & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{If+then+else statements} & \h{Strings (concatenated)} \\ -\hline -\Axiom & if \_ then \_ else if \_ then \_ else \_ & concat(["x", "y"]) \\ -\Derive & IF(\_, \_, IF(\_, \_, \_)) & "xy" \\ -\DoCon & & \\ -\GAP & if \_ then \_ elif \_ then \_ else \_ fi & Concatenation("x","y")\\ -\Gmp & & \\ -\Macsyma & if \_ then \_ else if \_ then \_ else \_ & concat("x", "y") \\ -\Magnus & & \\ -\Maxima & if \_ then \_ else if \_ then \_ else \_ & concat("x", "y") \\ -\Maple & if \_ then \_ elif \_ then \_ else \_ fi & "x" . "y" \\ -\Mathematica & If[\_, \_, If[\_, \_, \_]] & "x" <> "y" \\ -\MuPAD & if \_ then \_ elif \_ then \_ else \_ & "x" . "y" \\ - & \q\q end\_if & \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & if \_ then \_ else if \_ then \_ else \_ & "xy" \OR\ mkid(x, y)\\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Simple loop and Block} & \h{Generate the list $[1, 2, \ldots, n]$} \\ -\hline -\Axiom & for i in 1..n repeat ( x; y ) & [f(i) for i in 1..n] \\ -\Derive & VECTOR([x, y], i, 1, n) & VECTOR(f(i), i, 1, n) \\ -\DoCon & & \\ -\GAP & for i in [1..n] do \_ od; & [1..n] {\rm or} [1,2..n]\\ -\Gmp & & \\ -\Macsyma & for i:1 thru n do (x, y); & makelist(f(i), i, 1, n); \\ -\Magnus & & \\ -\Maxima & for i:1 thru n do (x, y); & makelist(f(i), i, 1, n); \\ -\Maple & for i from 1 to n do x; y od; & [f(i) \$ i = 1..n]; \\ -\Mathematica & Do[x; y, \{i, 1, n\}] & Table[f[i], \{i, 1, n\}] \\ -\MuPAD & for i from 1 to n do x; y & [f(i) \$ i = 1..n]; \\ - & \q\q end\_for; & \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & for i:=1:n do @<>; & for i:=1:n collect f(i); \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Complex loop iterating on a list} \\ -\hline -\Axiom & for x in [2, 3, 5] while x**2 < 10 repeat output(x) \\ -\Derive & \\ -\DoCon & \\ -\GAP & for x in [2, 3, 5] do while x\^{}2<10 do Print(x);od;od; \\ -\Gmp & \\ -\Macsyma & for x in [2, 3, 5] while x\^{}2 < 10 do print(x)\$ \\ -\Magnus & \\ -\Maxima & for x in [2, 3, 5] while x\^{}2 < 10 do print(x)\$ \\ -\Maple & for x in [2, 3, 5] while x\^{}2 < 10 do print(x) od: \\ -\Mathematica & For[l = \{2, 3, 5\}, l != \{\} \&\& l@[[1]]\^{}2 < 10, \\ - & \q l = Rest[l], Print[l@[[1]]] ] \\ -\MuPAD & for x in [2, 3, 5] do if x\^{}2 < 10 then print(x) end\_if \\ - & \q end\_for: \\ -\Octave & \\ -\Pari & \\ -\Reduce & for each x in \{2, 3, 5\} do if x\^{}2 < 10 then write(x)\$ \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|lll} -& \h{\small Assignment} & \h{Function definition} & \h{Clear vars and funs} \\ -\hline -\Axiom & y:= f(x) & f(x, y) == x*y & - {\small\tt )clear properties y f} \\ -\Derive & y:= f(x) & f(x, y):= x*y & y:= f:= \\ -\DoCon & & & \\ -\GAP & y:= f(x); & f:=function(x, y) return x*y; end; & \h{There are -no symbolic variables}\\ -\Gmp & & & \\ -\Macsyma & y: f(x); & f(x, y):= x*y; & remvalue(y)\$ \\ - & & & remfunction(f)\$ \\ -\Magnus & & & \\ -\Maxima & y: f(x); & f(x, y):= x*y; & remvalue(y)\$ \\ - & & & remfunction(f)\$ \\ -\Maple & y:= f(x); & f:= proc(x, y) x*y end; & y:= 'y': f:= 'f': \\ -\Mathematica & y = f[x] & f[x\_, y\_\,]:= x*y & Clear[y, f] \\ -\MuPAD & y:= f(x); & f:= proc(x, y) & y:= NIL: f:= NIL: \\ - & & \q\q begin x*y end\_\,proc; & \\ -\Octave & & & \\ -\Pari & & & \\ -\Reduce & y:= f(x); & procedure f(x, y); x*y; & clear y, f; \\ -\Scilab & & & \\ -\Sumit & & & \\ -\Yacas & & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Function definition with a local variable} \\ -\hline -\Axiom & f(x) == (local n; n:= 2; n*x) \\ -\Derive & \\ -\DoCon & \\ -\GAP & f:=function(x) local n; n:=2;return n*x; end; \\ -\Gmp & \\ -\Macsyma & f(x):= block([n], n: 2, n*x); \\ -\Magnus & \\ -\Maxima & f(x):= block([n], n: 2, n*x); \\ -\Maple & f:= proc(x) local n; n:= 2; n*x end; \\ -\Mathematica & f[x\_\,]:= Module[\{n\}, n = 2; n*x] \\ -\MuPAD & f:= proc(x) local n; begin n:= 2; n*x end\_\,proc; \\ -\Octave & \\ -\Pari & \\ -\Reduce & procedure f(x); begin scalar n; n:= 2; return(n*x) end; \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Return unevaluated symbol} & \h{Define a function from an expression} \\ -\hline -\Axiom & e:= x*y;\q 'e & function(e, f, x, y) \\ -\Derive & e:= x*y\q 'e & f(x, y):== e \\ -\DoCon & & \\ -\GAP & \h{No unevaluated symbols}\fnm&\\ -\Gmp & & \\ -\Macsyma & e: x*y\$\q 'e; & define(f(x, y), e); \\ -\Magnus & & \\ -\Maxima & e: x*y\$\q 'e; & define(f(x, y), e); \\ -\Maple & e:= x*y:\q 'e'; & f:= unapply(e, x, y); \\ -\Mathematica & e = x*y;\q HoldForm[e] & f[x\_, y\_\,] = e \\ -\MuPAD & e:= x*y:\q hold(e); & f:= hold(func)(e, x, y); \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & e:= x*y\$ & for all x, y let f(x, y):= e; \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] -\footnotetext{Variables can be assigned to generators of a suitable free -object, for example {\tt x:=X(Rationals,"x");} or {\tt -f:=FreeGroup(2);x:=f.1;}.} -\addtocounter{footnote}{-1}% - -\begin{tabular}{l|ll} -& \h{Fun.\ of an indefinite number of args} & \h{Apply ``+'' to sum a list} \\ -\hline -\Axiom & & reduce(+, [1, 2]) \\ -\Derive & LST l:= l & \\ -\DoCon & & \\ -\GAP & lst:=function(args) \_ end; & Sum([1,2])\\ -\Gmp & & \\ -\Macsyma & lst([l]):= l; & apply("+", [1, 2]) \\ -\Magnus & & \\ -\Maxima & lst([l]):= l; & apply("+", [1, 2]) \\ -\Maple & lst:=proc() [args[1..nargs]] end; & convert([1, 2], \`{}+\`{}) \\ -\Mathematica & lst[l\_\,\_\,\_\,]:= \{l\} & Apply[Plus, \{1, 2\}] \\ -\MuPAD & lst:= proc(l) begin [args()] & \_\,plus(op([1, 2])) \\ - & \q\q\q end\_\,proc; & \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & & xapply(+, \{1, 2\})\,\fnm \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\footnotetext{\tt procedure xapply(f, lst); lisp(f . cdr(lst))\$} -\addtocounter{footnote}{-1}% - -\begin{tabular}{l|ll} -& \h{Apply a fun.\ to a} & \\ -& \h{list of its args} & \h{Map an anonymous function onto a list} \\ -\hline -\Axiom & reduce(f, l) & map(x +-> x + y, [1, 2]) \\ -\Derive & & x:= [1, 2] \\ - & & VECTOR(x SUB i + y, i, 1, DIMENSION(x)) \\ -\DoCon & & \\ -\GAP & List(l,f) & List([1,2],x->x+y) \\ -\Gmp & & \\ -\Macsyma & apply(f, l) & map(lambda([x], x + y), [1, 2]) \\ -\Magnus & & \\ -\Maxima & apply(f, l) & map(lambda([x], x + y), [1, 2]) \\ -\Maple & f(op(l)) & map(x -> x + y, [1, 2]) \\ -\Mathematica & Apply[f, l] & Map[\# + y \&, \{1, 2\}] \\ -\MuPAD & f(op(l)) & map([1, 2], func(x + y, x)) \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & xapply(f, l)\,\fnm & for each x in \{1, 2\} collect x + y \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Pattern matching: $f(3 y) + f(z y) \rightarrow 3 f(y) + f(z y)$} \\ -\hline -\Axiom & f:= operator('f); \\ - & ( rule f((n | integer?(n)) * x) == n*f(x) )( \_ \\ - & \q\q f(3*y) + f(z*y)) \\ -\Derive & \\ -\DoCon & \\ -\GAP & \\ -\Gmp & \\ -\Macsyma & matchdeclare(n, integerp, x, true)\$ \\ - & defrule(fnx, f(n*x), n*f(x))\$ \\ - & apply1(f(3*y) + f(z*y), fnx); \\ -\Magnus & \\ -\Maxima & matchdeclare(n, integerp, x, true)\$ \\ - & defrule(fnx, f(n*x), n*f(x))\$ \\ - & apply1(f(3*y) + f(z*y), fnx); \\ -\Maple & map(proc(q) local m; \\ - & \q\q\q if match(q = f(n*y), y, 'm') and \\ - & \q\q\q\q\q type(rhs(op(m)), integer) then \\ - & \q\q\q\q subs(m, n * f(y)) else q fi \\ - & \q\q end, \\ - & \q\q f(3*y) + f(z*y)); \\ -\Mathematica & f[3*y] + f[z*y] /. f[n\_Integer * x\_\,] -> n*f[x] \\ -\MuPAD & d:= domain("match"): \q d::FREEVARIABLE:= TRUE: \\ - & n:= new(d, "n", func(testtype(m, DOM\_INT), m)): \\ - & x:= new(d, "x", TRUE): \\ - & map(f(3*y) + f(z*y), \\ - & \q\q proc(q) local m; begin m:= match(q, f(n*x)); \\ - & \q\q\q if m = FAIL then q \\ - & \q\q\q else subs(hold("n" * f("x")), m) end\_if \\ - & \q\q end\_\,proc); \\ -\Octave & \\ -\Pari & \\ -\Reduce & operator f; \\ - & f(3*y) + f(z*y) \\ - & \q\q where \{f(\~{}n * \~{}x) => n*f(x) when fixp(n)\}; \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Define a new infix operator and then use it} \\ -\hline -\Axiom & \\ -\Derive & \\ -\DoCon & \\ -\GAP &\h{One can overload existing infix operators for ones own purposes}\\ -\Gmp & \\ -\Macsyma & infix("\~{}")\$ \q "\~{}"(x, y):= sqrt(x\^{}2 + y\^{}2)\$ \q - 3 \~{} 4; \\ -\Magnus & \\ -\Maxima & infix("\~{}")\$ \q "\~{}"(x, y):= sqrt(x\^{}2 + y\^{}2)\$ \q - 3 \~{} 4; \\ -\Maple & \`{}\&\~{}\`{}:= (x, y) -> sqrt(x\^{}2 + y\^{}2): \q 3 \&\~{} 4; - \\ -\Mathematica & x\_ $\backslash$[Tilde] y\_:= Sqrt[x\^{}2 + y\^{}2]; \q - 3 $\backslash$[Tilde] 4 \\ -\MuPAD & tilde:= proc(x, y) begin sqrt(x\^{}2 + y\^{}2) end\_\,proc: \\ - & \q 3 \&tilde 4; \\ -\Octave & \\ -\Pari & \\ -\Reduce & infix |\$ \q procedure |(x, y); sqrt(x\^{}2 + y\^{}2)\$ \q - 3 | 4; \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|lll} -& \h{Main expression} & & \\ -& \h{operator} & \h{\nth{1} operand} & \h{List of expression operands} \\ -\hline -\Axiom\fnm & & kernels(e) . 1 & kernels(e) \\ -\Derive & & & {\em various}\fnm \\ -\DoCon & & & \\ -\GAP &\m{3}{\rm There are no formal unevaluated expressions}\\ -\Gmp & & & \\ -\Macsyma & part(e, 0) & part(e, 1) & args(e) \\ -\Magnus & & & \\ -\Maxima & part(e, 0) & part(e, 1) & args(e) \\ -\Maple & op(0, e) & op(1, e) & [op(e)] \\ -\Mathematica & Head[e] & e@[[1]] & ReplacePart[e, List, 0] \\ -\MuPAD & op(e, 0) & op(e, 1) & [op(e)] \\ -\Octave & & & \\ -\Pari & & & \\ -\Reduce & part(e, 0) & part(e, 1) & for i:=1:arglength(e) \\ - & & & \q\q collect part(e, i) \\ -\Scilab & & & \\ -\Sumit & & & \\ -\Yacas & & & \\ -\end{tabular} \\[10pt] - -\addtocounter{footnote}{-1}% -\footnotetext{The following commands work only on expressions that consist of a -single level (e.g., $x + y + z$ but not $a/b + c/d$).} -\addtocounter{footnote}{-1}% -\footnotetext{{\tt TERMS}, {\tt FACTORS}, {\tt NUMERATOR}, {\tt LHS}, etc.} - -\begin{tabular}{l|l} -& \h{Print text and results} \\ -\hline -\Axiom & output(concat(["sin(", string(0), ") = ", \\ - & \q string(sin(0))])); \\ -\Derive & "sin(0)" = sin(0) \\ -\DoCon & \\ -\GAP & Print("There is no sin, but factors(10)= ",Factors(10), -"$\backslash$n")\\ -\Gmp & \\ -\Macsyma & print("sin(", 0, ") =", sin(0))\$ \\ -\Magnus & \\ -\Maxima & print("sin(", 0, ") =", sin(0))\$ \\ -\Maple & printf("sin(\%a) = \%a$\backslash$n", 0, sin(0)): \\ -\Mathematica & Print[StringForm["sin(\`{}\`{}) = \`{}\`{}", 0, Sin[0]]]; \\ -\MuPAD & print(Unquoted, "sin(".0.")" = sin(0)): \\ -\Octave & \\ -\Pari & \\ -\Reduce & write("sin(", 0, ") = ", sin(0))\$ \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Generate FORTRAN} & \h{Generate \TeX/\LaTeX} \\ -\hline -\Axiom & outputAsFortran(e) & outputAsTex(e) \\ -\Derive & [Transfer Save Fortran] & \\ -\DoCon & & \\ -\GAP &&Print(LaTeX(e));\\ -\Gmp & & \\ -\Macsyma & fortran(e)\$ \OR gentran(eval(e))\$ & tex(e); \\ -\Magnus & & \\ -\Maxima & fortran(e)\$ \OR gentran(eval(e))\$ & tex(e); \\ -\Maple & fortran([e]); & latex(e); \\ -\Mathematica & FortranForm[e] & TexForm[e] \\ -\MuPAD & generate::fortran(e); & generate::TeX(e); \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & on fort; \q e; \q off fort; \OR & load\_\,package(tri)\$ \\ - & load\_\,package(gentran)\$ gentran e; & on TeX; e; off TeX; \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Import two space separated columns of integers from {\tt file}} \\ -\hline -\Axiom & \\ -\Derive & [Transfer Load daTa] ({\rm from} file.dat) \\ -\DoCon & \\ -\GAP & \\ -\Gmp & \\ -\Macsyma & xy: read\_num\_data\_to\_matrix("file", nrows, 2)\$ \\ -\Magnus & \\ -\Maxima & xy: read\_num\_data\_to\_matrix("file", nrows, 2)\$ \\ -\Maple & xy:= readdata("file", integer, 2): \\ -\Mathematica & xy = ReadList["file", Number, RecordLists -> True] \\ -\MuPAD & \\ -\Octave & \\ -\Pari & \\ -\Reduce & \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Export two space separated columns of integers to {\tt file}\fnm} \\ -\hline -\Axiom & )set output algebra "file" \q ({\rm creates} file.spout) \\ - & for i in 1..n repeat output( \_ \\ - & \q concat([string(xy(i, 1)), " ", string(xy(i, 2))]) ) \\ - & )set output algebra console \\ -\Derive & xy [Transfer Print Expressions File]\q({\rm creates} file.prt)\\ -\DoCon & \\ -\GAP & PrintTo("file");for i in [1..n] do\\ - &\q AppendTo("file",xy[i][1]," ",xy[i][2],"$\backslash$n");od;\\ -\Gmp & \\ -\Macsyma & writefile("file")\$ \q for i:1 thru n do \\ - & \q print(xy[i, 1], xy[i, 2])\$ \q closefile()\$ \\ -\Magnus & \\ -\Maxima & writefile("file")\$ \q for i:1 thru n do \\ - & \q print(xy[i, 1], xy[i, 2])\$ \q closefile()\$ \\ -\Maple & writedata("file", xy); \\ -\Mathematica & outfile = OpenWrite["file"]; \\ - & Do[WriteString[outfile, \\ - & \q xy@[[i, 1]], " ", xy@[[i, 2]], "$\backslash$n"], \{i, 1, n\}] \\ - & Close[outfile]; \\ -\MuPAD & fprint(Unquoted, Text, "file", \\ - & \q ("$\backslash$n", xy[i, 1], xy[i, 2]) \$ i = 1..n): \\ -\Octave & \\ -\Pari & \\ -\Reduce & out "file"; \q for i:=1:n do \\ - & \q write(xy(i, 1), " ", xy(i, 2)); \q shut "file"; \\ -\Scilab & \\ -\Sumit & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\footnotetext{Some editing of {\tt file} will be necessary for all systems but -\Maple\ and \Mathematica.} - -\section{Mathematics and Graphics} - -{\rm Since {\GAP} aims at discrete mathematics, it does not provide much of -the calculus functionality listed in the following section.} - -\begin{tabular}{l|llllll} -& $e$ & $\pi$ & $i$ & $+\infty$ & $\sqrt{2}$ & $2^{1/3}$ \\ -\hline -\Axiom & \%e & \%pi & \%i & \%plusInfinity & sqrt(2) & 2**(1/3) \\ -\Derive & \#e & pi & \#i & inf & SQRT(2) & 2\^{}(1/3) \\ -\DoCon & & & & & & \\ -\GAP & & & E(4) & infinity & ER(2)\fnm &\\ -\Gmp & & & & & & \\ -\Macsyma & \%e & \%pi & \%i & inf & sqrt(2) & 2\^{}(1/3) \\ -\Magnus & & & & & & \\ -\Maxima & \%e & \%pi & \%i & inf & sqrt(2) & 2\^{}(1/3) \\ -\Maple & exp(1) & Pi & I & infinity & sqrt(2) & 2\^{}(1/3) \\ -\Mathematica & E & Pi & I & Infinity & Sqrt[2] & 2\^{}(1/3) \\ -\MuPAD & E & PI & I & infinity & sqrt(2) & 2\^{}(1/3) \\ -\Octave & & & & & & \\ -\Pari & & & & & & \\ -\Reduce & e & pi & i & infinity & sqrt(2) & 2\^{}(1/3) \\ -\Scilab & & & & & & \\ -\Sumit & & & & & & \\ -\Yacas & & & & & & \\ -\end{tabular} \\[10pt] -\footnotetext{{\tt ER} represents special cyclotomic numbers and is not a -root function.} -\addtocounter{footnote}{-1}% - -\begin{tabular}{l|llll} -& \h{Euler's constant} & \h{Natural log} & \h{Arctangent} & $n!$ \\ -\hline -\Axiom & & log(x) & atan(x) & factorial(n) \\ -\Derive & euler\_\,gamma & LOG(x) & ATAN(x) & n! \\ -\DoCon & & & & \\ -\GAP & & LogInt(x,base) && Factorial(n) \\ -\Gmp & & & & \\ -\Macsyma & \%gamma & log(x) & atan(x) & n! \\ -\Magnus & & & & \\ -\Maxima & \%gamma & log(x) & atan(x) & n! \\ -\Maple & gamma & log(x) & arctan(x) & n! \\ -\Mathematica & EulerGamma & Log[x] & ArcTan[x] & n! \\ -\MuPAD & EULER & ln(x) & atan(x) & n! \\ -\Octave & & & & \\ -\Pari & & & & \\ -\Reduce & Euler\_\,Gamma & log(x) & atan(x) & factorial(n) \\ -\Scilab & & & & \\ -\Sumit & & & & \\ -\Yacas & & & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Legendre polynomial} & \h{Chebyshev poly.\ of the \nth{1} kind} \\ -\hline -\Axiom & legendreP(n, x) & chebyshevT(n, x) \\ -\Derive & LEGENDRE\_\,P(n, x) & CHEBYCHEV\_\,T(n, x) \\ -\DoCon & & \\ -\GAP & & \\ -\Gmp & & \\ -\Macsyma & legendre\_\,p(n, x) & chebyshev\_\,t(n, x) \\ -\Magnus & & \\ -\Maxima & legendre\_\,p(n, x) & chebyshev\_\,t(n, x) \\ -\Maple & orthopoly[P](n, x) & orthopoly[T](n, x) \\ -\Mathematica & LegendreP[n, x] & ChebyshevT[n, x] \\ -\MuPAD & orthpoly::legendre(n, x) & orthpoly::chebyshev1(n, x) \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & LegendreP(n, x) & ChebyshevT(n, x) \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Fibonacci number} & \h{Elliptic integral of the \nth{1} kind} \\ -\hline -\Axiom & fibonacci(n) & \\ -\Derive & FIBONACCI(n) & ELLIPTIC\_\,E(phi, k\^{}2) \\ -\DoCon & & \\ -\GAP & Fibonacci(n) & \\ -\Gmp & & \\ -\Macsyma & fib(n) & elliptic\_\,e(phi, k\^{}2) \\ -\Magnus & & \\ -\Maxima & fib(n) & elliptic\_\,e(phi, k\^{}2) \\ -\Maple & combinat[fibonacci](n) & EllipticE(sin(phi), k) \\ -\Mathematica & Fibonacci[n] & EllipticE[phi, k\^{}2] \\ -\MuPAD & numlib::fibonacci(n) & \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & & EllipticE(phi, k\^{}2) \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|llll} -& $\Gamma(x)$ & $\psi(x)$ & \h{Cosine integral} & \h{Bessel fun.\ (\nth{1})} \\ -\hline -\Axiom & Gamma(x) & psi(x) & real(Ei(\%i*x)) & besselJ(n, x) \\ -\Derive & GAMMA(x) & PSI(x) & CI(x) & BESSEL\_\,J(n, x) \\ -\DoCon & & & & \\ -\GAP & & & & \\ -\Gmp & & & & \\ -\Macsyma & gamma(x) & psi[0](x) & cos\_\,int(x) & bessel\_j[n](x) \\ -\Magnus & & & & \\ -\Maxima & gamma(x) & psi[0](x) & cos\_\,int(x) & bessel\_j[n](x) \\ -\Maple & GAMMA(x) & Psi(x) & Ci(x) & BesselJ(n, x) \\ -\Mathematica & Gamma[x] & PolyGamma[x] & CosIntegral[x] & BesselJ[n, x] \\ -\MuPAD & gamma(x) & psi(x) & & besselJ(n, x) \\ -\Octave & & & & \\ -\Pari & & & & \\ -\Reduce & Gamma(x) & Psi(x) & Ci(x) & BesselJ(n, x) \\ -\Scilab & & & & \\ -\Sumit & & & & \\ -\Yacas & & & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|lll} -& \h{Hypergeometric fun.\ ${}_2F_1(a, b; c; x)$} & \h{Dirac delta} & - \h{Unit step fun.} \\ -\hline -\Axiom & & & \\ -\Derive & GAUSS(a, b, c, x) & & STEP(x) \\ -\DoCon & & & \\ -\GAP & & & \\ -\Gmp & & & \\ -\Macsyma & hgfred([a, b], [c], x) & delta(x) & unit\_\,step(x) - \\ -\Magnus & & & \\ -\Maxima & hgfred([a, b], [c], x) & delta(x) & unit\_\,step(x) - \\ -\Maple & hypergeom([a, b], [c], x) & Dirac(x) & Heaviside(x) \\ -\Mathematica & HypergeometricPFQ[\{a,b\},\{c\},x] & - \m{2}{@<< Calculus\`{}DiracDelta\`{}} \\ -\MuPAD & & dirac(x) & heaviside(x) \\ -\Octave & & & \\ -\Pari & & & \\ -\Reduce & hypergeometric(\{a, b\}, \{c\}, x) & & \\ -\Scilab & & & \\ -\Sumit & & & \\ -\Yacas & & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Define $|x|$ via a piecewise function} \\ -\hline -\Axiom & \\ -\Derive & a(x):= -x*CHI(-inf, x, 0) + x*CHI(0, x, inf) \\ -\DoCon & \\ -\GAP & \\ -\Gmp & \\ -\Macsyma & a(x):= -x*unit\_\,step(-x) + x*unit\_\,step(x)\$ \\ -\Magnus & \\ -\Maxima & a(x):= -x*unit\_\,step(-x) + x*unit\_\,step(x)\$ \\ -\Maple & a:= x -> piecewise(x < 0, -x, x): \\ -\Mathematica & @<< Calculus\`{}DiracDelta\`{} \\ - & a[x\_]:= -x*UnitStep[-x] + x*UnitStep[x] \\ -\MuPAD & a:= proc(x) begin -x*heaviside(-x) + x*heaviside(x) \\ - & \q\q end\_\,proc: \\ -\Octave & \\ -\Pari & \\ -\Reduce & \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Assume $x$ is real} & \h{Remove that assumption} \\ -\hline -\Axiom & & \\ -\Derive & x :epsilon Real & x:= \\ -\DoCon & & \\ -\GAP & & \\ -\Gmp & & \\ -\Macsyma & declare(x, real)\$ & remove(x, real)\$ \\ -\Magnus & & \\ -\Maxima & declare(x, real)\$ & remove(x, real)\$ \\ -\Maple & assume(x, real); & x:= 'x': \\ -\Mathematica & x/: Im[x] = 0; & Clear[x] \\ -\MuPAD & assume(x, Type::RealNum): & unassume(x, Type::RealNum): \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & & \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Assume $0 < x \le 1$} & \h{Remove that assumption} \\ -\hline -\Axiom & & \\ -\Derive & x :epsilon (0, 1] & x:= \\ -\DoCon & & \\ -\GAP & & \\ -\Gmp & & \\ -\Macsyma & assume(x > 0, x <= 1)\$ & forget(x > 0, x <= 1)\$ \\ -\Magnus & & \\ -\Maxima & assume(x > 0, x <= 1)\$ & forget(x > 0, x <= 1)\$ \\ -\Maple & assume(x > 0); & x:= 'x': \\ - & additionally(x <= 1); & \\ -\Mathematica & Assumptions -> 0 < x <= 1\,\fnm & \\ -\MuPAD & assume(x > 0): assume(x <= 1): & unassume(x): \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & & \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\footnotetext{This is an option for {\tt Integrate}.} - -\begin{tabular}{l|l} -& \h{Basic simplification of an expression $e$} \\ -\hline -\Axiom & simplify(e) \OR\ normalize(e) \OR\ complexNormalize(e) \\ -\Derive & e \\ -\DoCon & \\ -\GAP & e \\ -\Gmp & \\ -\Macsyma & ratsimp(e) \OR\ radcan(e) \\ -\Magnus & \\ -\Maxima & ratsimp(e) \OR\ radcan(e) \\ -\Maple & simplify(e) \\ -\Mathematica & Simplify[e] \OR\ FullSimplify[e] \\ -\MuPAD & simplify(e) \OR\ normal(e) \\ -\Octave & \\ -\Pari & \\ -\Reduce & e \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Use an unknown function} & \h{Numerically evaluate an expr.} \\ -\hline -\Axiom & f:= operator('f); \q f(x) & exp(1) :: Complex Float \\ -\Derive & f(x):= & Precision:= Approximate \\ - & f(x) & APPROX(EXP(1)) \\ - & & Precision:= Exact \\ -\DoCon & & \\ -\GAP & & EvalF(123/456)\\ -\Gmp & & \\ -\Macsyma & f(x) & sfloat(exp(1)); \\ -\Magnus & & \\ -\Maxima & f(x) & sfloat(exp(1)); \\ -\Maple & f(x) & evalf(exp(1)); \\ -\Mathematica & f[x] & N[Exp[1]] \\ -\MuPAD & f(x) & float(exp(1)); \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & operator f; \q f(x) & on rounded; \q exp(1); \\ - & & off rounded; \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& $ n \bmod m$ & \h{Solve $e \equiv 0 \bmod m$ for $x$} \\ -\hline -\Axiom & rem(n, m) & solve(e = 0 :: PrimeField(m), x) \\ -\Derive & MOD(n, m) & SOLVE\_\,MOD(e = 0, x, m) \\ -\DoCon & & \\ -\GAP & n mod m & \h{solve using finite fields}\\ -\Gmp & & \\ -\Macsyma & mod(n, m) & modulus: m\$ \q solve(e = 0, x) \\ -\Magnus & & \\ -\Maxima & mod(n, m) & modulus: m\$ \q solve(e = 0, x) \\ -\Maple & n mod m & msolve(e = 0, m) \\ -\Mathematica & Mod[n, m] & Solve[\{e == 0, Modulus == m\}, x] \\ -\MuPAD & n mod m & solve(poly(e = 0, [x], IntMod(m)), x) \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & on modular; & load\_\,package(modsr)\$ \q on modular; \\ - & setmod m\$ \q n & setmod m\$ \q m\_solve(e = 0, x) \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Put over common denominator} & \h{Expand into separate fractions} \\ -\hline -\Axiom & a/b + c/d & (a*d + b*c)/(b*d) :: \_ \\ - & & \q MPOLY([a], FRAC POLY INT) \\ -\Derive & FACTOR(a/b + c/d, Trivial) & EXPAND((a*d + b*c)/(b*d)) \\ -\DoCon & & \\ -\GAP & a/b+c/d &\\ -\Gmp & & \\ -\Macsyma & xthru(a/b + c/d) & expand((a*d + b*c)/(b*d)) \\ -\Magnus & & \\ -\Maxima & xthru(a/b + c/d) & expand((a*d + b*c)/(b*d)) \\ -\Maple & normal(a/b + c/d) & expand((a*d + b*c)/(b*d)) \\ -\Mathematica & Together[a/b + c/d] & Apart[(a*d + b*c)/(b*d)] \\ -\MuPAD & normal(a/b + c/d) & expand((a*d + b*c)/(b*d)) \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & a/b + c/d & on div; (a*d + b*c)/(b*d) \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Manipulate the root of a polynomial} \\ -\hline -\Axiom & a:= rootOf(x**2 - 2); \q a**2 \\ -\Derive & \\ -\DoCon & \\ -\GAP & x:=X(Rationals,"x");\\ -&\q a:=RootOfDefiningPolynomial(AlgebraicExtension(Rationals,x\^{}2-2)); -a\^{}2\\ -\Gmp & \\ -\Macsyma & algebraic:true\$ \q tellrat(a\^{}2 - 2)\$ \q rat(a\^{}2); \\ -\Magnus & \\ -\Maxima & algebraic:true\$ \q tellrat(a\^{}2 - 2)\$ \q rat(a\^{}2); \\ -\Maple & a:= RootOf(x\^{}2 - 2): \q simplify(a\^{}2); \\ -\Mathematica & a = Root[\#\^{}2 - 2 \&, 2] \q a\^{}2 \\ -\MuPAD & \\ -\Octave & \\ -\Pari & \\ -\Reduce & load\_\,package(arnum)\$ \q defpoly(a\^{}2 - 2); \q a\^{}2; \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Noncommutative multiplication} & \h{Solve a pair of equations} \\ -\hline -\Axiom & & solve([eqn1, eqn2], [x, y]) \\ -\Derive & x :epsilon Nonscalar & SOLVE([eqn1, eqn2], [x, y]) \\ - & y :epsilon Nonscalar & \\ - & x . y & \\ -\DoCon & & \\ -\GAP &*&\\ -\Gmp & & \\ -\Macsyma & x . y & solve([eqn1, eqn2], [x, y]) \\ -\Magnus & & \\ -\Maxima & x . y & solve([eqn1, eqn2], [x, y]) \\ -\Maple & x \&* y & solve(\{eqn1, eqn2\}, \{x, y\}) \\ -\Mathematica & x ** y & Solve[\{eqn1, eqn2\}, \{x, y\}] \\ -\MuPAD & & solve(\{eqn1, eqn2\}, \{x, y\}) \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & operator x, y; & solve(\{eqn1, eqn2\}, \{x, y\}) \\ - & noncom x, y; & \\ - & x() * y() & \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \m{2}{\rm Decrease/increase angles in trigonometric functions} \\ -\hline -\Axiom & \m{2}{simplify(normalize(sin(2*x)))} \\ -\Derive & Trigonometry:= Expand & Trigonometry:= Collect \\ - & sin(2*x) & 2*sin(x)*cos(x) \\ -\DoCon & & \\ -\GAP & & \\ -\Gmp & & \\ -\Macsyma & trigexpand(sin(2*x)) & trigreduce(2*sin(x)*cos(x)) \\ -\Magnus & & \\ -\Maxima & trigexpand(sin(2*x)) & trigreduce(2*sin(x)*cos(x)) \\ -\Maple & expand(sin(2*x)) & combine(2*sin(x)*cos(x)) \\ -\Mathematica & TrigExpand[Sin[2*x]] & TrigReduce[2*Sin[x]*Cos[x]] \\ -\MuPAD & expand(sin(2*x)) & combine(2*sin(x)*cos(x), sincos) - \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & load\_\,package(assist)\$ \\ - & trigexpand(sin(2*x)) & trigreduce(2*sin(x)*cos(x)) \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Gr\"obner basis} \\ -\hline -\Axiom & groebner([p1, p2, ...]) \\ -\Derive & \\ -\DoCon & \\ -\GAP & \\ -\Gmp & \\ -\Macsyma & grobner([p1, p2, ...]) \\ -\Magnus & \\ -\Maxima & grobner([p1, p2, ...]) \\ -\Maple & Groebner[gbasis]([p1, p2, ...], plex(x1, x2, ...)) \\ -\Mathematica & GroebnerBasis[\{p1, p2, ...\}, \{x1, x2, ...\}] \\ -\MuPAD & groebner::gbasis([p1, p2, ...]) \\ -\Octave & \\ -\Pari & \\ -\Reduce & load\_\,package(groebner)\$ \q groebner(\{p1, p2, ...\}) \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Factorization of $e$ over $i = \sqrt{-1}$} \\ -\hline -\Axiom & factor(e, [rootOf(i**2 + 1)]) \\ -\Derive & FACTOR(e, Complex) \\ -\DoCon & \\ -\GAP & Factors(GaussianIntegers,e)\\ -\Gmp & \\ -\Macsyma & gfactor(e); \OR\ factor(e, i\^{}2 + 1); \\ -\Magnus & \\ -\Maxima & gfactor(e); \OR\ factor(e, i\^{}2 + 1); \\ -\Maple & factor(e, I); \\ -\Mathematica & Factor[e, Extension -> I] \\ -\MuPAD & QI:= Dom::AlgebraicExtension(Dom::Rational, i\^{}2 + 1); \\ - & QI::name:= "QI": \q Factor(poly(e, QI)); \\ -\Octave & \\ -\Pari & \\ -\Reduce & on complex, factor; \q e; \q off complex, factor; \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Real part} & \h{Convert a complex expr.\ to rectangular form} \\ -\hline -\Axiom & real(f(z)) & complexForm(f(z)) \\ -\Derive & RE(f(z)) & f(z) \\ -\DoCon & & \\ -\GAP & (f(z)+GaloisCyc(f(z),-1))/2&\\ -\Gmp & & \\ -\Macsyma & realpart(f(z)) & rectform(f(z)) \\ -\Magnus & & \\ -\Maxima & realpart(f(z)) & rectform(f(z)) \\ -\Maple & Re(f(z)) & evalc(f(z)) \\ -\Mathematica & Re[f[z]] & ComplexExpand[f[z]] \\ -\MuPAD & Re(f(z)) & rectform(f(z)) \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & repart(f(z)) & repart(f(z)) + i*impart(f(z)) \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|lll} -& \h{Matrix addition} & \h{Matrix multiplication} & \h{Matrix transpose} \\ -\hline -\Axiom & A + B & A * B & transpose(A) \\ -\Derive & A + B & A . B & A\`{} \\ -\DoCon & & & \\ -\GAP & A + B & A * B & TransposedMat(A)\\ -\Gmp & & & \\ -\Macsyma & A + B & A . B & transpose(A) \\ -\Magnus & & & \\ -\Maxima & A + B & A . B & transpose(A) \\ -\Maple & evalm(A + B) & evalm(A \&* B) & linalg[transpose](A) \\ -\Mathematica & A + B & A . B & Transpose[A] \\ -\MuPAD & A + B & A * B & transpose(A) \\ -\Octave & & & \\ -\Pari & & & \\ -\Reduce & A + B & A * B & tp(A) \\ -\Scilab & & & \\ -\Sumit & & & \\ -\Yacas & & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Solve the matrix equation $A x = b$} \\ -\hline -\Axiom & solve(A, transpose(b)) . 1 . particular :: Matrix \_\_\_ \\ -\Derive & \\ -\DoCon & \\ -\GAP & SolutionMat(TransposedMat(A),b)\\ -\Gmp & \\ -\Macsyma & xx: genvector('x, mat\_nrows(b))\$ \\ - & x: part(matlinsolve(A . xx = b, xx), 1, 2) \\ -\Magnus & \\ -\Maxima & xx: genvector('x, mat\_nrows(b))\$ \\ - & x: part(matlinsolve(A . xx = b, xx), 1, 2) \\ -\Maple & x:= linalg[linsolve](A, b) \\ -\Mathematica & x = LinearSolve[A, b] \\ -\MuPAD & \\ -\Octave & \\ -\Pari & \\ -\Reduce & \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Sum: $\sum_{i = 1}^n f(i)$} & \h{Product: $\prod_{i = 1}^n f(i)$} \\ -\hline -\Axiom & sum(f(i), i = 1..n) & product(f(i), i = 1..n) \\ -\Derive & SUM(f(i), i, 1, n) & PRODUCT(f(i), i, 1, n) \\ -\DoCon & & \\ -\GAP & Sum([1..n],f) & Product([1..n],f)\\ -\Gmp & & \\ -\Macsyma & closedform( & closedform( \\ - & \q sum(f(i), i, 1, n)) & \q product(f(i), i, 1, n)) \\ -\Magnus & & \\ -\Maxima & closedform( & closedform( \\ - & \q sum(f(i), i, 1, n)) & \q product(f(i), i, 1, n)) \\ -\Maple & sum(f(i), i = 1..n) & product(f(i), i = 1..n) \\ -\Mathematica & Sum[f[i], \{i, 1, n\}] & Product[f[i], \{i, 1, n\}] \\ -\MuPAD & sum(f(i), i = 1..n) & product(f(i), i = 1..n) \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & sum(f(i), i, 1, n) & prod(f(i), i, 1, n) \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Limit: $\lim_{x \rightarrow 0-} f(x)$} & \h{Taylor/Laurent/etc.\ series} \\ -\hline -\Axiom & limit(f(x), x = 0, "left") & series(f(x), x = 0, 3) \\ -\Derive & LIM(f(x), x, 0, -1) & TAYLOR(f(x), x, 0, 3) \\ -\DoCon & & \\ -\GAP & & \\ -\Gmp & & \\ -\Macsyma & limit(f(x), x, 0, minus) & taylor(f(x), x, 0, 3) \\ -\Magnus & & \\ -\Maxima & limit(f(x), x, 0, minus) & taylor(f(x), x, 0, 3) \\ -\Maple & limit(f(x), x = 0, left) & series(f(x), x = 0, 4) \\ -\Mathematica & Limit[f[x], x->0, Direction->1] & Series[f[x],\{x, 0, 3\}] \\ -\MuPAD & limit(f(x), x = 0, Left) & series(f(x), x = 0, 4) \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & limit!-(f(x), x, 0) & taylor(f(x), x, 0, 3) \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Differentiate: $\frac{d^3 f(x, y)}{dx \, dy^2}$} & - \h{Integrate: $\int_0^1 f(x) \, dx$} \\ -\hline -\Axiom & D(f(x, y), [x, y], [1, 2]) & integrate(f(x), x = 0..1) \\ -\Derive & DIF(DIF(f(x, y), x), y, 2) & INT(f(x), x, 0, 1) \\ -\DoCon & & \\ -\GAP & & \\ -\Gmp & & \\ -\Macsyma & diff(f(x, y), x, 1, y, 2) & integrate(f(x), x, 0, 1) \\ -\Magnus & & \\ -\Maxima & diff(f(x, y), x, 1, y, 2) & integrate(f(x), x, 0, 1) \\ -\Maple & diff(f(x, y), x, y\$2) & int(f(x), x = 0..1) \\ -\Mathematica & D[f[x, y], x, \{y, 2\}] & Integrate[f[x], \{x, 0, 1\}] \\ -\MuPAD & diff(f(x, y), x, y\$2) & int(f(x), x = 0..1) \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & df(f(x, y), x, y, 2) & int(f(x), x, 0, 1) \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|ll} -& \h{Laplace transform} & \h{Inverse Laplace transform} \\ -\hline -\Axiom & laplace(e, t, s) & inverseLaplace(e, s, t) \\ -\Derive & LAPLACE(e, t, s) & \\ -\DoCon & & \\ -\GAP & & \\ -\Gmp & & \\ -\Macsyma & laplace(e, t, s) & ilt(e, s, t) \\ -\Magnus & & \\ -\Maxima & laplace(e, t, s) & ilt(e, s, t) \\ -\Maple & inttrans[laplace](e,t,s) & inttrans[invlaplace](e,s,t) \\ -\Mathematica & \m{2}{\q @<< Calculus\`{}LaplaceTransform\`{}} \\ - & LaplaceTransform[e, t, s] & {\st InverseLaplaceTransform[e,s,t]} - \\ -\MuPAD & transform::laplace(e,t,s) & transform::ilaplace(e, s, t) \\ -\Octave & & \\ -\Pari & & \\ -\Reduce & \m{2}{\q load\_\,package(laplace)\$ \q load\_\,package(defint)\$} - \\ - & laplace(e, t, s) & invlap(e, t, s) \\ -\Scilab & & \\ -\Sumit & & \\ -\Yacas & & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Solve an ODE (with the initial condition $y'(0) = 1$)} \\ -\hline -\Axiom & solve(eqn, y, x) \\ -\Derive & APPLY\_\,IC(RHS(ODE(eqn, x, y, y\_)), [x, 0], [y, 1]) \\ -\DoCon & \\ -\GAP & \\ -\Gmp & \\ -\Macsyma & ode\_ibc(ode(eqn, y(x), x), x = 0, diff(y(x), x) = 1) \\ -\Magnus & \\ -\Maxima & ode\_ibc(ode(eqn, y(x), x), x = 0, diff(y(x), x) = 1) \\ -\Maple & dsolve(\{eqn, D(y)(0) = 1\}, y(x)) \\ -\Mathematica & DSolve[\{eqn, y'[0] == 1\}, y[x], x] \\ -\MuPAD & solve(ode(\{eqn, D(y)(0) = 1\}, y(x))) \\ -\Octave & \\ -\Pari & \\ -\Reduce & odesolve(eqn, y(x), x) \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Define the differential operator $L = D_x + I$ and apply it to $\sin x$} \\ -\hline -\Axiom & DD : LODO(Expression Integer, e +-> D(e, x)) := D(); \\ - & L:= DD + 1; \q L(sin(x)) \\ -\Derive & \\ -\DoCon & \\ -\GAP & \\ -\Gmp & \\ -\Macsyma & load(opalg)\$ \q L: (diffop(x) - 1)\$ \q L(sin(x)); \\ -\Magnus & \\ -\Maxima & load(opalg)\$ \q L: (diffop(x) - 1)\$ \q L(sin(x)); \\ -\Maple & id:= x -> x: \q L:= (D + id): \q L(sin)(x); \\ -\Mathematica & L = D[\#, x]\& + Identity; \q Through[L[Sin[x]]] \\ -\MuPAD & L:= (D + id): \q L(sin)(x); \\ -\Octave & \\ -\Pari & \\ -\Reduce & \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{2D plot of two separate curves overlayed} \\ -\hline -\Axiom & draw(x, x = 0..1); \q draw(acsch(x), x = 0..1); \\ -\Derive & [Plot Overlay] \\ -\DoCon & \\ -\GAP & \\ -\Gmp & \\ -\Macsyma & plot(x, x, 0, 1)\$ \q plot(acsch(x), x, 0, 1)\$ \\ -\Magnus & \\ -\Maxima & plot(x, x, 0, 1)\$ \q plot(acsch(x), x, 0, 1)\$ \\ -\Maple & plot(\{x, arccsch(x)\}, x = 0..1): \\ -\Mathematica & Plot[\{x, ArcCsch[x]\}, \{x, 0, 1\}]; \\ -\MuPAD & plotfunc(x, acsch(x), x = 0..1): \\ -\Octave & \\ -\Pari & \\ -\Reduce & load\_\,package(gnuplot)\$ \q plot(y = x, x = (0 .. 1))\$ \\ - & plot(y = acsch(x), x = (0 .. 1))\$ \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -\begin{tabular}{l|l} -& \h{Simple 3D plotting} \\ -\hline -\Axiom & draw(abs(x*y), x = 0..1, y = 0..1); \\ -\Derive & [Plot Overlay] \\ -\DoCon & \\ -\GAP & \\ -\Gmp & \\ -\Macsyma & plot3d(abs(x*y), x, 0, 1, y, 0, 1)\$ \\ -\Magnus & \\ -\Maxima & plot3d(abs(x*y), x, 0, 1, y, 0, 1)\$ \\ -\Maple & plot3d(abs(x*y), x = 0..1, y = 0..1): \\ -\Mathematica & Plot3D[Abs[x*y], \{x, 0, 1\}, \{y, 0, 1\}]; \\ -\MuPAD & plotfunc(abs(x*y), x = 0..1, y = 0..1): \\ -\Octave & \\ -\Pari & \\ -\Reduce & load\_\,package(gnuplot)\$ \\ - & plot(z = abs(x*y), x = (0 .. 1), y = (0 .. 1))\$ \\ -\Scilab & \\ -\Sumit & \\ -\Yacas & \\ -\end{tabular} \\[10pt] - -%\begin{tabular}{l|l} -%& \h{} \\ -%\hline -%\Axiom & \\ -%\Derive & \\ -%\DoCon & \\ -%\GAP & \\ -%\Gmp & \\ -%\Macsyma & \\ -%\Magnus & \\ -%\Maxima & \\ -%\Maple & \\ -%\Mathematica & \\ -%\MuPAD & \\ -%\Octave & \\ -%\Pari & \\ -%\Reduce & \\ -%\Scilab & \\ -%\Sumit & \\ -%\Yacas & \\ -%\end{tabular} \\[10pt] - -\end{tt} -\endgroup -\end{document}