diff --git a/books/bookvol0.pamphlet b/books/bookvol0.pamphlet index e9df36c..be3d288 100644 --- a/books/bookvol0.pamphlet +++ b/books/bookvol0.pamphlet @@ -1416,7 +1416,7 @@ floating point number to the nearest integer while the other truncates {\bf floating point} number. To extract the fractional part of a floating point number use the function {\bf fractionPart} but note that the sign of the result depends on the sign of the argument. Axiom obtains the -fractional partof $x$ using $x - truncate(x)$: +fractional part of $x$ using $x - truncate(x)$: \spadcommand{round(3.77623)} $$ @@ -1642,8 +1642,8 @@ Given that we can define expressions involving symbols, how do we actually compute the result when the symbols are assigned values? The answer is to use the {\bf eval} function which takes an expression as its first argument followed by a list of assignments. For example, to evaluate the expressions -{\bf XDummy} and {xyDummy} resulting from their respective assignments above -we type: +{\bf XDummy} and {\bf xyDummy} resulting from their respective assignments +above we type: \spadcommand{eval(xDummy,x=3)} $$ @@ -1762,7 +1762,7 @@ $$ Note that the semicolon ``;'' in the examples above allows several expressions to be entered on one line. The result of the last expression -is displayed. remember also that the percent symbol ``\%'' is used to +is displayed. Remember also that the percent symbol ``\%'' is used to represent the result of a previous calculation. To display rational numbers in a base other than 10 the function {\bf radix} @@ -1834,7 +1834,7 @@ is available and returns a partial fraction of one term. To decompose this further the numerator can be obtained using {\bf firstNumer} and the denominator with {\bf firstDenom}. The whole part of a partial fraction can be retrieved using {\bf wholePart} and the number of fractional parts can -be found using the function {\bf numberOf FractionalTerms}: +be found using the function {\bf numberOfFractionalTerms}: \spadcommand{t := partialFraction(234,40)} $$ @@ -1994,11 +1994,11 @@ include them in the object files produced and make them availabe to the end user for documentation purposes. A description is placed {\bf before} a calculation begins with three -``+++'' signs and a description placed after a calculation begins with -two plus symbols ``++''. The so-called ``plus plus'' comments are used -within the algebra files and are processed by the compiler to add -to the documentation. The so-called ``minus minus'' comments are ignored -everywhere. +``+'' signs (i.e. ``+++'') and a description placed after a calculation +begins with two plus symbols (i.e.``++''). The so-called ``plus plus'' +comments are used within the algebra files and are processed by the +compiler to add to the documentation. The so-called ``minus minus'' +comments are ignored everywhere. \subsection{Control of Result Types} In earlier sections the type of an expression was converted to another @@ -2718,7 +2718,7 @@ $$ (note that {\tt ARRAY1} is an abbreviation for the type {\tt OneDimensionalArray}.) Other types based on one-dimensional arrays are -{\tt Vector}, {\tt String}, and {tt Bits}. +{\tt Vector}, {\tt String}, and {\tt Bits}. \spadcommand{map!(i +-> i+1,a); a} $$ @@ -2899,8 +2899,8 @@ $$ There are several things to point out concerning these examples. First, although flexible arrays are mutable, making copies of these arrays creates separate entities. This can be seen by the -fact that the modification of element {\sl b.2} above did not alter -{\sl a}. Second, the {\bf merge!} function can take an extra argument +fact that the modification of element {\sl g.2} above did not alter +{\sl f}. Second, the {\bf merge!} function can take an extra argument before the two arrays are merged. The argument is a comparison function and defaults to ``{\tt <=}'' if omitted. Lastly, {\bf shrinkable} tells the system whether or not to let flexible arrays @@ -3320,7 +3320,7 @@ current block whereas {\bf break} leaves the current loop. The {\bf return} statement leaves the current function. To skip the rest of a loop body and continue the next iteration of the loop -use the {\bf iterate} statement (the -- starts a comment in Axiom) +use the {\bf iterate} statement (the {\tt --} starts a comment in Axiom) \begin{verbatim} i := 0 repeat @@ -3595,8 +3595,8 @@ for w in ["This", "is", "your", "life!"] repeat The second form of the {\bf for} loop syntax includes a ``{\bf such that}'' clause which must be of type {\bf Boolean}: \begin{center} -for {\sl var} | {\sl BoolExpr} in {\sl seg} repeat {\sl loopBody}\\ -for {\sl var} | {\sl BoolExpr} in {\sl list} repeat {\sl loopBody} +for {\sl var} in {\sl seg} \textbar\ {\sl BoolExpr} repeat {\sl loopBody}\\ +for {\sl var} in {\sl list} \textbar\ {\sl BoolExpr} repeat {\sl loopBody} \end{center} Some examples are: \begin{verbatim} @@ -4262,7 +4262,7 @@ is the same as if you had entered Axiom statements in an input file (see \sectionref{ugInOutIn}) -can use indentation to indicate the program structure . +can use indentation to indicate the program structure. (see \sectionref{ugLangBlocks}). \subsection{Comments} @@ -4337,7 +4337,7 @@ $$ $$ \returnType{Type: Fraction Integer} -To factor fractions, you have to pmap {\bf factor} onto the numerator +To factor fractions, you have to map {\bf factor} onto the numerator and denominator. \spadcommand{map(factor,r)} @@ -4870,17 +4870,17 @@ $$ $$ \returnType{Type: FlexibleArray Integer} -Flexible arrays are used to implement ``heaps.'' A {\it heap} is an -example of a data structure called a {\it priority queue}, where -elements are ordered with respect to one another. A heap +Flexible arrays are used to implement ``heaps.'' A {\it heap} \footnote{\domainref{Heap}} +is an example of a data structure called a {\it priority queue}, where +elements are ordered with respect to one another. A heap is organized so as to optimize insertion and extraction of maximum elements. The {\bf extract!} operation returns the maximum element of the heap, after destructively removing that element and reorganizing the heap so that the next maximum element is ready to be delivered. -An easy way to create a heap is to apply the operation {\it heap} +An easy way to create a heap is to apply the operation {\bf heap} to a list of values. \spadcommand{h := heap [-4,7,11,3,4,-7]} $$ @@ -4904,16 +4904,16 @@ $$ A {\it binary tree} is a ``tree'' with at most two branches \index{tree} per node: it is either empty, or else is a node consisting of a value, and a left and right subtree (again, binary -trees). \footnote{\domainref{BinarySearchTree}} +trees). Examples of binary tree types are {\tt BinarySearchTree}, {\tt PendantTree}, {\tt TournamentTree}, and {\tt BalancedBinaryTree}. -\footnote{\domainref{BalancedBinaryTree}} + A {\it binary search tree} is a binary tree such that, \index{tree!binary search} for each node, the value of the node is \index{binary search tree} greater than all values (if any) in the left subtree, and less than or equal all values (if any) in the right -subtree. +subtree. \footnote{\domainref{BinarySearchTree}} \spadcommand{binarySearchTree [5,3,2,9,4,7,11]} $$ \left[ @@ -4926,6 +4926,7 @@ $$ \returnType{Type: BinarySearchTree PositiveInteger} A {\it balanced binary tree} is useful for doing modular computations. +\footnote{\domainref{BalancedBinaryTree}} \index{balanced binary tree} Given a list $lm$ of moduli, \index{tree!balanced binary} {\bf modTree}$(a,lm)$ produces a balanced binary tree with the values $a \bmod m$ at its leaves. @@ -4944,7 +4945,7 @@ corresponding structure like streams for infinite collections. Create sets using braces ``\{`` and ``\}'' rather than brackets. -\spadcommand{fs := set[1/3,4/5,-1/3,4/5]} +\spadcommand{fs := set [1/3,4/5,-1/3,4/5]} $$ \left\{ -{\frac{1}{3}}, {\frac{1}{3}}, {\frac{4}{5}} @@ -24953,8 +24954,8 @@ and using member? we can test if the stack holds a given element: member?(14,a) true \end{verbatim} -Also see \domainref{Stack}, \domainref{Queue}, \domainref{Dequeue}, -\domainref{Heap}, and \domainref{BagAggregate} +Also see \domainref{Stack}, \domainref{Queue}, \domainref{Dequeue} and +\domainref{Heap}. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \domainhead{AssociationList} @@ -25296,7 +25297,7 @@ $$ \returnType{Type: Union(Record(particular: Expression Integer, basis: List Expression Integer),...)} -See \sectionref{ugProblemDEQPage} +See \sectionref{ugProblemDEQ} for this kind of use of {\tt BasicOperator}. Use the single argument form of \spadfunFrom{operator}{BasicOperator} @@ -27439,7 +27440,7 @@ $$ $$ \returnType{Type: Complex Fraction Integer} -Use a conversion (see \sectionref{ugTypesConvertPage}) +Use a conversion (see \sectionref{ugTypesConvert}) to view the last object as a fraction of complex integers. \spadcommand{\% :: Fraction Complex Integer } @@ -29558,8 +29559,8 @@ Gr\"{o}bner basis calculations which can be very sensitive to term ordering. For more information on related topics, see -\sectionref{ugIntroVariablesPage}, -\sectionref{ugTypesConvertPage}, +\sectionref{ugIntroVariables}, +\sectionref{ugTypesConvert}, \domainref{Polynomial}, \domainref{UnivariatePolynomial}, and \domainref{MultivariatePolynomial}. @@ -30098,7 +30099,7 @@ $$ $$ \returnType{Type: Expression Integer} -See \sectionref{ugIntroCalcDerivPage} +See \sectionref{ugIntroCalcDeriv} for more examples of expressions and derivatives. \spadcommand{D(e, [x, y], [1, 2]) } @@ -30137,12 +30138,12 @@ $$ \returnType{Type: Expression Integer} See -\sectionref{ugIntroCalcLimitsPage} and -\sectionref{ugIntroSeriesPage} for more examples of expressions and +\sectionref{ugIntroCalcLimits} and +\sectionref{ugIntroSeries} for more examples of expressions and calculus. Differential equations involving expressions are discussed -in \sectionref{ugProblemDEQPage} on page~\pageref{ugProblemDEQPage}. +in \sectionref{ugProblemDEQ} on page~\pageref{ugProblemDEQ}. Chapter 8 has many advanced examples: see -\sectionref{ugProblemIntegrationPage} +\sectionref{ugProblemIntegration} for a discussion of Axiom's integration facilities. When an expression involves no ``symbol kernels'' (for example, @@ -30234,7 +30235,7 @@ $$ $$ \returnType{Type: Expression Integer} -See \sectionref{ugUserRulesPage} for +See \sectionref{ugUserRules} for examples of how to write your own rewrite rules for expressions. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -30485,7 +30486,7 @@ $$ \returnType{Type: Boolean} Another way to get the zero and one factored objects is to use -package calling (see \sectionref{ugTypesPkgCallPage}). +package calling (see \sectionref{ugTypesPkgCall}). \spadcommand{0\$Factored(Integer)} $$ @@ -30675,7 +30676,7 @@ $$ \returnType{Type: Union("nil",...)} For more information about factored objects and their use, see -\domainref{Factored} and \sectionref{ugProblemGaloisPage}. +\domainref{Factored} and \sectionref{ugProblemGalois}. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \domainhead{File} @@ -31163,7 +31164,7 @@ Arbitrary-precision floating-point arithmetic typically takes twenty to two hundred times more time than hardware floating point. For more information about Axiom's numeric and graphic facilities, see -\sectionref{ugGraphPage}, \sectionref{ugProblemNumeric}, and +\sectionref{ugGraph}, \sectionref{ugProblemNumeric}, and \domainref{DoubleFloat}. \subsection{Introduction to Float} @@ -31201,7 +31202,7 @@ $$ \subsection{Conversion Functions} -You can use conversion (\sectionref{ugTypesConvertPage} to +You can use conversion (\sectionref{ugTypesConvert} to go back and forth between {\tt Integer}, {\tt Fraction Integer} and {\tt Float}, as appropriate. @@ -31432,6 +31433,7 @@ This resets the output printing to the default behavior. \returnType{Type: Void} \subsection{An Example: Determinant of a Hilbert Matrix} +\label{ugxFloatHilbert} Consider the problem of computing the determinant of a {\tt 10} by {\tt 10} Hilbert matrix. The $(i,j)$-th entry of a Hilbert @@ -31652,7 +31654,7 @@ $$ $$ \returnType{Type: Complex Fraction Integer} -Conversion is discussed in detail in \sectionref{ugTypesConvertPage}. +Conversion is discussed in detail in \sectionref{ugTypesConvert}. \spadcommand{g :: FRAC COMPLEX INT } $$ @@ -32666,7 +32668,7 @@ Axiom provides many operations for manipulating arbitrary precision integers. In this section we will show some of those that come from {\tt Integer} itself plus some that are implemented in other packages. More examples of using integers are in the following sections: -\sectionref{ugIntroNumbersPage}, +\sectionref{ugIntroNumbers}, \domainref{IntegerNumberTheoryFunctions}, \domainref{DecimalExpansion}, \domainref{BinaryExpansion}, \domainref{HexadecimalExpansion}, and \domainref{RadixExpansion}. @@ -32906,7 +32908,7 @@ $$ One integer is evenly divisible by another if the remainder is zero. The operation \spadfunFrom{exquo}{Integer} can also be used. See -\sectionref{ugTypesUnionsPage} for an example. +\sectionref{ugTypesUnions} for an example. \spadcommand{zero?(167604736446952 rem 2003644)} $$ @@ -41467,7 +41469,7 @@ $$ $$ \returnType{Type: SquareMatrix(2,Integer)} -For more information, see \sectionref{ugUserMakePage}. +For more information, see \sectionref{ugUserMake}. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \domainhead{MappingPackage1} @@ -42272,9 +42274,9 @@ $$ \returnType{Type: Matrix Integer} For more information on related topics, see -\sectionref{ugIntroTwoDimPage}, -\sectionref{ugProblemEigenPage}, -\sectionref{ugxFloatHilbertPage}, +\sectionref{ugIntroTwoDim}, +\sectionref{ugProblemEigen}, +\sectionref{ugxFloatHilbert}, \domainref{Permanent}, \domainref{Vector}, \domainref{OneDimensionalArray}, and \domainref{TwoDimensionalArray}. @@ -44033,7 +44035,7 @@ to think of solving problems in general ways. Axiom facilities for factoring polynomials created with {\tt Polynomial} are currently restricted to the integer and rational number coefficient cases. There are more complete facilities for factoring univariate -polynomials: see \sectionref{ugProblemFactorPage}. +polynomials: see \sectionref{ugProblemFactor}. The standard arithmetic operations are available for polynomials. @@ -44554,6 +44556,113 @@ $$ \returnType{Type: Quaternion Fraction Integer} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\domainhead{Queue} + +A queue is an aggregate structure which allows insertion at the back of +the queue, deletion at the front of the queue and inspection of the +front element. Queues are similar to a line of people where you can +join the line at the back, leave the line at the front, or see the +person in the front of the line. + +Queues can be created from a list of elements using the {\bf queue} +function. + +\spadcommand{a:Queue INT:= queue [1,2,3,4,5]} +$$ +[1,2,3,4,5] +$$ +\returnType{Type: Queue Integer} + +An empty queue can be created using the {\bf empty} function. + +\spadcommand{a:Queue INT:= empty()} +$$ +[] +$$ +\returnType{Type: Queue Integer} + +The {\bf empty?} function will return {\tt true} if the queue contains +no elements. + +\spadcommand{empty? a} +$$ +true +$$ +\returnType{Type: Boolean} + +Queues modify their arguments so they use the exclamation mark ``!'' +as part of the function name. + +The {\bf dequeue!} operation removes the front element of the queue and +returns it. The queue is one element smaller. The {\bf extract!} does +the same thing with a different name. + +\spadcommand{a:Queue INT:= queue [1,2,3,4,5]} +$$ +[1,2,3,4,5] +$$ +\returnType{Type: Queue Integer} + +\spadcommand{dequeue! a} +$$ +1 +$$ +\returnType{Type: PositiveInteger} + +\spadcommand{a} +$$ +[2,3,4,5] +$$ +\returnType{Type: Queue Integer} + +The {\bf enqueue!} function adds a new element to the back of the +queue and returns the element that was pushed. The queue is one +element larger. The {\bf insert!} function does the same thing with a +different name. + +\spadcommand{a:Queue INT:= queue [1,2,3,4,5]} +$$ +[1,2,3,4,5] +$$ +\returnType{Type: Queue Integer} + +\spadcommand{enqueue!(9,a)} +$$ +9 +$$ +\returnType{Type: PositiveInteger} + +\spadcommand{a} +$$ +[1,2,3,4,5,9] +$$ +\returnType{Type: Queue Integer} + +To read the top element without changing the queue use the {\bf front} +function. + +\spadcommand{a:Queue INT:= queue [1,2,3,4,5]} +$$ +[1,2,3,4,5] +$$ +\returnType{Type: Queue Integer} + +\spadcommand{front a} +$$ +1 +$$ +\returnType{Type: PositiveInteger} + +\spadcommand{a} +$$ +[1,2,3,4,5] +$$ +\returnType{Type: Queue Integer} + +For more information on related topics, see Stack +\sectionref{Stack}. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \domainhead{RadixExpansion} It possible to expand numbers in general bases. @@ -47397,7 +47506,7 @@ $$ To avoid confusion with {\tt Integer}, which is the default type for integers, you usually need to work with declared variables -(\sectionref{ugTypesDeclarePage}). +(\sectionref{ugTypesDeclare}). \ldots \spadcommand{a := 1234 :: SingleInteger } @@ -47406,7 +47515,7 @@ $$ $$ \returnType{Type: SingleInteger} -or use package calling (\sectionref{ugTypesPkgCallPage}). +or use package calling (\sectionref{ugTypesPkgCall}). \spadcommand{b := 124\$SingleInteger } $$ @@ -47483,7 +47592,7 @@ $$ Many other operations are available for small integers, including many of those provided for {\tt Integer}. To see the other operations, use -the Browse HyperDoc facility (\sectionref{ugBrowsePage}) +the Browse HyperDoc facility (\sectionref{ugBrowse}) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \domainhead{SparseTable} @@ -47675,7 +47784,7 @@ $$ \returnType{Type: SquareMatrix(2,Polynomial Complex Integer)} For more information on related topics, see -\sectionref{ugTypesWritingModesPage}, \sectionref{ugTypesExposePage}, +\sectionref{ugTypesWritingModes}, \sectionref{ugTypesExpose}, and \domainref{Matrix}. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -48072,6 +48181,111 @@ NewSparseMultivariatePolynomial(Integer, OrderedVariableList [x,y,z,t])))} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\domainhead{Stack} + +A stack is an aggregate structure which allows insertion, deletion, and +inspection of the ``top'' element. Stacks are similar to any pile of +paper where you can only add to the pile, remove the top paper from +the pile, or read the top paper. + +Stacks can be created from a list of elements using the {\bf stack} +function. + +\spadcommand{a:Stack INT:= stack [1,2,3,4,5]} +$$ +[1,2,3,4,5] +$$ +\returnType{Type: Stack Integer} + +An empty stack can be created using the {\bf empty} function. + +\spadcommand{a:Stack INT:= empty()} +$$ +[] +$$ +\returnType{Type: Stack Integer} + +The {\bf empty?} function will return {\tt true} if the stack contains +no elements. + +\spadcommand{empty? a} +$$ +true +$$ +\returnType{Type: Boolean} + +Stacks modify their arguments so they use the exclamation mark ``!'' +as part of the function name. + +The {\bf pop!} function removes the top element of the stack and +returns it. The stack is one element smaller. The {\bf extract!} +function does the same thing with a different name. + +\spadcommand{a:Stack INT:= stack [1,2,3,4,5]} +$$ +[1,2,3,4,5] +$$ +\returnType{Type: Stack Integer} + +\spadcommand{pop! a} +$$ +1 +$$ +\returnType{Type: PositiveInteger} + +\spadcommand{a} +$$ +[2,3,4,5] +$$ +\returnType{Type: Stack Integer} + +The {\bf push!} operation adds a new top element to the stack and returns +the element that was pushed. The stack is one element larger. +The {\bf insert!} does the same thing with a different name. + +\spadcommand{a:Stack INT:= stack [1,2,3,4,5]} +$$ +[1,2,3,4,5] +$$ +\returnType{Type: Stack Integer} + +\spadcommand{push!(9,a)} +$$ +9 +$$ +\returnType{Type: PositiveInteger} + +\spadcommand{a} +$$ +[9,1,2,3,4,5] +$$ +\returnType{Type: Stack Integer} + +To read the top element without changing the stack use the {\bf top} +function. + +\spadcommand{a:Stack INT:= stack [1,2,3,4,5]} +$$ +[1,2,3,4,5] +$$ +\returnType{Type: Stack Integer} + +\spadcommand{top a} +$$ +1 +$$ +\returnType{Type: PositiveInteger} + +\spadcommand{a} +$$ +[1,2,3,4,5] +$$ +\returnType{Type: Stack Integer} + +For more information on related topics, see Queue +\sectionref{Queue}. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \domainhead{Stream} A {\tt Stream} object is represented as a list whose last element @@ -48193,8 +48407,8 @@ $$ The packages {\tt StreamFunctions1}, {\tt StreamFunctions2} and {\tt StreamFunctions3} export some useful stream manipulation operations. -For more information, see \sectionref{ugLangItsPage}, -\sectionref{ugProblemSeriesPage}, +For more information, see \sectionref{ugLangIts}, +\sectionref{ugProblemSeries}, \domainref{ContinuedFraction}, and \domainref{List}. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -49094,7 +49308,7 @@ The {\tt TwoDimensionalArray} domain is used for storing data in a two dimensional data structure indexed by row and by column. Such an array is a homogeneous data structure in that all the entries of the array must belong to the same Axiom domain (although see -\sectionref{ugTypesAnyNonePage}. Each +\sectionref{ugTypesAnyNone}. Each array has a fixed number of rows and columns specified by the user and arrays are not extensible. In Axiom, the indexing of two-dimensional arrays is one-based. This means that both the ``first'' row of an @@ -49999,12 +50213,12 @@ $$ $$ \returnType{Type: UnivariatePolynomial(b1,Fraction Polynomial Integer)} -See \sectionref{ugProblemFactorPage} +See \sectionref{ugProblemFactor} for a discussion of the factorization facilities in Axiom for univariate polynomials. For more information on related topics, see -\sectionref{ugIntroVariablesPage}, -\sectionref{ugTypesConvertPage}, +\sectionref{ugIntroVariables}, +\sectionref{ugTypesConvert}, \domainref{Polynomial}, \domainref{MultivariatePolynomial}, and \domainref{DistributedMultivariatePolynomial}. @@ -59978,7 +60192,7 @@ As you see, the operation {\bf inverse} is exported. \label{ugBrowseMiscellaneousFeatures} \subsection{The Description Page for Operations} -\label{ugBrowseDescriptionPage} +\label{ugBrowseDescription} From the constructor page of {\tt Matrix}, click on {\bf Operations} to bring up the table of operations @@ -60323,7 +60537,7 @@ used to represent mathematical symbols is given in Introduction to NAG On-Line Documentation \index{manpageXXonline}. Advice about choosing a routine from a particular {\em chapter} can be found in -the Chapter Documents \index{FoundationLibraryDocPage}. +the Chapter Documents \index{FoundationLibraryDoc}. % ---------------------------------------------------------------------- \subsubsection{Correspondence Between Fortran and Axiom types} @@ -60474,6 +60688,7 @@ example for that routine. % ---------------------------------------------------------------------- \subsection{Providing values for Argument Subprograms} +\label{aspSection} \index{aspSection} % ---------------------------------------------------------------------- @@ -60565,6 +60780,7 @@ d01ajf(0.0 ,1.0, 0.0, 1.0e-5, 800, 200, -1, "asp.f") % ---------------------------------------------------------------------- \subsection{General Fortran-generation utilities in Axiom} +\label{generalFortran} \index{generalFortran} % ---------------------------------------------------------------------- @@ -61002,7 +61218,7 @@ by the {\tt nagd} daemon process which may run on a different host. The {\tt nagman} local agent is started by default whenever you start Axiom. The {\tt nagd} server must be started separately. Instructions for installing and running the server are supplied -in \sectionref{nugNagd}. +in by NAG. Use the {\tt )set naglink host} system command to point your local agent to a server in your network. @@ -61511,6 +61727,7 @@ browser in order to see correct mathML mathematics output. See the faq file for details. \section{)cd} +\label{ugSysCmdcd} \index{ugSysCmdcd} \index{cd} @@ -61690,6 +61907,7 @@ system function and constructor caches. \section{)compile} +\label{ugSysCmdcompile} \index{ugSysCmdcompile} \index{compile} @@ -62652,6 +62870,8 @@ command may be used to drop out of Axiom into Common Lisp. This command is obsolete. Use {\tt )library} instead. \section{)trace} +\label{ugSysCmdtrace} +\label{ugSysCmdltrace} \index{ugSysCmdltrace} \index{ltrace} @@ -62834,6 +63054,7 @@ The {\tt )quiet} option suppresses output while the file is being read. \section{)set} +\label{ugSysCmdset} \index{ugSysCmdset} \index{set} @@ -63466,6 +63687,7 @@ lines of your program. \section{)what} \index{ugSysCmdwhat} +\label{ugSysCmdwhat} \index{what} diff --git a/books/bookvol1.pamphlet b/books/bookvol1.pamphlet index 8a65b54..5281098 100644 --- a/books/bookvol1.pamphlet +++ b/books/bookvol1.pamphlet @@ -1756,7 +1756,7 @@ is the same as if you had entered \end{verbatim} Axiom statements in an {\bf input} file -can use indentation to indicate the program structure . +can use indentation to indicate the program structure. \subsection{Comments} \label{sec:Comments} @@ -1899,7 +1899,7 @@ floating point number to the nearest integer while the other truncates {\bf floating point} number. To extract the fractional part of a floating point number use the function {\bf fractionPart} but note that the sign of the result depends on the sign of the argument. Axiom obtains the -fractional partof $x$ using $x - truncate(x)$: +fractional part of $x$ using $x - truncate(x)$: \index{round} \spadcommand{round(3.77623)} @@ -2307,7 +2307,7 @@ $$ \index{; output suppression} Note that the semicolon ``;'' in the examples above allows several expressions to be entered on one line. The result of the last expression -is displayed. remember also that the percent symbol ``\%'' is used to +is displayed. Remember also that the percent symbol ``\%'' is used to represent the result of a previous calculation. To display rational numbers in a base other than 10 the function {\bf radix} @@ -2387,7 +2387,7 @@ is available and returns a partial fraction of one term. To decompose this further the numerator can be obtained using {\bf firstNumer} and the denominator with {\bf firstDenom}. The whole part of a partial fraction can be retrieved using {\bf wholePart} and the number of fractional parts can -be found using the function {\bf numberOf FractionalTerms}: +be found using the function {\bf numberOfFractionalTerms}: \spadcommand{t := partialFraction(234,40)} $$ @@ -2561,11 +2561,11 @@ include them in the object files produced and make them available to the end user for documentation purposes. A description is placed {\bf before} a calculation begins with three -``+++'' signs and a description placed after a calculation begins with -two plus signs ``++''. The so-called ``plus plus'' comments are used -within the algebra files and are processed by the compiler to add -to the documentation. The so-called ``minus minus'' comments are ignored -everywhere. +``+'' signs (i.e. ``+++'') and a description placed after a calculation +begins with two plus symbols (i.e.``++''). The so-called ``plus plus'' +comments are used within the algebra files and are processed by the +compiler to add to the documentation. The so-called ``minus minus'' +comments are ignored everywhere. \subsection{Control of Result Types} \index{:: conversion} @@ -4161,7 +4161,7 @@ statement leaves the current function. \index{iterate} To skip the rest of a loop body and continue the next iteration of the loop -use the {\bf iterate} statement (the -- starts a comment in Axiom) +use the {\bf iterate} statement (the {\tt --} starts a comment in Axiom) \begin{verbatim} i := 0 repeat @@ -4465,8 +4465,8 @@ for w in ["This", "is", "your", "life!"] repeat The second form of the {\bf for} loop syntax includes a ``{\bf such that}'' clause which must be of type {\bf Boolean}: \begin{center} -for {\sl var} | {\sl BoolExpr} in {\sl seg} repeat {\sl loopBody}\\ -for {\sl var} | {\sl BoolExpr} in {\sl list} repeat {\sl loopBody} +for {\sl var} in {\sl seg} \textbar\ {\sl BoolExpr} repeat {\sl loopBody}\\ +for {\sl var} in {\sl list} \textbar\ {\sl BoolExpr} repeat {\sl loopBody} \end{center} We can iterate over a segment \begin{verbatim} @@ -4672,7 +4672,7 @@ $$ $$ \returnType{Type: Fraction Integer} -To factor fractions, you have to pmap {\bf factor} onto the numerator +To factor fractions, you have to map {\bf factor} onto the numerator and denominator. \index{map} @@ -5245,7 +5245,7 @@ returns the maximum element of the heap, after destructively removing that element and reorganizing the heap so that the next maximum element is ready to be delivered. -An easy way to create a heap is to apply the operation {\it heap} +An easy way to create a heap is to apply the operation {\bf heap} to a list of values. \index{heap} \spadcommand{h := heap [-4,7,11,3,4,-7]} @@ -5318,7 +5318,7 @@ corresponding structure like streams for infinite collections. Create sets using braces ``\{`` and ``\}'' rather than brackets. \index{set} -\spadcommand{fs := set[1/3,4/5,-1/3,4/5]} +\spadcommand{fs := set [1/3,4/5,-1/3,4/5]} $$ \left\{ -{1 \over 3}, {1 \over 3}, {4 \over 5} diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index 2d780fb..5e4556e 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -319,9 +319,9 @@ of effort. We would like to acknowledge and thank the following people: "Gary Cornell Meino Cramer Claire Di Crescenzo" "David Cyganski" "Timothy Daly Sr. Timothy Daly Jr. James H. Davenport" -"Didier Deshommes Michael Dewar" -"Jean Della Dora Gabriel Dos Reis Claire DiCrescendo" -"Sam Dooley Lionel Ducos Martin Dunstan" +"Didier Deshommes Michael Dewar Jean Della Dora" +"Gabriel Dos Reis Claire DiCrescendo Sam Dooley" +"Lionel Ducos Lee Duhem Martin Dunstan" "Brian Dupee Dominique Duval" "Robert Edwards Heow Eide-Goodman Lars Erickson" "Richard Fateman Bertfried Fauser Stuart Feldman" @@ -10782,7 +10782,7 @@ If the frame is found we return the environment portion of the frame otherwise we construct an empty environment and return it. The initial values of an empty frame are created here. This function returns a single frame that will be placed in the frame ring. -\calls{frameEnvironment}{frameinteractive} +\calls{frameEnvironment}{frameInteractive} <>= (defun |frameEnvironment| (fname) "Get Named Frame Environment (aka Interactive)" @@ -10899,7 +10899,7 @@ of the interesting interpreter data structures from that frame. Each frame contains its name as the 0th element. We simply walk all the frames and if we find one we return it. \calls{findFrameInRing}{boot-equal} -\calls{findFrameInRing}{framename} +\calls{findFrameInRing}{frameName} \usesdollar{findFrameInRing}{interpreterFrameRing} <>= (defun |findFrameInRing| (name) diff --git a/books/bookvol7.1.pamphlet b/books/bookvol7.1.pamphlet index 324d395..50c7d72 100644 --- a/books/bookvol7.1.pamphlet +++ b/books/bookvol7.1.pamphlet @@ -21057,7 +21057,7 @@ Reset \spadfunFrom{digits}{Float} to its default value. \tab{5}\spadcommand{digits 20} \end{paste}\end{patch} -f@ +@ \section{fname.ht} \pagehead{FileNameXmpPage}{fname.ht}{FileName} <>= @@ -69961,7 +69961,7 @@ structure like streams for infinite collections. %Create sets using braces (\axiomSyntax{\{} and \axiomSyntax{\}}) %rather than brackets. }{ -\spadpaste{fs := set[1/3,4/5,-1/3,4/5] \bound{fs}} +\spadpaste{fs := set [1/3,4/5,-1/3,4/5] \bound{fs}} } A \spadgloss{multiset} diff --git a/changelog b/changelog index 47ae9ce..6759e97 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,10 @@ +20091219 tpd src/axiom-website/patches.html 20091219.01.lxd.patch +20091219 lxd books/bookvol7.1 fix typos +20091219 lxd books/bookvol1 fix typos +20091219 lxd books/bookvol0 fix typos +20091219 tpd books/bookvol5 add Lee Duham to credits list +20091219 tpd readme add Lee Duham to credits list +20091219 lxd Lee Duhem 20091218 tpd src/axiom-website/patches.html 20091218.03.tpd.patch 20091218 tpd src/interp/Makefile remove cformat.lisp 20091218 tpd src/interp/format.lisp add documentation from cformat diff --git a/readme b/readme index f734e4a..bf76111 100644 --- a/readme +++ b/readme @@ -204,9 +204,9 @@ at the axiom command prompt will prettyprint the list. "Gary Cornell Meino Cramer Claire Di Crescenzo" "David Cyganski" "Timothy Daly Sr. Timothy Daly Jr. James H. Davenport" -"Didier Deshommes Michael Dewar" -"Jean Della Dora Gabriel Dos Reis Claire DiCrescendo" -"Sam Dooley Lionel Ducos Martin Dunstan" +"Didier Deshommes Michael Dewar Jean Della Dora" +"Gabriel Dos Reis Claire DiCrescendo Sam Dooley" +"Lionel Ducos Lee Duhem Martin Dunstan" "Brian Dupee Dominique Duval" "Robert Edwards Heow Eide-Goodman Lars Erickson" "Richard Fateman Bertfried Fauser Stuart Feldman" diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 91e6cf9..389c28e 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2318,5 +2318,7 @@ books/bookvol5 tree shake code from cparse, posit, vmlisp
books/bookvol10.4 document RepeatedSquaring
20091218.02.tpd.patch books/bookvol5 tree shake code from cformat, remove cformat.lisp
+20091219.01.lxd.patch +books/bookvol0,1,7.1 Lee Duham fix typos, added to credits