diff --git a/books/bookvol0.pamphlet b/books/bookvol0.pamphlet index aa69676..874493f 100644 --- a/books/bookvol0.pamphlet +++ b/books/bookvol0.pamphlet @@ -74,7 +74,7 @@ described in this book. For a bird's eye view of the algebra hierarchy of Axiom, glance inside the book cover. The crucial strength of Axiom lies in its excellent structural -features and unlimited expandabi\-lity---it is open, modular system +features and unlimited expandability---it is open, modular system designed to support an ever growing number of facilities with minimal increase in structural complexity. Its design also supports the integration of other computation tools such as numerical software @@ -152,14 +152,14 @@ David V. Chudnovsky \hfill Gregory V. Chudnovsky | | | He received his PhD in mathematics from the University of Illinois | | at Urbana-Champaign in 1966. The title of his dissertation was | -| "Quadratic Differential Systems for Mathematical Models" and was | +| ``Quadratic Differential Systems for Mathematical Models" and was | | written under the supervision of Donald Gilles. After completing | | his PhD, he was a post-doctoral fellow at Brookhaven National | | Laboratory on Long Island. In 1968 he joined IBM Research where he | | worked until his retirement in 2002. | | | | At IBM he was a principal architect of the Scratchpad system, one | -| of the earliest computer algebra systems (1971). Dick always | +| of the earliest computer algebra systems(1971). Dick always | | believed that natural user interfaces were essential and developed | | a user-friendly rule-based system for Scratchpad. Although this | | rule-based approach was easy to use, as algorithms for computer | @@ -188,12 +188,12 @@ David V. Chudnovsky \hfill Gregory V. Chudnovsky | Scratchpad II to Axiom and to release it as a product. Dick and | | Robert Sutor were the primary authors of the book Axiom: The | | Scientific Computation System. In the foreword of the book, | -| written by David and Gregory Chudnovsky, it is stated that "The | -| Scratchpad system took its time to blossom into the beautiful Axiom | -| product. There is no rival to this powerful environment in its | -| scope and, most importantly, in its structure and organization." | +| written by David and Gregory Chudnovsky, it is stated that ``The | +| Scratchpad system took its time to blossom into the beautiful | +| Axiom product. There is no rival to this powerful environment in | +| its scope and, most importantly, in its structure and organization. | | Axiom was recently made available as free software. | -| See http://savannah.nongnu.org/projects/axiom | +| See http://savannah.nongnu.org/projects/axiom. | | | | Dick was active in service to the computer algebra community as | | well. Here are some highlights. He served as Chair of ACM SIGSAM | @@ -223,11 +223,11 @@ David V. Chudnovsky \hfill Gregory V. Chudnovsky | traveling, Point O'Woods, and life in general. | | | | On December 30, 2003, Dick Jenks died at the age of 66, after an | -| extended and courageous battle with multiple system atrophy. | -| Personally, Dick was warm, generous, and outgoing with many | -| friends. He will be missed for his technical accomplishments, his | -| artist talents, and most of all for his positive, gentle, charming | -| spirit. | +| extended and courageous battle with multiple system | +| atrophy. Personally, Dick was warm, generous, and outgoing with | +| many friends. He will be missed for his technical accomplishments, | +| his artist talents, and most of all for his positive, gentle, | +| charming spirit. | | | | Prepared by Bob Caviness, Barry Trager, and Patrizia Gianni with | | contributions from Barbara Gatje, James H. Griesmer, Tony Hearn, | @@ -237,7 +237,9 @@ David V. Chudnovsky \hfill Gregory V. Chudnovsky \eject %Original Page xxi -\chapter{Contributors} + +\pseudoChapter{\Huge Contributors} +\addcontentsline{toc}{chapter}{Contributors} The design and development of Axiom was led by the Symbolic Computation Group of the Mathematical Sciences Department, IBM Thomas J. Watson Research Center, Yorktown Heights, New York. The current implemention @@ -339,11 +341,11 @@ University of Pisa and is the prime author of the polynomial and rational funtion component of the Axiom library. Her contributions include algorithms for greatest common divisors, factorization, ideals, Gr\"obner bases, solutions of polynomial systems, and linear -algebra. She is currently Associate Professor of Mathematics at the +algebra. she is currently Associate Professor of Mathematics at the University of Pisa. {\bf Johannes Grabmeier} (IBM Scientific Center, Heidelberg) received a -Ph.D. from University Bayreuth (Bavaria) and is responsible for many +Ph.D from University Bayreuth (Bavaria) and is responsible for many Axiom packages, including those for representation theory (with Holger Gollan (Essen)), permutation groups (with Gerhard Schneider (Essen)), finite fields (with Alfred Scheerhorn), and non-associative algebra @@ -434,6 +436,7 @@ constructive suggestions on drafts of this book. %Original Page 1 \chapter{Introduction to Axiom} +%\addcontentsline{toc}{chapter}{Introduction to Axiom} \label{ugNewIntro} Welcome to the world of Axiom. We call Axiom a scientific computation system: @@ -443,13 +446,13 @@ from symbolics, to numerics, to graphics. This introduction is a quick overview of what Axiom offers. -\section{Symbolic Computation} +\subsection{Symbolic Computation} Axiom provides a wide range of simple commands for symbolic mathematical problem solving. Do you need to solve an equation, to expand a series, or to obtain an integral? If so, just ask Axiom to do it. -Given $$\int\left({{\frac{1}{x^3 \ \root{3}\of{(a+b x)}}}}\right)dx$$ +Given $$\int\left({{\frac{1}{(x^3 \ {(a+b x)}^{1/3})}}}\right)dx$$ we would enter this into Axiom as: \spadcommand{integrate(1/(x**3 * (a+b*x)**(1/3)),x)} @@ -489,7 +492,7 @@ gives you the answer when an answer exists. If one does not, it provides a proof that there is no answer. Integration is just one of a multitude of symbolic operations that Axiom provides. -\section{Numeric Computation} +\subsection{Numeric Computation} Axiom has a numerical library that includes operations for linear algebra, solution of equations, and special functions. For many of these operations, you can select any number of floating point digits @@ -548,7 +551,7 @@ algebra, basic statistics, step-wise regression, analysis of variance, time series analysis, mathematical programming, and special functions. Contact the Numerical Algorithms Group Limited, Oxford, England. -\section{Graphics} +\subsection{Graphics} You may often want to visualize a symbolic formula or draw a graph from a set of numerical values. To do this, you can call upon the Axiom @@ -572,7 +575,7 @@ zoom, change the coloring, lighting, shading, and perspective on the picture. You can also generate a PostScript copy of your graph to produce hard-copy output. -\section{HyperDoc} +\subsection{HyperDoc} \begin{figure}[htbp] %\includegraphics[bbllx=1, bblly=1, bburx=298, bbury=290]{ps/v0hroot.eps} @@ -597,7 +600,7 @@ series of HyperDoc windows shown in \figureref{fig-intro-br} and the specified mouse clicks, you and HyperDoc generate the correct command to issue to compute the answer. -\section{Interactive Programming} +\subsection{Interactive Programming } Axiom's interactive programming language lets you define your own functions. A simple example of a user-defined function is one that computes the successive Legendre polynomials. Axiom lets @@ -672,7 +675,7 @@ In general, a user function is type-analyzed and compiled on first use. Later, if you use it with a different kind of object, the function is recompiled if necessary. -\section{Data Structures} +\subsection{Data Structures} A variety of data structures are available for interactive use. These include strings, lists, vectors, sets, multisets, and hash tables. A @@ -767,7 +770,7 @@ $$ $$ \returnType{Type: Expression Integer} -\section{Mathematical Structures} +\subsection{Mathematical Structures} Axiom also has many kinds of mathematical structures. These range from simple ones (like polynomials and matrices) to more esoteric ones (like ideals and Clifford algebras). Most structures @@ -800,13 +803,13 @@ $$ \left[ \begin{array}{cc} \displaystyle{\frac{1}{x+\%{\rm i}}} & 0 \\ -\displaystyle{\frac{1}{{2 \ x}+{2 \%{\rm i}}}} & -\displaystyle{\frac{1}{2}} +\displaystyle{\frac{1}{{2 \ x}+{2 \%{\rm i}}}} & -{\frac{1}{2}} \end{array} \right] $$ \returnType{Type: Union(Matrix Fraction Polynomial Complex Integer,...)} -\section{Pattern Matching} +\subsection{Pattern Matching} %Original Page 7 @@ -826,29 +829,13 @@ Introduce two rewrite rules. \ \ cos(2*x) == cos(x)**2 - sin(x)**2 } -$$ -\begin{array}{@{}l} -\left\{ -{{\sin \left(y+x \right)}\mbox{\rm == } {\cos \left(x \right)} -\ {\sin \left(y \right)}+{\cos\left(y \right)}\ {\sin \left(x \right)}}, -\right. -\\ -\left. -\: {{\cos \left(y+x \right)}\mbox{\rm == } -{\sin \left(x \right)} -\ {\sin \left(y \right)}+{\cos\left(x \right)}\ {\cos \left(y \right)}}, -\right. -\\ -\left. -\: {{\sin \left(2\ x \right)}\mbox{\rm == } 2\ {\cos \left(x \right)} -\ {\sin \left(x \right)}}, -\right. -\\ -\left. -\: {{\cos \left(2\ x \right)}\mbox{\rm == } -{\sin \left(x \right)}^2} -+{\cos\left(x \right)}^2 -\right\} -\end{array} -$$ +\begin{verbatim} + {sin(y + x) == cos(x)sin(y) + cos(y)sin(x), + cos(y + x) == - sin(x)sin(y) + cos(x)cos(y), + sin(2x) == 2cos(x)sin(x), + 2 2 + cos(2x) == - sin(x) + cos(x) } +\end{verbatim} \returnType{Type: Ruleset(Integer,Integer,Expression Integer)} Apply the rules to a simple trigonometric expression. @@ -881,7 +868,7 @@ Using input files, you can create your own library of transformation rules relevant to your applications, then selectively apply the rules you need. -\section{Polymorphic Algorithms} +\subsection{Polymorphic Algorithms} All components of the Axiom algebra library are written in the Axiom library language. This language is similar to the interactive language except for protocols that authors are obliged to @@ -948,7 +935,7 @@ with equations over any ``field.'' Examples of fields are the rational numbers, floating point numbers, rational functions, power series, and general expressions involving radicals. -\section{Extensibility} +\subsection{Extensibility} Users and system developers alike can augment the Axiom library, all using one common language. Library code, like interpreter code, @@ -1132,7 +1119,7 @@ type of $power$ in terms of $R$. From the definition on line 3, $power(3,2)$ produces 9 for $x = 3$ and $R =$ {\tt Integer}. Also, $power(3.0,2)$ produces $9.0$ for $x = 3.0$ and $R =$ {\tt Float}. -$power(``oxford'',2)$ however fails since $``oxford''$ has type +$power("oxford",2)$ however fails since $"oxford"$ has type {\tt String} which is not a ring. Using symbolic domains, algorithms can be defined in their most @@ -1300,7 +1287,7 @@ though {\tt R} is unknown). Users and system implementers alike use the Axiom language to add facilities to the Axiom library. The entire Axiom -library is in fact written in the Axiom language and +library is in fact written in the Axiom source code and available for user modification and/or extension. %Original Page 15 @@ -1364,7 +1351,7 @@ of text between your input and the answer. The last line contains the type of the result. The type {\tt Float} is used to represent real numbers of arbitrary size and precision (where the user is -able to define how big arbitrary is--the default is 20 digits but can be +able to define how big arbitrary is -- the default is 20 digits but can be as large as your computer system can handle). The type of the result can help track down mistakes in your input if you don't get the answer you expected. @@ -5083,7 +5070,7 @@ if no such value is yet stored in $t$ under $k$. In English, this says ``Define $howMany(k)$ as follows. First, let $n$ be the value of {\it search}$(k,t)$. -Then, if $n$ has the value $``failed''$, return the value +Then, if $n$ has the value $"failed"$, return the value $1$; otherwise return $n + 1$.'' \spadcommand{howMany(k) == (n:=search(k,t); n case "failed" => 1; n+1)} \returnType{Type: Void} @@ -6276,7 +6263,6 @@ relationships between functions. $$ \frac{\left( \begin{array}{@{}l} -\displaystyle {8 \ {\log \left({{{3 \ {{\tan \left({{ \frac{\arctan \left({x} \right)}{3}}} \right)} \sp 2}} -1}} @@ -8297,11 +8283,8 @@ number coefficients. \index{SquareMatrix} $$ \left[ \begin{array}{cc} -\displaystyle -{x -{{\frac{3}{4}} \ i}} & \displaystyle{{{y \sp 2} \ z}+{\frac{1}{2}}} \\ -\displaystyle -{{{\frac{3}{7}} \ i \ {y \sp 4}} -x} & -\displaystyle{{12} -{{\frac{9}{5}} \ i}} +{x -{{\frac{3}{4}} \ i}} & {{{y \sp 2} \ z}+{\frac{1}{2}}} \\ +{{{\frac{3}{7}} \ i \ {y \sp 4}} -x} & {{12} -{{\frac{9}{5}} \ i}} \end{array} \right] $$ @@ -8314,11 +8297,8 @@ expression. $$ \left[ \begin{array}{cc} -\displaystyle -{x -{\frac{3 \ i}{4}}} & \displaystyle{{{y \sp 2} \ z}+{\frac{1}{2}}} \\ -\displaystyle -{{{\frac{3 \ i}{7}} \ {y \sp 4}} -x} & -\displaystyle{\frac{{60} -{9 \ i}}{5}} +{x -{\frac{3 \ i}{4}}} & {{{y \sp 2} \ z}+{\frac{1}{2}}} \\ +{{{\frac{3 \ i}{7}} \ {y \sp 4}} -x} & {\frac{{60} -{9 \ i}}{5}} \end{array} \right] $$ @@ -8329,12 +8309,8 @@ Interchange the {\tt Polynomial} and the {\tt Fraction} levels. $$ \left[ \begin{array}{cc} -\displaystyle -{\frac{{4 \ x} -{3 \ i}}{4}} & -\displaystyle{\frac{{2 \ {y \sp 2} \ z}+1}{2}} \\ -\displaystyle -{\frac{{3 \ i \ {y \sp 4}} -{7 \ x}}{7}} & -\displaystyle{\frac{{60} -{9 \ i}}{5}} +{\frac{{4 \ x} -{3 \ i}}{4}} & {\frac{{2 \ {y \sp 2} \ z}+1}{2}} \\ +{\frac{{3 \ i \ {y \sp 4}} -{7 \ x}}{7}} & {\frac{{60} -{9 \ i}}{5}} \end{array} \right] $$ @@ -8345,12 +8321,8 @@ Interchange the {\tt Polynomial} and the {\tt Complex} levels. $$ \left[ \begin{array}{cc} -\displaystyle -{\frac{{4 \ x} -{3 \ i}}{4}} & -\displaystyle{\frac{{2 \ {y \sp 2} \ z}+1}{2}} \\ -\displaystyle -{\frac{-{7 \ x}+{3 \ {y \sp 4} \ i}}{7}} & -\displaystyle{\frac{{60} -{9 \ i}}{5}} +{\frac{{4 \ x} -{3 \ i}}{4}} & {\frac{{2 \ {y \sp 2} \ z}+1}{2}} \\ +{\frac{-{7 \ x}+{3 \ {y \sp 4} \ i}}{7}} & {\frac{{60} -{9 \ i}}{5}} \end{array} \right] $$ @@ -8365,11 +8337,8 @@ In fact, we could have combined all these into one conversion. $$ \left[ \begin{array}{cc} -{\frac{{4 \ x} -{3 \ i}}{4}} & -\displaystyle{\frac{{2 \ {y \sp 2} \ z}+1}{2}} \\ -\displaystyle -{\frac{-{7 \ x}+{3 \ {y \sp 4} \ i}}{7}} & -\displaystyle{\frac{{60} -{9 \ i}}{5}} +{\frac{{4 \ x} -{3 \ i}}{4}} & {\frac{{2 \ {y \sp 2} \ z}+1}{2}} \\ +{\frac{-{7 \ x}+{3 \ {y \sp 4} \ i}}{7}} & {\frac{{60} -{9 \ i}}{5}} \end{array} \right] $$ @@ -8399,11 +8368,8 @@ Recall that $m$ looks like this. $$ \left[ \begin{array}{cc} -\displaystyle -{x -{{\frac{3}{4}} \ i}} & \displaystyle{{{y \sp 2} \ z}+{\frac{1}{2}}} \\ -\displaystyle -{{{\frac{3}{7}} \ i \ {y \sp 4}} -x} & -\displaystyle{{12} -{{\frac{9}{5}} \ i}} +{x -{{\frac{3}{4}} \ i}} & {{{y \sp 2} \ z}+{\frac{1}{2}}} \\ +{{{\frac{3}{7}} \ i \ {y \sp 4}} -x} & {{12} -{{\frac{9}{5}} \ i}} \end{array} \right] $$ @@ -8424,7 +8390,7 @@ $$ +{{\left[ \begin{array}{cc} 0 & 0 \\ -\displaystyle{{\frac{3}{7}} \ i} & 0 +{{\frac{3}{7}} \ i} & 0 \end{array} \right]} \ {y \sp 4}} @@ -8436,8 +8402,8 @@ $$ \right]} \ x}+{\left[ \begin{array}{cc} --\displaystyle{{\frac{3}{4}} \ i} & \displaystyle{\frac{1}{2}} \\ -0 & \displaystyle{{12} -{{\frac{9}{5}} \ i}} +-{{\frac{3}{4}} \ i} & {\frac{1}{2}} \\ +0 & {{12} -{{\frac{9}{5}} \ i}} \end{array} \right]} $$ @@ -8459,7 +8425,7 @@ $$ \ {y \sp 2} \ z}+{{\left[ \begin{array}{cc} 0 & 0 \\ -\displaystyle{{\frac{3}{7}} \ i} & 0 +{{\frac{3}{7}} \ i} & 0 \end{array} \right]} \ {y \sp 4}}+{{\left[ @@ -8470,8 +8436,8 @@ $$ \right]} \ x}+{\left[ \begin{array}{cc} --\displaystyle{{\frac{3}{4}} \ i} & \displaystyle{\frac{1}{2}} \\ -0 & \displaystyle{{12} -{{\frac{9}{5}} \ i}} +-{{\frac{3}{4}} \ i} & {\frac{1}{2}} \\ +0 & {{12} -{{\frac{9}{5}} \ i}} \end{array} \right]} $$ @@ -8491,7 +8457,7 @@ $$ \ {y \sp 2} \ z}+{{\left[ \begin{array}{cc} 0 & 0 \\ -\displaystyle{\frac{3 \ i}{7}} & 0 +{\frac{3 \ i}{7}} & 0 \end{array} \right]} \ {y \sp 4}}+{{\left[ @@ -8502,8 +8468,8 @@ $$ \right]} \ x}+{\left[ \begin{array}{cc} --\displaystyle{\frac{3 \ i}{4}} & \displaystyle{\frac{1}{2}} \\ -0 & \displaystyle{\frac{{60} -{9 \ i}}{5}} +-{\frac{3 \ i}{4}} & {\frac{1}{2}} \\ +0 & {\frac{{60} -{9 \ i}}{5}} \end{array} \right]} $$ @@ -8858,8 +8824,8 @@ by calling \spadfunFrom{map}{MatrixCategoryFunctions2} with the $$ \left[ \begin{array}{cc} -\displaystyle{\frac{1}{8}} & \displaystyle{\frac{1}{6}} \\ --\displaystyle{\frac{1}{4}} & \displaystyle{\frac{1}{9}} +{\frac{1}{8}} & {\frac{1}{6}} \\ +-{\frac{1}{4}} & {\frac{1}{9}} \end{array} \right] $$ @@ -8870,8 +8836,8 @@ We could have been a bit less verbose and used abbreviations. $$ \left[ \begin{array}{cc} -\displaystyle{\frac{1}{8}} & \displaystyle{\frac{1}{6}} \\ --\displaystyle{\frac{1}{4}} & \displaystyle{\frac{1}{9}} +{\frac{1}{8}} & {\frac{1}{6}} \\ +-{\frac{1}{4}} & {\frac{1}{9}} \end{array} \right] $$ @@ -8883,8 +8849,8 @@ We can just say this. $$ \left[ \begin{array}{cc} -\displaystyle{\frac{1}{8}} & \displaystyle{\frac{1}{6}} \\ --\displaystyle{\frac{1}{4}} & \displaystyle{\frac{1}{9}} +{\frac{1}{8}} & {\frac{1}{6}} \\ +-{\frac{1}{4}} & {\frac{1}{9}} \end{array} \right] $$ @@ -11089,7 +11055,7 @@ $$ The steps involved in computing this example are\\ (1) set $i$ to $1$,\\ (2) test the condition $i < 1$ and determine that it is not {\tt true}, and\\ -(3) do not evaluate the loop body and therefore do not display $``hello''$. +(3) do not evaluate the loop body and therefore do not display $"hello"$. \begin{verbatim} while i < 1 repeat output "hello" @@ -12608,7 +12574,7 @@ Axiom has a formal idea of categories for what ``makes sense.'' A function is an object that you can create, manipulate, pass to, and return from functions (for some interesting examples of library -functions that manipulate functions, see \domainref{MappingPackage1}). +functions that manipulate functions, see \domainref{MappingPackage1}. Yet, we often seem to use the term {\it operation} and {\it function} interchangeably in Axiom. What is the distinction? @@ -12635,7 +12601,7 @@ operation is what domains and packages export. Thus {\tt Ring} exports one operation ``{\tt +}''. Every ring also exports this operation. Also, the author of every ring in the system is obliged under contract (see \sectionref{ugPackagesAbstract} -to provide an implementation for this operation). +to provide an implementation for this operation. This chapter is all about functions---how you create them interactively and how you apply them to meet your needs. In @@ -12856,8 +12822,7 @@ varPolys(vars) == \end{verbatim} \returnType{Type: Void} -For $vars$ equal to $[$'$x,$ '$y,$ '$z]$, -this function displays $1$ three times. +For $vars$ equal to $['x, 'y, 'z]$, this function displays $1$ three times. \spadcommand{varPolys ['x,'y,'z]} \begin{verbatim} Cannot compile conversion for types involving local variables. @@ -16970,7 +16935,7 @@ The option $title$ gives your graph a title. \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/3doptttl.eps}} \begin{center} -$cos(xy),x=0..2\pi,y=0..\pi,\quad title == ``{\rm Title\ of\ Graph}''$ +$cos(xy),x=0..2\pi,y=0..\pi,\quad title == "{\rm Title\ of\ Graph}"$ \end{center} \end{minipage} @@ -16985,7 +16950,7 @@ The choices are \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/3doptsty.eps}} \begin{center} -$cos(xy),x=-3..3,y=-3..3, style=="smooth", title==``{\rm Smooth\ Option}''$ +$cos(xy),x=-3..3,y=-3..3, style=="smooth", title=="{\rm Smooth\ Option}"$ \end{center} \end{minipage} @@ -17073,7 +17038,7 @@ coordinate system. \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/3doptcrd.eps}} \begin{center} -$m, 0..2\pi,0..\pi, coordinates == spherical, style==``shade''$ +$m, 0..2\pi,0..\pi, coordinates == spherical, style=="shade"$ \end{center} \end{minipage} @@ -17094,7 +17059,7 @@ encircles the specified space curve. \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/3doptrad.eps}} \begin{center} -$curve(sin(t),cos(t),0),t=0..2\pi, style==``shade'', tubeRadius == .3$ +$curve(sin(t),cos(t),0),t=0..2\pi, style=="shade", tubeRadius == .3$ \end{center} \end{minipage} @@ -17109,7 +17074,7 @@ The larger this number is, the more cylindrical the tube becomes. \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/3doptpts.eps}} \begin{center} -$curve(sin(t),cos(t),0), t=0..2\pi, style==``shade'', tubeRadius == .25, +$curve(sin(t),cos(t),0), t=0..2\pi, style=="shade", tubeRadius == .25, tubePoints == 3$ \end{center} \end{minipage} @@ -17126,7 +17091,7 @@ first and second parameters of the surface function(s). \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/3doptvb.eps}} \begin{center} -$cos(xy),x=-3..3,y=-3..3, style==``shade'', var1Steps == 30, var2Steps == 30$ +$cos(xy),x=-3..3,y=-3..3, style=="shade", var1Steps == 30, var2Steps == 30$ \end{center} \end{minipage} @@ -17343,7 +17308,7 @@ enclosed in parentheses. \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/3dbuilda.eps}} \begin{center} -$makeViewport3D(space, title == ``Letters'')$ +$makeViewport3D(space, title == "Letters")$ \end{center} \end{minipage} @@ -17493,7 +17458,7 @@ Create and display the viewport. \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/3dbuildb.eps}} \begin{center} -$makeViewport3D(spaceC, title == ``Cube'')$ +$makeViewport3D(spaceC, title == "Cube")$ \end{center} \end{minipage} @@ -18139,7 +18104,7 @@ polygon outline includes the diagonals or not. \item[{\bf drawStyle}]\funArgs{viewport, style} selects which of four drawing styles \index{graphics!3D commands!drawing style} -are used: {\tt ``wireMesh'', ``solid'', ``shade'',} or {\tt ``smooth''.} +are used: {\tt "wireMesh", "solid", "shade",} or {\tt "smooth".} % \item[{\bf eyeDistance}]\funArgs{viewport,float\argDef{500}} @@ -19123,7 +19088,7 @@ values near zero and blue/violet indicates large positive imaginary values. \begin{center} $(x,y)+-> real exp complex(x,y), -2..2, -2\pi..2\pi, $\\ $colorFunction == (x, y) +-> imag exp complex(x,y), $\\ -$title=="exp(x+\%i*y)", style==``smooth''$ +$title=="exp(x+\%i*y)", style=="smooth"$ \end{center} \end{minipage} @@ -19141,7 +19106,7 @@ see that the function is real only for a real argument. \begin{center} $(x,y) +-> real atan complex(x,y), -\pi..\pi, -\pi..\pi,$\\ $colorFunction==(x,y) +->argument atan complex(x,y), $\\ -$title=="atan(x+\%i*y)", style==``shade''$ +$title=="atan(x+\%i*y)", style=="shade"$ \end{center} \end{minipage} @@ -19155,8 +19120,8 @@ This is the complex Gamma function. \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/compgamma.eps}} \begin{center} $(x,y) +-> max(min(real Gamma complex(x,y),4),-4), -\pi..\pi, -\pi..\pi, $\\ -$style==``shade'', colorFunction == (x,y) +-> argument Gamma complex(x,y), $\\ -$title == ``Gamma(x+\%i*y)'', var1Steps == 50, var2Steps== 50$ +$style=="shade", colorFunction == (x,y) +-> argument Gamma complex(x,y), $\\ +$title == "Gamma(x+\%i*y)", var1Steps == 50, var2Steps== 50$ \end{center} \end{minipage} @@ -19168,7 +19133,7 @@ This shows the real Beta function near the origin. \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/realbeta.eps}} \begin{center} $Beta(x,y)/100, x=-1.6..1.7, y = -1.6..1.7, $\\ -$style==``shade'', title==``Beta(x,y)'', var1Steps==40, var2Steps==40$ +$style=="shade", title=="Beta(x,y)", var1Steps==40, var2Steps==40$ \end{center} \end{minipage} @@ -19182,7 +19147,7 @@ argument $x$ in the range $2..14$. \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/bessel.eps}} \begin{center} $(alpha,x) +-> min(max(besselJ(alpha, x+8), -6), 6), -6..4, -6..6, $\\ -$title==``besselJ(alpha,x)'', style==``shade'', var1Steps==40, var2Steps==40$ +$title=="besselJ(alpha,x)", style=="shade", var1Steps==40, var2Steps==40$ \end{center} \end{minipage} @@ -19213,7 +19178,7 @@ takes on complex values in a $6 \times 6$ rectangle centered on the origin. \begin{center} $(x,y) +-> real besselI(complex(x/20, y/20),5), -60..60, -60..60, $\\ $colorFunction == (x,y)+-> argument besselI(complex(x/20,y/20),5), $\\ -$title==``besselI(x+i*y,5)'', style=="shade"$ +$title=="besselI(x+i*y,5)", style=="shade"$ \end{center} \end{minipage} @@ -50047,7 +50012,7 @@ operations \spadfunFrom{upperCase}{String}, and \spadcommand{upperCase hello } $$ -\mbox{\tt "HELLO, I'M AXIOM!"} +\mbox{\tt "HELLO, I'M Axiom!"} $$ \returnType{Type: String} @@ -57750,7 +57715,7 @@ Show quadrilateral polygon outlines. \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/ribbons2.eps}} \begin{center} -$drawStyle(vp,``shade'');outlineRender(vp,``on'')$ +$drawStyle(vp,"shade");outlineRender(vp,"on")$ \end{center} \end{minipage} @@ -57761,7 +57726,7 @@ Enclose the ribbons in a box. \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/ribbons2b.eps}} \begin{center} -$rotate(vp,20,-60); showRegion(vp,``on'')$ +$rotate(vp,20,-60); showRegion(vp,"on")$ \end{center} \end{minipage} @@ -58089,7 +58054,7 @@ Create a three-di\-men\-sion\-al viewport containing that space. \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/arrow.eps}} \begin{center} -$makeViewport3D(sp,``Arrow'')$ +$makeViewport3D(sp,"Arrow")$ \end{center} \end{minipage} @@ -58164,7 +58129,7 @@ A bouquet of a dozen arrows. \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/bouquet.eps}} \begin{center} -$drawBouquet(12,``A\ Dozen\ Arrows'')$ +$drawBouquet(12,"A\ Dozen\ Arrows")$ \end{center} \end{minipage} @@ -58354,7 +58319,7 @@ Draw the complex vector field of $sin(x)$. \begin{minipage}{\linewidth} \makebox[\linewidth]{\includegraphics[scale=0.5]{ps/vectorsin.eps}} \begin{center} -$drawBouquet(12,``A\ Dozen\ Arrows'')$ +$drawBouquet(12,"A\ Dozen\ Arrows")$ \end{center} \end{minipage} @@ -60160,9 +60125,9 @@ MatrixCategory(R, Row, Col): Category == \index{conditional} \spadfunFrom{determinant}{MatrixCategory} -As categories have parameters, the actual operations exported by a -category can depend on these parameters. As an example, the operation -from category {\tt MatrixCategory} is only exported when the +As categories have parameters, the actual operations exported by a\\ +category can depend on these parameters. As an example, the operation\\ +from category {\tt MatrixCategory} is only exported when the\\ underlying domain $R$ has commutative multiplication: \begin{verbatim} @@ -60444,9 +60409,9 @@ properties. %Original Page 530 -In \sectionref{ugCategoriesConditionals}, you saw that {\tt Fraction(R)}, -a member of {\tt QuotientFieldCategory(R)}, is a member of -{\tt OrderedSet} if $R$ is a member of {\tt OrderedSet}. Likewise, +In \sectionref{ugCategoriesConditionals}, you saw that {\tt Fraction(R)},\\ +a member of {\tt QuotientFieldCategory(R)}, is a member of\\ +{\tt OrderedSet} if $R$ is a member of {\tt OrderedSet}. Likewise,\\ from the {\tt Exports} part of the definition of {\tt ModMonic(R, S)}, \begin{verbatim} @@ -60468,7 +60433,7 @@ The {\tt Exports} part of the definition of {\tt FlexibleArray(S)} reads, for example: \begin{verbatim} Join(ExtensibleLinearAggregate(S), - OneDimensionalArrayAggregate(S)) with ... + OneDimensionalArrayAggregate(S)) with... \end{verbatim} \section{A Demo} @@ -85726,7 +85691,7 @@ venus(a,r,steps) == y := r * sin(2*u) * cv - sv * su z := a * cv point [x,y,z] - draw(surf, 0..%pi, -%pi..%pi, var1Steps==steps, + draw(surf, 0..\%pi, -\%pi..\%pi, var1Steps==steps, var2Steps==steps, title == "Etruscan Venus") venus(5/2, 13/10, 50) The Etruscan Venus @@ -85752,7 +85717,7 @@ klein(x,y) == sx * (cx2 * (sq2 + cy) + (sx2 * sy * cy)), _ -sx2 * (sq2 + cy) + cx2 * sy * cy] -draw(klein, 0..4*%pi, 0..2*%pi, var1Steps==50, Figure-8 Klein bottle +draw(klein, 0..4*\%pi, 0..2*\%pi, var1Steps==50, Figure-8 Klein bottle var2Steps==50,title=="Figure Eight Klein Bottle") \end{verbatim} @@ -85773,7 +85738,7 @@ twist(u, t) == An ellipse that twists p := point [sin u, cos(u)/2] $t$ revolves once rotateBy(p, theta) -ntubeDrawOpt(bcircle, twist, 0..2*%pi, 0..2*%pi, Twisted Torus +ntubeDrawOpt(bcircle, twist, 0..2*\%pi, 0..2*\%pi, Twisted Torus var1Steps == 70, var2Steps == 250) twist2(u, t) == Create a twisting circle @@ -85783,7 +85748,7 @@ twist2(u, t) == Create a twisting circle cf(u,v) == sin(21*u) Color function with $21$ stripes -ntubeDrawOpt(bcircle, twist2, 0..2*%pi, 0..2*%pi, Striped Torus +ntubeDrawOpt(bcircle, twist2, 0..2*\%pi, 0..2*\%pi, Striped Torus colorFunction == cf, var1Steps == 168, var2Steps == 126) \end{verbatim} @@ -85799,7 +85764,7 @@ gam(x,y) == point [x,y,max(min(real g, 4), -4), argument g] -draw(gam, -%pi..%pi, -%pi..%pi, The Gamma Function +draw(gam, -\%pi..\%pi, -\%pi..\%pi, The Gamma Function title == "Gamma(x + \%i*y)", _ var1Steps == 100, var2Steps == 100) @@ -85811,7 +85776,7 @@ atf(x,y) == a := atan complex(x,y) point [x,y,real a, argument a] -draw(atf, -3.0..%pi, -3.0..%pi) The Arctangent function +draw(atf, -3.0..\%pi, -3.0..\%pi) The Arctangent function \end{verbatim} \index{function!Gamma} \index{function!Euler Beta} @@ -85852,13 +85817,13 @@ on the Riemann sphere. f z == z -- Mapping 2: Source -riemannConformalDraw(f,0.1..0.99,0..2*%pi,7,11,"polar") +riemannConformalDraw(f,0.1..0.99,0..2*\%pi,7,11,"polar") -- The map x mapsto -(z+1)/(z-1) f z == -(z+1)/(z-1) -- Mapping 2: Target -riemannConformalDraw(f,0.1..0.99,0..2*%pi,7,11,"polar") +riemannConformalDraw(f,0.1..0.99,0..2*\%pi,7,11,"polar") -- Riemann Sphere Mapping riemannSphereDraw(-4..4, -4..4, 7, 7, "cartesian") @@ -86031,7 +85996,7 @@ riemannSphereDraw(rRange,tRange,rSteps,tSteps,coord) == adaptGrid(sp, grid, rRange, tRange, rSteps, tSteps) connectingLines(sp,grid,rRange,tRange,rSteps,tSteps) -- Draw the sphere - makeObject(riemannSphere,0..2*%pi,0..%pi,space==sp) + makeObject(riemannSphere,0..2*\%pi,0..\%pi,space==sp) f := (z:C):C +-> z cm := makeRiemannConformalMap(f, transformC) -- Draw the sphere grid @@ -86093,7 +86058,7 @@ torusKnot(p, q ,r, uSteps, tSteps) == circle := (u:DFLOAT, t:DFLOAT): Point DFLOAT +-> r * point [cos u, sin u] -- Draw the circle around the knot - ntubeDrawOpt(knot, circle, 0..2*%pi, 0..2*%pi, + ntubeDrawOpt(knot, circle, 0..2*\%pi, 0..2*\%pi, var1Steps == uSteps, var2Steps == tSteps) \end{verbatim} @@ -86381,7 +86346,7 @@ drawRingsInner(s, n, dh) == drawRing(s, dh) == free torusRot torusRot := dh - makeObject(torus, 0..2*%pi, 0..2*%pi, var1Steps == 6, + makeObject(torus, 0..2*\%pi, 0..2*\%pi, var1Steps == 6, space == s, var2Steps == 15) -- Parameterization of a torus, transformed by the @@ -86412,11 +86377,11 @@ drawScherk(m,n) == free xOffset, yOffset space := createThreeSpace() for i in 0..m-1 repeat - xOffset := i*%pi + xOffset := i*\%pi for j in 0 .. n-1 repeat -- Draw only odd patches rem(i+j, 2) = 0 => 'iter - yOffset := j*%pi + yOffset := j*\%pi -- Draw a patch drawOneScherk(space) makeViewport3D(space, "Scherk's Minimal Surface") @@ -86445,13 +86410,13 @@ scherk4(u,v) == -- Draw the surface by breaking it into four -- patches and then drawing the patches drawOneScherk(s) == - makeObject(scherk1,-%pi/2..%pi/2,0..%pi/2,space==s, + makeObject(scherk1,-\%pi/2..\%pi/2,0..\%pi/2,space==s, var1Steps == 28, var2Steps == 28) - makeObject(scherk2,-%pi/2..%pi/2,0..%pi/2,space==s, + makeObject(scherk2,-\%pi/2..\%pi/2,0..\%pi/2,space==s, var1Steps == 28, var2Steps == 28) - makeObject(scherk3,-%pi/2..%pi/2,-%pi/2..0,space==s, + makeObject(scherk3,-\%pi/2..\%pi/2,-\%pi/2..0,space==s, var1Steps == 28, var2Steps == 28) - makeObject(scherk4,-%pi/2..%pi/2,-%pi/2..0,space==s, + makeObject(scherk4,-\%pi/2..\%pi/2,-\%pi/2..0,space==s, var1Steps == 28, var2Steps == 28) void() \end{verbatim} @@ -86482,7 +86447,8 @@ for example, to separate arguments of a function $f(x,y)$. \ourGloss{\glossarySyntaxTerm{\tt =>}}{% {\it (syntax)} -the expression $a => b$ is equivalent to $if\ a\ then$ {\it exit} $b$. +the expression $a => b$ is equivalent to $if a +then$ {\it exit} $b$. } @@ -86618,7 +86584,7 @@ $11.0$ in order to assign a floating-point value to $x$. \ourGloss{\glossaryTerm{attribute}}{% a name or functional form denoting {\it any} useful computational or mathematical -property. For example, {\bf commutative($``*''$)} asserts that +property. For example, {\bf commutative($"*"$)} asserts that $*$ is commutative. Also, {\bf finiteAggregate} is used to assert that an aggregate has a finite number of immediate components. @@ -86680,6 +86646,7 @@ a {\it function} in the standard Axiom library. Contrast {\it user function}. } +v \ourGloss{\glossaryTerm{cache}}{% 1. (noun) a mechanism for immediate retrieval of previously computed data. @@ -86708,7 +86675,7 @@ the constructor. the branch of a {\bf Union}. \index{Union} For example, if value $u$ is $Union(Integer, "failed")$, the -conditional expression $if\ u\ case\ Integer\ then\ A\ else\ B$ evaluates +conditional expression $if u case Integer then A else B$ evaluates $A$ if $u$ is an integer and $B$ otherwise. } @@ -86789,7 +86756,7 @@ inheritance. an element of a character set, as represented by a keyboard key. 2. a component of a string. -For example, the $1$st element of the string $``hello\ there''$ is the +For example, the $1$st element of the string $"hello there"$ is the character {\it h}. } @@ -86853,12 +86820,12 @@ domains rather than the domains themselves. \ourGloss{\glossaryTerm{conditional}}{% -a {\it control structure} of the form $if\ A\ then\ B\ else\ C$. +a {\it control structure} of the form $if A then B else C$. \index{if} The {\it evaluation} of $A$ produces {\tt true} or {\tt false}. If {\tt true}, $B$ evaluates to produce a value; otherwise $C$ evaluates to produce a value. -When the value is not required, the $else\ C$ part can be omitted. +When the value is not required, the $else C$ part can be omitted. } @@ -88142,7 +88109,7 @@ Streams are used to implement various forms of power series. an object of domain {\bf String}. Strings are literals consisting of an arbitrary sequence of characters surrounded by double-quotes ({\tt "}), -for example, $``Look\ here!''$. +for example, $"Look here!"$. } \ourGloss{\glossaryTerm{subdomain}}{% diff --git a/books/bookvol1.pamphlet b/books/bookvol1.pamphlet index 0be8cc0..ca534f1 100644 --- a/books/bookvol1.pamphlet +++ b/books/bookvol1.pamphlet @@ -152,7 +152,7 @@ $$ \left[ \begin{array}{cc} \displaystyle{\frac{1}{x+\%{\rm i}}} & 0 \\ -\displaystyle{\frac{1}{{2 \ x}+{2 \%{\rm i}}}} & -\displaystyle{\frac{1}{2}} +\displaystyle{\frac{1}{{2 \ x}+{2 \%{\rm i}}}} & -{\frac{1}{2}} \end{array} \right] $$ @@ -713,7 +713,7 @@ type of $power$ in terms of $R$. From the definition on line 3, $power(3,2)$ produces 9 for $x = 3$ and $R =$ {\tt Integer}. Also, $power(3.0,2)$ produces $9.0$ for $x = 3.0$ and $R =$ {\tt Float}. -$power(``oxford'',2)$ however fails since $"oxford"$ has type +$power("oxford",2)$ however fails since $"oxford"$ has type {\tt String} which is not a ring. Using symbolic domains, algorithms can be defined in their most @@ -876,7 +876,7 @@ though {\tt R} is unknown). Users and system implementers alike use the Axiom language to add facilities to the Axiom library. The entire Axiom -library is in fact written in the Axiom language and +library is in fact written in the Axiom source code and available for user modification and/or extension. Axiom's use of abstract datatypes clearly separates the exports @@ -1018,7 +1018,7 @@ In this document we have followed these typographical conventions: \begin{itemize} % \item Categories, domains and packages are displayed in this font: -{\tt Ring}, {\tt Integer}, {\tt Diophan\-tineSolutionPackage}. +{\tt Ring}, {\tt Integer}, {\tt DiophantineSolutionPackage}. % \item Prefix operators, infix operators, and punctuation symbols in the Axiom language are displayed in the text like this: @@ -1509,7 +1509,7 @@ of text between your input and the answer. The last line contains the type of the result. The type {\tt Float} is used to represent real numbers of arbitrary size and precision (where the user is -able to define how big arbitrary is--the default is 20 digits but can be +able to define how big arbitrary is -- the default is 20 digits but can be as large as your computer system can handle). The type of the result can help track down mistakes in your input if you don't get the answer you expected. @@ -3748,7 +3748,7 @@ thus all the rules about blocks apply to function definitions. Also there was only one argument so the parenthese are not needed. This is basically all that one needs to know about defining functions in -Axiom--first specify the complete type and then assign a block to the +Axiom -- first specify the complete type and then assign a block to the function name. The rest of this section is concerned with defining more complex blocks than those in this section and as a result function definitions will crop up continually particularly since they are a good way of testing @@ -3799,7 +3799,7 @@ x $$ \returnType{Type: Polynomial Float} -Note the indentation--the ``else'' must be indented relative to the ``if'' +Note the indentation -- the ``else'' must be indented relative to the ``if'' otherwise it will generate an error (Axiom will think there are two piles, the second one beginning with ``else''). @@ -5023,7 +5023,7 @@ A {\it set} is a collection of elements where duplication and order is irrelevant. Sets are always finite and have no corresponding structure like streams for infinite collections. -Create sets using braces ``\{'' and ``\}'' rather than brackets. +Create sets using braces ``\{`` and ``\}'' rather than brackets. \index{set} \spadcommand{fs := set [1/3,4/5,-1/3,4/5]} @@ -5078,14 +5078,14 @@ $$ We define a function {\bf howMany} to return the number of values of a given modulus $k$ seen so far. It calls {\bf search}$(k,t)$ which returns the number of values -stored under the key $k$ in table $t$, or {\tt "failed"} +stored under the key $k$ in table $t$, or {\tt ``failed''} if no such value is yet stored in $t$ under $k$. \index{howMany} \index{search} In English, this says ``Define $howMany(k)$ as follows. First, let $n$ be the value of {\it search}$(k,t)$. -Then, if $n$ has the value $``failed''$, return the value +Then, if $n$ has the value $"failed"$, return the value $1$; otherwise return $n + 1$.'' \spadcommand{howMany(k) == (n:=search(k,t); n case "failed" => 1; n+1)} \returnType{Type: Void} @@ -5856,7 +5856,6 @@ $$ \spadcommand{g := log(f)} $$ \begin{array}{@{}l} -\displaystyle x+ {{1 \over 2} \ {x \sp 2}}+ {{1 \over 3} \ {x \sp 3}}+ @@ -6236,7 +6235,6 @@ must be added in order to find a solution. $$ \left( \begin{array}{@{}l} -\displaystyle -{2 \ {b \sp 2} \ {x \sp 2} \ {\sqrt {3}} \ {\log \left( {{{{\root {3} \of {a}} \ {{\root {3} \of {{{b \ x}+a}}} \sp 2}}+{{{\root @@ -6336,7 +6334,6 @@ relationships between functions. $$ \left( \begin{array}{@{}l} -\displaystyle {8 \ {\log \left( {{{3 \ {{\tan @@ -6486,7 +6483,6 @@ $$ %%less complicated than this one. $$ \begin{array}{@{}l} -\displaystyle \left[ {particular={{{x \sp 5} -{{10} \ {x \sp 3}}+{{20} \ {x \sp 2}}+4} \over {{15} \ x}}}, @@ -6804,7 +6800,6 @@ $$ $$ \left. \begin{array}{@{}l} -\displaystyle \left[ {x={{{z \sp 3}+{2 \ b \ {z \sp 2}}+{{b \sp 2} \ z} -a} \over b}}, {y={z+b}}, @@ -8070,7 +8065,7 @@ plotData2D(name, title) == \end{verbatim} % This command will actually create the viewport and the graph if -the point data is in the file $``file.data''$. +the point data is in the file $"file.data"$. \begin{verbatim} plotData2D("file.data", "2D Data Plot") \end{verbatim} @@ -8142,7 +8137,7 @@ where $a..b$ and $c..d$ define the range of $x$ and $y$, and where {\it options} prescribes zero or more options as described in \ref{sec:Three-Dimensional Options} on page~\pageref{sec:Three-Dimensional Options}. -An example of an option is $title == ``Title of Graph''.$ +An example of an option is $title == "Title of Graph".$ An alternative format involving a function $f$ is also available.\\ } @@ -8173,7 +8168,7 @@ where $a..b$ defines the range of the independent variable $t$, and where {\it options} prescribes zero or more options as described in \ref{sec:Three-Dimensional Options} on page~\pageref{sec:Three-Dimensional Options}. -An example of an option is $title == ``Title of Graph''.$ +An example of an option is $title == "Title of Graph".$ An alternative format involving functions $f$, $g$ and $h$ is also available.\\ } @@ -8206,7 +8201,7 @@ independent variables $u$ and $v$, and where {\it options} prescribes zero or more options as described in \ref{sec:Three-Dimensional Options} on page~\pageref{sec:Three-Dimensional Options}. -An example of an option is $title == ``Title of Graph''.$ +An example of an option is $title == "Title of Graph".$ An alternative format involving functions $f$, $g$ and $h$ is also available.\\ } @@ -9640,8 +9635,8 @@ If a constructor \index{type!using parentheses} has more than parentheses. Some examples are \\ {\tt UnivariatePolynomial(x, Float)} \index{UnivariatePolynomial} \\ -{\tt MultivariatePolynomial([z,w,r], Complex Float)} -\index{MultivariatePolynomial} \\ +{\tt MultivariatePolynomial([z,w,r], Complex Float)} \\ +\index{MultivariatePolynomial} {\tt SquareMatrix(3, Integer)} \index{SquareMatrix} \\ {\tt FactoredFunctions2(Integer,Fraction Integer)} \index{FactoredFunctions2} @@ -9868,7 +9863,6 @@ rational number coefficients. $$ \left[ \begin{array}{c} -\displaystyle {x -{2 \over 3}} \end{array} \right] @@ -10435,10 +10429,8 @@ number coefficients. \index{SquareMatrix} $$ \left[ \begin{array}{cc} -\displaystyle -{x -{{3 \over 4} \ i}} & \displaystyle{{{y \sp 2} \ z}+{1 \over 2}} \\ -\displaystyle -{{{3 \over 7} \ i \ {y \sp 4}} -x} & \displaystyle{{12} -{{9 \over 5} \ i}} +{x -{{3 \over 4} \ i}} & {{{y \sp 2} \ z}+{1 \over 2}} \\ +{{{3 \over 7} \ i \ {y \sp 4}} -x} & {{12} -{{9 \over 5} \ i}} \end{array} \right] $$ @@ -10451,11 +10443,8 @@ expression. $$ \left[ \begin{array}{cc} -\displaystyle -{x -{{3 \ i} \over 4}} & \displaystyle{{{y \sp 2} \ z}+{1 \over 2}} \\ -\displaystyle -{{{{3 \ i} \over 7} \ {y \sp 4}} -x} & -\displaystyle{{{60} -{9 \ i}} \over 5} +{x -{{3 \ i} \over 4}} & {{{y \sp 2} \ z}+{1 \over 2}} \\ +{{{{3 \ i} \over 7} \ {y \sp 4}} -x} & {{{60} -{9 \ i}} \over 5} \end{array} \right] $$ @@ -10466,12 +10455,8 @@ Interchange the {\tt Polynomial} and the {\tt Fraction} levels. $$ \left[ \begin{array}{cc} -\displaystyle -{{{4 \ x} -{3 \ i}} \over 4} & -\displaystyle{{{2 \ {y \sp 2} \ z}+1} \over 2} \\ -\displaystyle -{{{3 \ i \ {y \sp 4}} -{7 \ x}} \over 7} & -\displaystyle{{{60} -{9 \ i}} \over 5} +{{{4 \ x} -{3 \ i}} \over 4} & {{{2 \ {y \sp 2} \ z}+1} \over 2} \\ +{{{3 \ i \ {y \sp 4}} -{7 \ x}} \over 7} & {{{60} -{9 \ i}} \over 5} \end{array} \right] $$ @@ -10482,12 +10467,8 @@ Interchange the {\tt Polynomial} and the {\tt Complex} levels. $$ \left[ \begin{array}{cc} -\displaystyle -{{{4 \ x} -{3 \ i}} \over 4} & -\displaystyle{{{2 \ {y \sp 2} \ z}+1} \over 2} \\ -\displaystyle -{{-{7 \ x}+{3 \ {y \sp 4} \ i}} \over 7} & -\displaystyle{{{60} -{9 \ i}} \over 5} +{{{4 \ x} -{3 \ i}} \over 4} & {{{2 \ {y \sp 2} \ z}+1} \over 2} \\ +{{-{7 \ x}+{3 \ {y \sp 4} \ i}} \over 7} & {{{60} -{9 \ i}} \over 5} \end{array} \right] $$ @@ -10502,12 +10483,8 @@ In fact, we could have combined all these into one conversion. $$ \left[ \begin{array}{cc} -\displaystyle -{{{4 \ x} -{3 \ i}} \over 4} & -\displaystyle{{{2 \ {y \sp 2} \ z}+1} \over 2} \\ -\displaystyle -{{-{7 \ x}+{3 \ {y \sp 4} \ i}} \over 7} & -\displaystyle{{{60} -{9 \ i}} \over 5} +{{{4 \ x} -{3 \ i}} \over 4} & {{{2 \ {y \sp 2} \ z}+1} \over 2} \\ +{{-{7 \ x}+{3 \ {y \sp 4} \ i}} \over 7} & {{{60} -{9 \ i}} \over 5} \end{array} \right] $$ @@ -10535,10 +10512,8 @@ Recall that $m$ looks like this. $$ \left[ \begin{array}{cc} -\displaystyle -{x -{{3 \over 4} \ i}} & \displaystyle{{{y \sp 2} \ z}+{1 \over 2}} \\ -\displaystyle -{{{3 \over 7} \ i \ {y \sp 4}} -x} & \displaystyle{{12} -{{9 \over 5} \ i}} +{x -{{3 \over 4} \ i}} & {{{y \sp 2} \ z}+{1 \over 2}} \\ +{{{3 \over 7} \ i \ {y \sp 4}} -x} & {{12} -{{9 \over 5} \ i}} \end{array} \right] $$ @@ -10558,7 +10533,7 @@ $$ \ {y \sp 2} \ z}+{{\left[ \begin{array}{cc} 0 & 0 \\ -\displaystyle{{3 \over 7} \ i} & 0 +{{3 \over 7} \ i} & 0 \end{array} \right]} \ {y \sp 4}}+{{\left[ @@ -10569,8 +10544,8 @@ $$ \right]} \ x}+{\left[ \begin{array}{cc} --\displaystyle{{3 \over 4} \ i} & \displaystyle{1 \over 2} \\ -0 & \displaystyle{{12} -{{9 \over 5} \ i}} +-{{3 \over 4} \ i} & {1 \over 2} \\ +0 & {{12} -{{9 \over 5} \ i}} \end{array} \right]} $$ @@ -10592,7 +10567,7 @@ $$ \ {y \sp 2} \ z}+{{\left[ \begin{array}{cc} 0 & 0 \\ -\displaystyle{{3 \over 7} \ i} & 0 +{{3 \over 7} \ i} & 0 \end{array} \right]} \ {y \sp 4}}+{{\left[ @@ -10603,8 +10578,8 @@ $$ \right]} \ x}+{\left[ \begin{array}{cc} --\displaystyle{{3 \over 4} \ i} & \displaystyle{1 \over 2} \\ -0 & \displaystyle{{12} -{{9 \over 5} \ i}} +-{{3 \over 4} \ i} & {1 \over 2} \\ +0 & {{12} -{{9 \over 5} \ i}} \end{array} \right]} $$ @@ -10624,7 +10599,7 @@ $$ \ {y \sp 2} \ z}+{{\left[ \begin{array}{cc} 0 & 0 \\ -\displaystyle{{3 \ i} \over 7} & 0 +{{3 \ i} \over 7} & 0 \end{array} \right]} \ {y \sp 4}}+{{\left[ @@ -10635,8 +10610,8 @@ $$ \right]} \ x}+{\left[ \begin{array}{cc} --\displaystyle{{3 \ i} \over 4} & \displaystyle{1 \over 2} \\ -0 & \displaystyle{{{60} -{9 \ i}} \over 5} +-{{3 \ i} \over 4} & {1 \over 2} \\ +0 & {{{60} -{9 \ i}} \over 5} \end{array} \right]} $$ @@ -10979,8 +10954,8 @@ by calling \spadfunFrom{map}{MatrixCategoryFunctions2} with the $$ \left[ \begin{array}{cc} -\displaystyle{1 \over 8} & \displaystyle{1 \over 6} \\ --\displaystyle{1 \over 4} & \displaystyle{1 \over 9} +{1 \over 8} & {1 \over 6} \\ +-{1 \over 4} & {1 \over 9} \end{array} \right] $$ @@ -10991,8 +10966,8 @@ We could have been a bit less verbose and used abbreviations. $$ \left[ \begin{array}{cc} -\displaystyle{1 \over 8} & \displaystyle{1 \over 6} \\ --\displaystyle{1 \over 4} & \displaystyle{1 \over 9} +{1 \over 8} & {1 \over 6} \\ +-{1 \over 4} & {1 \over 9} \end{array} \right] $$ @@ -11004,8 +10979,8 @@ We can just say this. $$ \left[ \begin{array}{cc} -\displaystyle{1 \over 8} & \displaystyle{1 \over 6} \\ --\displaystyle{1 \over 4} & \displaystyle{1 \over 9} +{1 \over 8} & {1 \over 6} \\ +-{1 \over 4} & {1 \over 9} \end{array} \right] $$ @@ -14348,7 +14323,7 @@ Addison-Wesley, New York ISBN 0-201-52983-1 \bibitem{6} Ramsey, Norman ``Noweb -- A Simple, Extensible Tool for Literate Programming''\\ {\bf http://www.eecs.harvard.edu/ $\tilde{}$nr/noweb} -\bibitem{7} Daly, Timothy, ``The Axiom Literate Documentation''\\ +\bibitem{7} Daly, Timothy, "The Axiom Literate Documentation"\\ {\bf http://axiom.axiom-developer.org/axiom-website/documentation.html} \end{thebibliography} \printindex diff --git a/books/bookvol2.pamphlet b/books/bookvol2.pamphlet index bdb7a4e..60bcb0c 100644 --- a/books/bookvol2.pamphlet +++ b/books/bookvol2.pamphlet @@ -181,7 +181,7 @@ maps all of the dots in C to a single dot in D and all of the arrows in C to the identity arrow in D. The category CommutativeRing R can be mapped to a Group with the functor -$GL_n$ which is the group of invertible N$\times$N matrices with entries in +$GL_n$ which is the group of invertible NxN matrices with entries in the CommutativeRing R. \section{Monoids and Groups} @@ -371,7 +371,7 @@ Addison-Wesley, New York ISBN 0-201-52983-1 \bibitem{6} Ramsey, Norman ``Noweb -- A Simple, Extensible Tool for Literate Programming''\\ {\bf http://www.eecs.harvard.edu/ $\tilde{}$nr/noweb} -\bibitem{7} Daly, Timothy, ``The Axiom Literate Documentation''\\ +\bibitem{7} Daly, Timothy, "The Axiom Literate Documentation"\\ {\bf http://axiom.axiom-developer.org/axiom-website/documentation.html} \end{thebibliography} \printindex diff --git a/books/bookvol4.pamphlet b/books/bookvol4.pamphlet index 712ac4b..5e743fb 100644 --- a/books/bookvol4.pamphlet +++ b/books/bookvol4.pamphlet @@ -1829,8 +1829,14 @@ so HermiteIntegrate did nothing to the input. Next we call normalHermiteIntegrate which is a local function \section{Tools} +\subsection{svn} +SVN is a source control system on all platforms. Axiom 'silver' is +maintained in an SVN archive on sourceforge. This can be pulled from: +\begin{verbatim} +svn co https://axiom.svn.sf.net/svnroot/axiom/trunk/axiom axiom +\end{verbatim} \subsection{git} -Git is a unix-based source code control system. Axiom silver is +Git is a unix-based source code control system. Axiom 'silver' is maintained in a git archive. This can be pulled from: \begin{verbatim} git-clone ssh://git@axiom-developer.org/home/git/silver diff --git a/changelog b/changelog index 7b74567..fd73f38 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20130607 tpd src/axiom-website/patches.html 20130607.02.tpd.patch +20130607 tpd books/bookvol0 fix typos +20130607 tpd books/bookvol1 fix typos +20130607 tpd books/bookvol2 fix typos +20130607 tpd books/bookvol4 fix typos 20130607 tpd src/axiom-website/patches.html 20130607.01.tpd.patch 20130607 tpd books/ps/v81crcp20-2.2.2.1-3.eps added 20130607 tpd books/ps/v81crcp20-2.2.3.1-3.eps added diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 97cdd81..dd689e8 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -4193,6 +4193,8 @@ books/bookvol{0,1,2,4} fix typos books/bookvol5 rewrite code from br-con 20130607.01.tpd.patch books/bookvol8.1 add crc test cases +20130607.02.tpd.patch +books/bookvol{0,1,2,4} fix typos