[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] 20080728.01.tpd.patch (expand RootPage->Topics->Number
From: |
daly |
Subject: |
[Axiom-developer] 20080728.01.tpd.patch (expand RootPage->Topics->Numbers) |
Date: |
Mon, 28 Jul 2008 21:15:57 -0500 |
Expand the page documentation for RootPage->Topics->Numbers.
Fix up known broken links.
=========================================================================
diff --git a/books/bookvol7.1.pamphlet b/books/bookvol7.1.pamphlet
index e1a9dca..11ed426 100644
--- a/books/bookvol7.1.pamphlet
+++ b/books/bookvol7.1.pamphlet
@@ -2235,8 +2235,8 @@ The \spadtype{TwoDimensionalArray} domain is used for
storing data in
a \twodim{} 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
-\downlink{``\ugTypesAnyNoneTitle''}{ugTypesAnyNonePage} in Section
-\ugTypesAnyNoneNumber\ignore{ugTypesAnyNone}). Each array has a fixed
+\downlink{``The Any Domain''}{ugTypesAnyNonePage} in Section 2.6
+\ignore{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 array and the
@@ -2577,13 +2577,14 @@ answer for \texht{$12^2$}{12**2}.
@
\section{binary.ht}
\pagehead{BinaryExpansionXmpPage}{binary.ht}{BinaryExpansion}
-\pageto{notitle}{DecimalExpansionXmpPage}
-\pageto{notitle}{RadixExpansionXmpPage}
-\pageto{notitle}{HexExpansionXmpPage}
+\pagepic{ps/v71binaryexpansionxmppage.eps}{BinaryExpansionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{DecimalExpansion}{DecimalExpansionXmpPage}
+\pageto{RadixExpansion}{RadixExpansionXmpPage}
+\pageto{HexadecimalExpansion}{HexExpansionXmpPage}
<<binary.ht>>=
\begin{page}{BinaryExpansionXmpPage}{BinaryExpansion}
\beginscroll
-
All rational numbers have repeating binary expansions.
Operations to access the individual bits of a binary expansion can
be obtained by converting the value to \spadtype{RadixExpansion(2)}.
@@ -2743,8 +2744,8 @@ To solve the above equation, enter this.
}{
\spadpaste{solve(deq, y, x) \free{e1}\free{y}}
}
-See \downlink{``\ugProblemDEQTitle''}{ugProblemDEQPage}
-in Section \ugProblemDEQNumber\ignore{ugProblemDEQ}
+See \downlink{``Solution of Differential Equations''}{ugProblemDEQPage}
+in Section 8.10\ignore{ugProblemDEQ}
for this kind of use of \axiomType{BasicOperator}.
Use the single argument form of
@@ -2946,10 +2947,11 @@ Have Axiom check that these are equal.
@
\section{card.ht}
\pagehead{CardinalNumberXmpPage}{card.ht}{CardinalNumber}
+\pagepic{ps/v71cardinalnumberxmppage.eps}{CardinalNumberXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
<<card.ht>>=
\begin{page}{CardinalNumberXmpPage}{CardinalNumber}
\beginscroll
-
The \spadtype{CardinalNumber} domain can be used for values indicating
the cardinality of sets, both finite and infinite.
For example, the \spadfunFrom{dimension}{VectorSpace} operation in the
@@ -3997,12 +3999,13 @@ for t in 1..4]) \bound{lhs}\free{g gam m n r s}}
@
\section{complex.ht}
\pagehead{ComplexXmpPage}{complex.ht}{Complex}
-\pageto{notitle}{ugProblemNumericPage}
+\pagepic{ps/v71complexxmppage.eps}{ComplexXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Numeric Functions}{ugProblemNumericPage}
\pageto{notitle}{ugTypesConvertPage}
<<complex.ht>>=
\begin{page}{ComplexXmpPage}{Complex}
\beginscroll
-
The \spadtype{Complex} constructor implements complex objects over a
commutative ring \spad{R}.
Typically, the ring \spad{R} is \spadtype{Integer}, \spadtype{Fraction
@@ -4010,8 +4013,8 @@ Integer}, \spadtype{Float} or \spadtype{DoubleFloat}.
\spad{R} can also be a symbolic type, like \spadtype{Polynomial Integer}.
For more information about the numerical and graphical aspects of complex
numbers,
-see \downlink{``\ugProblemNumericTitle''}{ugProblemNumericPage} in Section
-\ugProblemNumericNumber\ignore{ugProblemNumeric}.
+see \downlink{``Numeric Functions''}{ugProblemNumericPage} in Section 8.1
+\ignore{ugProblemNumeric}.
\xtc{
Complex objects are created by the \spadfunFrom{complex}{Complex} operation.
@@ -4041,8 +4044,8 @@ If \spad{R} is a field, you can also divide the complex
objects.
\spadpaste{a / b \free{a b}\bound{adb}}
}
\xtc{
-Use a conversion (\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage}
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert}) to view the last
+Use a conversion (\downlink{``Conversion''}{ugTypesConvertPage}
+in Section 2.7\ignore{ugTypesConvert}) to view the last
object as a fraction of complex integers.
}{
\spadpaste{\% :: Fraction Complex Integer \free{adb}}
@@ -4102,21 +4105,21 @@ You can \spadfunFrom{factor}{Complex} Gaussian integers.
@
\section{contfrac.ht}
\pagehead{ContinuedFractionXmpPage}{contfrac.ht}{ContinuedFraction}
-\pageto{notitle}{StreamXmpPage}
+\pagepic{ps/v71continuedfractionxmppage.eps}{ContinuedFractionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Stream}{StreamXmpPage}
<<contfrac.ht>>=
\begin{page}{ContinuedFractionXmpPage}{ContinuedFraction}
\beginscroll
-Continued fractions have been a fascinating and useful tool in mathematics
-for well over three hundred years.
-Axiom implements continued fractions for fractions of any Euclidean
-domain.
-In practice, this usually means rational numbers.
-In this section we demonstrate some of the operations available for
-manipulating both finite and infinite continued fractions.
-It may be helpful if you review
-\downlink{`Stream'}{StreamXmpPage}\ignore{Stream} to remind yourself of some
-of the operations with streams.
+Continued fractions have been a fascinating and useful tool in
+mathematics for well over three hundred years. Axiom implements
+continued fractions for fractions of any Euclidean domain. In
+practice, this usually means rational numbers. In this section we
+demonstrate some of the operations available for manipulating both
+finite and infinite continued fractions. It may be helpful if you
+review \downlink{`Stream'}{StreamXmpPage}\ignore{Stream} to remind
+yourself of some of the operations with streams.
The \spadtype{ContinuedFraction} domain is a field and therefore you can
add, subtract, multiply and divide the fractions.
@@ -5112,14 +5115,14 @@ u=0..\%pi,v=0..2*\%pi)}
@
\section{decimal.ht}
\pagehead{DecimalExpansionXmpPage}{decimal.ht}{Decimal Expansion}
-\pageto{notitle}{BinaryExpansionXmpPage}
-\pageto{notitle}{HexExpansionXmpPage}
-\pageto{notitle}{RadixExpansionXmpPage}
+\pagepic{ps/v71decimalexpansionxmppage.eps}{DecimalExpansionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{BinaryExpansion}{BinaryExpansionXmpPage}
+\pageto{HexadecimalExpansion}{HexExpansionXmpPage}
+\pageto{RadixExpansion}{RadixExpansionXmpPage}
<<decimal.ht>>=
\begin{page}{DecimalExpansionXmpPage}{Decimal Expansion}
\beginscroll
-
-
All rationals have repeating decimal expansions.
Operations to access the individual digits of a decimal expansion can
be obtained by converting the value to \spadtype{RadixExpansion(10)}.
@@ -5386,13 +5389,14 @@ consists of the eight forms: \spad{1}, \spad{dx},
\spad{dy}, \spad{dz},
@
\section{dfloat.ht}
\pagehead{DoubleFloatXmpPage}{dfloat.ht}{DoubleFloat}
-\pageto{notitle}{ugGraphPage}
-\pageto{notitle}{ugProblemNumericPage}
-\pageto{notitle}{FloatXmpPage}
+\pagepic{ps/v71doublefloatxmppage.eps}{DoubleFloatXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Graphics}{ugGraphPage}
+\pageto{Numeric Functions}{ugProblemNumericPage}
+\pageto{Float}{FloatXmpPage}
<<dfloat.ht>>=
\begin{page}{DoubleFloatXmpPage}{DoubleFloat}
\beginscroll
-
Axiom provides two kinds of floating point numbers.
The domain \spadtype{Float} (abbreviation \spadtype{FLOAT})
implements a model of arbitrary
@@ -5484,10 +5488,10 @@ By far, the most common usage of \spadtype{DoubleFloat}
is for functions
to be graphed.
For more information about Axiom's numerical and graphical
facilities, see
-\downlink{``\ugGraphTitle''}{ugGraphPage} in Section \ugGraphNumber
+\downlink{``Graphics''}{ugGraphPage} in Section 7.
\ignore{ugGraph},
-\downlink{``\ugProblemNumericTitle''}{ugProblemNumericPage} in
-Section \ugProblemNumericNumber\ignore{ugProblemNumeric}, and
+\downlink{``Numeric Functions''}{ugProblemNumericPage} in
+Section 8.1\ignore{ugProblemNumeric}, and
\downlink{`Float'}{FloatXmpPage}\ignore{Float}.
\endscroll
\autobuttons
@@ -5569,10 +5573,10 @@ This flexibility is mostly important for algorithms
such as
sensitive to term ordering.
For more information on related topics, see
-\downlink{``\ugIntroVariablesTitle''}{ugIntroVariablesPage}
-in Section \ugIntroVariablesNumber\ignore{ugIntroVariables},
-\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage}
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert},
+\downlink{``Polynomials''}{ugIntroVariablesPage}
+in Section 1.9\ignore{ugIntroVariables},
+\downlink{``Conversion''}{ugTypesConvertPage}
+in Section 2.7\ignore{ugTypesConvert},
\downlink{`Polynomial'}{PolynomialXmpPage}\ignore{Polynomial},
\downlink{`UnivariatePolynomial'}{UnivariatePolyXmpPage}
\ignore{UnivariatePolynomial}, and
@@ -5947,8 +5951,8 @@ Because
}
For functions which return no value at all, use \spadtype{Void}.
-See \downlink{``\ugUserTitle''}{ugUserPage} in
-Section \ugUserNumber\ignore{ugUser} and
+See \downlink{``User-Defined Functions, Macros and Rules''}
+{ugUserPage} in Section 6\ignore{ugUser} and
\downlink{`Void'}{VoidXmpPage}\ignore{Void} for more information.
%
\showBlurb{Exit}
@@ -6607,23 +6611,23 @@ Use \axiomFunFrom{D}{Expression} to compute partial
derivatives.
\spadpaste{D(e, x) \free{e}}
}
\xtc{
-See \downlink{``\ugIntroCalcDerivTitle''}{ugIntroCalcDerivPage} in Section
-\ugIntroCalcDerivNumber\ignore{ugIntroCalcDeriv}
+See \downlink{``Derivatives''}{ugIntroCalcDerivPage} in Section 1.12
+\ignore{ugIntroCalcDeriv}
for more examples of expressions and derivatives.
}{
\spadpaste{D(e, [x, y], [1, 2]) \free{e}}
}
-See \downlink{``\ugIntroCalcLimitsTitle''}{ugIntroCalcLimitsPage}
-in Section \ugIntroCalcLimitsNumber\ignore{ugIntroCalcLimits} and
-\downlink{``\ugIntroSeriesTitle''}{ugIntroSeriesPage} in Section
-\ugIntroSeriesNumber\ignore{ugIntroSeries}
+See \downlink{``Limits''}{ugIntroCalcLimitsPage}
+in Section 1.10\ignore{ugIntroCalcLimits} and
+\downlink{``Series''}{ugIntroSeriesPage} in Section 1.11
+\ignore{ugIntroSeries}
for more examples of expressions and calculus.
Differential equations involving expressions are discussed in
-\downlink{``\ugProblemDEQTitle''}{ugProblemDEQPage} in Section
-\ugProblemDEQNumber\ignore{ugProblemDEQ}.
+\downlink{``Solution of Differential Equations''}
+{ugProblemDEQPage} in Section 8.10\ignore{ugProblemDEQ}.
Chapter 8 has many advanced examples: see
-\downlink{``\ugProblemIntegrationTitle''}{ugProblemIntegrationPage}
-in Section \ugProblemIntegrationNumber\ignore{ugProblemIntegration}
+\downlink{``Integration''}{ugProblemIntegrationPage}
+in Section 8.8\ignore{ugProblemIntegration}
for a discussion of Axiom's integration facilities.
When an expression involves no ``symbol kernels'' (for example,
@@ -6688,11 +6692,9 @@ use \axiomFun{simplify}.
}{
\spadpaste{simplify \% \free{tan6}}
}
-See \downlink{``\ugUserRulesTitle''}{ugUserRulesPage} in
-Section \ugUserRulesNumber\ignore{ugUserRules}
-for examples of how to write your own rewrite rules for
-expressions.
-
+See \downlink{``Rules and Pattern Matching''}{ugUserRulesPage} in
+Section 6.21\ignore{ugUserRules} for examples of how to write your own
+rewrite rules for expressions.
\endscroll
\autobuttons
@@ -7374,17 +7376,18 @@ For more information on related topics, see
@
\section{float.ht}
\pagehead{FloatXmpPage}{float.ht}{Float}
-\pageto{notitle}{ugGraphPage}
-\pageto{notitle}{ugProblemNumericPage}
-\pageto{notitle}{DoubleFloatXmpPage}
-\pageto{notitle}{ugxFloatIntroPage}
-\pageto{notitle}{ugxFloatConvertPage}
-\pageto{notitle}{ugxFloatOutputPage}
-\pageto{notitle}{ugxFloatHilbertPage}
+\pagepic{ps/v71floatxmppage.eps}{FloatXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Graphics}{ugGraphPage}
+\pageto{Numeric Functions}{ugProblemNumericPage}
+\pageto{DoubleFloat}{DoubleFloatXmpPage}
+\pageto{Introduction to Float}{ugxFloatIntroPage}
+\pageto{Conversion Functions}{ugxFloatConvertPage}
+\pageto{Output Functions}{ugxFloatOutputPage}
+\pageto{Determinant of a Hilbert Matrix}{ugxFloatHilbertPage}
<<float.ht>>=
\begin{page}{FloatXmpPage}{Float}
\beginscroll
-
Axiom provides two kinds of floating point numbers.
The domain \spadtype{Float} (abbreviation \spadtype{FLOAT})
implements a model of arbitrary
@@ -7405,10 +7408,10 @@ twenty to two hundred times more time than hardware
floating point.
For more information about Axiom's numeric and graphic
facilities, see
-\downlink{``\ugGraphTitle''}{ugGraphPage} in
-Section \ugGraphNumber\ignore{ugGraph},
-\downlink{``\ugProblemNumericTitle''}{ugProblemNumericPage} in
-Section \ugProblemNumericNumber\ignore{ugProblemNumeric}, and
+\downlink{``Graphics''}{ugGraphPage} in
+Section 7 \ignore{ugGraph},
+\downlink{``Numeric Functions''}{ugProblemNumericPage} in
+Section 8.1\ignore{ugProblemNumeric}, and
\downlink{`DoubleFloat'}{DoubleFloatXmpPage}\ignore{DoubleFloat}.
\beginmenu
@@ -7467,8 +7470,8 @@ numbers.
\labelSpace{3pc}
\xtc{
You can use conversion
-(\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage}
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert})
+(\downlink{``Conversion''}{ugTypesConvertPage}
+in Section 2.7\ignore{ugTypesConvert})
to go back and forth between \spadtype{Integer},
\spadtype{Fraction Integer} and \spadtype{Float}, as appropriate.
}{
@@ -7636,7 +7639,8 @@ This resets the output printing to the default behavior.
\pagehead{ugxFloatHilbertPage}{float.ht}
{An Example: Determinant of a Hilbert Matrix}
<<float.ht>>=
-\begin{page}{ugxFloatHilbertPage}{An Example: Determinant of a Hilbert Matrix}
+\begin{page}{ugxFloatHilbertPage}
+{An Example: Determinant of a Hilbert Matrix}
\beginscroll
Consider the problem of computing the determinant of a \spad{10} by \spad{10}
@@ -8036,8 +8040,8 @@ respectively.
\xtc{
Another way to get the zero and one factored objects is to use
package calling
-(see \downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage}
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall}).
+(see \downlink{``Package Calling and Target Types''}
+{ugTypesPkgCallPage} in Section 2.9\ignore{ugTypesPkgCall}).
}{
\spadpaste{0\$Factored(Integer)}
}
@@ -8199,8 +8203,8 @@ by \spadfunFrom{map}{FactoredFunctions2}.
For more information about factored objects and their use, see
\downlink{`Factored'}{FactoredXmpPage}\ignore{Factored} and
-\downlink{``\ugProblemGaloisTitle''}{ugProblemGaloisPage} in
-Section \ugProblemGaloisNumber\ignore{ugProblemGalois}.
+\downlink{``Computation of Galois Groups''}{ugProblemGaloisPage} in
+Section 8.13\ignore{ugProblemGalois}.
\endscroll
\autobuttons
\end{page}
@@ -8298,8 +8302,8 @@ moved in and out of the numerator and denominator.
}
\xtc{
Conversion is discussed in detail in
-\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage}
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert}.
+\downlink{``Conversion''}{ugTypesConvertPage}
+in Section 2.7\ignore{ugTypesConvert}.
}{
\spadpaste{g :: FRAC COMPLEX INT \free{g}}
}
@@ -11015,13 +11019,14 @@ Apply \spadfun{heapsort} to present elements in order.
@
\section{hexadec.ht}
\pagehead{HexExpansionXmpPage}{hexadec.ht}{HexadecimalExpansion}
-\pageto{notitle}{DecimalExpansionXmpPage}
-\pageto{notitle}{BinaryExpansionXmpPage}
-\pageto{notitle}{RadixExpansionXmpPage}
+\pagepic{ps/v71hexexpansionxmppage.eps}{HexExpansionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{DecimalExpansion}{DecimalExpansionXmpPage}
+\pageto{BinaryExpansion}{BinaryExpansionXmpPage}
+\pageto{RadixExpansion}{RadixExpansionXmpPage}
<<hexadec.ht>>=
\begin{page}{HexExpansionXmpPage}{HexadecimalExpansion}
\beginscroll
-
All rationals have repeating hexadecimal expansions. The operation
\spadfunFrom{hex}{HexadecimalExpansion} returns these expansions of
type \spadtype{HexadecimalExpansion}. Operations to access the
@@ -11095,8 +11100,7 @@ integers. In this section we will show some of those
that come from
\spadtype{Integer} itself plus some that are implemented in other
packages. More examples of using integers are in the following
sections:
-\downlink{``\ugIntroNumbersTitle''}{ugIntroNumbersPage} in section
-\ugIntroNumbersNumber
+\downlink{``Numbers''}{ugIntroNumbersPage} in section 1.5
\downlink{`IntegerNumberTheoryFunctions'}
{IntNumberTheoryFnsXmpPage}
\ignore{IntegerNumberTheoryFunctions},
@@ -11293,8 +11297,8 @@ remainder.
\xtc{
One integer is evenly divisible by another if the remainder is zero.
The operation \spadfunFrom{exquo}{Integer} can also be used.
-See \downlink{``\ugTypesUnionsTitle''}{ugTypesUnionsPage} in Section
-\ugTypesUnionsNumber\ignore{ugTypesUnions} for an example.
+See \downlink{``Unions''}{ugTypesUnionsPage} in Section 2.5
+\ignore{ugTypesUnions} for an example.
}{
\spadpaste{zero?(167604736446952 rem 2003644)}
}
@@ -11311,8 +11315,8 @@ quotient and remainder and thus is more efficient when
both are needed.
}
\xtc{
Records are discussed in detail in
-\downlink{``\ugTypesRecordsTitle''}{ugTypesRecordsPage} in Section
-\ugTypesRecordsNumber\ignore{ugTypesRecords}.
+\downlink{``Records''}{ugTypesRecordsPage} in Section 2.4
+\ignore{ugTypesRecords}.
}{
\spadpaste{d.remainder \free{d}}
}
@@ -16071,12 +16075,12 @@ is also two.
}
For more information on related topics, see
-\downlink{``\ugIntroTwoDimTitle''}{ugIntroTwoDimPage} in
-Section \ugIntroTwoDimNumber\ignore{ugIntroTwoDim},
-\downlink{``\ugProblemEigenTitle''}{ugProblemEigenPage} in
-Section \ugProblemEigenNumber\ignore{ugProblemEigen},
-\downlink{``\ugxFloatHilbertTitle''}{ugxFloatHilbertPage} in
-Section \ugxFloatHilbertNumber\ignore{ugxFloatHilbert},
+\downlink{``Expanding to Higher Dimensions''}{ugIntroTwoDimPage} in
+Section 1.7\ignore{ugIntroTwoDim},
+\downlink{``Computation of Eigenvalues and Eigenvectors''}
+{ugProblemEigenPage} in Section 8.4\ignore{ugProblemEigen},
+\downlink{``Determinant of a Hilbert Matrix''}
+{ugxFloatHilbertPage}\ignore{ugxFloatHilbert},
\downlink{`Permanent'}{PermanentXmpPage}\ignore{Permanent},
\downlink{`Vector'}{VectorXmpPage}\ignore{Vector},
\downlink{`OneDimensionalArray'}{OneDimensionalArrayXmpPage}
@@ -16168,8 +16172,9 @@ for which they are defined.
\spadpaste{h(m1, m2) \free{h m1 m2}}
}
%
-For more information, see \downlink{``\ugUserMakeTitle''}{ugUserMakePage}
-in Section \ugUserMakeNumber\ignore{ugUserMake}.
+For more information, see
+\downlink{``Making Functions from Objects''}{ugUserMakePage}
+in Section 6.14\ignore{ugUserMake}.
\showBlurb{MakeFunction}
\endscroll
\autobuttons
@@ -16345,7 +16350,7 @@ type directly, such as \spadtype{List
NonNegativeInteger}, do it this way.
\section{numbers.ht}
\pagehead{NumberPage}{numbers.ht}{Axiom Number Types}
\pagepic{ps/v71numberpage.eps}{numberpage}
-\pagefrom{Topics}{TopicPage}
+\pagefrom{Axiom Topics}{TopicPage}
\pageto{Integers}{IntegerPage}
\pageto{Fractions}{FractionPage}
\pageto{Machine Floats}{DoubleFloatXmpPage}
@@ -16413,11 +16418,12 @@ Additional Topics
@
\pagehead{FractionPage}{numbers.ht}{Fraction}
-\pageto{notitle}{RationalNumberPage}
-\pageto{notitle}{FractionXmpPage}
+\pagepic{ps/v71fractionpage.eps}{FractionPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Rational Numbers}{RationalNumberPage}
+\pageto{Quotient Fields}{FractionXmpPage}
<<numbers.ht>>=
\begin{page}{FractionPage}{Fractions}
-
\beginscroll
Axiom handles fractions in many different contexts
and will automatically simplify fractions whenever possible.
@@ -16429,15 +16435,10 @@ Here are some examples:
\endscroll
Additional Topics:
\beginmenu
-
\menulink{Rational Numbers}{RationalNumberPage} \tab{18}
Quotients of integers
-
\menulink{Quotient Fields}{FractionXmpPage} \tab{18}
Quotients over an arbitrary integral domain
-
-%\menulink{Localizations}{LocalizationPage} \tab{18}
-%Fractions in the most general setting
\endmenu
\autobuttons
\end{page}
@@ -16470,11 +16471,13 @@ command:
@
\pagehead{IntegerPage}{numbers.ht}{Integers}
-\pageto{notitle}{IntegerXmpPage}
-\pageto{notitle}{ugxIntegerPrimesPage}
-\pageto{notitle}{IntNumberTheoryFnsXmpPage}
-\pageto{notitle}{IntegerExamplePage}
-\pageto{notitle}{IntegerProblemPage}
+\pagepic{ps/v71integerpage.eps}{IntegerPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{General Info}{IntegerXmpPage}
+\pageto{Factorization}{ugxIntegerPrimesPage}
+\pageto{Functions}{IntNumberTheoryFnsXmpPage}
+\pageto{Examples}{IntegerExamplePage}
+\pageto{Problems}{IntegerProblemPage}
<<numbers.ht>>=
\begin{page}{IntegerPage}{Integers}
\beginscroll
@@ -16671,11 +16674,12 @@ n**n - n + 41 is not prime.
@
\section{oct.ht}
\pagehead{OctonionXmpPage}{oct.ht}{Octonion}
-\pageto{notitle}{QuaternionXmpPage}
+\pagepic{ps/v71octonionxmppage.eps}{OctonionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Quaternion}{QuaternionXmpPage}
<<oct.ht>>=
\begin{page}{OctonionXmpPage}{Octonion}
\beginscroll
-
The Octonions, also called the Cayley-Dixon algebra, defined over a
commutative ring are an eight-dimensional non-associative algebra.
Their construction from quaternions is similar to the construction
@@ -17317,11 +17321,12 @@ Here are some derangement numbers, which you see grow
quite fast.
@
\section{pfr.ht}
\pagehead{PartialFractionXmpPage}{pfr.ht}{PartialFraction}
-\pageto{notitle}{FullPartialFracExpansionXmpPage}
+\pagepic{ps/v71partialfractionxmppage.eps}{PartialFractionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{FullPartialFracExpansion}{FullPartialFracExpansionXmpPage}
<<pfr.ht>>=
\begin{page}{PartialFractionXmpPage}{PartialFraction}
\beginscroll
-
A {\it partial fraction} is a decomposition of a quotient into a sum
of quotients where the denominators of the summands are powers of
primes.\footnote{Most people first encounter partial fractions when
@@ -17740,8 +17745,8 @@ for factoring polynomials created with
\spadtype{Polynomial} are
currently restricted to the integer and rational number coefficient
cases. There are more complete facilities for factoring univariate
polynomials: see
-\downlink{``\ugProblemFactorTitle''}{ugProblemFactorPage} in Section
-\ugProblemFactorNumber\ignore{ugProblemFactor}.
+\downlink{``Polynomial Factorization''}{ugProblemFactorPage} in
+Section 8.2\ignore{ugProblemFactor}.
\xtc{
The standard arithmetic operations are available for polynomials.
@@ -18013,13 +18018,16 @@ to display the full list of operations defined by
@
\section{quat.ht}
\pagehead{QuaternionXmpPage}{quat.ht}{Quaternion}
+\pagepic{ps/v71quaternionxmppage.eps}{QuaternionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Complex}{ComplexXmpPage}
+\pageto{Octonion}{OctonionXmpPage}
<<quat.ht>>=
\begin{page}{QuaternionXmpPage}{Quaternion}
\beginscroll
The domain constructor \spadtype{Quaternion} implements quaternions over
commutative rings.
For information on related topics, see
-%\menuxmpref{CliffordAlgebra}
\downlink{`Complex'}{ComplexXmpPage}\ignore{Complex} and
\downlink{`Octonion'}{OctonionXmpPage}\ignore{Octonion}.
You can also issue the system command
@@ -18092,15 +18100,15 @@ The norm is the quaternion times its conjugate.
@
\section{radix.ht}
\pagehead{RadixExpansionXmpPage}{radix.ht}{RadixExpansion}
-\pageto{notitle}{HexExpansionXmpPage}
-\pageto{notitle}{DecimalExpansionXmpPage}
-\pageto{notitle}{BinaryExpansionXmpPage}
+\pagepic{ps/v71radixexpansionxmppage.eps}{RadixExpansionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{HexadecimalExpansion}{HexExpansionXmpPage}
+\pageto{DecimalExpansion}{DecimalExpansionXmpPage}
+\pageto{BinaryExpansion}{BinaryExpansionXmpPage}
<<radix.ht>>=
\begin{page}{RadixExpansionXmpPage}{RadixExpansion}
\beginscroll
-
-It possible to expand numbers in general bases.
-
+It is possible to expand numbers in general bases.
\labelSpace{2pc}
\xtc{
Here we expand \spad{111} in base \spad{5}.
@@ -19102,10 +19110,11 @@ address@hidden for more information and help.
@
\section{roman.ht}
\pagehead{RomanNumeralXmpPage}{roman.ht}{RomanNumeral}
+\pagepic{ps/v71romannumeralxmppage.eps}{RomanNumeralXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
<<roman.ht>>=
\begin{page}{RomanNumeralXmpPage}{RomanNumeral}
\beginscroll
-
The Roman numeral package was added to Axiom in MCMLXXXVI
for use in denoting higher order derivatives.
@@ -19461,13 +19470,14 @@ For more information about lists, see
@
\section{sint.ht}
\pagehead{SingleIntegerXmpPage}{sint.ht}{SingleInteger}
-\pageto{notitle}{ugTypesDeclarePage}
-\pageto{notitle}{ugTypesPkgCallPage}
-\pageto{notitle}{ugBrowsePage}
+\pagepic{ps/v71singleintegerxmppage.eps}{SingleIntegerXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Declarations}{ugTypesDeclarePage}
+\pageto{Package Calling and Target Types}{ugTypesPkgCallPage}
+\pageto{Browse}{ugBrowsePage}
<<sint.ht>>=
\begin{page}{SingleIntegerXmpPage}{SingleInteger}
\beginscroll
-
The \axiomType{SingleInteger} domain is intended to provide support in
Axiom for machine integer arithmetic. It is generally much faster
than (bignum) \axiomType{Integer} arithmetic but suffers from a
@@ -19494,15 +19504,15 @@ by using \spadfunFrom{min}{SingleInteger} and
\spadfunFrom{max}{SingleInteger}.
\xtc{
To avoid confusion with \axiomType{Integer}, which is the default
type for integers, you usually need to work with declared variables
-(\downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage}
-in Section \ugTypesDeclareNumber\ignore{ugTypesDeclare}) \ldots
+(\downlink{``Declarations''}{ugTypesDeclarePage}
+in Section 2.3\ignore{ugTypesDeclare}) \ldots
}{
\spadpaste{a := 1234 :: SingleInteger \bound{a}}
}
\xtc{
or use package calling
-(\downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage}
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall}).
+(\downlink{``Package Calling and Target Types''}{ugTypesPkgCallPage}
+in Section 2.9\ignore{ugTypesPkgCall}).
}{
\spadpaste{b := 124\$SingleInteger \bound{b}}
}
@@ -19560,8 +19570,7 @@ if negative.
Many other operations are available for small integers, including
many of those provided for \axiomType{Integer}.
To see the other operations, use the Browse Hyperdoc facility
-(\downlink{``\ugBrowseTitle''}{ugBrowsePage} in Section
-\ugBrowseNumber\ignore{ugBrowse}).
+(\downlink{``Browse''}{ugBrowsePage} in Section 14\ignore{ugBrowse}).
\showBlurb{SingleInteger}.
\endscroll
\autobuttons
@@ -19625,10 +19634,10 @@ coefficients.
}
For more information on related topics, see
-\downlink{``\ugTypesWritingModesTitle''}{ugTypesWritingModesPage}
-in Section \ugTypesWritingModesNumber\ignore{ugTypesWritingModes},
-\downlink{``\ugTypesExposeTitle''}{ugTypesExposePage}
-in Section \ugTypesExposeNumber\ignore{ugTypesExpose}, and
+\downlink{``Modes''}{ugTypesWritingModesPage}
+in Section 2.2.4\ignore{ugTypesWritingModes},
+\downlink{``Exposing Domains and Packages''}{ugTypesExposePage}
+in Section 2.11\ignore{ugTypesExpose}, and
\downlink{`Matrix'}{MatrixXmpPage}\ignore{Matrix}.
\showBlurb{SquareMatrix}
\endscroll
@@ -19977,10 +19986,10 @@ The packages \spadtype{StreamFunctions1},
\spadtype{StreamFunctions3} export some useful stream manipulation
operations.
For more information, see
-\downlink{``\ugLangItsTitle''}{ugLangItsPage} in Section
-\ugLangItsNumber\ignore{ugLangIts},
-\downlink{``\ugProblemSeriesTitle''}{ugProblemSeriesPage}
-in Section \ugProblemSeriesNumber\ignore{ugProblemSeries},
+\downlink{``Creating Lists and Streams with Iterators''}
+{ugLangItsPage} in Section 5.5\ignore{ugLangIts},
+\downlink{``Working with Power Series''}{ugProblemSeriesPage}
+in Section 8.9\ignore{ugProblemSeries},
\downlink{`ContinuedFraction'}{ContinuedFractionXmpPage}
\ignore{ContinuedFraction}, and
\downlink{`List'}{ListXmpPage}\ignore{List}.
@@ -21288,15 +21297,15 @@ decide on the full type and how to do the
transformation.
\spadpaste{u :: UP(b1,?) \free{u}}
}
-See \downlink{``\ugProblemFactorTitle''}{ugProblemFactorPage} in
-Section \ugProblemFactorNumber\ignore{ugProblemFactor}
+See \downlink{``Polynomial Factorization''}{ugProblemFactorPage} in
+Section 8.2\ignore{ugProblemFactor}
for a discussion of the factorization facilities
in Axiom for univariate polynomials.
For more information on related topics, see
-\downlink{``\ugIntroVariablesTitle''}{ugIntroVariablesPage} in
-Section \ugIntroVariablesNumber\ignore{ugIntroVariables},
-\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} in
-Section \ugTypesConvertNumber\ignore{ugTypesConvert},
+\downlink{``Polynomials''}{ugIntroVariablesPage} in
+Section 1.9\ignore{ugIntroVariables},
+\downlink{``Conversion''}{ugTypesConvertPage} in
+Section 2.7\ignore{ugTypesConvert},
\downlink{`Polynomial'}{PolynomialXmpPage}\ignore{Polynomial},
\downlink{`MultivariatePolynomial'}{MultivariatePolyXmpPage}
\ignore{MultivariatePolynomial}, and
@@ -23182,8 +23191,8 @@ with the discussion of system commands and an
interactive ``undo.''
Before embarking on the tour, we need to brief those readers
working interactively with Axiom on some details.
Others can skip right immediately to
-\downlink{``\ugIntroTypoTitle''}{ugIntroTypoPage} in
-Section \ugIntroTypoNumber\ignore{ugIntroTypo}.
+\downlink{``Typographic Conventions''}{ugIntroTypoPage} in
+Section 1.2\ignore{ugIntroTypo}.
\beginmenu
\menudownlink{{1.1. Starting Up and Winding Down}}{ugIntroStartPage}
@@ -23246,8 +23255,7 @@ expressions, and generate graphics. If you are in a
graphical
windowing environment, it is usually started automatically when Axiom
begins. If it is not running, issue \spadsys{)hd} to start it. We
discuss the basics of Hyperdoc in
-\downlink{``\ugHyperTitle''}{ugHyperPage} in Chapter
-\ugHyperNumber\ignore{ugHyper}.
+\downlink{``Using Hyperdoc''}{ugHyperPage} in Chapter 3\ignore{ugHyper}.
To interrupt an Axiom computation, hold down the
\texht{\fbox{\bf Ctrl}}{{\bf Ctrl}} (control) key and press
@@ -23271,8 +23279,8 @@ different machines, operating systems and window
environments, and
these differences all affect the physical look of the system. You can
also change the way that Axiom behaves via \spadgloss{system commands}
described later in this chapter and in
-\downlink{``\ugSysCmdTitle''}{ugSysCmdPage} in Appendix
-\ugSysCmdNumber\ignore{ugSysCmd}. System commands are special
+\downlink{``Axiom System Commands''}{ugSysCmdPage} in Appendix B
+\ignore{ugSysCmd}. System commands are special
commands, like \spadcmd{)set}, that begin with a closing parenthesis
and are used to change your environment. For example, you can set a
system variable so that you are not prompted for confirmation when you
@@ -23502,8 +23510,9 @@ This is the result from step number 1.
Everything in Axiom has a type.
The type determines what operations you can perform on an object and
how the object can be used.
-An entire chapter of this book (\downlink{``\ugTypesTitle''}{ugTypesPage}
-in Chapter \ugTypesNumber\ignore{ugTypes}) is dedicated to
+An entire chapter of this book (
+\downlink{``Using Types and Modes''}{ugTypesPage}
+in Chapter 2\ignore{ugTypes}) is dedicated to
the interactive use of types.
Several of the final chapters discuss how types are built and how
they are organized in the Axiom library.
@@ -23566,10 +23575,10 @@ variable refers to a value. To
\spadglossSee{assign}{assignment} a
value to a variable, the operator \axiomSyntax{:=} is
used.\footnote{Axiom actually has two forms of assignment: {\it
immediate} assignment, as discussed here, and {\it delayed
-assignment}. See \downlink{``\ugLangAssignTitle''}{ugLangAssignPage}
-in Section \ugLangAssignNumber\ignore{ugLangAssign} for details.} A
-variable initially has no restrictions on the kinds of values to which
-it can refer.
+assignment}. See \downlink{``Immediate and Delayed Assignments''}
+{ugLangAssignPage} in Section 5.1\ignore{ugLangAssign} for details.}
+A variable initially has no restrictions on the kinds of values to
+which it can refer.
\xtc{
This assignment gives the value \axiom{4} (an integer) to
@@ -23674,8 +23683,8 @@ Objects of one type can usually be ``converted'' to
objects of several
other types. To \spadglossSee{convert}{conversion} an object to a new
type, use the \axiomSyntax{::} infix operator.\footnote{Conversion is
discussed in detail in
-\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} in Section
-\ugTypesConvertNumber\ignore{ugTypesConvert}.} For example, to
+\downlink{``Conversion''}{ugTypesConvertPage} in Section
+2.7\ignore{ugTypesConvert}.} For example, to
display an object, it is necessary to convert the object to type
\spadtype{OutputForm}.
@@ -23767,13 +23776,11 @@ operations are provided for efficiency reasons.
\begin{page}{ugIntroMacrosPage}{1.3.7. Some Predefined Macros}
\beginscroll
-Axiom provides several \spadglossSee{macros}{macro}
-for your convenience.\footnote{See
-\downlink{``\ugUserMacrosTitle''}{ugUserMacrosPage}
-in Section \ugUserMacrosNumber\ignore{ugUserMacros}
-for a discussion on how to write your own macros.}
-Macros are names
-(or forms) that expand to larger expressions for commonly used values.
+Axiom provides several \spadglossSee{macros}{macro} for your
+convenience.\footnote{See \downlink{``Macros''}{ugUserMacrosPage} in
+Section 6.2\ignore{ugUserMacros} for a discussion on how to write your
+own macros.} Macros are names (or forms) that expand to larger
+expressions for commonly used values.
\texht{
\centerline{{\begin{tabular}{ll}}}
@@ -23833,11 +23840,11 @@ is the same as if you had entered
\end{verbatim}
If you are putting your Axiom statements in an input file
-(see \downlink{``\ugInOutInTitle''}{ugInOutInPage}
-in Section \ugInOutInNumber\ignore{ugInOutIn}),
+(see \downlink{``Input Files''}{ugInOutInPage}
+in Section 4.1\ignore{ugInOutIn}),
you can use indentation to indicate the structure of your program.
-(see \downlink{``\ugLangBlocksTitle''}{ugLangBlocksPage}
-in Section \ugLangBlocksNumber\ignore{ugLangBlocks}).
+(see \downlink{``Blocks''}{ugLangBlocksPage}
+in Section 5.2\ignore{ugLangBlocks}).
\endscroll
\autobuttons
@@ -23905,8 +23912,8 @@ options set from the 3D Control Panel. The PostScript
output was
produced by clicking on the \texht{\fbox{\bf save}}{{\bf save}} 3D
Control Panel button and then clicking on the \texht{\fbox{\bf
PS}}{{\bf PS}} button. See
-\downlink{``\ugProblemNumericTitle''}{ugProblemNumericPage} in Section
-\ugProblemNumericNumber\ignore{ugProblemNumeric} for more details and
+\downlink{``Numeric Functions''}{ugProblemNumericPage} in Section
+8.1\ignore{ugProblemNumeric} for more details and
examples of Axiom's numeric and graphics capabilities.
}{
\graphpaste{draw((x,y) +-> real atan complex(x,y), -\%pi..\%pi,
@@ -23915,20 +23922,17 @@ examples of Axiom's numeric and graphics capabilities.
\epsffile[72 72 285 285]{../ps/atan-1.ps}
}
-An exhibit of \Gallery{} is given in the
-center section of this book.
-For a description of the commands and programs that
-produced these figures, see
-\downlink{``\ugAppGraphicsTitle''}{ugAppGraphicsPage}
-in Appendix \ugAppGraphicsNumber\ignore{ugAppGraphics}.
-PostScript
-output is available so that Axiom images can be
-printed.\footnote{PostScript is a trademark of Adobe Systems
-Incorporated, registered in the United States.}
-See \downlink{``\ugGraphTitle''}{ugGraphPage}
-in Chapter \ugGraphNumber\ignore{ugGraph} for
-more examples and details about using
-Axiom's graphics facilities.
+An exhibit of \Gallery{} is given in the center section of this book.
+For a description of the commands and programs that produced these
+figures, see
+\downlink{``Programs for Axiom Images''}{ugAppGraphicsPage}
+in Appendix G.\ignore{ugAppGraphics}.
+PostScript output is available so that Axiom images can be
+printed.\footnote{PostScript is a trademark of Adobe Systems
+Incorporated, registered in the United States.} See
+\downlink{``Graphics''}{ugGraphPage} in Chapter 7
+\ignore{ugGraph} for more examples and details about
+using Axiom's graphics facilities.
\endscroll
\autobuttons
@@ -24161,8 +24165,9 @@ All of the usual arithmetic operations are available.
Inversion is not available if the modulus is not a prime
number.
Modular arithmetic and prime fields are discussed in
-\downlink{``\ugxProblemFinitePrimeTitle''}{ugxProblemFinitePrimePage}
-in Section \ugxProblemFinitePrimeNumber\ignore{ugxProblemFinitePrime}.
+\downlink{``Modular Arithmetic and Prime Fields''}
+{ugxProblemFinitePrimePage}
+in Section 8.11.1\ignore{ugxProblemFinitePrime}.
}{
\spadpaste{1/y \free{y}}
}
@@ -24254,8 +24259,8 @@ A \spadgloss{list} is the most commonly used data
structure in
Axiom for holding objects all of the same
type.\footnote{Lists are discussed in
\downlink{`List'}{ListXmpPage}\ignore{List} and in
-\downlink{``\ugLangItsTitle''}{ugLangItsPage}
-in Section \ugLangItsNumber\ignore{ugLangIts}.}
+\downlink{``Creating Lists and Streams with Iterators''}
+{ugLangItsPage} in Section 5.5\ignore{ugLangIts}.}
The name {\it list} is short for ``linked-list of nodes.'' Each
node consists of a value (\spadfunFrom{first}{List}) and a link
(\spadfunFrom{rest}{List}) that
@@ -24318,8 +24323,8 @@ A \spadgloss{stream}
is a structure that (potentially) has an infinite number of
distinct elements.\footnote{Streams are discussed in
\downlink{`Stream'}{StreamXmpPage}\ignore{Stream} and in
-\downlink{``\ugLangItsTitle''}{ugLangItsPage}
-in Section \ugLangItsNumber\ignore{ugLangIts}.}
+\downlink{``Creating Lists and Streams with Iterators''}
+{ugLangItsPage} in Section 5.5\ignore{ugLangIts}.}
Think of a stream as an ``infinite list'' where elements are
computed successively.
@@ -24554,8 +24559,8 @@ t\free{how t}}
A {\it record}
is an example of an inhomogeneous collection
of objects.\footnote{See
-\downlink{``\ugTypesRecordsTitle''}{ugTypesRecordsPage}
-in Section \ugTypesRecordsNumber\ignore{ugTypesRecords} for details.}
+\downlink{``Records''}{ugTypesRecordsPage}
+in Section 2.4\ignore{ugTypesRecords} for details.}
A record consists of a set of named {\it selectors} that
can be used to access its components.
@@ -24580,8 +24585,8 @@ Give \axiom{daniel} a raise.
A {\it union}
is a data structure used when objects
have multiple types.\footnote{See
-\downlink{``\ugTypesUnionsTitle''}{ugTypesUnionsPage}
-in Section \ugTypesUnionsNumber\ignore{ugTypesUnions} for details.}
+\downlink{``Unions''}{ugTypesUnionsPage}
+in Section 2.5\ignore{ugTypesUnions} for details.}
\xtc{
Let \axiom{dog} be either an integer or a string value.
@@ -24597,8 +24602,8 @@ Give \axiom{dog} a name.
All told, there are over forty different data structures in
Axiom.
Using the domain constructors described in
-\downlink{``\ugDomainsTitle''}{ugDomainsPage}
-in Chapter \ugDomainsNumber\ignore{ugDomains}, you
+\downlink{``Domains''}{ugDomainsPage}
+in Chapter 13\ignore{ugDomains}, you
can add your own data structure or extend an existing one.
Choosing the right data structure for your application may be the key
to obtaining good performance.
@@ -24646,13 +24651,13 @@ facilities, see
\downlink{`Matrix'}{MatrixXmpPage}\ignore{Matrix},
\downlink{`Permanent'}{PermanentXmpPage}\ignore{Permanent},
\downlink{`SquareMatrix'}{SqMatrixXmpPage}\ignore{SquareMatrix},
\downlink{`Vector'}{VectorXmpPage}\ignore{Vector},
-\downlink{``\ugProblemEigenTitle''}{ugProblemEigenPage}
-in Section \ugProblemEigenNumber\ignore{ugProblemEigen}
+\downlink{``Computation of Eigenvalues and Eigenvectors''}
+{ugProblemEigenPage} in Section 8.4\ignore{ugProblemEigen}
\texht{(computation of eigenvalues and
eigenvectors)}{}, and
-\downlink{``\ugProblemLinPolEqnTitle''}{ugProblemLinPolEqnPage}
-in Section \ugProblemLinPolEqnNumber\ignore{ugProblemLinPolEqn}\
-texht{(solution of linear and
+\downlink{``Solution of Linear and Polynomial Equations''}
+{ugProblemLinPolEqnPage} in Section 8.5\ignore{ugProblemLinPolEqn}
+\texht{(solution of linear and
polynomial equations)}{}.}
\xtc{
@@ -24663,8 +24668,8 @@ where each of the inner lists represents a row of the
matrix.
}
\xtc{
The ``collections'' construct (see
-\downlink{``\ugLangItsTitle''}{ugLangItsPage}
-in Section \ugLangItsNumber\ignore{ugLangIts}) is
+\downlink{``Creating Lists and Streams with Iterators''}
+{ugLangItsPage} in Section 5.5\ignore{ugLangIts}) is
useful for creating matrices whose entries are given by formulas.
}{
\spadpaste{matrix([[1/(i + j - x) for i in 1..4] for j in 1..4])
@@ -24722,8 +24727,8 @@ For many applications, you need to interact with the
interpreter and
write some Axiom programs to tackle your application. Axiom allows
you to write functions interactively, thereby effectively extending
the system library. Here we give a few simple examples, leaving the
-details to \downlink{``\ugUserTitle''}{ugUserPage} in Chapter
-\ugUserNumber\ignore{ugUser}.
+details to \downlink{``User-Defined Functions, Macros and Rules''}
+{ugUserPage} in Chapter 6\ignore{ugUser}.
We begin by looking at several ways that you can define the
``factorial'' function in Axiom. The first way is to give a
@@ -24793,8 +24798,8 @@ above because it highly optimizes the recurrence
relation definition of
You are not limited to one-line functions in Axiom.
If you place your function definitions in {\bf .input} files
-(see \downlink{``\ugInOutInTitle''}{ugInOutInPage}
-in Section \ugInOutInNumber\ignore{ugInOutIn}), you can have
+(see \downlink{``Input Files''}{ugInOutInPage}
+in Section 4.1\ignore{ugInOutIn}), you can have
multi-line functions that use indentation for grouping.
Given \axiom{n} elements, \axiomFun{diagonalMatrix} creates an
@@ -25002,8 +25007,8 @@ To find the limit of an expression \axiom{f} as a real
variable
\axiom{x} tends to a limit value \axiom{a}, enter \axiom{limit(f, x=a)}.
Use \axiomFun{complexLimit} if the variable is complex.
Additional information and examples of limits are in
-\downlink{``\ugProblemLimitsTitle''}{ugProblemLimitsPage}
-in Section \ugProblemLimitsNumber\ignore{ugProblemLimits}.
+\downlink{``Limits''}{ugProblemLimitsPage}
+in Section 8.6\ignore{ugProblemLimits}.
\xtc{
You can take limits of functions with parameters.
@@ -25070,8 +25075,8 @@ to something else.
For the purposes of this book, we have used this system command to display
fewer than ten terms.
For more information about working with series, see
-\downlink{``\ugProblemSeriesTitle''}{ugProblemSeriesPage}
-in Section \ugProblemSeriesNumber\ignore{ugProblemSeries}.
+\downlink{``Working with Power Series''}{ugProblemSeriesPage}
+in Section 8.9\ignore{ugProblemSeries}.
\xtc{
You can convert a functional expression to a power series by using the
@@ -25377,8 +25382,8 @@ handle some of them.
}
More examples of Axiom's integration capabilities are discussed in
-\downlink{``\ugProblemIntegrationTitle''}{ugProblemIntegrationPage}
-in Section \ugProblemIntegrationNumber\ignore{ugProblemIntegration}.
+\downlink{``Integration''}{ugProblemIntegrationPage}
+in Section 8.8\ignore{ugProblemIntegration}.
\endscroll
\autobuttons
@@ -25567,8 +25572,8 @@ system, issue operating system commands and leave
Axiom. For example,
\spadsys{)system} is used to issue commands to the operating system
from Axiom. Here is a brief description of some of these commands.
For more information on specific commands, see
-\downlink{``\ugSysCmdTitle''}{ugSysCmdPage} in Appendix
-\ugSysCmdNumber\ignore{ugSysCmd}.
+\downlink{``Axiom System Commands''}{ugSysCmdPage} in Appendix B
+\ignore{ugSysCmd}.
Perhaps the most important user command is the \spadsys{)clear all}
command that initializes your environment. Every section and
@@ -26073,8 +26078,8 @@ wrongfully applying algorithms that presume that the
ring axioms hold.
Enough on categories. To learn more about them, see
-\downlink{``\ugCategoriesTitle''}{ugCategoriesPage}
-in Chapter \ugCategoriesNumber\ignore{ugCategories}.
+\downlink{``Categories''}{ugCategoriesPage}
+in Chapter 12\ignore{ugCategories}.
We now return to our discussion of domains.
Domains \spadgloss{export} a set of operations to make them available
@@ -26116,8 +26121,8 @@ convert an object from \axiomType{Polynomial(Integer)}
to
\axiomType{Polynomial(Float)}, Axiom builds the package
\axiomType{PolynomialFunctions2(Integer,Float)} in order to create the
required conversion function. (This happens ``behind the scenes'' for
-you: see \downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} in
-Section \ugTypesConvertNumber\ignore{ugTypesConvert} for details on
+you: see \downlink{``Conversion''}{ugTypesConvertPage} in
+Section 2.7\ignore{ugTypesConvert} for details on
how to convert objects.)
Axiom categories, domains and packages and all their contained
@@ -26148,8 +26153,8 @@ their functions and how to write your own functions.
%
We have already seen in \texht{the last
-section}{\downlink{``\ugTypesBasicTitle''}{ugTypesBasicPage} in
-Section \ugTypesBasicNumber\ignore{ugTypesBasic}} several examples of
+section}{\downlink{``The Basic Idea''}{ugTypesBasicPage} in
+Section 2.1\ignore{ugTypesBasic}} several examples of
types. Most of these examples had either no arguments (for example,
\axiomType{Integer}) or one argument (for example,
\axiomType{Polynomial (Integer)}). In this section we give details
@@ -26165,15 +26170,15 @@ You need to do so when you declare variables.
}
\xtc{
You need to do so when you declare functions
-(\downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage}
-in Section \ugTypesDeclareNumber\ignore{ugTypesDeclare}),
+(\downlink{``Declarations''}{ugTypesDeclarePage}
+in Section 2.3\ignore{ugTypesDeclare}),
}{
\spadpaste{f : Integer -> String}
}
\xtc{
You need to do so when you convert an object from one type to another
-(\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage}
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert}).
+(\downlink{``Conversion''}{ugTypesConvertPage}
+in Section 2.7\ignore{ugTypesConvert}).
}{
\spadpaste{factor(2 :: Complex(Integer))}
}
@@ -26183,8 +26188,8 @@ in Section
\ugTypesConvertNumber\ignore{ugTypesConvert}).
}
\xtc{
You need to do so when you give computation target type information
-(\downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage}
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall}).
+(\downlink{``Package Calling and Target Types''}{ugTypesPkgCallPage}
+in Section 2.9\ignore{ugTypesPkgCall}).
}{
\spadpaste{(2 = 3)@Boolean}
}
@@ -26275,8 +26280,8 @@ then enclose the whole type expression with parentheses.
}
\xtc{
If you supply computation target type information
-(\downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage}
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall})
+(\downlink{``Package Calling and Target Types''}{ugTypesPkgCallPage}
+in Section 2.9\ignore{ugTypesPkgCall})
then you should enclose the argument in parentheses.
}{
\spadpaste{(2/3)@Fraction(Polynomial(Integer))}
@@ -26365,11 +26370,10 @@ integer that is the dimension of a square matrix).
This rules out,
for example, the two \axiomType{SquareMatrix} expressions.
Modes can be used for declarations
-(\downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage}
-in Section \ugTypesDeclareNumber\ignore{ugTypesDeclare})
-and conversions
-(\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage}
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert}).
+(\downlink{``Declarations''}{ugTypesDeclarePage}
+in Section 2.3\ignore{ugTypesDeclare}) and conversions
+(\downlink{``Conversion''}{ugTypesConvertPage}
+in Section 2.7\ignore{ugTypesConvert}).
However, you cannot use a mode for package calling or giving target
type information.
@@ -26429,8 +26433,8 @@ abbreviations. For a specific constructor, use
\spadcmd{)abbreviation
query}. You can also use the \spadcmd{)what} system command to see
the names and abbreviations of constructors. For more information
about \spadcmd{)what}, see
-\downlink{``\ugSysCmdwhatTitle''}{ugSysCmdwhatPage} in Section
-\ugSysCmdwhatNumber\ignore{ugSysCmdwhat}.
+\downlink{``)what''}{ugSysCmdwhatPage} in Section B.28
+\ignore{ugSysCmdwhat}.
\xtc{
\spadcmd{)abbreviation query} can be
abbreviated (no pun intended) to \spadcmd{)abb q}.
@@ -26482,13 +26486,13 @@ You can always combine a declaration with an
assignment.
When you do, it is equivalent to first giving a declaration statement,
then giving an assignment.
For more information on assignment, see
-\downlink{``\ugIntroAssignTitle''}{ugIntroAssignPage}
-in Section \ugIntroAssignNumber\ignore{ugIntroAssign} and
-\downlink{``\ugLangAssignTitle''}{ugLangAssignPage}
-in Section \ugLangAssignNumber\ignore{ugLangAssign}.
+\downlink{``Symbols, Variables, Assignments, and Declarations''}
+{ugIntroAssignPage} in Section 1.3.4\ignore{ugIntroAssign} and
+\downlink{``Immediate and Delayed Assignments''}{ugLangAssignPage}
+in Section 5.1\ignore{ugLangAssign}.
To see how to declare your own functions, see
-\downlink{``\ugUserDeclareTitle''}{ugUserDeclarePage}
-in Section \ugUserDeclareNumber\ignore{ugUserDeclare}.
+\downlink{``Declaring the Type of Functions''}{ugUserDeclarePage}
+in Section 6.4\ignore{ugUserDeclare}.
\xtc{
This declares one variable to have a type.
@@ -26559,8 +26563,8 @@ This is a complex object with polynomial real and
imaginary parts.
\xtc{
This is a polynomial with complex integer coefficients.
The objects are convertible from one to the other.
-See \downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage}
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert} for more
+See \downlink{``Conversion''}{ugTypesConvertPage}
+in Section 2.7\ignore{ugTypesConvert} for more
information.
}{
\spadpaste{g : POLY COMPLEX ? := (x + y*\%i)**2}
@@ -26904,10 +26908,8 @@ Here the retraction fails.
\begin{page}{ugTypesUnionsWSelPage}{2.5.2. Unions With Selectors}
\beginscroll
-Like records (
-\downlink{``\ugTypesRecordsTitle''}{ugTypesRecordsPage}
-in Section \ugTypesRecordsNumber\ignore{ugTypesRecords}),
-you can write \pspadtype{Union} types
+Like records ( \downlink{``Records''}{ugTypesRecordsPage} in Section
+2.4\ignore{ugTypesRecords}), you can write \pspadtype{Union} types
with selectors.
\beginImportant
@@ -26933,8 +26935,8 @@ integer {\it and} a float {\it and} a string. An
object of type
{\it or} a float {\it or} a string.
Here is a version of the \userfun{sayBranch} function (cf.
-\downlink{``\ugTypesUnionsWOSelTitle''}{ugTypesUnionsWOSelPage}
-in Section \ugTypesUnionsWOSelNumber\ignore{ugTypesUnionsWOSel})
+\downlink{``Unions Without Selectors''}{ugTypesUnionsWOSelPage}
+in Section 2.5.1\ignore{ugTypesUnionsWOSel})
that works with a union with selectors.
It displays a message stating in which branch of the \pspadtype{Union} the
object lies.
@@ -27140,8 +27142,8 @@ argument type have commutative multiplication, whereas
that its argument belong to the category \axiomType{IntegralDomain} and
\axiomType{Complex} requires that its argument belong to
\axiomType{CommutativeRing}. See
-\downlink{``\ugTypesBasicTitle''}{ugTypesBasicPage}
-in Section \ugTypesBasicNumber\ignore{ugTypesBasic}
+\downlink{``The Basic Idea''}{ugTypesBasicPage}
+in Section 2.1\ignore{ugTypesBasic}
for a brief discussion of categories.}
The \axiomType{Integer} level did not move anywhere
because it does not allow any arguments.
@@ -27335,8 +27337,8 @@ Nevertheless, there are times when you need to help it
along by
providing hints (or even orders!) to get Axiom to do what
you want.
-We saw in \downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage}
-in Section \ugTypesDeclareNumber\ignore{ugTypesDeclare} that
+We saw in \downlink{``Declarations''}{ugTypesDeclarePage}
+in Section 2.3\ignore{ugTypesDeclare} that
declarations using types
and modes control the type of the results produced.
For example, we can either produce a complex object with
@@ -27403,8 +27405,9 @@ For example, to call the ``minimum'' function from
\axiomType{DoubleFloat}
on two integers, you could write \axiom{min(4,89)\$DoubleFloat}.
Another use of package calling is to tell Axiom to use a library
function rather than a function you defined.
-We discuss this in \downlink{``\ugUserUseTitle''}{ugUserUsePage}
-in Section \ugUserUseNumber\ignore{ugUserUse}.
+We discuss this in
+\downlink{``How Axiom Determines What Function to Use''}{ugUserUsePage}
+in Section 6.9\ignore{ugUserUse}.
Sometimes rather than specifying where an operation comes from, you just
want to say what type the result should be.
@@ -27620,8 +27623,8 @@ either
operations without doing
anything special) or it is {\it hidden} (meaning you have to either
package call
-(see \downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage}
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall})
+(see \downlink{``Package Calling and Target Types''}{ugTypesPkgCallPage}
+in Section 2.9\ignore{ugTypesPkgCall})
the operations it contains or explicitly expose it to use the
operations).
The initial exposure status for a constructor is set in the
@@ -27691,8 +27694,8 @@ default environment.
It is more likely that you would want to expose or hide individual
constructors. In
-\downlink{``\ugUserTriangleTitle''}{ugUserTrianglePage} in Section
-\ugUserTriangleNumber\ignore{ugUserTriangle} we use several operations
+\downlink{``A Famous Triangle''}{ugUserTrianglePage} in Section
+6.19\ignore{ugUserTriangle} we use several operations
from \axiomType{OutputForm}, a domain usually hidden. To avoid
package calling every operation from \axiomType{OutputForm}, we expose
the domain and let Axiom conclude that those operations should be
@@ -27722,8 +27725,8 @@ drop constructor OutputForm \bound{setexposedrop}} }
Finally, exposure is done on a frame-by-frame basis. A
\spadgloss{frame} (see
-\downlink{``\ugSysCmdframeTitle''}{ugSysCmdframePage} in Section
-\ugSysCmdframeNumber\ignore{ugSysCmdframe}) is one of possibly several
+\downlink{``)frame''}{ugSysCmdframePage} in Section B.11
+\ignore{ugSysCmdframe}) is one of possibly several
logical Axiom workspaces within a physical one, each having its own
environment (for example, variables and function definitions). If you
have several Axiom workspace windows on your screen, they are all
@@ -27751,8 +27754,8 @@ that you can use for getting more information about
domains,
packages, categories, and operations.
The most powerful Axiom facility for getting information about
constructors and operations is the \Browse{} component of Hyperdoc.
-This is discussed in \downlink{``\ugBrowseTitle''}{ugBrowsePage}
-in Chapter \ugBrowseNumber\ignore{ugBrowse}.
+This is discussed in \downlink{``Browse''}{ugBrowsePage}
+in Chapter 14\ignore{ugBrowse}.
Use the \spadsys{)what} system command to see lists of system objects
whose name contain a particular substring (uppercase or lowercase is
@@ -27808,8 +27811,8 @@ The primary example of a constructor implementing
domains
belonging to \axiomType{ComplexCategory} is \axiomType{Complex}.
See \downlink{`Complex'}{ComplexXmpPage}\ignore{Complex}
for more information on that and see
-\downlink{``\ugUserDeclareTitle''}{ugUserDeclarePage} in
-Section \ugUserDeclareNumber\ignore{ugUserDeclare}
+\downlink{``Declaring the Type of Functions''}{ugUserDeclarePage} in
+Section 6.4\ignore{ugUserDeclare}
for more information on function types.
\endscroll
\autobuttons
@@ -27920,10 +27923,10 @@ For example, there is no \ReturnButton{} button on
the top-level menu.
The following keyboard definitions are in effect throughout
Hyperdoc.
-See \downlink{``\ugHyperScrollTitle''}{ugHyperScrollPage}
-in Section \ugHyperScrollNumber\ignore{ugHyperScroll} and
-\downlink{``\ugHyperInputTitle''}{ugHyperInputPage}
-in Section \ugHyperInputNumber\ignore{ugHyperInput}
+See \downlink{``Scroll Bars''}{ugHyperScrollPage}
+in Section 3.3\ignore{ugHyperScroll} and
+\downlink{``Input Areas''}{ugHyperInputPage}
+in Section 3.4\ignore{ugHyperInput}
for some contextual key definitions.
%
\indent{0}
@@ -27989,8 +27992,8 @@ They move the visible part of the region up and down
one page each
time you press them.
If the Hyperdoc page does not contain an input area
-(see \downlink{``\ugHyperInputTitle''}{ugHyperInputPage}
-in Section \ugHyperInputNumber\ignore{ugHyperInput}),
+(see \downlink{``Input Areas''}{ugHyperInputPage}
+in Section 3.4\ignore{ugHyperInput}),
you can also use the
\texht{\fbox{\bf Home}}{{\bf Home}} and
\texht{\fbox{$\uparrow$}}{up} and
@@ -28420,8 +28423,8 @@ The file is in your home directory or in the directory
you
specified with \spadsys{)cd}.
\endImportant
-In \downlink{``\ugLangBlocksTitle''}{ugLangBlocksPage}
-in Section \ugLangBlocksNumber\ignore{ugLangBlocks}
+In \downlink{``Blocks''}{ugLangBlocksPage} in Section 5.2
+\ignore{ugLangBlocks}
we discuss using indentation in input files to group statements
into {\it blocks.}
@@ -29057,8 +29060,9 @@ values held by variables.
There is no syntactic form for multiple delayed assignments.
See the discussion in
-\downlink{``\ugUserDelayTitle''}{ugUserDelayPage}
-in Section \ugUserDelayNumber\ignore{ugUserDelay}
+\downlink{``Delayed Assignments vs. Functions with No Arguments''}
+{ugUserDelayPage}
+in Section 6.8\ignore{ugUserDelay}
about how Axiom differentiates between delayed assignments and
user functions of no arguments.
@@ -29201,8 +29205,8 @@ eval(x**2 - x*y**2,
}
\xtc{
Blocks can be used in the clauses of \axiom{if-then-else}
-expressions (see \downlink{``\ugLangIfTitle''}{ugLangIfPage}
-in Section \ugLangIfNumber\ignore{ugLangIf}).
+expressions (see \downlink{``if-then-else''}{ugLangIfPage}
+in Section 5.3\ignore{ugLangIf}).
}{
\spadpaste{if h > 3.1 then 1.0 else (z := cos(h); max(z,0.5)) \free{h}}
}
@@ -29287,8 +29291,8 @@ If the
\void{}.
If both clauses are present, the type of the value returned by \axiom{if}
is obtained by resolving the types of the values of the two clauses.
-See \downlink{``\ugTypesResolveTitle''}{ugTypesResolvePage}
-in Section \ugTypesResolveNumber\ignore{ugTypesResolve}
+See \downlink{``Resolving Types''}{ugTypesResolvePage}
+in Section 2.10\ignore{ugTypesResolve}
for more information.
The predicate must evaluate to, or be convertible to, an object of type
@@ -29310,8 +29314,9 @@ In other contexts you may need to tell Axiom that you
want
to test for equality rather than create an equation.
In those cases, use address@hidden and a target type of
\axiomType{Boolean}.
-See \downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage} in Section
-\ugTypesPkgCallNumber\ignore{ugTypesPkgCall} for more information.
+See \downlink{``Package Calling and Target Types''}
+{ugTypesPkgCallPage} in Section 2.9
+\ignore{ugTypesPkgCall} for more information.
The compound symbol meaning ``not equal'' in Axiom is
``\texht{$\sim =$}{\axiom{~=}}''.
@@ -29467,8 +29472,8 @@ message stating the problem and then the following
message:
%
It is still possible that Axiom can evaluate the loop but in
\spadgloss{interpret-code mode}.
-See \downlink{``\ugUserCompIntTitle''}{ugUserCompIntPage}
-in Section \ugUserCompIntNumber\ignore{ugUserCompInt} where
+See \downlink{``Compiling vs. Interpreting''}{ugUserCompIntPage}
+in Section 6.10\ignore{ugUserCompInt} where
this is discussed in terms
of compiling versus interpreting functions.
@@ -29548,8 +29553,8 @@ f() ==
\xtc{
When we try \userfun{f} again we get what we wanted.
See
-\downlink{``\ugUserBlocksTitle''}{ugUserBlocksPage}
-in Section \ugUserBlocksNumber\ignore{ugUserBlocks}
+\downlink{``Functions Defined with Blocks''}{ugUserBlocksPage}
+in Section 6.15\ignore{ugUserBlocks}
for more information.
}{
\spadpaste{f() \free{f1}}
@@ -29580,8 +29585,8 @@ That is, \axiom{break} takes no argument.
\xtc{
This example is a modification of the last example in
\texht{the previous section}{
-\downlink{``\ugLangLoopsReturnTitle''}{ugLangLoopsReturnPage}
-in Section \ugLangLoopsReturnNumber\ignore{ugLangLoopsReturn}}.
+\downlink{``return in Loops''}{ugLangLoopsReturnPage}
+in Section 5.4.2\ignore{ugLangLoopsReturn}}.
Instead of using \axiom{return}, we'll use \axiom{break}.
}{
\begin{spadsrc}[\bound{f1}]
@@ -29771,8 +29776,8 @@ Scan the rows looking for the first negative element.
We remark that you can reformulate this example in a better, more
concise form by using a \axiom{for} clause with \axiom{repeat}.
See
-\downlink{``\ugLangLoopsForInTitle''}{ugLangLoopsForInPage}
-in Section \ugLangLoopsForInNumber\ignore{ugLangLoopsForIn}
+\downlink{``for Loops''}{ugLangLoopsForInPage}
+in Section 5.4.8\ignore{ugLangLoopsForIn}
for more information.
}{
\begin{spadsrc}[\free{m2 r c lastrow lastcol}]
@@ -30234,8 +30239,8 @@ for i in 1..50 repeat
The last example of
\texht{the previous section}{
-\downlink{``\ugLangLoopsForInPredTitle''}{ugLangLoopsForInPredPage}
-in Section \ugLangLoopsForInPredNumber\ignore{ugLangLoopsForInPred}}
+\downlink{``Such that Predicates''}{ugLangLoopsForInPredPage}
+in Section 5.4.13\ignore{ugLangLoopsForInPred}}
gives an example of
\spadgloss{nested iteration}: a loop is contained
in another loop.
@@ -30371,8 +30376,8 @@ or any \axiom{for} clause to the left.
\beginscroll
All of what we did for loops in
-\downlink{``\ugLangLoopsTitle''}{ugLangLoopsPage}
-in Section \ugLangLoopsNumber\ignore{ugLangLoops}
+\downlink{``Loops''}{ugLangLoopsPage}
+in Section 5.4\ignore{ugLangLoops}
can be transformed into expressions that create lists
and streams.
The \axiom{repeat,} \axiom{break} or \axiom{iterate} words are not used but
@@ -30742,8 +30747,8 @@ This is a use of the ``absolute value'' library
function for integers.
\xtc{
This is an unnamed function that does the same thing, using the
``maps-to'' syntax \axiomSyntax{+->} that we discuss in
-\downlink{``\ugUserAnonTitle''}{ugUserAnonPage}
-in Section \ugUserAnonNumber\ignore{ugUserAnon}.
+\downlink{``Anonymous Functions''}{ugUserAnonPage}
+in Section 6.17\ignore{ugUserAnon}.
}{
\spadpaste{(x +-> if x < 0 then -x else x)(-8)}
}
@@ -30926,8 +30931,8 @@ If you define a function in the workspace that has the
same name and number
of arguments as one in the library, then your definition takes precedence.
In fact, to get the library function you must
\spadglossSee{package-call}{package call} it (see
-\downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage}
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall}).
+\downlink{``Package Calling and Target Types''}{ugTypesPkgCallPage}
+in Section 2.9\ignore{ugTypesPkgCall}).
To use a function in Axiom, you apply it to its arguments.
Most functions are applied by entering the name of the function followed by
@@ -30976,8 +30981,8 @@ Every function in Axiom is identified by
a \spadgloss{name} and \spadgloss{type}.\footnote{An exception is
an ``anonymous function''
discussed in
-\downlink{``\ugUserAnonTitle''}{ugUserAnonPage}
-in Section \ugUserAnonNumber\ignore{ugUserAnon}.}
+\downlink{``Anonymous Functions''}{ugUserAnonPage}
+in Section 6.17\ignore{ugUserAnon}.}
The type of a function is always a mapping of the form
\spadsig{Source}{Target}
where \axiom{Source} and \axiom{Target} are types.
@@ -31010,8 +31015,8 @@ but with different functions.
\begin{page}{ugUserDeclarePage}{6.4. Declaring the Type of Functions}
\beginscroll
-In \downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage}
-in Section \ugTypesDeclareNumber\ignore{ugTypesDeclare} we
+In \downlink{``Declarations''}{ugTypesDeclarePage}
+in Section 2.3\ignore{ugTypesDeclare} we
discussed how to declare a variable
to restrict the kind of values that can be assigned to it.
In this section we show how to declare a variable that refers to
@@ -31080,8 +31085,8 @@ A current restriction on function declarations is that
they must
involve fully specified types (that is, cannot include modes involving
explicit or implicit \axiomSyntax{?}).
For more information on declaring things in general, see
-\downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage}
-in Section \ugTypesDeclareNumber\ignore{ugTypesDeclare}.
+\downlink{``Declarations''}{ugTypesDeclarePage}
+in Section 2.3\ignore{ugTypesDeclare}.
\endscroll
\autobuttons
@@ -31213,8 +31218,8 @@ Here \axiom{x+1} for \axiom{x = "axiom"} makes no sense.
\spadpaste{g("axiom")\free{g}}
}
-As you will see in \downlink{``\ugCategoriesTitle''}{ugCategoriesPage}
-in Chapter \ugCategoriesNumber\ignore{ugCategories},
+As you will see in \downlink{``Categories''}{ugCategoriesPage}
+in Chapter 12\ignore{ugCategories},
Axiom has a formal idea of categories for what ``makes sense.''
\endscroll
@@ -31260,17 +31265,17 @@ type. An operation is what domains and packages
export. Thus
\axiomType{Ring} exports one operation \axiomOp{+}. Every ring also
exports this operation. Also, the author of every ring in the system
is obliged under contract (see
-\downlink{``\ugPackagesAbstractTitle''}{ugPackagesAbstractPage} in
-Section \ugPackagesAbstractNumber\ignore{ugPackagesAbstract}) to
+\downlink{``Abstract Datatypes''}{ugPackagesAbstractPage} in
+Section 11.3\ignore{ugPackagesAbstract}) 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
-\downlink{``\ugPackagesTitle''}{ugPackagesPage} in Chapter
-\ugPackagesNumber\ignore{ugPackages} you will learn how to create them
+\downlink{``Packages''}{ugPackagesPage} in Chapter
+11\ignore{ugPackages} you will learn how to create them
for the Axiom library. Then in
-\downlink{``\ugCategoriesTitle''}{ugCategoriesPage} in Chapter
-\ugCategoriesNumber\ignore{ugCategories}, you will learn about
+\downlink{``Categories''}{ugCategoriesPage} in Chapter
+12\ignore{ugCategories}, you will learn about
categories and exported operations.
\endscroll
@@ -31286,8 +31291,9 @@ categories and exported operations.
{6.8. Delayed Assignments vs. Functions with No Arguments}
\beginscroll
-In \downlink{``\ugLangAssignTitle''}{ugLangAssignPage} in Section
-\ugLangAssignNumber\ignore{ugLangAssign} we discussed the difference
+In \downlink{``Immediate and Delayed Assignments''}
+{ugLangAssignPage} in Section
+5.1\ignore{ugLangAssign} we discussed the difference
between immediate and
delayed assignments.
In this section we show the difference between delayed
@@ -31362,8 +31368,8 @@ The value \axiom{1.0} is returned for any argument.
}
\xtc{
If you want the library operation, we have to package-call it
-(see \downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage}
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall}
+(see \downlink{``Package Calling and Target Types''}{ugTypesPkgCallPage}
+in Section 2.9\ignore{ugTypesPkgCall}
for more information).
}{
\spadpaste{sin(4.3)\$Float}
@@ -31423,8 +31429,8 @@ creating an object of type
\axiomType{Fraction(Integer)}.
\item[8. ] No \axiomOp{+} for arguments of types \axiomType{Variable(x)}
and \axiomType{Fraction(Integer)} are found in either domain.
\item[9. ] Axiom resolves
-(see \downlink{``\ugTypesResolveTitle''}{ugTypesResolvePage}
-in Section \ugTypesResolveNumber\ignore{ugTypesResolve})
+(see \downlink{``Resolving Types''}{ugTypesResolvePage}
+in Section 2.10\ignore{ugTypesResolve})
the types and gets \axiomType{Polynomial (Fraction (Integer))}.
\item[10. ] The \axiom{x} and the \axiom{2/3} are converted to objects
of this type and \axiomOp{+} is applied, yielding the answer, an object
@@ -31501,8 +31507,8 @@ for var in ['x,'y,'z] repeat
Sometimes you can help a function to compile by using an extra
conversion or by using \axiom{pretend}. \spadkey{pretend} See
-\downlink{``\ugTypesSubdomainsTitle''}{ugTypesSubdomainsPage} in
-Section \ugTypesSubdomainsNumber\ignore{ugTypesSubdomains} for
+\downlink{``Subdomains Again''}{ugTypesSubdomainsPage} in
+Section 2.8\ignore{ugTypesSubdomains} for
details.
When a function is compilable, you have the choice of whether it is
@@ -31698,8 +31704,8 @@ functions and compiled.
\xtc{
Let's recall the definition of \userfun{eleven} from
\texht{the previous section}{
-\downlink{``\ugUserPieceBasicTitle''}{ugUserPieceBasicPage}
-in Section \ugUserPieceBasicNumber\ignore{ugUserPieceBasic}}.
+\downlink{``A Basic Example''}{ugUserPieceBasicPage}
+in Section 6.11.1\ignore{ugUserPieceBasic}}.
}{
\spadpaste{eleven(n | n < 1) == n + 11\bound{ff0}}
}
@@ -31802,14 +31808,13 @@ Check it at \axiom{n= 100}.
We have already seen some examples of
predicates
-(\downlink{``\ugUserPieceBasicTitle''}{ugUserPieceBasicPage}
-in Section \ugUserPieceBasicNumber\ignore{ugUserPieceBasic}).
+(\downlink{``A Basic Example''}{ugUserPieceBasicPage}
+in Section 6.11.1\ignore{ugUserPieceBasic}).
Predicates are \axiomType{Boolean}-valued expressions and Axiom uses them
for filtering collections
-(see \downlink{``\ugLangItsTitle''}{ugLangItsPage}
-in Section \ugLangItsNumber\ignore{ugLangIts})
-and for placing
-constraints on function arguments.
+(see \downlink{``Creating Lists and Streams with Iterators''}
+{ugLangItsPage} in Section 5.5\ignore{ugLangIts})
+and for placing constraints on function arguments.
In this section we discuss their latter usage.
\xtc{
@@ -31946,8 +31951,8 @@ arguments should be cached.
You should also be careful about caching functions that depend on
free variables.
-See \downlink{``\ugUserFreeLocalTitle''}{ugUserFreeLocalPage} in
-Section \ugUserFreeLocalNumber\ignore{ugUserFreeLocal}
+See \downlink{``Free and Local Variables''}{ugUserFreeLocalPage} in
+Section 6.16\ignore{ugUserFreeLocal}
for an example.
\endscroll
@@ -32043,11 +32048,11 @@ relation, Axiom caches the last \axiom{k} values.}
If, after computing a value for \userfun{fib}, you ask
for some larger value, Axiom picks up the cached values
and continues computing from there.
-See \downlink{``\ugUserFreeLocalTitle''}{ugUserFreeLocalPage}
-in Section \ugUserFreeLocalNumber\ignore{ugUserFreeLocal}
+See \downlink{``Free and Local Variables''}{ugUserFreeLocalPage}
+in Section 6.16\ignore{ugUserFreeLocal}
for an example of a function definition that has this same behavior.
-Also see \downlink{``\ugUserCacheTitle''}{ugUserCachePage}
-in Section \ugUserCacheNumber\ignore{ugUserCache}
+Also see \downlink{``Caching Previously Computed Results''}
+{ugUserCachePage} in Section 6.12\ignore{ugUserCache}
for a more general discussion of how you can cache function values.
Recurrence relations can be used for defining recurrence relations
@@ -32239,8 +32244,8 @@ InputForm}. Thus you can use \axiomFun{function} for
You need not restrict yourself to functions that only fit on one line
or are written in a piece-wise manner.
The body of the function can be a block, as discussed in
-\downlink{``\ugLangBlocksTitle''}{ugLangBlocksPage}
-in Section \ugLangBlocksNumber\ignore{ugLangBlocks}.
+\downlink{``Blocks''}{ugLangBlocksPage}
+in Section 5.2\ignore{ugLangBlocks}.
\labelSpace{1pc}
\xtc{
@@ -32515,8 +32520,8 @@ in your functions. No declaration is needed for this
situation, but
be sure to initialize their values.
Be careful if you use free variables and you cache the value of
-your function (see \downlink{``\ugUserCacheTitle''}{ugUserCachePage}
-in Section \ugUserCacheNumber\ignore{ugUserCache}).
+your function (see \downlink{``Caching Previously Computed Results''}
+{ugUserCachePage} in Section 6.12\ignore{ugUserCache}).
Caching {\it only} checks if the values of the function arguments
are the same as in a function call previously seen.
It does not check if any of the free variables on which the
@@ -32600,8 +32605,8 @@ To conclude this section, we give an iterative
definition of
a function that computes Fibonacci numbers.
This definition approximates the definition into which Axiom
transforms the recurrence relation definition of \userfun{fib} in
-\downlink{``\ugUserRecurTitle''}{ugUserRecurPage}
-in Section \ugUserRecurNumber\ignore{ugUserRecur}.
+\downlink{``Recurrence Relations''}{ugUserRecurPage}
+in Section 6.13\ignore{ugUserRecur}.
\xtc{
Global variables
@@ -33004,8 +33009,8 @@ operations you probably haven't seen before.
To make these output operations
available, we have to \spadgloss{expose} the domain
\axiomType{OutputForm}.
-See \downlink{``\ugTypesExposeTitle''}{ugTypesExposePage}
-in Section \ugTypesExposeNumber\ignore{ugTypesExpose} for
+See \downlink{``Exposing Domains and Packages''}{ugTypesExposePage}
+in Section 2.11\ignore{ugTypesExpose} for
more information about exposing domains
and packages.
}{
@@ -33140,9 +33145,8 @@ A list of polynomials.
}
\xtc{
A list of integers from the example in
-\texht{the last section.}{\downlink{``\ugUserTriangleTitle''}
-{ugUserTrianglePage} in Section \ugUserTriangleNumber
-\ignore{ugUserTriangle}.}
+\texht{the last section.}{\downlink{``A Famous Triangle''}
+{ugUserTrianglePage} in Section 6.19\ignore{ugUserTriangle}.}
}{
\spadpaste{pal? [1,6,15,20,15,6,1] \free{pal palAux}}
}
@@ -33634,8 +33638,8 @@ The general format for drawing a function defined by a
formula
\centerline{{{\tt draw(f(x), x = a..b, {\it options})}}}
where \axiom{a..b} defines the range of \axiom{x}, and where
{\it options} prescribes zero or more options as described in
-\downlink{``\ugGraphTwoDOptionsTitle''}{ugGraphTwoDOptionsPage}
-in Section \ugGraphTwoDOptionsNumber\ignore{ugGraphTwoDOptions}.
+\downlink{``Two-Dimensional Options''}{ugGraphTwoDOptionsPage}
+in Section 7.1.4\ignore{ugGraphTwoDOptions}.
An example of an option is \axiom{curveColor == bright red().}
An alternative format involving functions \axiom{f} and \axiom{g}
is also available.
@@ -33719,8 +33723,8 @@ parametric formulas \axiom{x = f(t)} and \axiom{y =
g(t)} is:
where \axiom{a..b} defines the range of the independent variable \axiom{t},
and where {\it options} prescribes zero or more options as
described in
-\downlink{``\ugGraphThreeDOptionsTitle''}{ugGraphThreeDOptionsPage}
-in Section \ugGraphThreeDOptionsNumber\ignore{ugGraphThreeDOptions}.
+\downlink{``Three-Dimensional Options''}{ugGraphThreeDOptionsPage}
+in Section 7.2.4\ignore{ugGraphThreeDOptions}.
An example of an option is \axiom{curveColor == bright red().}
\endImportant
@@ -33824,8 +33828,8 @@ A {\tt range} option is always given to designate a
bounding
rectangular region of the plane \texht{$a \leq x \leq b, c \leq y
\leq d$}{a <= x <= b, c <= y <= d}.
Zero or more additional options as described in
-\downlink{``\ugGraphTwoDOptionsTitle''}{ugGraphTwoDOptionsPage}
-in Section \ugGraphTwoDOptionsNumber\ignore{ugGraphTwoDOptions}
+\downlink{``Two-Dimensional Options''}{ugGraphTwoDOptionsPage}
+in Section 7.1.4\ignore{ugGraphTwoDOptions}
may be given.
\endImportant
@@ -33923,10 +33927,10 @@ clip == [-2*\%pi..2*\%pi,-\%pi..\%pi], unit ==
[1.0,1.0])}
\psXtc{
Option {\tt curveColor} sets the color of the graph curves or
lines to be the indicated palette color
-(see \downlink{``\ugGraphColorTitle''}{ugGraphColorPage} in Section
-\ugGraphColorNumber\ignore{ugGraphColor} and
-\downlink{``\ugGraphColorPaletteTitle''}{ugGraphColorPalettePage}
-in Section \ugGraphColorPaletteNumber\ignore{ugGraphColorPalette}).
+(see \downlink{``Color''}{ugGraphColorPage} in Section
+7.1.5\ignore{ugGraphColor} and
+\downlink{``Palette''}{ugGraphColorPalettePage}
+in Section 7.1.6\ignore{ugGraphColorPalette}).
}{
\graphpaste{draw(sin(x),x=-\%pi..\%pi, curveColor == bright red())}
}{
@@ -33937,10 +33941,10 @@ in Section
\ugGraphColorPaletteNumber\ignore{ugGraphColorPalette}).
Option {\tt pointColor}
sets the color of the graph points to the indicated
palette color
-(see \downlink{``\ugGraphColorTitle''}{ugGraphColorPage}
-in Section \ugGraphColorNumber\ignore{ugGraphColor} and
-\downlink{``\ugGraphColorPaletteTitle''}{ugGraphColorPalettePage}
-in Section \ugGraphColorPaletteNumber\ignore{ugGraphColorPalette}).
+(see \downlink{``Color''}{ugGraphColorPage}
+in Section 7.1.5\ignore{ugGraphColor} and
+\downlink{``Palette''}{ugGraphColorPalettePage}
+in Section 7.1.6\ignore{ugGraphColorPalette}).
}{
\graphpaste{draw(sin(x),x=-\%pi..\%pi, pointColor == pastel yellow())}
}{
@@ -33986,8 +33990,8 @@ in which the graph
is plotted.
The default is to use the Cartesian coordinate system.
For more details, see
-\downlink{``\ugGraphCoordTitle''}{ugGraphCoordPage} in
-Section \ugGraphCoordNumber\ignore{ugGraphCoord} \texht{.}{or
+\downlink{``Coordinate System Transformations''}{ugGraphCoordPage} in
+Section 7.2.7\ignore{ugGraphCoord} \texht{.}{or
\axiomType{CoordinateSystems}.}
}{
\graphpaste{draw(curve(sin(5*t),t),t=0..2*\%pi, coordinates == polar)}
@@ -34888,8 +34892,8 @@ The general format for drawing a surface defined by a
formula
where \axiom{a..b} and \axiom{c..d} define the range of \axiom{x}
and \axiom{y}, and where {\it options} prescribes zero or more
options as described in
-\downlink{``\ugGraphThreeDOptionsTitle''}{ugGraphThreeDOptionsPage}
-in Section \ugGraphThreeDOptionsNumber\ignore{ugGraphThreeDOptions}.
+\downlink{``Three-Dimensional Options''}{ugGraphThreeDOptionsPage}
+in Section 7.2.4\ignore{ugGraphThreeDOptions}.
An example of an option is \axiom{title == "Title of Graph".}
An alternative format involving a function \axiom{f} is also
available.
@@ -34955,8 +34959,8 @@ parametric formulas \axiom{x = f(t)}, \axiom{y = g(t)},
and
where \axiom{a..b} defines the range of the independent variable
\axiom{t}, and where {\it options} prescribes zero or more options
as described in
-\downlink{``\ugGraphThreeDOptionsTitle''}{ugGraphThreeDOptionsPage}
-in Section \ugGraphThreeDOptionsNumber\ignore{ugGraphThreeDOptions}.
+\downlink{``Three-Dimensional Options''}{ugGraphThreeDOptionsPage}
+in Section 7.2.4\ignore{ugGraphThreeDOptions}.
An example of an option is \axiom{title == "Title of Graph".}
An alternative format involving functions \axiom{f}, \axiom{g} and
\axiom{h} is also available.
@@ -35029,8 +35033,8 @@ u = a..b, v = c..d, {\it options})}}}
where \axiom{a..b} and \axiom{c..d} define the range of the
independent variables \axiom{u} and \axiom{v}, and where
{\it options} prescribes zero or more options as described in
-\downlink{``\ugGraphThreeDOptionsTitle''}{ugGraphThreeDOptionsPage}
-in Section \ugGraphThreeDOptionsNumber\ignore{ugGraphThreeDOptions}.
+\downlink{``Three-Dimensional Options''}{ugGraphThreeDOptionsPage}
+in Section 7.2.4\ignore{ugGraphThreeDOptions}.
An example of an option is \axiom{title == "Title of Graph".}
An alternative format involving functions \axiom{f}, \axiom{g} and
\axiom{h} is also available.
@@ -35043,8 +35047,8 @@ parabolic cylindrical coordinate system option.
The values of the functions supplied to \axiomFun{surface} are
interpreted in coordinates as given by a {\tt coordinates} option,
here as parabolic cylindrical coordinates (see
-\downlink{``\ugGraphCoordTitle''}{ugGraphCoordPage}
-in Section \ugGraphCoordNumber\ignore{ugGraphCoord}).
+\downlink{``Coordinate System Transformations''}{ugGraphCoordPage}
+in Section 7.2.7\ignore{ugGraphCoord}).
}{
\graphpaste{draw(surface(u*cos(v), u*sin(v), v*cos(u)),
u=-4..4, v=0..\%pi, coordinates== parabolicCylindrical)}
@@ -35186,8 +35190,8 @@ color also depends on the value of the function.
Normally the Cartesian coordinate system is used.
To change this, use the {\tt coordinates} option.
For details, see
-\downlink{``\ugGraphCoordTitle''}{ugGraphCoordPage}
-in Section \ugGraphCoordNumber\ignore{ugGraphCoord}.
+\downlink{``Coordinate System Transformations''}{ugGraphCoordPage}
+in Section 7.2.7\ignore{ugGraphCoord}.
%
%
\xtc{
@@ -36506,19 +36510,20 @@ with Axiom.
@
\pagehead{ugProblemNumericPage}{ug08.ht}{Numeric Functions}
-\pageto{notitle}{ugIntroPage}
-\pageto{notitle}{FloatXmpPage}
-\pageto{notitle}{DoubleFloatXmpPage}
+\pagepic{ps/v71ugproblemnumericpage.eps}{ugProblemNumericPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{An Overview of Axiom}{ugIntroPage}
+\pageto{Float}{FloatXmpPage}
+\pageto{DoubleFloat}{DoubleFloatXmpPage}
<<ug08.ht>>=
\begin{page}{ugProblemNumericPage}{8.1. Numeric Functions}
\beginscroll
-%
Axiom provides two basic floating-point types: \axiomType{Float} and
\axiomType{DoubleFloat}. This section describes how to use numerical
operations defined on these types and the related complex types.
-As we mentioned in \downlink{``\ugIntroTitle''}{ugIntroPage} in
-Chapter \ugIntroNumber\ignore{ugIntro}, the \axiomType{Float} type is
+As we mentioned in \downlink{``An Overview of Axiom''}{ugIntroPage} in
+Chapter 1\ignore{ugIntro}, the \axiomType{Float} type is
a software implementation of floating-point numbers in which the
exponent and the significand may have any number of digits. See
\downlink{`Float'}{FloatXmpPage}\ignore{Float} for detailed
@@ -37160,8 +37165,8 @@ extensions of these fields.
\xtc{
Convert this to have coefficients in the finite field with
\texht{$19^3$}{\axiom{19**3}} elements. See
-\downlink{``\ugProblemFiniteTitle''}{ugProblemFinitePage} in Section
-\ugProblemFiniteNumber\ignore{ugProblemFinite} for more information
+\downlink{``Finite Fields''}{ugProblemFinitePage} in Section
+8.11\ignore{ugProblemFinite} for more information
about finite fields.
}{
\spadpaste{factor(u :: POLY FFX(PF 19,3)) \free{u}}
@@ -37283,10 +37288,12 @@ In this section we show you how to work with one root
or all roots
of a polynomial.
These roots are represented symbolically (as opposed to being
numeric approximations).
-See \downlink{``\ugxProblemOnePolTitle''}{ugxProblemOnePolPage}
-in Section \ugxProblemOnePolNumber\ignore{ugxProblemOnePol} and
-\downlink{``\ugxProblemPolSysTitle''}{ugxProblemPolSysPage} in
-Section \ugxProblemPolSysNumber\ignore{ugxProblemPolSys} for
+See \downlink{``Solution of a Single Polynomial Equation''}
+{ugxProblemOnePolPage}
+in Section 8.5.2\ignore{ugxProblemOnePol} and
+\downlink{``Solution of Systems of Polynomial Equations''}
+{ugxProblemPolSysPage} in
+Section 8.5.3\ignore{ugxProblemPolSys} for
information about solving for the roots of one or more
polynomials.
@@ -37422,8 +37429,9 @@ its trace and norm.
\xtc{
Corresponding to the pair of operations
\axiomFun{rootOf}/\axiomFun{zeroOf} in
-\downlink{``\ugxProblemOnePolTitle''}{ugxProblemOnePolPage} in Section
-\ugxProblemOnePolNumber\ignore{ugxProblemOnePol}, there is an
+\downlink{``Solution of a Single Polynomial Equation''}
+{ugxProblemOnePolPage} in Section
+8.5.2\ignore{ugxProblemOnePol}, there is an
operation \axiomFun{zerosOf} that, like \axiomFun{rootsOf}, computes
all the roots of a given polynomial, but which expresses some of them
in terms of radicals.
@@ -37569,8 +37577,8 @@ In this section we discuss the Axiom facilities for
solving
systems of linear equations, finding the roots of polynomials and
solving systems of polynomial equations.
For a discussion of the solution of differential equations, see
-\downlink{``\ugProblemDEQTitle''}{ugProblemDEQPage} in
-Section \ugProblemDEQNumber\ignore{ugProblemDEQ}.
+\downlink{``Solution of Differential Equations''}{ugProblemDEQPage} in
+Section 8.10\ignore{ugProblemDEQ}.
\beginmenu
\menudownlink{{8.5.1. Solution of Systems of Linear Equations}}
@@ -37814,8 +37822,8 @@ Instead of a polynomial equation, one has to give a
list of
equations and instead of a single variable to solve for, a list of
variables.
For solutions of single equations see
-\downlink{``\ugxProblemOnePolTitle''}{ugxProblemOnePolPage} in
-Section \ugxProblemOnePolNumber\ignore{ugxProblemOnePol}.
+\downlink{``Solution of a Single Polynomial Equation''}
+{ugxProblemOnePolPage} in Section 8.5.2\ignore{ugxProblemOnePol}.
%
\xtc{
@@ -38150,8 +38158,8 @@ Sometimes \axiomFun{integrate} can involve symbolic
algebraic numbers
such as those returned by \axiomFunFrom{rootOf}{Expression}.
To see how to work with these strange generated symbols (such as
\axiom{\%\%a0}), see
-\downlink{``\ugxProblemSymRootAllTitle''}{ugxProblemSymRootAllPage}
-in Section \ugxProblemSymRootAllNumber\ignore{ugxProblemSymRootAll}.
+\downlink{``Using All Roots of a Polynomial''}{ugxProblemSymRootAllPage}
+in Section 8.3.2\ignore{ugxProblemSymRootAll}.
Definite integration is the process of computing the area between the
\axiom{x}-axis and the curve of a function \axiom{f(x)}. The
@@ -38243,8 +38251,9 @@ know what kind of exponents are involved.
For information about solving differential equations in terms of
power series, see
-\downlink{``\ugxProblemDEQSeriesTitle''}{ugxProblemDEQSeriesPage} in
-Section \ugxProblemDEQSeriesNumber\ignore{ugxProblemDEQSeries}.
+\downlink{``Power Series Solutions of Differential Equations''}
+{ugxProblemDEQSeriesPage} in
+Section 8.10.3\ignore{ugxProblemDEQSeries}.
\beginmenu
\menudownlink{{8.9.1. Creation of Power Series}}
@@ -38321,22 +38330,21 @@ You can also convert an expression into a series
expansion.
This expression creates the series expansion of \axiom{1/log(y)}
about \axiom{y = 1}.
For details and more examples, see
-\downlink{``\ugxProblemSeriesConversionsTitle''}
+\downlink{``Converting to Power Series''}
{ugxProblemSeriesConversionsPage} in Section
-\ugxProblemSeriesConversionsNumber\ignore{ugxProblemSeriesConversions}.
+8.9.5\ignore{ugxProblemSeriesConversions}.
}{
\spadpaste{series(1/log(y),y = 1)}
}
You can create power series with more general coefficients.
You normally accomplish this via a type declaration (see
-\downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage} in Section
-\ugTypesDeclareNumber\ignore{ugTypesDeclare}).
+\downlink{``Declarations''}{ugTypesDeclarePage} in Section
+2.3\ignore{ugTypesDeclare}).
See
-\downlink{``\ugxProblemSeriesFunctionsTitle''}
+\downlink{``Functions on Power Series''}
{ugxProblemSeriesFunctionsPage}
-in Section \ugxProblemSeriesFunctionsNumber
-\ignore{ugxProblemSeriesFunctions}
+in Section 8.9.4\ignore{ugxProblemSeriesFunctions}
for some warnings about working with declared series.
\xtc{
@@ -38354,8 +38362,8 @@ Then, by assignment, we obtain the Taylor expansion of
You can also create a power series by giving an explicit formula
for its \eth{\axiom{n}} coefficient.
For details and more examples, see
-\downlink{``\ugxProblemSeriesFormulaTitle''}{ugxProblemSeriesFormulaPage}
-in Section \ugxProblemSeriesFormulaNumber\ignore{ugxProblemSeriesFormula}.
+\downlink{``Power Series from Formulas''}{ugxProblemSeriesFormulaPage}
+in Section 8.9.6\ignore{ugxProblemSeriesFormula}.
\xtc{
To create a series about
@@ -38746,9 +38754,9 @@ certain transcendental functions by giving formulas for
their
coefficients. You can also compute such series expansions directly
simply by specifying the function and the point about which the series
is to be expanded. See
-\downlink{``\ugxProblemSeriesConversionsTitle''}
+\downlink{``Converting to Power Series''}
{ugxProblemSeriesConversionsPage} in Section
-\ugxProblemSeriesConversionsNumber\ignore{ugxProblemSeriesConversions}
+8.9.5\ignore{ugxProblemSeriesConversions}
for more information.
Consider the Taylor expansion of \texht{$e^x$}{\axiom{\%e**x}}
@@ -38779,8 +38787,8 @@ powers of \axiom{(x - 0)}, that is, in powers of
\axiom{x}. Since we
did not specify an initial degree, the first term in the series was
the term of degree 0 (the constant term). Note that the formula was
given as an anonymous function. These are discussed in
-\downlink{``\ugUserAnonTitle''}{ugUserAnonPage} in Section
-\ugUserAnonNumber\ignore{ugUserAnon}.
+\downlink{``Anonymous Functions''}{ugUserAnonPage} in Section
+6.17\ignore{ugUserAnon}.
Consider the Taylor expansion of \axiom{log x} about \axiom{x = 1}:
\texht{\narrowDisplay{%
@@ -38867,9 +38875,9 @@ When we compute the \axiom{sin} of this series, we get
\axiom{x}
}
As we discussed in
-\downlink{``\ugxProblemSeriesConversionsTitle''}
+\downlink{``Converting to Power Series''}
{ugxProblemSeriesConversionsPage} in Section
-\ugxProblemSeriesConversionsNumber\ignore{ugxProblemSeriesConversions},
+8.9.5\ignore{ugxProblemSeriesConversions},
you can also use the operations \axiomFun{taylor}, \axiomFun{laurent} and
\axiomFun{puiseux} instead of \axiomFun{series} if you know ahead of time
what kind of exponents a series has.
@@ -39111,8 +39119,8 @@ when integrating factors can be found just by
integration.
For a discussion of the solution of systems of linear and polynomial
equations, see
-\downlink{``\ugProblemLinPolEqnTitle''}{ugProblemLinPolEqnPage} in
-Section \ugProblemLinPolEqnNumber\ignore{ugProblemLinPolEqn}.
+\downlink{``Solution of Linear and Polynomial Equations''}
+{ugProblemLinPolEqnPage} in Section 8.5\ignore{ugProblemLinPolEqn}.
\beginmenu
\menudownlink{
@@ -39529,19 +39537,21 @@ the solution.
@
\pagehead{ugProblemFinitePage}{ug08.ht}{Finite Fields}
-\pageto{notitle}{ugxProblemFinitePrimePage}
-\pageto{notitle}{ugxProblemFinitePrimePage}
-\pageto{notitle}{ugxProblemFiniteExtensionFinitePage}
-\pageto{notitle}{ugxProblemFiniteModulusPage}
-\pageto{notitle}{ugxProblemFiniteCyclicPage}
-\pageto{notitle}{ugxProblemFiniteNormalPage}
-\pageto{notitle}{ugxProblemFiniteConversionPage}
-\pageto{notitle}{ugxProblemFiniteUtilityPage}
+\pagepic{ps/v71ugproblemfinitepage.eps}{ugProblemFinitePage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Modular Arithmetic and Prime Fields}{ugxProblemFinitePrimePage}
+\pageto{Extensions of Finite Fields}{ugxProblemFiniteExtensionFinitePage}
+\pageto{Irreducible Modulus Polynomial Representations}
+{ugxProblemFiniteModulusPage}
+\pageto{Cyclic Group Representations}{ugxProblemFiniteCyclicPage}
+\pageto{Normal Basis Representations}{ugxProblemFiniteNormalPage}
+\pageto{Conversion Operations for Finite Fields}
+{ugxProblemFiniteConversionPage}
+\pageto{Utility Operations for Finite Fields}
+{ugxProblemFiniteUtilityPage}
<<ug08.ht>>=
\begin{page}{ugProblemFinitePage}{8.11. Finite Fields}
\beginscroll
-%
-
A {\it finite field} (also called a {\it Galois field}) is a
finite algebraic structure where one can add, multiply and divide
under the same laws (for example, commutativity, associativity or
@@ -39568,8 +39578,9 @@ Press, 1983, ISBN 0 521 30240 4.}
When \axiom{n = 1,} the field has \smath{p} elements and is
called a {\it prime field}, discussed in \texht{the next
section}{
-\downlink{``\ugxProblemFinitePrimeTitle''}{ugxProblemFinitePrimePage}
-in Section \ugxProblemFinitePrimeNumber\ignore{ugxProblemFinitePrime}}.
+\downlink{``Modular Arithmetic and Prime Fields''}
+{ugxProblemFinitePrimePage}
+in Section 8.11.1\ignore{ugxProblemFinitePrime}}.
There are several ways of implementing extensions of finite
fields, and Axiom provides quite a bit of freedom to allow
you to choose the one that is best for your application.
@@ -39579,8 +39590,8 @@ field.
Finally, note that you usually need to package-call operations
from finite fields if the operations do not take as an argument an
object of the field.
-See \downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage} in
-Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall} for more
+See \downlink{``Package Calling and Target Types''}
+{ugTypesPkgCallPage} in Section 2.9\ignore{ugTypesPkgCall} for more
information on package-calling.
\beginmenu
@@ -39883,9 +39894,8 @@ This polynomial may be given explicitly by you or
automatically
generated.
The ground field may be the prime field or one you specify.
See
-\downlink{``\ugxProblemFiniteExtensionFiniteTitle''}
-{ugxProblemFiniteExtensionFinitePage} in Section
-\ugxProblemFiniteExtensionFiniteNumber
+\downlink{``Extensions of Finite Fields''}
+{ugxProblemFiniteExtensionFinitePage} in Section 8.11.2
\ignore{ugxProblemFiniteExtensionFinite}
for general information about finite field extensions.
@@ -40042,9 +40052,9 @@ multiplicative group). Multiplication (and hence
exponentiation)
using this representation is easy. To do addition, we consider our
primitive element as the root of a primitive polynomial (an
irreducible polynomial whose roots are all primitive). See
-\downlink{``\ugxProblemFiniteUtilityTitle''}
+\downlink{``Utility Operations for Finite Fields''}
{ugxProblemFiniteUtilityPage} in Section
-\ugxProblemFiniteUtilityNumber\ignore{ugxProblemFiniteUtility} for
+8.11.7\ignore{ugxProblemFiniteUtility} for
examples of how to compute such a polynomial.
%
@@ -40125,8 +40135,9 @@ polynomial.
\xtc{
We use a utility operation to generate an irreducible primitive
polynomial (see
-\downlink{``\ugxProblemFiniteUtilityTitle''}{ugxProblemFiniteUtilityPage}
-in Section \ugxProblemFiniteUtilityNumber\ignore{ugxProblemFiniteUtility}).
+\downlink{``Utility Operations for Finite Fields''}
+{ugxProblemFiniteUtilityPage}
+in Section 8.11.7\ignore{ugxProblemFiniteUtility}).
The polynomial has one variable that is ``anonymous'': it displays
as a question mark.
}{
@@ -40257,8 +40268,9 @@ The degree of the extension is the degree of the
polynomial.
\xtc{
We use a utility operation to generate an irreducible normal
polynomial (see
-\downlink{``\ugxProblemFiniteUtilityTitle''}{ugxProblemFiniteUtilityPage}
-in Section \ugxProblemFiniteUtilityNumber\ignore{ugxProblemFiniteUtility}).
+\downlink{``Utility Operations for Finite Fields''}
+{ugxProblemFiniteUtilityPage}
+in Section 8.11.7\ignore{ugxProblemFiniteUtility}).
The polynomial has one variable that is ``anonymous'': it displays
as a question mark.
}{
@@ -40380,9 +40392,8 @@ To check this, let's do some arithmetic.
There are also conversions available for the
situation, when \texht{$K_m$}{\axiom{Km}} and \texht{$K_n$}{\axiom{Kn}}
are represented in different ways (see
-\downlink{``\ugxProblemFiniteExtensionFiniteTitle''}
-{ugxProblemFiniteExtensionFinitePage} in Section
-\ugxProblemFiniteExtensionFiniteNumber
+\downlink{``Extensions of Finite Fields''}
+{ugxProblemFiniteExtensionFinitePage} in Section 8.11.2
\ignore{ugxProblemFiniteExtensionFinite}).
For example let's choose \texht{$K_m$}{\axiom{Km}} where the
representation is 0 plus the cyclic multiplicative group and
@@ -41155,8 +41166,8 @@ following five commands as necessary).
Proceeding in this fashion, you can find the values of
\axiom{aa2,...aa5}.\footnote{Here you should use the \Clef{} line
-editor. See \downlink{``\ugAvailCLEFTitle''}{ugAvailCLEFPage} in
-Section \ugAvailCLEFNumber\ignore{ugAvailCLEF} for more information
+editor. See \downlink{``Clef''}{ugAvailCLEFPage} in
+Section 1.1.1\ignore{ugAvailCLEF} for more information
about \Clef{}.} You have represented the automorphism \axiom{beta ->
bb} as a permutation of the roots \axiom{a1,...,a5}. If you wish, you
can repeat this computation for all the roots of \smath{r(x)} and
@@ -41439,8 +41450,8 @@ By the end of this chapter you will know enough about
graphics and
programming in the interpreter to not only understand all these
examples, but to tackle interesting and difficult problems on your
own.
-\downlink{``\ugAppGraphicsTitle''}{ugAppGraphicsPage} in
-Appendix \ugAppGraphicsNumber\ignore{ugAppGraphics} lists
+\downlink{``Programs for Axiom Images''}{ugAppGraphicsPage} in
+Appendix G\ignore{ugAppGraphics} lists
all the remaining commands and
programs used to create these images.
@@ -41558,8 +41569,8 @@ There are many other things you can do.
In fact, most everything you can do interactively using the
\threedim{} control panel (such as translating, zooming, resizing,
coloring, perspective and lighting selections) can also be done
-directly by operations (see \downlink{``\ugGraphTitle''}{ugGraphPage}
-in Chapter \ugGraphNumber\ignore{ugGraph} for more details).
+directly by operations (see \downlink{``Graphics''}{ugGraphPage}
+in Chapter 7\ignore{ugGraph} for more details).
When you are done experimenting, say \spad{reset(vp)} to restore the
picture to its original position and settings.
@@ -41687,16 +41698,17 @@ containing the following program.
\endImportant
Here are some remarks on the syntax used in the \pspadfun{drawRibbons}
-function (consult \downlink{``\ugUserTitle''}{ugUserPage} in Chapter
-\ugUserNumber\ignore{ugUser} for more details). Unlike most other
+function (consult
+\downlink{``User-Defined Functions, Macros and Rules''}{ugUserPage}
+in Chapter 6\ignore{ugUser} for more details). Unlike most other
programming languages which use semicolons, parentheses, or {\it
begin}--{\it end} brackets to delineate the structure of programs, the
structure of an Axiom program is determined by indentation. The first
line of the function definition always begins in column 1. All other
lines of the function are indented with respect to the first line and
form a \spadgloss{pile} (see
-\downlink{``\ugLangBlocksTitle''}{ugLangBlocksPage} in Section
-\ugLangBlocksNumber\ignore{ugLangBlocks}).
+\downlink{``Blocks''}{ugLangBlocksPage} in Section
+5.2\ignore{ugLangBlocks}).
The definition of \userfun{drawRibbons} consists of a pile of
expressions to be executed one after another. Each expression of the
@@ -42165,8 +42177,8 @@ draw the complex valued function, again considering the
\smath{(x,y)}-plane as the complex plane, using \smath{r} as the
height (or \smath{z}-coordinate) and \smath{\theta} as the color.
This is a standard plot---we learned how to do this in
-\downlink{``\ugGraphTitle''}{ugGraphPage} in Chapter
-\ugGraphNumber\ignore{ugGraph}---but here we write a new program to
+\downlink{``Graphics''}{ugGraphPage} in Chapter
+7\ignore{ugGraph}---but here we write a new program to
illustrate the creation of polygon meshes, or grids.
Call this function \userfun{drawComplex}.
@@ -42262,8 +42274,8 @@ Draw it with an odd number of steps to avoid the pole.
\begin{page}{ugIntProgFunctionsPage}{10.8. Functions Producing Functions}
\beginscroll
-In \downlink{``\ugUserMakeTitle''}{ugUserMakePage} in Section
-\ugUserMakeNumber\ignore{ugUserMake}, you learned how to use the
+In \downlink{``Making Functions from Objects''}{ugUserMakePage} in Section
+6.14\ignore{ugUserMake}, you learned how to use the
operation \spadfun{function} to create a function from symbolic
formulas. Here we introduce a similar operation which not only
creates functions, but functions from functions.
@@ -42490,15 +42502,15 @@ Axiom's algorithmic library, from numeric packages
for computing
special functions to symbolic facilities for
differential equations, symbolic integration, and limits.
-In \downlink{``\ugIntProgTitle''}{ugIntProgPage} in Chapter
-\ugIntProgNumber\ignore{ugIntProg}, we developed several useful
+In \downlink{``Interactive Programming''}{ugIntProgPage} in Chapter
+10\ignore{ugIntProg}, we developed several useful
functions for drawing vector fields and complex functions. We now
show you how you can add these functions to the Axiom library to make
them available for general use.
The way we created the functions in
-\downlink{``\ugIntProgTitle''}{ugIntProgPage} in Chapter
-\ugIntProgNumber\ignore{ugIntProg} is typical of how you, as an
+\downlink{``Interactive Programming''}{ugIntProgPage} in Chapter
+10\ignore{ugIntProg} is typical of how you, as an
advanced Axiom user, may interact with Axiom. You have an
application. You go to your editor and create an input file defining
some functions for the application. Then you run the file and try the
@@ -42597,14 +42609,14 @@ drawComplex(f,\ realRange,\ imagRange,\ arrows?)\ ==\
...}\newline
Each package has a name and an abbreviation. For a package of the
complex draw functions from
-\downlink{``\ugIntProgTitle''}{ugIntProgPage} in Chapter
-\ugIntProgNumber\ignore{ugIntProg}, we choose the name
+\downlink{``Interactive Programming''}{ugIntProgPage} in Chapter
+10\ignore{ugIntProg}, we choose the name
\nonLibAxiomType{DrawComplex} and abbreviation
\nonLibAxiomType{DRAWCX}.\footnote{An abbreviation can be any string
of between two and seven capital letters and digits, beginning with a
letter. See
-\downlink{``\ugTypesWritingAbbrTitle''}{ugTypesWritingAbbrPage} in
-Section \ugTypesWritingAbbrNumber\ignore{ugTypesWritingAbbr} for more
+\downlink{``Abbreviations''}{ugTypesWritingAbbrPage} in
+Section 2.5.5\ignore{ugTypesWritingAbbr} for more
information.} To be sure that you have not chosen a name or
abbreviation already used by the system, issue the system command
\spadcmd{)show} for both the name and the abbreviation.
@@ -42710,8 +42722,8 @@ to users. As an author of a package, you must ensure
that the {\tt
Implementation} part provides a function for each operation in the
{\tt Exports} part.\footnote{The \spadtype{DrawComplex} package
enhances the facility described in
-\downlink{``\ugIntProgCompFunsTitle''}{ugIntProgCompFunsPage} in
-Chapter \ugIntProgCompFunsNumber\ignore{ugIntProgCompFuns} by allowing
+\downlink{``Drawing Complex Functions''}{ugIntProgCompFunsPage} in
+Chapter 10.7\ignore{ugIntProgCompFuns} by allowing
a complex function to have arrows emanating from the surface to
indicate the direction of the complex argument.}
@@ -42921,13 +42933,13 @@ The power of packages becomes evident when packages
have parameters.
Usually these parameters are domains and the exported operations have
types involving these parameters.
-In \downlink{``\ugTypesTitle''}{ugTypesPage} in Chapter
-\ugTypesNumber\ignore{ugTypes}, you learned that categories denote
+In \downlink{``Using Types and Modes''}{ugTypesPage} in Chapter
+2\ignore{ugTypes}, you learned that categories denote
classes of domains. Although we cover this notion in detail in the
next chapter, we now give you a sneak preview of its usefulness.
-In \downlink{``\ugUserBlocksTitle''}{ugUserBlocksPage} in Section
-\ugUserBlocksNumber\ignore{ugUserBlocks}, we defined functions
+In \downlink{``Functions Defined with Blocks''}{ugUserBlocksPage} in
+Section 6.15\ignore{ugUserBlocks}, we defined functions
\axiom{bubbleSort(m)} and \axiom{insertionSort(m)} to sort a list of
integers. If you look at the code for these functions, you see that
they may be used to sort {\it any} structure \axiom{m} with the right
@@ -42951,9 +42963,8 @@ maximum index of the list. The first obvious property
is that
done by your telling Axiom that \axiom{m} has the ``attribute''
\spadatt{finiteAggregate}. An \spadgloss{attribute} is a property
that a domain either has or does not have. As we show later in
-\downlink{``\ugCategoriesAttributesTitle''}{ugCategoriesAttributesPage}
-in Section
-\ugCategoriesAttributesNumber\ignore{ugCategoriesAttributes}, programs
+\downlink{``Attributes''}{ugCategoriesAttributesPage}
+in Section 12.9\ignore{ugCategoriesAttributes}, programs
can query domains as to the presence or absence of an attribute.
The operation \spadfunX{swap} swaps elements of \axiom{m}.
@@ -43095,8 +43106,8 @@ bubbleSort!(m)\ ==\ bubbleSort!(m,<\$S)}\newline
insertionSort!(m)\ ==\ insertionSort!(m,<\$S)}\newline
\endImportant
-In \downlink{``\ugUserBlocksTitle''}{ugUserBlocksPage} in Section
-\ugUserBlocksNumber\ignore{ugUserBlocks}, we give an alternative
+In \downlink{``Functions Defined with Blocks''}{ugUserBlocksPage} in
+Section 6.15\ignore{ugUserBlocks}, we give an alternative
definition of \fakeAxiomFun{bubbleSort} using
\spadfunFrom{first}{List} and \spadfunFrom{rest}{List} that is more
efficient for a list (for which access to any element requires
@@ -43315,8 +43326,8 @@ IndexedAggregate(Integer, D2) with} two attributes.
So the interpreter searches for an \axiomType{IndexedAggregate}
among the ancestors of \axiomType{List (Integer)} (see
-\downlink{``\ugCategoriesHierTitle''}{ugCategoriesHierPage} in Section
-\ugCategoriesHierNumber\ignore{ugCategoriesHier}). It finds one:
+\downlink{``Hierarchies''}{ugCategoriesHierPage} in Section
+12.4\ignore{ugCategoriesHier}). It finds one:
\axiomType{IndexedAggregate(Integer, Integer)}. The interpreter tries
defining \axiom{D2} as \axiomType{Integer}. After substituting for
\axiom{D1} and \axiom{D2}, the predicate evaluates to \axiom{true}.
@@ -43363,9 +43374,8 @@ system to include new categories of your own.
We assume that you have read the introductory material on domains and
categories in
-\downlink{``\ugTypesBasicDomainConsTitle''}{ugTypesBasicDomainConsPage}
-in Section
-\ugTypesBasicDomainConsNumber\ignore{ugTypesBasicDomainCons}. There
+\downlink{``Domain Constructors''}{ugTypesBasicDomainConsPage}
+in Section 2.1.1\ignore{ugTypesBasicDomainCons}. There
you learned that the notion of packages covered in the previous
chapter are special cases of domains. While this is in fact the case,
it is useful here to regard domains as distinct from packages.
@@ -43458,8 +43468,8 @@ always in column one in the source file.
All parts of a category definition are then indented with respect to this
first line.
-In \downlink{``\ugTypesTitle''}{ugTypesPage} in Chapter
-\ugTypesNumber\ignore{ugTypes}, we talked about \spadtype{Ring} as
+In \downlink{``Using Types and Modes''}{ugTypesPage} in Chapter
+2\ignore{ugTypes}, we talked about \spadtype{Ring} as
denoting the class of all domains that are rings, in short, the class
of all rings. While this is the usual naming convention in Axiom, it
is also common to use the word ``Category'' at the end of a category
@@ -43748,8 +43758,8 @@ operations \spadop{*} and \spadop{**}.
We actually omitted the last
part of the definition of
\spadtype{SemiGroup} in
-\downlink{``\ugCategoriesHierTitle''}{ugCategoriesHierPage}
-in Section \ugCategoriesHierNumber\ignore{ugCategoriesHier}.
+\downlink{``Hierarchies''}{ugCategoriesHierPage}
+in Section 12.4\ignore{ugCategoriesHier}.
Here now is its complete Axiom definition.
\beginImportant
@@ -43784,8 +43794,8 @@ sense of the hierarchy) to the domain is chosen.
The part of the category definition following an \spadop{add} operation
is a \spadgloss{capsule}, as discussed in
\texht{the previous chapter.}
-{\downlink{``\ugPackagesTitle''}{ugPackagesPage}
-in Chapter \ugPackagesNumber\ignore{ugPackages}.}
+{\downlink{``Packages''}{ugPackagesPage}
+in Chapter 11\ignore{ugPackages}.}
The line
\begin{verbatim}
import RepeatedSquaring($)
@@ -43834,8 +43844,8 @@ as automatically generated by Axiom from the above
definition of
\beginscroll
In \texht{the previous section}
-{\downlink{``\ugCategoriesDefaultsTitle''}{ugCategoriesDefaultsPage}
-in Section \ugCategoriesDefaultsNumber\ignore{ugCategoriesDefaults}}
+{\downlink{``Defaults''}{ugCategoriesDefaultsPage}
+in Section 12.6\ignore{ugCategoriesDefaults}}
you saw the complete Axiom program defining \index{axiom}
\spadtype{SemiGroup}. According to this definition, semigroups (that
is, are sets with the operations \spadopFrom{*}{SemiGroup} and
@@ -43973,8 +43983,8 @@ have commutative multiplication?
Attributes are used to conditionally export and define
operations for a domain (see
-\downlink{``\ugDomainsAssertionsTitle''}{ugDomainsAssertionsPage} in
-Section \ugDomainsAssertionsNumber\ignore{ugDomainsAssertions}).
+\downlink{``Category Assertions''}{ugDomainsAssertionsPage} in
+Section 13.3\ignore{ugDomainsAssertions}).
Attributes can also be asserted in a category definition.
After mentioning category \spadtype{Ring} many times in this book,
@@ -44138,8 +44148,8 @@ if R has IntegerNumberSystem then
Here the predicate used is identical to the predicate in the {\tt
Exports} part. This need not be the case. See
-\downlink{``\ugPackagesCondsTitle''}{ugPackagesCondsPage} in Section
-\ugPackagesCondsNumber\ignore{ugPackagesConds} for a more complicated
+\downlink{``Conditionals''}{ugPackagesCondsPage} in Section
+11.8\ignore{ugPackagesConds} for a more complicated
example.
\endscroll
@@ -44157,8 +44167,8 @@ The part of a category to the right of a {\tt with} is
also regarded
as a category---an ``anonymous category.'' Thus you have already seen
a category definition The {\tt Exports} part of the package
\pspadtype{DrawComplex}
-(\downlink{``\ugPackagesAbstractTitle''}{ugPackagesAbstractPage} in
-Section \ugPackagesAbstractNumber\ignore{ugPackagesAbstract}) is an
+(\downlink{``Abstract Datatypes''}{ugPackagesAbstractPage} in
+Section 11.3\ignore{ugPackagesAbstract}) is an
anonymous category. This is not necessary. We could, instead, give
this category a name:
@@ -44267,8 +44277,8 @@ operation returns an element of the domain.
If no exported operations mention \axiomSyntax{\$}, then evidently
there is nothing of interest to do with the objects of the domain.
You might then say that a package is a ``boring'' domain! But, as you
-saw in \downlink{``\ugPackagesTitle''}{ugPackagesPage} in Chapter
-\ugPackagesNumber\ignore{ugPackages}, packages are a very useful
+saw in \downlink{``Packages''}{ugPackagesPage} in Chapter
+11\ignore{ugPackages}, packages are a very useful
notion indeed. The exported operations of a package depend solely on
the parameters to the package constructor and other explicit domains.
@@ -44416,9 +44426,8 @@ means that membership in a category does not depend on
the values of
the parameters to the domain constructor. This part thus defines the
link between the domains and the category hierarchies given on the
inside covers of this book. As described in
-\downlink{``\ugCategoriesCorrectnessTitle''}{ugCategoriesCorrectnessPage}
-in Section
-\ugCategoriesCorrectnessNumber\ignore{ugCategoriesCorrectness}, it is
+\downlink{``Correctness''}{ugCategoriesCorrectnessPage}
+in Section 12.8\ignore{ugCategoriesCorrectness}, it is
this link that makes it possible for you to pass objects of the
domains as arguments to other operations in Axiom.
@@ -44434,9 +44443,8 @@ possible to pass quadratic forms to algorithms that
only assume
arguments to have these abelian group properties.
In
-\downlink{``\ugCategoriesConditionalsTitle''}{ugCategoriesConditionalsPage}
-in Section
-\ugCategoriesConditionalsNumber\ignore{ugCategoriesConditionals}, you
+\downlink{``Conditionals''}{ugCategoriesConditionalsPage}
+in Section 12.11\ignore{ugCategoriesConditionals}, you
saw that \axiomType{Fraction(R)}, a member of
\axiomType{QuotientFieldCategory(R)}, is a member of
\axiomType{OrderedSet} if \axiom{R} is a member of
@@ -44594,13 +44602,13 @@ required by the compiler. Aside from checking that
the matrix is
symmetric, the code for this function essentially does nothing. The
{\frenchspacing\tt m :: \$} on line 28 coerces \axiom{m} to a
quadratic form. In fact, the quadratic form you created in step (3)
-of \downlink{``\ugDomainsDemoTitle''}{ugDomainsDemoPage} in Section
-\ugDomainsDemoNumber\ignore{ugDomainsDemo} is just the matrix you
+of \downlink{``A Demo''}{ugDomainsDemoPage} in Section
+13.4\ignore{ugDomainsDemo} is just the matrix you
passed it in disguise! Without seeing this definition, you would not
know that. Nor can you take advantage of this fact now that you do
know! When we try in the next step of
-\downlink{``\ugDomainsDemoTitle''}{ugDomainsDemoPage} in Section
-\ugDomainsDemoNumber\ignore{ugDomainsDemo} to regard \axiom{q} as a
+\downlink{``A Demo''}{ugDomainsDemoPage} in Section
+13.4\ignore{ugDomainsDemo} to regard \axiom{q} as a
matrix by asking for \axiomFun{nrows}, the number of its rows, Axiom
gives you an error message saying, in effect, ``Good try, but this
won't work!''
@@ -44686,8 +44694,8 @@ of polynomial implementation is used.
Within a given domain, however, you define (at most) one
representation.\footnote{You can make that representation a
\pspadtype{Union} type, however. See
-\downlink{``\ugTypesUnionsTitle''}{ugTypesUnionsPage} in Section
-\ugTypesUnionsNumber\ignore{ugTypesUnions} for examples of unions.}
+\downlink{``Unions''}{ugTypesUnionsPage} in Section
+2.5\ignore{ugTypesUnions} for examples of unions.}
If you want to have multiple representations (that is, several
domains, each with its own representation), use a category to describe
the {\tt Exports}, then define separate domains for each
@@ -44708,8 +44716,8 @@ representation.
The capsule part of {\tt Implementation} defines functions that
implement the operations exported by the domain---usually only some of
the operations. In our demo in
-\downlink{``\ugDomainsDemoTitle''}{ugDomainsDemoPage} in Section
-\ugDomainsDemoNumber\ignore{ugDomainsDemo}, we asked for the value of
+\downlink{``A Demo''}{ugDomainsDemoPage} in Section
+13.4\ignore{ugDomainsDemo}, we asked for the value of
\axiom{3*q-q+q}. Where do the operations \axiomOp{*}, \axiomOp{+},
and \axiomOp{-} come from? There is no definition for them in the
capsule!
@@ -44736,8 +44744,8 @@ and \axiomOpFrom{-}{QuadraticForm} come from
\begin{page}{ugDomainsDefaultsPage}{13.9. Defaults}
\beginscroll
%
-In \downlink{``\ugPackagesTitle''}{ugPackagesPage} in
-Chapter \ugPackagesNumber\ignore{ugPackages}, we saw that
+In \downlink{``Packages''}{ugPackagesPage} in
+Chapter 11\ignore{ugPackages}, we saw that
categories can provide
default implementations for their operations.
How and when are they used?
@@ -44767,8 +44775,8 @@ for \axiomType{QuadraticForm}, consult \Browse{}: from
the
Let's apply this search strategy for our example \axiom{3*q-q+q}. The
scalar multiplication comes first. Axiom finds a default
implementation in \axiomType{AbelianGroup\&}. Remember from
-\downlink{``\ugCategoriesDefaultsTitle''}{ugCategoriesDefaultsPage} in
-Section \ugCategoriesDefaultsNumber\ignore{ugCategoriesDefaults} that
+\downlink{``Defaults''}{ugCategoriesDefaultsPage} in
+Section 12.6\ignore{ugCategoriesDefaults} that
\axiomType{SemiGroup} provides a default definition for
\texht{$x^n$}{x**n} by repeated squaring? \axiomType{AbelianGroup}
similarly provides a definition for \texht{$n x$}{n*x} by repeated
@@ -45684,18 +45692,16 @@ We show the use of each of the buttons by example.
First enter the search string {\tt Matrix} into the input area and
click on {\bf Constructors}. What you get is the {\it constructor
page} for \axiomType{Matrix}. We show and describe this page in
-detail in \downlink{``\ugBrowseDomainTitle''}{ugBrowseDomainPage} in
-Section \ugBrowseDomainNumber\ignore{ugBrowseDomain}. By convention,
+detail in \downlink{``The Constructor Page''}{ugBrowseDomainPage} in
+Section 14.2\ignore{ugBrowseDomain}. By convention,
Axiom does a case-insensitive search for a match. Thus {\tt matrix}
is just as good as {\tt Matrix}, has the same effect as {\tt MaTrix},
and so on. We recommend that you generally use small letters for
names however. A search string with only capital letters has a
special meaning (see
-\downlink{``\ugBrowseCapitalizationConventionTitle''}
+\downlink{``Capitalization Convention''}
{ugBrowseCapitalizationConventionPage}
-in Section
-\ugBrowseCapitalizationConventionNumber
-\ignore{ugBrowseCapitalizationConvention}).
+in Section 14.3.3\ignore{ugBrowseCapitalizationConvention}).
Click on \UpBitmap{} to return to the \Browse{} front page.
@@ -45727,10 +45733,8 @@ Again click on the \UpBitmap{} to return to the table
of constructors
whose names contain {\tt matrix}. Below the table is a {\it Views}
panel. This panel contains buttons that let you view constructors in
different ways. To learn about views of constructors, skip to
-\downlink{``\ugBrowseViewsOfConstructorsTitle''}
-{ugBrowseViewsOfConstructorsPage}
-in Section
-\ugBrowseViewsOfConstructorsNumber\ignore{ugBrowseViewsOfConstructors}.
+\downlink{``Views Of Constructors''}{ugBrowseViewsOfConstructorsPage}
+in Section 14.2.3\ignore{ugBrowseViewsOfConstructors}.
Click on \UpBitmap{} to return to the \Browse{} front page.
@@ -45745,10 +45749,8 @@ If you select an operation name, you go to a page
describing all the
operations in Axiom of that name. At the bottom of an operation page
is another kind of {\it Views} panel, one for operation pages. To
learn more about these views, skip to
-\downlink{``\ugBrowseViewsOfOperationsTitle''}
-{ugBrowseViewsOfOperationsPage}
-in Section
-\ugBrowseViewsOfOperationsNumber\ignore{ugBrowseViewsOfOperations}.
+\downlink{``Views of Operations''}{ugBrowseViewsOfOperationsPage}
+in Section 14.3.2\ignore{ugBrowseViewsOfOperations}.
Click on \UpBitmap{} to return to the \Browse{} front page.
@@ -45878,10 +45880,8 @@ below.
If you click on an operation name, you bring up a description page for
the operations. For a detailed description of these pages, skip to
-\downlink{``\ugBrowseViewsOfOperationsTitle''}
-{ugBrowseViewsOfOperationsPage}
-in Section
-\ugBrowseViewsOfOperationsNumber\ignore{ugBrowseViewsOfOperations}.
+\downlink{``Views of Operations''}{ugBrowseViewsOfOperationsPage}
+in Section 14.3.2\ignore{ugBrowseViewsOfOperations}.
\subsubsection{Attributes}
@@ -46747,8 +46747,9 @@ general, the correspondence to Axiom types is as
follows.
(Exceptionally, for NAG EXTERNAL parameters -- ASPs in link parlance
-- REAL and COMPLEX correspond to \axiomType{MachineFloat} and
\axiomType{MachineComplex},
-respectively; see \downlink{``\aspSectionTitle''}{aspSectionPage}
-in Section \aspSectionNumber\ignore{aspSection}.)
+respectively; see
+\downlink{``Providing values for Argument Subprograms''}
+{aspSectionPage} in Section 15.3.3\ignore{aspSection}.)
The correspondence for aggregates is as follows.
\indent{4}
@@ -46768,8 +46769,8 @@ Higher-dimensional arrays are not currently needed for
the \naglib{}.
Arguments which are Fortran FUNCTIONs or SUBROUTINEs correspond to
special ASP domains in Axiom. See
-\downlink{``\aspSectionTitle''}{aspSectionPage} in Section
-\aspSectionNumber\ignore{aspSection}.
+\downlink{``Providing values for Argument Subprograms''}
+{aspSectionPage} in Section 15.3.3\ignore{aspSection}.
\subsubsection{Classification of NAG parameters}
@@ -46966,8 +46967,8 @@ from appropriate instantiations of
\axiomType{Expression},
\texht{\exptypeindex{FortranCode}}{} \axiomType{FortranCode} allows us
to build arbitrarily complex ASPs via a kind of pseudo-code. It is
described fully in
-\downlink{``\generalFortranTitle''}{generalFortranPage} in Section
-\generalFortranNumber\ignore{generalFortran}.
+\downlink{``General Fortran-generation utilities in Axiom''}
+{generalFortranPage} in Section 15.3.4\ignore{generalFortran}.
Every ASP exports two \axiomFun{coerce} functions: one from
\axiomType{FortranCode} and one from \axiomType{List FortranCode}.
@@ -47647,8 +47648,8 @@ the resulting program on the numeric part of the RPC
stream.
The \axiom{leave} keyword has been replaced by the \axiom{break}
keyword for compatibility with the new Axiom extension language. See
-section \downlink{``\ugLangLoopsBreakTitle''}{ugLangLoopsBreakPage} in
-Section \ugLangLoopsBreakNumber\ignore{ugLangLoopsBreak} for more
+section \downlink{``break in Loops''}{ugLangLoopsBreakPage} in
+Section 5.4.3\ignore{ugLangLoopsBreak} for more
information.
Curly braces are no longer used to create sets. Instead, use
@@ -47659,8 +47660,8 @@ Curly braces are no longer used to create sets.
Instead, use
}
Curly braces are now used to enclose a block (see section
-\downlink{``\ugLangBlocksTitle''}{ugLangBlocksPage} in Section
-\ugLangBlocksNumber\ignore{ugLangBlocks} for more information). For
+\downlink{``Blocks''}{ugLangBlocksPage} in Section
+5.2\ignore{ugLangBlocks} for more information). For
compatibility, a block can still be enclosed by parentheses as well.
``Free functions'' created by the Aldor compiler can now be
@@ -47836,14 +47837,16 @@ HyperDoc.
A section has been added to the graphics chapter, describing how to
build \twodim{} graphs from lists of points. An example is given
showing how to read the points from a file. See section
-\downlink{``\ugGraphTwoDbuildTitle''}{ugGraphTwoDbuildPage} in Section
-\ugGraphTwoDbuildNumber\ignore{ugGraphTwoDbuild} for details.
+\downlink{``Building Two-Dimensional Graphs''}
+{ugGraphTwoDbuildPage} in Section
+7.1.9\ignore{ugGraphTwoDbuild} for details.
A further section has been added to that same chapter, describing how
to add a \twodim{} graph to a viewport which already contains other
graphs. See section
-\downlink{``\ugGraphTwoDappendTitle''}{ugGraphTwoDappendPage} in
-Section \ugGraphTwoDappendNumber\ignore{ugGraphTwoDappend} for
+\downlink{``Appending a Graph to a Viewport
+Window Containing a Graph''}{ugGraphTwoDappendPage} in
+Section 7.1.10\ignore{ugGraphTwoDappend} for
details.
Chapter 3
@@ -47851,14 +47854,14 @@ and the on-line Hyperdoc help have been unified.
An explanation of operation names ending in ``?'' and ``!'' has been
added to the first chapter. See the end of the section
-\downlink{``\ugIntroCallFunTitle''}{ugIntroCallFunPage} in Section
-\ugIntroCallFunNumber\ignore{ugIntroCallFun} for details.
+\downlink{``Calling Functions''}{ugIntroCallFunPage} in Section
+1.3.6\ignore{ugIntroCallFun} for details.
An expanded explanation of using predicates has been added to the
sixth chapter. See the example involving \userfun{evenRule} in the
middle of the section
-\downlink{``\ugUserRulesTitle''}{ugUserRulesPage} in Section
-\ugUserRulesNumber\ignore{ugUserRules} for details.
+\downlink{``Rules and Pattern Matching''}{ugUserRulesPage} in Section
+6.21\ignore{ugUserRules} for details.
Documentation for the \spadcmd{)compile}, \spadcmd{)library} and
\spadcmd{)load} commands has been greatly changed. This reflects
@@ -47982,8 +47985,8 @@ set the user-access level to the three possible
choices. All commands
are available at {\tt development} level and the fewest are available
at {\tt interpreter} level. The default user-level is {\tt
interpreter}. In addition to the \spadcmd{)set} command (discussed in
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage} in Section
-\ugSysCmdsetNumber\ignore{ugSysCmdset}) you can use the Hyperdoc
+\downlink{``)set''}{ugSysCmdsetPage} in Section
+B.21\ignore{ugSysCmdset}) you can use the Hyperdoc
settings facility to change the {\it user-level.} \texht{}{Click on
\lispmemolink{Settings}{(|htSystemVariables|)} here to immediately go
to the settings facility.}
@@ -48145,9 +48148,7 @@ constructor name \spadtype{VectorFunctions2} from the
system:
\end{verbatim}
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage}
-in section \ugSysCmdcompileNumber
-
+\downlink{``)compile''}{ugSysCmdcompilePage} in section B.7
\endscroll
\autobuttons
@@ -48183,14 +48184,10 @@ creates and compiles the \Lisp{} function ``times3''
obtained by translating the BOOT code.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdfinTitle''}{ugSysCmdfinPage} in
-section \ugSysCmdfinNumber
-\downlink{``\ugSysCmdlispTitle''}{ugSysCmdlispPage} in
-section \ugSysCmdlispNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage} in
-section \ugSysCmdsetNumber
-\downlink{``\ugSysCmdsystemTitle''}{ugSysCmdsystemPage} in
-section \ugSysCmdsystemNumber
+\downlink{``)fin''}{ugSysCmdfinPage} in section B.10
+\downlink{``)lisp''}{ugSysCmdlispPage} in section B.15
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
+\downlink{``)system''}{ugSysCmdsystemPage} in section B.25
\endscroll
\autobuttons
@@ -48238,18 +48235,12 @@ Except for the ``{\tt )}'' at the beginning of the
command,
this has the same syntax as the operating system {\tt cd} command.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage} in
-section \ugSysCmdcompileNumber
-\downlink{``\ugSysCmdeditTitle''}{ugSysCmdeditPage} in
-section \ugSysCmdeditNumber
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage} in
-section \ugSysCmdhistoryNumber
-\downlink{``\ugSysCmdlibraryTitle''}{ugSysCmdlibraryPage} in
-section \ugSysCmdlibraryNumber
-\downlink{``\ugSysCmdreadTitle''}{ugSysCmdreadPage} in
-section \ugSysCmdreadNumber
-\downlink{``\ugSysCmdspoolTitle''}{ugSysCmdspoolPage} in
-section \ugSysCmdspoolNumber
+\downlink{``)compile''}{ugSysCmdcompilePage} in section B.7
+\downlink{``)edit''}{ugSysCmdeditPage} in section B.9
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
+\downlink{``)library''}{ugSysCmdlibraryPage} in section B.14
+\downlink{``)read''}{ugSysCmdreadPage} in section B.20
+\downlink{``)spool''}{ugSysCmdspoolPage} in section B.32
\endscroll
\autobuttons
@@ -48296,10 +48287,7 @@ close down the interpreter client process without
closing down
the entire Axiom session.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdquitTitle''}{ugSysCmdquitPage} in
-section \ugSysCmdquitNumber
-\downlink{``\ugSysCmdpquitTitle''}{ugSysCmdpquitPage} in
-section \ugSysCmdpquitNumber
+\downlink{``)quit''}{ugSysCmdquitPage} in section B.19
\endscroll
\autobuttons
@@ -48395,12 +48383,9 @@ does everything that {\tt )clear all} does, and also
clears the internal
system function and constructor caches.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmddisplayTitle''}{ugSysCmddisplayPage}
-in section \ugSysCmddisplayNumber
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage}
-in section \ugSysCmdhistoryNumber
-\downlink{``\ugSysCmdundoTitle''}{ugSysCmdundoPage}
-in section \ugSysCmdundoNumber
+\downlink{``)display''}{ugSysCmddisplayPage} in section B.8
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
+\downlink{``)undo''}{ugSysCmdundoPage} in section B.27
\endscroll
\autobuttons
@@ -48672,8 +48657,8 @@ The sequence of commands
will call the compiler, edit, and then call the compiler again on the
file {\bf matrix.spad.} If you do not specify a {\it directory,} the
working current directory (see
-\downlink{``\ugSysCmdcdTitle''}{ugSysCmdcdPage} in Section
-\ugSysCmdcdNumber\ignore{ugSysCmdcd}) is searched for the file. If
+\downlink{``)cd''}{ugSysCmdcdPage} in Section
+B.4\ignore{ugSysCmdcd}) is searched for the file. If
the file is not found, the standard system directories are searched.
If you do not give any options, all constructors within a file are
@@ -48697,8 +48682,8 @@ compiler are completely different.
The {\tt )vartrace} option causes the compiler to generate extra code
for the constructor to support conditional tracing of variable
assignments. (see
-\downlink{``\ugSysCmdtraceTitle''}{ugSysCmdtracePage} in Section
-\ugSysCmdtraceNumber\ignore{ugSysCmdtrace}). Without this option, this
+\downlink{``)trace''}{ugSysCmdtracePage} in Section
+B.26\ignore{ugSysCmdtrace}). Without this option, this
code is suppressed and one cannot use the {\tt )vars} option for the
trace command.
@@ -48724,12 +48709,9 @@ error. The value of the {\tt )set break} variable
then controls what
happens.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdabbreviationTitle''}{ugSysCmdabbreviationPage}
-in section \ugSysCmdabbreviationNumber
-\downlink{``\ugSysCmdeditTitle''}{ugSysCmdeditPage}
-in section \ugSysCmdeditNumber
-\downlink{``\ugSysCmdlibraryTitle''}{ugSysCmdlibraryPage}
-in section \ugSysCmdlibraryNumber
+\downlink{``)abbreviation''}{ugSysCmdabbreviationPage} in section B.2
+\downlink{``)edit''}{ugSysCmdeditPage} in section B.9
+\downlink{``)library''}{ugSysCmdlibraryPage} in section B.14
\endscroll
\autobuttons
@@ -48814,16 +48796,11 @@ operation \spadfunFrom{complex}{ComplexCategory}:
\end{verbatim}
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdclearTitle''}{ugSysCmdclearPage}
-in section \ugSysCmdclearNumber
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage}
-in section \ugSysCmdhistoryNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage}
-in section \ugSysCmdsetNumber
-\downlink{``\ugSysCmdshowTitle''}{ugSysCmdshowPage}
-in section \ugSysCmdshowNumber
-\downlink{``\ugSysCmdwhatTitle''}{ugSysCmdwhatPage}
-in section \ugSysCmdwhatNumber
+\downlink{``)clear''}{ugSysCmdclearPage} in section B.6
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
+\downlink{``)show''}{ugSysCmdshowPage} in section B.22
+\downlink{``)what''}{ugSysCmdwhatPage} in section B.28
\endscroll
\autobuttons
@@ -48884,12 +48861,9 @@ For example,
calls {\tt emacs} to edit the file.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdsystemTitle''}{ugSysCmdsystemPage}
-in section \ugSysCmdsystemNumber
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage}
-in section \ugSysCmdcompileNumber
-\downlink{``\ugSysCmdreadTitle''}{ugSysCmdreadPage}
-in section \ugSysCmdreadNumber
+\downlink{``)system''}{ugSysCmdsystemPage} in section B.25
+\downlink{``)compile''}{ugSysCmdcompilePage} in section B.7
+\downlink{``)read''}{ugSysCmdreadPage} in section B.20
\endscroll
\autobuttons
@@ -48919,8 +48893,7 @@ To return to Axiom, issue the
function call to \Lisp{}.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdpquitTitle''}{ugSysCmdpquitPage}
-in section \ugSysCmdpquitNumber
+\downlink{``)pquit''}{ugSysCmdpquitPage} in section B.18
\endscroll
\autobuttons
@@ -49038,10 +49011,8 @@ when you start up. In this case, the frame name and
step make up the
prompt.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage}
-in section \ugSysCmdhistoryNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage}
-in section \ugSysCmdsetNumber
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
\endscroll
\autobuttons
@@ -49157,15 +49128,15 @@ number is given, Axiom will signal an error.
The {\it environment} information can either be saved in a file or
entirely in memory (the default). Each frame
-(\downlink{``\ugSysCmdframeTitle''}{ugSysCmdframePage} in Section
-\ugSysCmdframeNumber\ignore{ugSysCmdframe}) has its own history
+(\downlink{``)frame''}{ugSysCmdframePage} in Section
+B.11\ignore{ugSysCmdframe}) has its own history
database. When it is kept in a file, some of it may also be kept in
memory for efficiency. When the information is saved in a file, the
name of the file is of the form {\bf FRAME.axh} where ``{\bf FRAME}''
is the name of the current frame. The history file is placed in the
current working directory (see
-\downlink{``\ugSysCmdcdTitle''}{ugSysCmdcdPage} in Section
-\ugSysCmdcdNumber\ignore{ugSysCmdcd}). Note that these history
+\downlink{``)cd''}{ugSysCmdcdPage} in Section
+B.4\ignore{ugSysCmdcd}). Note that these history
database files are not text files (in fact, they are directories
themselves), and so are not in human-readable format.
@@ -49227,8 +49198,8 @@ for a file called {\bf last.axh}.
\item[{\tt )save} {\it savedHistoryName}]
is used to save a snapshot of the environment in a file.
This file is placed in the current working directory
-(see \downlink{``\ugSysCmdcdTitle''}{ugSysCmdcdPage}
-in Section \ugSysCmdcdNumber\ignore{ugSysCmdcd}).
+(see \downlink{``)cd''}{ugSysCmdcdPage}
+in Section B.4\ignore{ugSysCmdcd}).
Use {\tt )history )restore} to restore the environment to the state
preserved in the file.
This option also creates an input file containing all the lines of input
@@ -49269,14 +49240,10 @@ the contents.
\indent{0}
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdframeTitle''}{ugSysCmdframePage}
-in section \ugSysCmdframeNumber
-\downlink{``\ugSysCmdreadTitle''}{ugSysCmdreadPage}
-in section \ugSysCmdreadNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage}
-in section \ugSysCmdsetNumber
-\downlink{``\ugSysCmdundoTitle''}{ugSysCmdundoPage}
-in section \ugSysCmdundoNumber
+\downlink{``)frame''}{ugSysCmdframePage} in section B.11
+\downlink{``)read''}{ugSysCmdreadPage} in section B.20
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
+\downlink{``)undo''}{ugSysCmdundoPage} in section B.27
\endscroll
\autobuttons
@@ -49350,14 +49317,10 @@ command was called {\tt )local} and {\tt )with}
before the name
{\tt )library} became the official name.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdcdTitle''}{ugSysCmdcdPage} in section
-\ugSysCmdcdNumber
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage}
-in section \ugSysCmdcompileNumber
-\downlink{``\ugSysCmdframeTitle''}{ugSysCmdframePage}
-in section \ugSysCmdframeNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage}
-in section \ugSysCmdsetNumber
+\downlink{``)cd''}{ugSysCmdcdPage} in section B.4
+\downlink{``)compile''}{ugSysCmdcompilePage} in section B.7
+\downlink{``)frame''}{ugSysCmdframePage} in section B.11
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
\endscroll
\autobuttons
@@ -49392,12 +49355,9 @@ Since this command is only useful for evaluating
single expressions,
the {\tt )fin} command may be used to drop out of Axiom into \Lisp{}.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdsystemTitle''}{ugSysCmdsystemPage}
-in section \ugSysCmdsystemNumber
-\downlink{``\ugSysCmdbootTitle''}{ugSysCmdbootPage}
-in section \ugSysCmdbootNumber
-\downlink{``\ugSysCmdfinTitle''}{ugSysCmdfinPage}
-in section \ugSysCmdfinNumber
+\downlink{``)system''}{ugSysCmdsystemPage} in section B.25
+\downlink{``)boot''}{ugSysCmdbootPage} in section B.3
+\downlink{``)fin''}{ugSysCmdfinPage} in section B.10
\endscroll
\autobuttons
@@ -49445,12 +49405,9 @@ BOOT functions.
It is not supported for general use.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdbootTitle''}{ugSysCmdbootPage}
-in section \ugSysCmdbootNumber
-\downlink{``\ugSysCmdlispTitle''}{ugSysCmdlispPage}
-in section \ugSysCmdlispNumber
-\downlink{``\ugSysCmdtraceTitle''}{ugSysCmdtracePage}
-in section \ugSysCmdtraceNumber
+\downlink{``)boot''}{ugSysCmdbootPage} in section B.3
+\downlink{``)lisp''}{ugSysCmdlispPage} in section B.15
+\downlink{``)trace''}{ugSysCmdtracePage} in section B.26
\endscroll
\autobuttons
@@ -49510,16 +49467,11 @@ Axiom interactive environment.}}
will be displayed and, indeed, Axiom would still be running.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdfinTitle''}{ugSysCmdfinPage}
-in section \ugSysCmdfinNumber
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage}
-in section \ugSysCmdhistoryNumber
-\downlink{``\ugSysCmdcloseTitle''}{ugSysCmdclosePage}
-in section \ugSysCmdcloseNumber
-\downlink{``\ugSysCmdquitTitle''}{ugSysCmdquitPage}
-in section \ugSysCmdquitNumber
-\downlink{``\ugSysCmdsystemTitle''}{ugSysCmdsystemPage}
-in section \ugSysCmdsystemNumber
+\downlink{``)fin''}{ugSysCmdfinPage} in section B.10
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
+\downlink{``)close''}{ugSysCmdclosePage} in section B.5
+\downlink{``)quit''}{ugSysCmdquitPage} in section B.19
+\downlink{``)system''}{ugSysCmdsystemPage} in section B.25
\endscroll
\autobuttons
@@ -49575,16 +49527,11 @@ suggest that you do not (somehow) assign {\tt )quit}
to be
executed when you press, say, a function key.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdfinTitle''}{ugSysCmdfinPage}
-in section \ugSysCmdfinNumber
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage}
-in section \ugSysCmdhistoryNumber
-\downlink{``\ugSysCmdcloseTitle''}{ugSysCmdclosePage}
-in section \ugSysCmdcloseNumber
-\downlink{``\ugSysCmdpquitTitle''}{ugSysCmdpquitPage}
-in section \ugSysCmdpquitNumber
-\downlink{``\ugSysCmdsystemTitle''}{ugSysCmdsystemPage}
-in section \ugSysCmdsystemNumber
+\downlink{``)fin''}{ugSysCmdfinPage} in section B.10
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
+\downlink{``)close''}{ugSysCmdclosePage} in section B.5
+\downlink{``)quit''}{ugSysCmdpquitPage} in section B.19
+\downlink{``)system''}{ugSysCmdsystemPage} in section B.25
\endscroll
\autobuttons
@@ -49618,8 +49565,8 @@ The command
\end{verbatim}
will read the contents of the file {\bf matrix.input} into Axiom. The
``.input'' file extension is optional. See
-\downlink{``\ugInOutInTitle''}{ugInOutInPage} in Section
-\ugInOutInNumber\ignore{ugInOutIn} for more information about {\bf
+\downlink{``Input Files and Output Styles''}{ugInOutInPage} in Section 4
+\ignore{ugInOutIn} for more information about {\bf
.input} files.
This command remembers the previous file you edited, read or compiled.
@@ -49633,12 +49580,9 @@ give the name of an existing {\bf .input} file.
The {\tt )quiet} option suppresses output while the file is being read.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage}
-in section \ugSysCmdcompileNumber
-\downlink{``\ugSysCmdeditTitle''}{ugSysCmdeditPage}
-in section \ugSysCmdeditNumber
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage}
-in section \ugSysCmdhistoryNumber
+\downlink{``)compile''}{ugSysCmdcompilePage} in section B.7
+\downlink{``)edit''}{ugSysCmdeditPage} in section B.9
+\downlink{``)history''}{ugSysCmdhistoryPage} section B.13
\endscroll
\autobuttons
@@ -49709,8 +49653,7 @@ For example, to change the {\tt )quit} command to being
unprotected
\end{verbatim}
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdquitTitle''}{ugSysCmdquitPage}
-in section \ugSysCmdquitNumber
+\downlink{``)quit''}{ugSysCmdquitPage} in section B.19
\endscroll
\autobuttons
@@ -49776,12 +49719,9 @@ domain \spadtype{Polynomial(Integer)} (as opposed to
the general
Attributes may be listed by using the {\tt )attributes} option.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmddisplayTitle''}{ugSysCmddisplayPage}
-in section \ugSysCmddisplayNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage}
-in section \ugSysCmdsetNumber
-\downlink{``\ugSysCmdwhatTitle''}{ugSysCmdwhatPage}
-in section \ugSysCmdwhatNumber
+\downlink{``)display''}{ugSysCmddisplayPage} in section B.8
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
+\downlink{``)what''}{ugSysCmdwhatPage} in section B.28
\endscroll
\autobuttons
@@ -49821,7 +49761,7 @@ directory is the directory from which you started Axiom
or is the
directory you specified using the {\tt )cd} command.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdcdTitle''}{ugSysCmdcdPage} in section
+\downlink{``)cd''}{ugSysCmdcdPage} in section B.4
\ugSysCmdcdNumber
\endscroll
@@ -49880,10 +49820,8 @@ To list, say, all synonyms that contain the substring
\end{verbatim}
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage}
-in section \ugSysCmdsetNumber
-\downlink{``\ugSysCmdwhatTitle''}{ugSysCmdwhatPage}
-in section \ugSysCmdwhatNumber
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
+\downlink{``)what''}{ugSysCmdwhatPage} in section B.28
\endscroll
\autobuttons
@@ -49931,16 +49869,11 @@ restart Axiom and restore the environment via {\tt
)history )restore},
if possible.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdbootTitle''}{ugSysCmdbootPage}
-in section \ugSysCmdbootNumber
-\downlink{``\ugSysCmdfinTitle''}{ugSysCmdfinPage}
-in section \ugSysCmdfinNumber
-\downlink{``\ugSysCmdlispTitle''}{ugSysCmdlispPage}
-in section \ugSysCmdlispNumber
-\downlink{``\ugSysCmdpquitTitle''}{ugSysCmdpquitPage}
-in section \ugSysCmdpquitNumber
-\downlink{``\ugSysCmdquitTitle''}{ugSysCmdquitPage}
-in section \ugSysCmdquitNumber
+\downlink{``)boot''}{ugSysCmdbootPage} in section B.3
+\downlink{``)fin''}{ugSysCmdfinPage} in section B.10
+\downlink{``)lisp''}{ugSysCmdlispPage} in section B.15
+\downlink{``)quit''}{ugSysCmdpquitPage} in section B.18
+\downlink{``)quit''}{ugSysCmdquitPage} in section B.19
\endscroll
\autobuttons
@@ -50193,16 +50126,16 @@ function.
causes the display of the value of any variable after it is assigned
in the traced function. Note that library code must have been
compiled (see
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage} in Section
-\ugSysCmdcompileNumber\ignore{ugSysCmdcompile}) using the {\tt
+\downlink{``)compile''}{ugSysCmdcompilePage} in Section
+B.7\ignore{ugSysCmdcompile}) using the {\tt
)vartrace} option in order to support this option.
\item[{\tt )vars} {\it var1 \lanb{}... varN\ranb{}}]
causes the display of the value of any of the specified variables
after they are assigned in the traced function. Note that library
code must have been compiled (see
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage} in Section
-\ugSysCmdcompileNumber\ignore{ugSysCmdcompile}) using the {\tt
+\downlink{``)compile''}{ugSysCmdcompilePage} in Section
+B.7\ignore{ugSysCmdcompile}) using the {\tt
)vartrace} option in order to support this option.
\item[{\tt )within} {\it executingFunction}]
@@ -50244,12 +50177,9 @@ to escape them with an underscore.
\indent{0}
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdbootTitle''}{ugSysCmdbootPage}
-in section \ugSysCmdbootNumber
-\downlink{``\ugSysCmdlispTitle''}{ugSysCmdlispPage}
-in section \ugSysCmdlispNumber
-\downlink{``\ugSysCmdltraceTitle''}{ugSysCmdltracePage}
-in section \ugSysCmdltraceNumber
+\downlink{``)boot''}{ugSysCmdbootPage} in section B.3
+\downlink{``)lisp''}{ugSysCmdlispPage} in section B.15
+\downlink{``)trace''}{ugSysCmdltracePage} in section B.26
\endscroll
\autobuttons
@@ -50329,8 +50259,7 @@ This file consists of all user input lines, excluding
those
backtracked over due to a previous {\tt )undo}.
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage}
-in section \ugSysCmdhistoryNumber
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
The command {\tt )history )write} will eliminate the ``undone'' command
lines of your program.
@@ -50434,12 +50363,9 @@ The command synonym {\tt )apropos} is equivalent to
\indent{0}
\par\noindent{\bf Also See:}
-\downlink{``\ugSysCmddisplayTitle''}{ugSysCmddisplayPage}
-in section \ugSysCmddisplayNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage}
-in section \ugSysCmdsetNumber
-\downlink{``\ugSysCmdshowTitle''}{ugSysCmdshowPage}
-in section \ugSysCmdshowNumber
+\downlink{``)display''}{ugSysCmddisplayPage} in section B.8
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
+\downlink{``)show''}{ugSysCmdshowPage} in section B.22
\texht{\egroup}{}
\endscroll
diff --git a/changelog b/changelog
index c5aab40..c7f6eb7 100644
--- a/changelog
+++ b/changelog
@@ -1,4 +1,23 @@
-20080727 tpd books/bookvol7.1.pamphlet update What's New branch
+20080728 tpd books/bookvol7.1 update Topics->Numbers branch
+20080728 tpd books/ps/v71binaryexpansionxmppage.eps added
+20080728 tpd books/ps/v71cardinalnumberxmppage.eps added
+20080728 tpd books/ps/v71complexxmppage.eps added
+20080728 tpd books/ps/v71continuedfractionxmppage.eps added
+20080728 tpd books/ps/v71decimalexpansionxmppage.eps added
+20080728 tpd books/ps/v71doublefloatxmppage.eps added
+20080728 tpd books/ps/v71floatxmppage.eps added
+20080728 tpd books/ps/v71fractionpage.eps added
+20080728 tpd books/ps/v71hexexpansionxmppage.eps added
+20080728 tpd books/ps/v71integerpage.eps added
+20080728 tpd books/ps/v71octonionxmppage.eps added
+20080728 tpd books/ps/v71partialfractionxmppage.eps added
+20080728 tpd books/ps/v71quaternionxmppage.eps added
+20080728 tpd books/ps/v71radixexpansionxmppage.eps added
+20080728 tpd books/ps/v71romannumeralxmppage.eps added
+20080728 tpd books/ps/v71singleintegerxmppage.eps added
+20080728 tpd books/ps/v71ugproblemfinitepage.eps added
+20080728 tpd books/ps/v71ugproblemnumericpage.eps added
+20080727 tpd books/bookvol7.1 update What's New branch
20080727 tpd books/ps/v71feb2005.eps added
20080727 tpd books/ps/v71january2008.eps added
20080727 tpd books/ps/v71july2008.eps added
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Axiom-developer] 20080728.01.tpd.patch (expand RootPage->Topics->Numbers),
daly <=