* Other C-x * Commands::
@end menu
-@node Starting Calc, The Standard Interface, Using Calc, Using Calc
+@node Starting Calc
@subsection Starting Calc
@noindent
The same commands (like @kbd{C-x * c} or @kbd{C-x * *}) that start
the Calculator also turn it off if it is already on.
-@node The Standard Interface, Quick Mode Overview, Starting Calc, Using Calc
+@node The Standard Interface
@subsection The Standard Calc Interface
@noindent
way to switch out of Calc momentarily to edit your file; you can then
type @kbd{C-x * c} to switch back into Calc when you are done.
-@node Quick Mode Overview, Keypad Mode Overview, The Standard Interface, Using Calc
+@node Quick Mode Overview
@subsection Quick Mode (Overview)
@noindent
@c [fix-ref Quick Calculator mode]
@xref{Quick Calculator}, for further information.
-@node Keypad Mode Overview, Standalone Operation, Quick Mode Overview, Using Calc
+@node Keypad Mode Overview
@subsection Keypad Mode (Overview)
@noindent
@c [fix-ref Keypad Mode]
@xref{Keypad Mode}, for further information.
-@node Standalone Operation, Embedded Mode Overview, Keypad Mode Overview, Using Calc
+@node Standalone Operation
@subsection Standalone Operation
@noindent
@kbd{q} or clicking on the keypad @key{EXIT} button) quits Emacs
itself.
-@node Embedded Mode Overview, Other C-x * Commands, Standalone Operation, Using Calc
+@node Embedded Mode Overview
@subsection Embedded Mode (Overview)
@noindent
@c [fix-ref Embedded Mode]
@xref{Embedded Mode}, for full details.
-@node Other C-x * Commands, , Embedded Mode Overview, Using Calc
+@node Other C-x * Commands
@subsection Other @kbd{C-x *} Commands
@noindent
* Answers to Exercises::
@end menu
-@node Basic Tutorial, Arithmetic Tutorial, Tutorial, Tutorial
+@node Basic Tutorial
@section Basic Tutorial
@noindent
* Modes Tutorial:: Common mode-setting commands.
@end menu
-@node RPN Tutorial, Algebraic Tutorial, Basic Tutorial, Basic Tutorial
+@node RPN Tutorial
@subsection RPN Calculations and the Stack
@cindex RPN notation
(The @kbd{M-0} numeric prefix tells @key{DEL} to operate on the
entire stack.)
-@node Algebraic Tutorial, Undo Tutorial, RPN Tutorial, Basic Tutorial
+@node Algebraic Tutorial
@subsection Algebraic-Style Calculations
@noindent
We will encounter formulas involving variables and functions again
when we discuss the algebra and calculus features of the Calculator.
-@node Undo Tutorial, Modes Tutorial, Algebraic Tutorial, Basic Tutorial
+@node Undo Tutorial
@subsection Undo and Redo
@noindent
of values you can put on the stack. The @kbd{`} key also works
during entry of a number or algebraic formula.
-@node Modes Tutorial, , Undo Tutorial, Basic Tutorial
+@node Modes Tutorial
@subsection Mode-Setting Commands
@noindent
on the stack are recomputed every time you change any mode that
might affect their values.
-@node Arithmetic Tutorial, Vector/Matrix Tutorial, Basic Tutorial, Tutorial
+@node Arithmetic Tutorial
@section Arithmetic Tutorial
@noindent
@xref{Binary Functions}, to read about the commands for operating
on binary numbers (like @code{and}, @code{xor}, and @code{lsh}).
-@node Vector/Matrix Tutorial, Types Tutorial, Arithmetic Tutorial, Tutorial
+@node Vector/Matrix Tutorial
@section Vector/Matrix Tutorial
@noindent
* List Tutorial::
@end menu
-@node Vector Analysis Tutorial, Matrix Tutorial, Vector/Matrix Tutorial, Vector/Matrix Tutorial
+@node Vector Analysis Tutorial
@subsection Vector Analysis
@noindent
Find the average position of the particle.
@xref{Vector Answer 2, 2}. (@bullet{})
-@node Matrix Tutorial, List Tutorial, Vector Analysis Tutorial, Vector/Matrix Tutorial
+@node Matrix Tutorial
@subsection Matrices
@noindent
@noindent
@xref{Matrix Answer 3, 3}. (@bullet{})
-@node List Tutorial, , Matrix Tutorial, Vector/Matrix Tutorial
+@node List Tutorial
@subsection Vectors as Lists
@noindent
(Hint: The @code{sincos} function returns a vector of the cosine and
sine of an angle.) @xref{List Answer 14, 14}. (@bullet{})
-@node Types Tutorial, Algebra Tutorial, Vector/Matrix Tutorial, Tutorial
+@node Types Tutorial
@section Types Tutorial
@noindent
swallow and still travel legally on most US highways?
@xref{Types Answer 15, 15}. (@bullet{})
-@node Algebra Tutorial, Programming Tutorial, Types Tutorial, Tutorial
+@node Algebra Tutorial
@section Algebra and Calculus Tutorial
@noindent
* Rewrites Tutorial::
@end menu
-@node Basic Algebra Tutorial, Rewrites Tutorial, Algebra Tutorial, Algebra Tutorial
+@node Basic Algebra Tutorial
@subsection Basic Algebra
@noindent
@c hard exercise: simplify (2^(n r) - 2^(r*(n - 1))) / (2^r - 1) 2^(n - 1)
@c to 2^((n-1)*(r-1)).
-@node Rewrites Tutorial, , Basic Algebra Tutorial, Algebra Tutorial
+@node Rewrites Tutorial
@subsection Rewrite Rules
@noindent
@xref{Rewrite Rules}, for the whole story on rewrite rules.
-@node Programming Tutorial, Answers to Exercises, Algebra Tutorial, Tutorial
+@node Programming Tutorial
@section Programming Tutorial
@noindent
@c Volume II of this manual, the @dfn{Calc Reference}, tells the whole story.
@page
-@node Answers to Exercises, , Programming Tutorial, Tutorial
+@node Answers to Exercises
@section Answers to Exercises
@noindent
\gdef\chapternofonts{\let\write=\skipwrite\oldchapternofonts}
@end tex
-@node RPN Answer 1, RPN Answer 2, Answers to Exercises, Answers to Exercises
+@node RPN Answer 1
@subsection RPN Tutorial Exercise 1
@noindent
@texline @math{1 - (2 \times (3 + 4)) = -13}.
@infoline @expr{1 - (2 * (3 + 4)) = -13}.
-@node RPN Answer 2, RPN Answer 3, RPN Answer 1, Answers to Exercises
+@node RPN Answer 2
@subsection RPN Tutorial Exercise 2
@noindent
can grow arbitrarily large this isn't really an issue. Which method
you choose is purely a matter of taste.
-@node RPN Answer 3, RPN Answer 4, RPN Answer 2, Answers to Exercises
+@node RPN Answer 3
@subsection RPN Tutorial Exercise 3
@noindent
@end group
@end smallexample
-@node RPN Answer 4, Algebraic Answer 1, RPN Answer 3, Answers to Exercises
+@node RPN Answer 4
@subsection RPN Tutorial Exercise 4
@noindent
@kbd{M-@key{DEL}} is just like @kbd{@key{TAB} @key{DEL}}, except that it doesn't exhibit
the ``feature'' that tripped poor Joe.)
-@node Algebraic Answer 1, Algebraic Answer 2, RPN Answer 4, Answers to Exercises
+@node Algebraic Answer 1
@subsection Algebraic Entry Tutorial Exercise 1
@noindent
a closer equivalent, since @samp{9^0.5} yields @expr{3.0} whereas
@samp{sqrt(9)} and @samp{9^1:2} yield the exact integer @expr{3}.)
-@node Algebraic Answer 2, Algebraic Answer 3, Algebraic Answer 1, Answers to Exercises
+@node Algebraic Answer 2
@subsection Algebraic Entry Tutorial Exercise 2
@noindent
has no relation to a function by the same name. Joe needed to use an
explicit @samp{*} symbol here: @samp{2 x*(1+y)}.
-@node Algebraic Answer 3, Modes Answer 1, Algebraic Answer 2, Answers to Exercises
+@node Algebraic Answer 3
@subsection Algebraic Entry Tutorial Exercise 3
@noindent
show that the answer is ``indeterminate.'' @xref{Infinities}, for
further discussion of infinite and indeterminate values.
-@node Modes Answer 1, Modes Answer 2, Algebraic Answer 3, Answers to Exercises
+@node Modes Answer 1
@subsection Modes Tutorial Exercise 1
@noindent
of problems we saw in this exercise are likely to be severe only when
you use a relatively unusual radix like 3.
-@node Modes Answer 2, Modes Answer 3, Modes Answer 1, Answers to Exercises
+@node Modes Answer 2
@subsection Modes Tutorial Exercise 2
If the radix is 15 or higher, we can't use the letter @samp{e} to mark
matter for display purposes, it could give you a nasty surprise if you
copied that number into a file and later moved it back into Calc.
-@node Modes Answer 3, Modes Answer 4, Modes Answer 2, Answers to Exercises
+@node Modes Answer 3
@subsection Modes Tutorial Exercise 3
@noindent
before anything is done after the number 45 has been entered in order
for the higher precision to be meaningful.
-@node Modes Answer 4, Arithmetic Answer 1, Modes Answer 3, Answers to Exercises
+@node Modes Answer 4
@subsection Modes Tutorial Exercise 4
@noindent
There is no fractional form for the square root of two, so if you type
@w{@kbd{2 Q}}, Calc has no choice but to give you a floating-point answer.
-@node Arithmetic Answer 1, Arithmetic Answer 2, Modes Answer 4, Answers to Exercises
+@node Arithmetic Answer 1
@subsection Arithmetic Tutorial Exercise 1
@noindent
down by the @kbd{F} command without ever switching to floating-point
format.
-@node Arithmetic Answer 2, Vector Answer 1, Arithmetic Answer 1, Answers to Exercises
+@node Arithmetic Answer 2
@subsection Arithmetic Tutorial Exercise 2
@noindent
no efficient way to search the space of all possible rational numbers
for an exact answer, so Calc doesn't try.
-@node Vector Answer 1, Vector Answer 2, Arithmetic Answer 2, Answers to Exercises
+@node Vector Answer 1
@subsection Vector Tutorial Exercise 1
@noindent
The final @kbd{A} command shows that the normalized vector does
indeed have unit length.
-@node Vector Answer 2, Matrix Answer 1, Vector Answer 1, Answers to Exercises
+@node Vector Answer 2
@subsection Vector Tutorial Exercise 2
@noindent
definition of the dot product operation. So all you need to do
is to put the two vectors on the stack and press @kbd{*}.
-@node Matrix Answer 1, Matrix Answer 2, Vector Answer 2, Answers to Exercises
+@node Matrix Answer 1
@subsection Matrix Tutorial Exercise 1
@noindent
The trick is to multiply by a vector of ones. Use @kbd{r 4 [1 1 1] *} to
get the row sum. Similarly, use @kbd{[1 1] r 4 *} to get the column sum.
-@node Matrix Answer 2, Matrix Answer 3, Matrix Answer 1, Answers to Exercises
+@node Matrix Answer 2
@subsection Matrix Tutorial Exercise 2
@ifnottex
Type @kbd{d N} to return to Normal display mode afterwards.
-@node Matrix Answer 3, List Answer 1, Matrix Answer 2, Answers to Exercises
+@node Matrix Answer 3
@subsection Matrix Tutorial Exercise 3
@noindent
This is reasonably close to our original @expr{B} vector,
@expr{[6, 2, 3, 11]}.
-@node List Answer 1, List Answer 2, Matrix Answer 3, Answers to Exercises
+@node List Answer 1
@subsection List Tutorial Exercise 1
@noindent
@end group
@end smallexample
-@node List Answer 2, List Answer 3, List Answer 1, Answers to Exercises
+@node List Answer 2
@subsection List Tutorial Exercise 2
@noindent
In fact, there is a built-in @kbd{a F} command that does least-squares
fits. @xref{Curve Fitting}.
-@node List Answer 3, List Answer 4, List Answer 2, Answers to Exercises
+@node List Answer 3
@subsection List Tutorial Exercise 3
@noindent
You could also type @kbd{& ^} to take the reciprocal of 9 and
then raise the number to that power.)
-@node List Answer 4, List Answer 5, List Answer 3, Answers to Exercises
+@node List Answer 4
@subsection List Tutorial Exercise 4
@noindent
Once again, the last two steps just compute a dot product for which
a simple @kbd{*} would have worked equally well.
-@node List Answer 5, List Answer 6, List Answer 4, Answers to Exercises
+@node List Answer 5
@subsection List Tutorial Exercise 5
@noindent
function which is zero if and only if its argument is square-free. It
would be a much more convenient way to do the above test in practice.
-@node List Answer 6, List Answer 7, List Answer 5, Answers to Exercises
+@node List Answer 6
@subsection List Tutorial Exercise 6
@noindent
First use @kbd{v x 6 @key{RET}} to get a list of integers, then @kbd{V M v x}
to get a list of lists of integers!
-@node List Answer 7, List Answer 8, List Answer 6, Answers to Exercises
+@node List Answer 7
@subsection List Tutorial Exercise 7
@noindent
since each element of the main vector is itself a small vector,
@kbd{V R +} computes the sum of its elements.)
-@node List Answer 8, List Answer 9, List Answer 7, Answers to Exercises
+@node List Answer 8
@subsection List Tutorial Exercise 8
@noindent
that maximizes the function, and the function's value at that maximum.
As you can see, our simple search got quite close to the right answer.
-@node List Answer 9, List Answer 10, List Answer 8, Answers to Exercises
+@node List Answer 9
@subsection List Tutorial Exercise 9
@noindent
@end group
@end smallexample
-@node List Answer 10, List Answer 11, List Answer 9, Answers to Exercises
+@node List Answer 10
@subsection List Tutorial Exercise 10
@noindent
@end group
@end smallexample
-@node List Answer 11, List Answer 12, List Answer 10, Answers to Exercises
+@node List Answer 11
@subsection List Tutorial Exercise 11
@noindent
If you typed @kbd{v .} and @kbd{t .} before, type them again to
return to full-sized display of vectors.
-@node List Answer 12, List Answer 13, List Answer 11, Answers to Exercises
+@node List Answer 12
@subsection List Tutorial Exercise 12
@noindent
If you typed @kbd{v .} and @kbd{t .} before, type them again to
return to full-sized display of vectors.
-@node List Answer 13, List Answer 14, List Answer 12, Answers to Exercises
+@node List Answer 13
@subsection List Tutorial Exercise 13
@noindent
basically automate the idea of reducing every intermediate result
modulo some value @var{m}.
-@node List Answer 14, Types Answer 1, List Answer 13, Answers to Exercises
+@node List Answer 14
@subsection List Tutorial Exercise 14
We want to use @kbd{H V U} to nest a function which adds a random
angles. (This exercise was first suggested in this form by Randal
Schwartz.)
-@node Types Answer 1, Types Answer 2, List Answer 14, Answers to Exercises
+@node Types Answer 1
@subsection Types Tutorial Exercise 1
@noindent
precision. Remember, arithmetic operations always round their inputs
to the current precision before they begin.
-@node Types Answer 2, Types Answer 3, Types Answer 1, Answers to Exercises
+@node Types Answer 2
@subsection Types Tutorial Exercise 2
@noindent
here if you have turned on Infinite mode. Otherwise, it will
treat @samp{ln(0)} as an error.
-@node Types Answer 3, Types Answer 4, Types Answer 2, Answers to Exercises
+@node Types Answer 3
@subsection Types Tutorial Exercise 3
@noindent
Calc is careful to write @code{nan} any time this simple model is
unable to tell what the true answer is.
-@node Types Answer 4, Types Answer 5, Types Answer 3, Answers to Exercises
+@node Types Answer 4
@subsection Types Tutorial Exercise 4
@smallexample
@noindent
The album would be 53 minutes and 6 seconds long.
-@node Types Answer 5, Types Answer 6, Types Answer 4, Answers to Exercises
+@node Types Answer 5
@subsection Types Tutorial Exercise 5
@noindent
@noindent
And the answer to our original question: 242 days to go.
-@node Types Answer 6, Types Answer 7, Types Answer 5, Answers to Exercises
+@node Types Answer 6
@subsection Types Tutorial Exercise 6
@noindent
unchanged for that long. @xref{Date Forms}, for some interesting
background information in that regard.)
-@node Types Answer 7, Types Answer 8, Types Answer 6, Answers to Exercises
+@node Types Answer 7
@subsection Types Tutorial Exercise 7
@noindent
@noindent
Thus the volume is 6316 cubic centimeters, within about 11 percent.
-@node Types Answer 8, Types Answer 9, Types Answer 7, Answers to Exercises
+@node Types Answer 8
@subsection Types Tutorial Exercise 8
@noindent
minus infinity and plus infinity, inclusive,'' but that's the best
that interval arithmetic can do in this case.
-@node Types Answer 9, Types Answer 10, Types Answer 8, Answers to Exercises
+@node Types Answer 9
@subsection Types Tutorial Exercise 9
@smallexample
The same issue arises when you try to square an error form.
-@node Types Answer 10, Types Answer 11, Types Answer 9, Answers to Exercises
+@node Types Answer 10
@subsection Types Tutorial Exercise 10
@noindent
of the Fermat test we used here. You can use @kbd{k p} repeatedly
to prove that a large integer is prime with any desired probability.
-@node Types Answer 11, Types Answer 12, Types Answer 10, Answers to Exercises
+@node Types Answer 11
@subsection Types Tutorial Exercise 11
@noindent
The @kbd{=} key is necessary to evaluate the symbol @samp{pi} to
the actual number 3.14159...
-@node Types Answer 12, Types Answer 13, Types Answer 11, Answers to Exercises
+@node Types Answer 12
@subsection Types Tutorial Exercise 12
@noindent
@noindent
No matter how long it is, the album will fit nicely on one CD.
-@node Types Answer 13, Types Answer 14, Types Answer 12, Answers to Exercises
+@node Types Answer 13
@subsection Types Tutorial Exercise 13
@noindent
Type @kbd{' 1 yr @key{RET} u c s @key{RET}}. The answer is 31557600 seconds.
-@node Types Answer 14, Types Answer 15, Types Answer 13, Answers to Exercises
+@node Types Answer 14
@subsection Types Tutorial Exercise 14
@noindent
go from one place to another inside the computer, assuming the signal
could actually attain the full speed of light. Pretty tight!
-@node Types Answer 15, Algebra Answer 1, Types Answer 14, Answers to Exercises
+@node Types Answer 15
@subsection Types Tutorial Exercise 15
@noindent
@noindent
Thus Sam can take up to 14 pills without a worry.
-@node Algebra Answer 1, Algebra Answer 2, Types Answer 15, Answers to Exercises
+@node Algebra Answer 1
@subsection Algebra Tutorial Exercise 1
@noindent
that is not safe. (@xref{Declarations}, for a way to tell Calc
that @expr{x} is known to be real.)
-@node Algebra Answer 2, Algebra Answer 3, Algebra Answer 1, Answers to Exercises
+@node Algebra Answer 2
@subsection Algebra Tutorial Exercise 2
@noindent
Sure enough, our answer (multiplied by a suitable constant) is the
same as the original polynomial.
-@node Algebra Answer 3, Algebra Answer 4, Algebra Answer 2, Answers to Exercises
+@node Algebra Answer 3
@subsection Algebra Tutorial Exercise 3
@smallexample
@end group
@end smallexample
-@node Algebra Answer 4, Rewrites Answer 1, Algebra Answer 3, Answers to Exercises
+@node Algebra Answer 4
@subsection Algebra Tutorial Exercise 4
@noindent
@noindent
Wow! That's even better than the result from the Taylor series method.
-@node Rewrites Answer 1, Rewrites Answer 2, Algebra Answer 4, Answers to Exercises
+@node Rewrites Answer 1
@subsection Rewrites Tutorial Exercise 1
@noindent
different circumstances, such as when the denominator involves
sines and cosines or the imaginary constant @code{i}.
-@node Rewrites Answer 2, Rewrites Answer 3, Rewrites Answer 1, Answers to Exercises
+@node Rewrites Answer 2
@subsection Rewrites Tutorial Exercise 2
@noindent
@samp{ZzFib} instead of @code{fib} as the name of the three-argument
function.
-@node Rewrites Answer 3, Rewrites Answer 4, Rewrites Answer 2, Answers to Exercises
+@node Rewrites Answer 3
@subsection Rewrites Tutorial Exercise 3
@noindent
on the lefthand side, so that the rule matches the actual variable
@samp{x} rather than letting @samp{x} stand for something else.)
-@node Rewrites Answer 4, Rewrites Answer 5, Rewrites Answer 3, Answers to Exercises
+@node Rewrites Answer 4
@subsection Rewrites Tutorial Exercise 4
@noindent
the symbol @samp{x} is either even or odd, so none of the rules will
apply and the rewrites will stop right away.
-@node Rewrites Answer 5, Rewrites Answer 6, Rewrites Answer 4, Answers to Exercises
+@node Rewrites Answer 5
@subsection Rewrites Tutorial Exercise 5
@noindent
match before later rules; @samp{nterms(x)} will only be tried if we
already know that @samp{x} is not a sum.
-@node Rewrites Answer 6, Programming Answer 1, Rewrites Answer 5, Answers to Exercises
+@node Rewrites Answer 6
@subsection Rewrites Tutorial Exercise 6
@noindent
this it would probably be better to write the formatting routine
in Lisp.)
-@node Programming Answer 1, Programming Answer 2, Rewrites Answer 6, Answers to Exercises
+@node Programming Answer 1
@subsection Programming Tutorial Exercise 1
@noindent
The exact keystrokes are @kbd{Z F s Si @key{RET} @key{RET} C-b C-b @key{DEL} @key{DEL} @key{RET} y}.
(The @kbd{C-b C-b @key{DEL} @key{DEL}} are what fix the argument list.)
-@node Programming Answer 2, Programming Answer 3, Programming Answer 1, Answers to Exercises
+@node Programming Answer 2
@subsection Programming Tutorial Exercise 2
@noindent
Just for kicks, let's also do it algebraically:
@w{@kbd{C-x ( ' -$$$, $$, $ @key{RET} C-x )}}.
-@node Programming Answer 3, Programming Answer 4, Programming Answer 2, Answers to Exercises
+@node Programming Answer 3
@subsection Programming Tutorial Exercise 3
@noindent
Using algebraic entry: @kbd{C-x ( ' index($) @key{RET} C-x )}.
-@node Programming Answer 4, Programming Answer 5, Programming Answer 3, Answers to Exercises
+@node Programming Answer 4
@subsection Programming Tutorial Exercise 4
@noindent
Here's one way: @kbd{C-x ( @key{RET} V R + @key{TAB} v l / C-x )}.
-@node Programming Answer 5, Programming Answer 6, Programming Answer 4, Answers to Exercises
+@node Programming Answer 5
@subsection Programming Tutorial Exercise 5
@smallexample
@noindent
This answer is quite accurate.
-@node Programming Answer 6, Programming Answer 7, Programming Answer 5, Answers to Exercises
+@node Programming Answer 6
@subsection Programming Tutorial Exercise 6
@noindent
@kbd{Z < ... Z >} solution had much simpler steps, it would have
required so many steps that it would not have been practical.
-@node Programming Answer 7, Programming Answer 8, Programming Answer 6, Answers to Exercises
+@node Programming Answer 7
@subsection Programming Tutorial Exercise 7
@noindent
Thus we find that the 30th harmonic number is 3.99, and the 31st
harmonic number is 4.02.
-@node Programming Answer 8, Programming Answer 9, Programming Answer 7, Answers to Exercises
+@node Programming Answer 8
@subsection Programming Tutorial Exercise 8
@noindent
method (among others) to look for numerical solutions to any equation.
@xref{Root Finding}.
-@node Programming Answer 9, Programming Answer 10, Programming Answer 8, Answers to Exercises
+@node Programming Answer 9
@subsection Programming Tutorial Exercise 9
@noindent
@end group
@end example
-@node Programming Answer 10, Programming Answer 11, Programming Answer 9, Answers to Exercises
+@node Programming Answer 10
@subsection Programming Tutorial Exercise 10
@noindent
@end group
@end example
-@node Programming Answer 11, Programming Answer 12, Programming Answer 10, Answers to Exercises
+@node Programming Answer 11
@subsection Programming Tutorial Exercise 11
@noindent
definition as it reads it in. For this reason, @code{C-x * m} is often
the easiest way to create recursive programs in Calc.
-@node Programming Answer 12, , Programming Answer 11, Answers to Exercises
+@node Programming Answer 12
@subsection Programming Tutorial Exercise 12
@noindent
@c [reference]
-@node Introduction, Data Types, Tutorial, Top
+@node Introduction
@chapter Introduction
@noindent
* Troubleshooting Commands::
@end menu
-@node Basic Commands, Help Commands, Introduction, Introduction
+@node Basic Commands
@section Basic Commands
@noindent
negative prefix argument, @kbd{C-x * 0} preserves the contents of the
stack but resets everything else to its default state.
-@node Help Commands, Stack Basics, Basic Commands, Introduction
+@node Help Commands
@section Help Commands
@noindent
pulling up the appropriate parts of the ``Copying'' or ``Reporting
Bugs'' sections of the manual.
-@node Stack Basics, Numeric Entry, Help Commands, Introduction
+@node Stack Basics
@section Stack Basics
@noindent
@xref{Stack and Trail}, for descriptions of these and other stack-related
commands.
-@node Numeric Entry, Algebraic Entry, Stack Basics, Introduction
+@node Numeric Entry
@section Numeric Entry
@noindent
During numeric entry, the only editing key available is @key{DEL}.
-@node Algebraic Entry, Quick Calculator, Numeric Entry, Introduction
+@node Algebraic Entry
@section Algebraic Entry
@noindent
on the stack, but @kbd{' 1+2 @key{LFD}} pushes the formula @expr{1+2};
you might then press @kbd{=} when it is time to evaluate this formula.
-@node Quick Calculator, Prefix Arguments, Algebraic Entry, Introduction
+@node Quick Calculator
@section ``Quick Calculator'' Mode
@noindent
merely refers to the fact that it's much less hassle to use for
small calculations.
-@node Prefix Arguments, Undo, Quick Calculator, Introduction
+@node Prefix Arguments
@section Numeric Prefix Arguments
@noindent
Conversely, if you have typed a numeric prefix argument the @kbd{~} key
pushes it onto the stack in the form of an integer.
-@node Undo, Error Messages, Prefix Arguments, Introduction
+@node Undo
@section Undoing Mistakes
@noindent
The standard Emacs @kbd{C-_} undo key is recognized as a synonym for @kbd{U}.
-@node Error Messages, Multiple Calculators, Undo, Introduction
+@node Error Messages
@section Error Messages
@noindent
@emph{all} messages automatically, or to report none automatically (so
that you must always press @kbd{w} yourself to see the messages).
-@node Multiple Calculators, Troubleshooting Commands, Error Messages, Introduction
+@node Multiple Calculators
@section Multiple Calculators
@noindent
There is only one trail buffer, @file{*Calc Trail*}, used by all
Calculator buffers.
-@node Troubleshooting Commands, , Multiple Calculators, Introduction
+@node Troubleshooting Commands
@section Troubleshooting Commands
@noindent
* Debugging Calc::
@end menu
-@node Autoloading Problems, Recursion Depth, Troubleshooting Commands, Troubleshooting Commands
+@node Autoloading Problems
@subsection Autoloading Problems
@noindent
loaded right away. This will cause Emacs to take up a lot more
memory than it would otherwise, but it's guaranteed to fix the problem.
-@node Recursion Depth, Caches, Autoloading Problems, Troubleshooting Commands
+@node Recursion Depth
@subsection Recursion Depth
@noindent
These commands also double or halve @code{max-specpdl-size}, another
internal Lisp recursion limit. The minimum value for this limit is 600.
-@node Caches, Debugging Calc, Recursion Depth, Troubleshooting Commands
+@node Caches
@subsection Caches
@noindent
The @kbd{C-x * 0} (with the zero key) command also resets caches along
with all other aspects of the Calculator's state.
-@node Debugging Calc, , Caches, Troubleshooting Commands
+@node Debugging Calc
@subsection Debugging Calc
@noindent
errors will be reported correctly but the user-friendly message
will be lost.
-@node Data Types, Stack and Trail, Introduction, Top
+@node Data Types
@chapter Data Types
@noindent
* Formulas::
@end menu
-@node Integers, Fractions, Data Types, Data Types
+@node Integers
@section Integers
@noindent
may be entered at any time. If you press @kbd{#} at the beginning of a
number, the current display radix is used.
-@node Fractions, Floats, Integers, Data Types
+@node Fractions
@section Fractions
@noindent
@samp{@var{radix}#@var{num}:@var{denom}} (or in the analogous three-part
form). The numerator and denominator always use the same radix.
-@node Floats, Complex Numbers, Fractions, Data Types
+@node Floats
@section Floats
@noindent
out, e.g., @samp{16#123.4567*16^2}. The first two exercises of the
Modes Tutorial explore some of the properties of non-decimal floats.
-@node Complex Numbers, Infinities, Floats, Data Types
+@node Complex Numbers
@section Complex Numbers
@noindent
is 0 or 180 degrees or @cpi{} radians) is automatically converted to a real
number.
-@node Infinities, Vectors and Matrices, Complex Numbers, Data Types
+@node Infinities
@section Infinities
@noindent
Infinities are especially useful as parts of @dfn{intervals}.
@xref{Interval Forms}.
-@node Vectors and Matrices, Strings, Infinities, Data Types
+@node Vectors and Matrices
@section Vectors and Matrices
@noindent
matrix of @samp{a}s, and @samp{index(n)} to build a vector of integers
from 1 to @samp{n}.
-@node Strings, HMS Forms, Vectors and Matrices, Data Types
+@node Strings
@section Strings
@noindent
fit all on one line. Potential break points occur at every space
character in the string.
-@node HMS Forms, Date Forms, Strings, Data Types
+@node HMS Forms
@section HMS Forms
@noindent
Just for kicks, @kbd{M-x calc-time} pushes the current time of day on
the stack as an HMS form.
-@node Date Forms, Modulo Forms, HMS Forms, Data Types
+@node Date Forms
@section Date Forms
@noindent
counts.) The built-in @kbd{t U} command performs these
conversions.
-@node Modulo Forms, Error Forms, Date Forms, Data Types
+@node Modulo Forms
@section Modulo Forms
@noindent
The algebraic function @samp{makemod(a, m)} builds the modulo form
@w{@samp{a mod m}}.
-@node Error Forms, Interval Forms, Modulo Forms, Data Types
+@node Error Forms
@section Error Forms
@noindent
@tindex sdev
The algebraic function @samp{sdev(a, b)} builds the error form @samp{a +/- b}.
-@node Interval Forms, Incomplete Objects, Error Forms, Data Types
+@node Interval Forms
@section Interval Forms
@noindent
(slightly too small) interval @samp{[1..1.9999999]} due to roundoff
error.
-@node Incomplete Objects, Variables, Interval Forms, Data Types
+@node Incomplete Objects
@section Incomplete Objects
@noindent
If you find incomplete entry distracting, you may wish to enter vectors
and complex numbers as algebraic formulas by pressing the apostrophe key.
-@node Variables, Formulas, Incomplete Objects, Data Types
+@node Variables
@section Variables
@noindent
@xref{Store and Recall}, for a discussion of commands dealing with variables.
-@node Formulas, , Variables, Data Types
+@node Formulas
@section Formulas
@noindent
@xref{Algebra}, for commands for manipulating formulas symbolically.
-@node Stack and Trail, Mode Settings, Data Types, Top
+@node Stack and Trail
@chapter Stack and Trail Commands
@noindent
* Keep Arguments::
@end menu
-@node Stack Manipulation, Editing Stack Entries, Stack and Trail, Stack and Trail
+@node Stack Manipulation
@section Stack Manipulation Commands
@noindent
@samp{10 40 20 30 50}. With an argument of 0, @kbd{C-x C-t} will switch
the stack objects at the levels determined by the point and the mark.
-@node Editing Stack Entries, Trail Commands, Stack Manipulation, Stack and Trail
+@node Editing Stack Entries
@section Editing Stack Entries
@noindent
text entered so far is moved to the @file{*Calc Edit*} buffer for
more extensive editing than is convenient in the minibuffer.
-@node Trail Commands, Keep Arguments, Editing Stack Entries, Stack and Trail
+@node Trail Commands
@section Trail Commands
@noindent
The @kbd{t .} (@code{calc-full-trail-vectors}) command is described
elsewhere; @pxref{Vector and Matrix Formats}.
-@node Keep Arguments, , Trail Commands, Stack and Trail
+@node Keep Arguments
@section Keep Arguments
@noindent
different than with @kbd{K}: @kbd{2 @key{RET} 3 + M-@key{RET}} leaves
@samp{5 2 3} on the stack instead of @samp{2 3 5}. @xref{Undo}.
-@node Mode Settings, Arithmetic, Stack and Trail, Top
+@node Mode Settings
@chapter Mode Settings
@noindent
* Calc Mode Line::
@end menu
-@node General Mode Commands, Precision, Mode Settings, Mode Settings
+@node General Mode Commands
@section General Mode Commands
@noindent
prefix is not affected by this mode. Press @kbd{m S} again to disable
shifted-prefix mode.
-@node Precision, Inverse and Hyperbolic, General Mode Commands, Mode Settings
+@node Precision
@section Precision
@noindent
@xref{Floats}, for still more on floating-point precision and related
issues.
-@node Inverse and Hyperbolic, Calculation Modes, Precision, Mode Settings
+@node Inverse and Hyperbolic
@section Inverse and Hyperbolic Flags
@noindent
Another Calc prefix flag, @kbd{K} (keep-arguments), is discussed
elsewhere. @xref{Keep Arguments}.
-@node Calculation Modes, Simplification Modes, Inverse and Hyperbolic, Mode Settings
+@node Calculation Modes
@section Calculation Modes
@noindent
* Working Message::
@end menu
-@node Angular Modes, Polar Mode, Calculation Modes, Calculation Modes
+@node Angular Modes
@subsection Angular Modes
@noindent
The current angular mode is displayed on the Emacs mode line.
The default angular mode is Degrees.
-@node Polar Mode, Fraction Mode, Angular Modes, Calculation Modes
+@node Polar Mode
@subsection Polar Mode
@noindent
preference between rectangular and polar forms. In Polar mode, all
of the above example situations would produce polar complex numbers.
-@node Fraction Mode, Infinite Mode, Polar Mode, Calculation Modes
+@node Fraction Mode
@subsection Fraction Mode
@noindent
fraction to a float, or @kbd{c F} (@code{calc-fraction}) to convert a
float to a fraction. @xref{Conversions}.
-@node Infinite Mode, Symbolic Mode, Fraction Mode, Calculation Modes
+@node Infinite Mode
@subsection Infinite Mode
@noindent
you might expect @samp{1 / -0 = -inf}, actually @samp{1 / -0}
is equivalent to @samp{1 / 0}, which is equal to positive @code{inf}.
-@node Symbolic Mode, Matrix Mode, Infinite Mode, Calculation Modes
+@node Symbolic Mode
@subsection Symbolic Mode
@noindent
@code{calc-alg-evaluate}, which resimplifies but doesn't evaluate
variables.)
-@node Matrix Mode, Automatic Recomputation, Symbolic Mode, Calculation Modes
+@node Matrix Mode
@subsection Matrix and Scalar Modes
@noindent
change into Scalar mode and press @kbd{=} to resimplify the part
under this mode, then change back to Matrix mode before deselecting.
-@node Automatic Recomputation, Working Message, Matrix Mode, Calculation Modes
+@node Automatic Recomputation
@subsection Automatic Recomputation
@noindent
automatic recomputation is off, use @w{@kbd{C-x * u}}.
@xref{Embedded Mode}.
-@node Working Message, , Automatic Recomputation, Calculation Modes
+@node Working Message
@subsection Working Messages
@noindent
quite small. But if your terminal is slow you may find that it helps
to turn the messages off.
-@node Simplification Modes, Declarations, Calculation Modes, Mode Settings
+@node Simplification Modes
@section Simplification Modes
@noindent
amount of simplification you will allow to be applied automatically, then
use manual commands like @kbd{a s} and @kbd{c c} (@code{calc-clean}) to
perform higher types of simplifications on demand.
-@node Declarations, Display Modes, Simplification Modes, Mode Settings
+@node Declarations
@section Declarations
@noindent
* Functions for Declarations::
@end menu
-@node Declaration Basics, Kinds of Declarations, Declarations, Declarations
+@node Declaration Basics
@subsection Declaration Basics
@noindent
The @kbd{s d} command declares @code{All} if you give a blank
response to the variable-name prompt.
-@node Kinds of Declarations, Functions for Declarations, Declaration Basics, Declarations
+@node Kinds of Declarations
@subsection Kinds of Declarations
@noindent
or @kbd{s D} to check to make sure you don't still have an old
declaration for the variable that will conflict with its new meaning.
-@node Functions for Declarations, , Kinds of Declarations, Declarations
+@node Functions for Declarations
@subsection Functions for Declarations
@noindent
is provably non-scalar; both are ``false'' if there is insufficient
information to tell.
-@node Display Modes, Language Modes, Declarations, Mode Settings
+@node Display Modes
@section Display Modes
@noindent
* Labels::
@end menu
-@node Radix Modes, Grouping Digits, Display Modes, Display Modes
+@node Radix Modes
@subsection Radix Modes
@noindent
will be represented using Calc's usual notation (in the appropriate
radix).
-@node Grouping Digits, Float Formats, Radix Modes, Display Modes
+@node Grouping Digits
@subsection Grouping Digits
@noindent
the @samp{\,} separator, which doesn't interfere with parsing because it
is ignored by @TeX{} language mode.
-@node Float Formats, Complex Formats, Grouping Digits, Display Modes
+@node Float Formats
@subsection Float Formats
@noindent
style; on entry, periods must always be used to denote floating-point
numbers, and commas to separate elements in a list.
-@node Complex Formats, Fraction Formats, Float Formats, Display Modes
+@node Complex Formats
@subsection Complex Formats
@noindent
interpret the formula @samp{2 + 3 * i} as a complex number.
@xref{Variables}, under ``special constants.''
-@node Fraction Formats, HMS Formats, Complex Formats, Display Modes
+@node Fraction Formats
@subsection Fraction Formats
@noindent
stored, only the way they appear on the screen. The fraction format
never affects floats.
-@node HMS Formats, Date Formats, Fraction Formats, Display Modes
+@node HMS Formats
@subsection HMS Formats
@noindent
@kbd{o}) has already been pressed; otherwise it means to switch to algebraic
entry.
-@node Date Formats, Truncating the Stack, HMS Formats, Display Modes
+@node Date Formats
@subsection Date Formats
@noindent
* Standard Date Formats::
@end menu
-@node ISO 8601, Date Formatting Codes, Date Formats, Date Formats
+@node ISO 8601
@subsubsection ISO 8601
@noindent
time is represented, they should be separated by a literal ``T'', so noon
on December 13, 2012 can be represented as 2012-12-13T12:00.
-@node Date Formatting Codes, Free-Form Dates, ISO 8601, Date Formats
+@node Date Formatting Codes
@subsubsection Date Formatting Codes
@noindent
adjustment. They effectively use @samp{julian(x,0)} and
@samp{unixtime(x,0)} to make the conversion; @pxref{Date Arithmetic}.
-@node Free-Form Dates, Standard Date Formats, Date Formatting Codes, Date Formats
+@node Free-Form Dates
@subsubsection Free-Form Dates
@noindent
If you always enter a four-digit year, and use a name instead
of a number for the month, there is no danger of ambiguity.
-@node Standard Date Formats, , Free-Form Dates, Date Formats
+@node Standard Date Formats
@subsubsection Standard Date Formats
@noindent
@samp{IYYY-Iww-w<Thh:mm:ss>} (ISO 8601 week numbering format)
@end table
-@node Truncating the Stack, Justification, Date Formats, Display Modes
+@node Truncating the Stack
@subsection Truncating the Stack
@noindent
(@code{calc-truncate-down}) commands move the @samp{.} up or down one
line at a time (or several lines with a prefix argument).
-@node Justification, Labels, Truncating the Stack, Display Modes
+@node Justification
@subsection Justification
@noindent
case, the display is formatted as specified, and then uniformly
shifted over four spaces to fit the line numbers.
-@node Labels, , Justification, Display Modes
+@node Labels
@subsection Labels
@noindent
typically be centered, and the equation numbers would be on the
left or right as you prefer.
-@node Language Modes, Modes Variable, Display Modes, Mode Settings
+@node Language Modes
@section Language Modes
@noindent
* Syntax Tables::
@end menu
-@node Normal Language Modes, C FORTRAN Pascal, Language Modes, Language Modes
+@node Normal Language Modes
@subsection Normal Language Modes
@noindent
(except that Mathematica mode expects square brackets instead of
parentheses).
-@node C FORTRAN Pascal, TeX and LaTeX Language Modes, Normal Language Modes, Language Modes
+@node C FORTRAN Pascal
@subsection C, FORTRAN, and Pascal Modes
@noindent
convert to lower-case on input. With a negative prefix, these modes
convert to lower-case for display and input.
-@node TeX and LaTeX Language Modes, Eqn Language Mode, C FORTRAN Pascal, Language Modes
+@node TeX and LaTeX Language Modes
@subsection @TeX{} and @LaTeX{} Language Modes
@noindent
@sp 2
@end iftex
-@node Eqn Language Mode, Yacas Language Mode, TeX and LaTeX Language Modes, Language Modes
+@node Eqn Language Mode
@subsection Eqn Language Mode
@noindent
for @code{ccol} during input, and are generated instead of @code{ccol}
if the matrix justification mode so specifies.
-@node Yacas Language Mode, Maxima Language Mode, Eqn Language Mode, Language Modes
+@node Yacas Language Mode
@subsection Yacas Language Mode
@noindent
@samp{@{a,2,c,4@}}, then @samp{A[3]} would equal @samp{c}.
-@node Maxima Language Mode, Giac Language Mode, Yacas Language Mode, Language Modes
+@node Maxima Language Mode
@subsection Maxima Language Mode
@noindent
written as calls to the function @code{matrix}, given the row vectors of
the matrix as arguments. Square brackets are also used as subscripts.
-@node Giac Language Mode, Mathematica Language Mode, Maxima Language Mode, Language Modes
+@node Giac Language Mode
@subsection Giac Language Mode
@noindent
writes any kind of interval as @samp{2 .. 3}. This means you cannot see
the difference between an open and a closed interval while in Giac mode.
-@node Mathematica Language Mode, Maple Language Mode, Giac Language Mode, Language Modes
+@node Mathematica Language Mode
@subsection Mathematica Language Mode
@noindent
numbers in scientific notation are written @samp{1.23*10.^3}.
Subscripts use double square brackets: @samp{a[[i]]}.
-@node Maple Language Mode, Compositions, Mathematica Language Mode, Language Modes
+@node Maple Language Mode
@subsection Maple Language Mode
@noindent
various quote symbols, procedures and functional operators, and
inert (@samp{&}) operators.
-@node Compositions, Syntax Tables, Maple Language Mode, Language Modes
+@node Compositions
@subsection Compositions
@noindent
* User-Defined Compositions::
@end menu
-@node Composition Basics, Horizontal Compositions, Compositions, Compositions
+@node Composition Basics
@subsubsection Composition Basics
@noindent
will be on the same level as the break points of the surrounding
object.
-@node Horizontal Compositions, Vertical Compositions, Composition Basics, Compositions
+@node Horizontal Compositions
@subsubsection Horizontal Compositions
@noindent
The baseline of a horizontal composition is the same as the
baselines of the component compositions, which are all aligned.
-@node Vertical Compositions, Other Compositions, Horizontal Compositions, Compositions
+@node Vertical Compositions
@subsubsection Vertical Compositions
@noindent
which gives the precedence to use when formatting the components.
Vertical compositions do not support separator strings.
-@node Other Compositions, Information about Compositions, Vertical Compositions, Compositions
+@node Other Compositions
@subsubsection Other Compositions
@noindent
@end group
@end example
-@node Information about Compositions, User-Defined Compositions, Other Compositions, Compositions
+@node Information about Compositions
@subsubsection Information about Compositions
@noindent
returns 1. The only formula for which @code{cascent} will return zero
is @samp{cvspace(0)} or equivalents.
-@node User-Defined Compositions, , Information about Compositions, Compositions
+@node User-Defined Compositions
@subsubsection User-Defined Compositions
@noindent
You can save your display formats permanently using the @kbd{Z P}
command (@pxref{Creating User Keys}).
-@node Syntax Tables, , Compositions, Language Modes
+@node Syntax Tables
@subsection Syntax Tables
@noindent
* Conditional Syntax Rules::
@end menu
-@node Syntax Table Basics, Precedence in Syntax Tables, Syntax Tables, Syntax Tables
+@node Syntax Table Basics
@subsubsection Syntax Table Basics
@noindent
Finally, the notation @samp{%%} anywhere in a syntax table causes
the rest of the line to be ignored as a comment.
-@node Precedence in Syntax Tables, Advanced Syntax Patterns, Syntax Table Basics, Syntax Tables
+@node Precedence in Syntax Tables
@subsubsection Precedence
@noindent
standard Calc operators. For the precedences of operators in other
language modes, look in the Calc source file @file{calc-lang.el}.
-@node Advanced Syntax Patterns, Conditional Syntax Rules, Precedence in Syntax Tables, Syntax Tables
+@node Advanced Syntax Patterns
@subsubsection Advanced Syntax Patterns
@noindent
backtracking. A fully backtracking parser would go on to make sure
the rest of the pattern matched before finalizing the choice.
-@node Conditional Syntax Rules, , Advanced Syntax Patterns, Syntax Tables
+@node Conditional Syntax Rules
@subsubsection Conditional Syntax Rules
@noindent
must use regular Calc notation for the interval @samp{[b..c]} that
will correspond to the Maple mode interval @samp{1..10}.
-@node Modes Variable, Calc Mode Line, Language Modes, Mode Settings
+@node Modes Variable
@section The @code{Modes} Variable
@noindent
do a full emulation with the help of the @kbd{Z [} and @kbd{Z ]}
programming commands. @xref{Conditionals in Macros}.)
-@node Calc Mode Line, , Modes Variable, Mode Settings
+@node Calc Mode Line
@section The Calc Mode Line
@noindent
In addition, the symbols @code{Active} and @code{~Active} can appear
as minor modes on an Embedded buffer's mode line. @xref{Embedded Mode}.
-@node Arithmetic, Scientific Functions, Mode Settings, Top
+@node Arithmetic
@chapter Arithmetic Functions
@noindent
* Binary Functions::
@end menu
-@node Basic Arithmetic, Integer Truncation, Arithmetic, Arithmetic
+@node Basic Arithmetic
@section Basic Arithmetic
@noindent
Incrementing a date/time form adjusts it by a certain number of seconds.
Incrementing a pure date form adjusts it by a certain number of days.
-@node Integer Truncation, Complex Number Functions, Basic Arithmetic, Arithmetic
+@node Integer Truncation
@section Integer Truncation
@noindent
@kbd{/}, @kbd{B}, and @kbd{Q}, respectively, except that they take integer
arguments and return the result rounded down to an integer.
-@node Complex Number Functions, Conversions, Integer Truncation, Arithmetic
+@node Complex Number Functions
@section Complex Number Functions
@noindent
(or other composite object) on the top of the stack and unpacks it
into its separate components.
-@node Conversions, Date Arithmetic, Complex Number Functions, Arithmetic
+@node Conversions
@section Conversions
@noindent
With the Hyperbolic flag, @kbd{H c c} and @kbd{H c 0} through @kbd{H c 9}
operate non-pervasively [@code{clean}].
-@node Date Arithmetic, Financial Functions, Conversions, Arithmetic
+@node Date Arithmetic
@section Date Arithmetic
@noindent
* Business Days::
@end menu
-@node Date Conversions, Date Functions, Date Arithmetic, Date Arithmetic
+@node Date Conversions
@subsection Date Conversions
@noindent
prompt with @kbd{$} to take the two time zone names from the
stack (and the date to be converted from the third stack level).
-@node Date Functions, Business Days, Date Conversions, Date Arithmetic
+@node Date Functions
@subsection Date Functions
@noindent
@xref{Basic Arithmetic}, for the @kbd{f ]} [@code{incr}] command
which can adjust a date/time form by a certain number of seconds.
-@node Business Days, Time Zones, Date Functions, Date Arithmetic
+@node Business Days
@subsection Business Days
@noindent
holiday, as defined in @code{Holidays}, or 0 if the date is a
business day.
-@node Time Zones, , Business Days, Date Arithmetic
+@node Time Zones
@subsection Time Zones
@noindent
the algorithms described above are used. If @var{zone} is omitted,
the computation is done for the current time zone.
-@node Financial Functions, Binary Functions, Date Arithmetic, Arithmetic
+@node Financial Functions
@section Financial Functions
@noindent
* Definitions of Financial Functions::
@end menu
-@node Percentages, Future Value, Financial Functions, Financial Functions
+@node Percentages
@subsection Percentages
@kindex M-%
of @kbd{40 @key{RET} 50 b %} is to compute @expr{(50-40)/40}, converting
the answer to percentage form as if by @kbd{c %}.
-@node Future Value, Present Value, Percentages, Financial Functions
+@node Future Value
@subsection Future Value
@noindent
a chance to earn interest, counts as $1000). Indeed, @expr{5569.96 =
5870.73 - 1300.78 + 1000} (give or take a bit of roundoff error).
-@node Present Value, Related Financial Functions, Future Value, Financial Functions
+@node Present Value
@subsection Present Value
@noindent
value where payments occur at the beginning of each interval
rather than at the end.
-@node Related Financial Functions, Depreciation Functions, Present Value, Financial Functions
+@node Related Financial Functions
@subsection Related Financial Functions
@noindent
The @kbd{I b I} [@code{irrb}] command computes the internal rate of
return assuming payments occur at the beginning of each period.
-@node Depreciation Functions, Definitions of Financial Functions, Related Financial Functions, Financial Functions
+@node Depreciation Functions
@subsection Depreciation Functions
@noindent
the total depreciation in any method is (by definition) the
difference between the cost and the salvage value.
-@node Definitions of Financial Functions, , Depreciation Functions, Financial Functions
+@node Definitions of Financial Functions
@subsection Definitions
@noindent
function returns the amount the book value decreased in the specified
period.
-@node Binary Functions, , Financial Functions, Arithmetic
+@node Binary Functions
@section Binary Number Functions
@noindent
with 31 minus that bit-number; type @kbd{b p} to pack the set back
into a binary integer.
-@node Scientific Functions, Matrix Functions, Arithmetic, Top
+@node Scientific Functions
@chapter Scientific Functions
@noindent
* Probability Distribution Functions::
@end menu
-@node Logarithmic Functions, Trigonometric and Hyperbolic Functions, Scientific Functions, Scientific Functions
+@node Logarithmic Functions
@section Logarithmic Functions
@noindent
@infoline @expr{ln(x+1)},
producing a more accurate answer when @expr{x} is close to zero.
-@node Trigonometric and Hyperbolic Functions, Advanced Math Functions, Logarithmic Functions, Scientific Functions
+@node Trigonometric and Hyperbolic Functions
@section Trigonometric/Hyperbolic Functions
@noindent
[@code{sech}], @code{calc-csch} [@code{csch}] and @code{calc-coth}
[@code{coth}]. (These commands do not accept the Inverse flag.)
-@node Advanced Math Functions, Branch Cuts, Trigonometric and Hyperbolic Functions, Scientific Functions
+@node Advanced Math Functions
@section Advanced Mathematical Functions
@noindent
precision to 8 digits, and may not be exact even to that precision.
Use with care!
-@node Branch Cuts, Random Numbers, Advanced Math Functions, Scientific Functions
+@node Branch Cuts
@section Branch Cuts and Principal Values
@noindent
for general complex arguments, but their branch cuts and principal values
are not rigorously specified at present.
-@node Random Numbers, Combinatorial Functions, Branch Cuts, Scientific Functions
+@node Random Numbers
@section Random Numbers
@noindent
* Random Number Generator:: (Complete description of Calc's algorithm)
@end menu
-@node Random Number Generator, , Random Numbers, Random Numbers
+@node Random Number Generator
@subsection Random Number Generator
Calc's random number generator uses several methods to ensure that
generates a pair of Gaussian random numbers at a time, so only every
other call to @samp{random(0.0)} will require significant calculations.
-@node Combinatorial Functions, Probability Distribution Functions, Random Numbers, Scientific Functions
+@node Combinatorial Functions
@section Combinatorial Functions
@noindent
duplicate factors (i.e., can be divided by the same prime more than once),
the result is zero.
-@node Probability Distribution Functions, , Combinatorial Functions, Scientific Functions
+@node Probability Distribution Functions
@section Probability Distribution Functions
@noindent
to be able to find a solution given any initial guess.
@xref{Numerical Solutions}.
-@node Matrix Functions, Algebra, Scientific Functions, Top
+@node Matrix Functions
@chapter Vector/Matrix Functions
@noindent
* Vector and Matrix Formats::
@end menu
-@node Packing and Unpacking, Building Vectors, Matrix Functions, Matrix Functions
+@node Packing and Unpacking
@section Packing and Unpacking
@noindent
of an object. For example, to get the numerator of a rational
number, you can use @samp{unpack(-10, @var{x})_1}.
-@node Building Vectors, Extracting Elements, Packing and Unpacking, Matrix Functions
+@node Building Vectors
@section Building Vectors
@noindent
Also, @samp{head([a, b, c, d]) = a}, @samp{tail([a, b, c, d]) = [b, c, d]},
@samp{rhead([a, b, c, d]) = [a, b, c]}, and @samp{rtail([a, b, c, d]) = d}.
-@node Extracting Elements, Manipulating Vectors, Building Vectors, Matrix Functions
+@node Extracting Elements
@section Extracting Vector Elements
@noindent
@xref{Selecting Subformulas}, for an alternative way to operate on
vectors one element at a time.
-@node Manipulating Vectors, Vector and Matrix Arithmetic, Extracting Elements, Matrix Functions
+@node Manipulating Vectors
@section Manipulating Vectors
@noindent
the @code{? :} operation also discussed there allows other types of
masking using vectors.
-@node Vector and Matrix Arithmetic, Set Operations, Manipulating Vectors, Matrix Functions
+@node Vector and Matrix Arithmetic
@section Vector and Matrix Arithmetic
@noindent
The @kbd{V K} (@code{calc-kron}) [@code{kron}] command computes
the Kronecker product of two matrices.
-@node Set Operations, Statistical Operations, Vector and Matrix Arithmetic, Matrix Functions
+@node Set Operations
@section Set Operations using Vectors
@noindent
@texline (@math{2^{100}}, a 31-digit integer, in this case).
@infoline (@expr{2^100}, a 31-digit integer, in this case).
-@node Statistical Operations, Reducing and Mapping, Set Operations, Matrix Functions
+@node Statistical Operations
@section Statistical Operations on Vectors
@noindent
* Paired-Sample Statistics::
@end menu
-@node Single-Variable Statistics, Paired-Sample Statistics, Statistical Operations, Statistical Operations
+@node Single-Variable Statistics
@subsection Single-Variable Statistics
@noindent
in this section. For example, @samp{vflat(1, [2, [3, 4]], 5)}
returns @samp{[1, 2, 3, 4, 5]}.
-@node Paired-Sample Statistics, , Single-Variable Statistics, Statistical Operations
+@node Paired-Sample Statistics
@subsection Paired-Sample Statistics
@noindent
$$ r_{x\!y} = { \sigma_{x\!y}^2 \over \sigma_x^2 \sigma_y^2 } $$
@end tex
-@node Reducing and Mapping, Vector and Matrix Formats, Statistical Operations, Matrix Functions
+@node Reducing and Mapping
@section Reducing and Mapping Vectors
@noindent
* Generalized Products::
@end menu
-@node Specifying Operators, Mapping, Reducing and Mapping, Reducing and Mapping
+@node Specifying Operators
@subsection Specifying Operators
@noindent
automatically makes this translation, so you don't have to worry
about it.)
-@node Mapping, Reducing, Specifying Operators, Reducing and Mapping
+@node Mapping
@subsection Mapping
@noindent
@xref{Storing Variables}, for the @kbd{s m} command which modifies a
variable's stored value using a @kbd{V M}-like operator.
-@node Reducing, Nesting and Fixed Points, Mapping, Reducing and Mapping
+@node Reducing
@subsection Reducing
@noindent
@kbd{V R : +} or @kbd{V R _ +}, respectively, to sum the columns or
rows of the matrix. @xref{Grabbing From Buffers}.
-@node Nesting and Fixed Points, Generalized Products, Reducing, Reducing and Mapping
+@node Nesting and Fixed Points
@subsection Nesting and Fixed Points
@noindent
stopping when the result is correct within the specified tolerance, or
when 20 steps have been taken, whichever is sooner.
-@node Generalized Products, , Nesting and Fixed Points, Reducing and Mapping
+@node Generalized Products
@subsection Generalized Products
@kindex v O
first (multiplicative) operator is taken from the top of the stack
and the second (additive) operator is taken from second-to-top.
-@node Vector and Matrix Formats, , Reducing and Mapping, Matrix Functions
+@node Vector and Matrix Formats
@section Vector and Matrix Display Formats
@noindent
displayed with a single element per line. Sub-vectors within the
vectors will still use the normal linear form.
-@node Algebra, Units, Matrix Functions, Top
+@node Algebra
@chapter Algebra
@noindent
* Rewrite Rules::
@end menu
-@node Selecting Subformulas, Algebraic Manipulation, Algebra, Algebra
+@node Selecting Subformulas
@section Selecting Sub-Formulas
@noindent
* Rearranging with Selections::
@end menu
-@node Making Selections, Changing Selections, Selecting Subformulas, Selecting Subformulas
+@node Making Selections
@subsection Making Selections
@noindent
The @kbd{j c} (@code{calc-clear-selections}) command unselects all
stack elements.
-@node Changing Selections, Displaying Selections, Making Selections, Selecting Subformulas
+@node Changing Selections
@subsection Changing Selections
@noindent
@kbd{j l}; in each case, you can jump directly to a sub-component
of the hierarchy simply by pointing to it with the cursor.
-@node Displaying Selections, Operating on Selections, Changing Selections, Selecting Subformulas
+@node Displaying Selections
@subsection Displaying Selections
@noindent
noticeable face (@code{calc-selected-face}) instead of @samp{#}
signs. (@pxref{Customizing Calc}.)
-@node Operating on Selections, Rearranging with Selections, Displaying Selections, Selecting Subformulas
+@node Operating on Selections
@subsection Operating on Selections
@noindent
@end group
@end smallexample
-@node Rearranging with Selections, , Operating on Selections, Selecting Subformulas
+@node Rearranging with Selections
@subsection Rearranging Formulas using Selections
@noindent
You can use the @kbd{j r} (@code{calc-rewrite-selection}) command
to define other algebraic operations on sub-formulas. @xref{Rewrite Rules}.
-@node Algebraic Manipulation, Simplifying Formulas, Selecting Subformulas, Algebra
+@node Algebraic Manipulation
@section Algebraic Manipulation
@noindent
you wish to put a call to @code{subst} onto the stack you must
turn the default simplifications off first (with @kbd{m O}).
-@node Simplifying Formulas, Polynomials, Algebraic Manipulation, Algebra
+@node Simplifying Formulas
@section Simplifying Formulas
@noindent
* Simplification of Units::
@end menu
-@node Basic Simplifications, Algebraic Simplifications, Simplifying Formulas, Simplifying Formulas
+@node Basic Simplifications
@subsection Basic Simplifications
@noindent
defined, aside of course from evaluation when the arguments are
suitable numbers.
-@node Algebraic Simplifications, Unsafe Simplifications, Basic Simplifications, Simplifying Formulas
+@node Algebraic Simplifications
@subsection Algebraic Simplifications
@noindent
By a similar analysis, @expr{abs(x) >= 0} is simplified to 1,
as is @expr{x^2 >= 0} if @expr{x} is known to be real.
-@node Unsafe Simplifications, Simplification of Units, Algebraic Simplifications, Simplifying Formulas
+@node Unsafe Simplifications
@subsection ``Unsafe'' Simplifications
@noindent
The @kbd{a M /} command can be used to divide a factor out of
both sides of an inequality.
-@node Simplification of Units, , Unsafe Simplifications, Simplifying Formulas
+@node Simplification of Units
@subsection Simplification of Units
@noindent
simplified by converting to base units (radians), then evaluating
with the angular mode temporarily set to radians.
-@node Polynomials, Calculus, Simplifying Formulas, Algebra
+@node Polynomials
@section Polynomials
A @dfn{polynomial} is a sum of terms which are coefficients times
@xref{Decomposing Polynomials}, for several useful functions for
extracting the individual coefficients of a polynomial.
-@node Calculus, Solving Equations, Polynomials, Algebra
+@node Calculus
@section Calculus
@noindent
* Taylor Series::
@end menu
-@node Differentiation, Integration, Calculus, Calculus
+@node Differentiation
@subsection Differentiation
@noindent
@samp{f'@var{}'2'3(x,y,z)} (@code{f} differentiated with respect to each
argument once).
-@node Integration, Customizing the Integrator, Differentiation, Calculus
+@node Integration
@subsection Integration
@noindent
rewrite rules for integration by parts, various kinds of substitutions,
and so on. @xref{Rewrite Rules}.
-@node Customizing the Integrator, Numerical Integration, Integration, Calculus
+@node Customizing the Integrator
@subsection Customizing the Integrator
@noindent
finished, not at every step as for @code{IntegRules} and
@code{IntegSimpRules}.
-@node Numerical Integration, Taylor Series, Customizing the Integrator, Calculus
+@node Numerical Integration
@subsection Numerical Integration
@noindent
by Calc's symbolic integrator, for example), but @kbd{a I} will fail
because the integrand goes to infinity at one of the endpoints.
-@node Taylor Series, , Numerical Integration, Calculus
+@node Taylor Series
@subsection Taylor Series
@noindent
function, you can get an approximation by integrating the function's
Taylor series.
-@node Solving Equations, Numerical Solutions, Calculus, Algebra
+@node Solving Equations
@section Solving Equations
@noindent
* Decomposing Polynomials::
@end menu
-@node Multiple Solutions, Solving Systems of Equations, Solving Equations, Solving Equations
+@node Multiple Solutions
@subsection Multiple Solutions
@noindent
@kbd{a P} can only provide numerical roots if the polynomial coefficients
are all numbers (real or complex).
-@node Solving Systems of Equations, Decomposing Polynomials, Multiple Solutions, Solving Equations
+@node Solving Systems of Equations
@subsection Solving Systems of Equations
@noindent
equations is the @kbd{a F} command, which does least-squares fitting
to satisfy the equations. @xref{Curve Fitting}.
-@node Decomposing Polynomials, , Solving Systems of Equations, Solving Equations
+@node Decomposing Polynomials
@subsection Decomposing Polynomials
@noindent
coefficients, the result will have integer coefficients in simplest
terms.
-@node Numerical Solutions, Curve Fitting, Solving Equations, Algebra
+@node Numerical Solutions
@section Numerical Solutions
@noindent
* Numerical Systems of Equations::
@end menu
-@node Root Finding, Minimization, Numerical Solutions, Numerical Solutions
+@node Root Finding
@subsection Root Finding
@noindent
no root was found. If you miss this explanation, press @kbd{w}
(@code{calc-why}) to get it back.
-@node Minimization, Numerical Systems of Equations, Root Finding, Numerical Solutions
+@node Minimization
@subsection Minimization
@noindent
over the complex numbers; if it is real or an interval it will
be minimized over the reals.
-@node Numerical Systems of Equations, , Minimization, Numerical Solutions
+@node Numerical Systems of Equations
@subsection Systems of Equations
@noindent
still be a single formula, @emph{not} a vector. Beware that
multidimensional minimization is currently @emph{very} slow.
-@node Curve Fitting, Summations, Numerical Solutions, Algebra
+@node Curve Fitting
@section Curve Fitting
@noindent
* Interpolation::
@end menu
-@node Linear Fits, Polynomial and Multilinear Fits, Curve Fitting, Curve Fitting
+@node Linear Fits
@subsection Linear Fits
@noindent
the @expr{x} values can be either a one-row matrix or a plain vector,
in which case the @kbd{C-u} prefix is the same as a @w{@kbd{C-u 2}} prefix.
-@node Polynomial and Multilinear Fits, Error Estimates for Fits, Linear Fits, Curve Fitting
+@node Polynomial and Multilinear Fits
@subsection Polynomial and Multilinear Fits
@noindent
Another class of models that will work but must be entered by hand
are multinomial fits, e.g., @expr{a + b x + c y + d x^2 + e y^2 + f x y}.
-@node Error Estimates for Fits, Standard Nonlinear Models, Polynomial and Multilinear Fits, Curve Fitting
+@node Error Estimates for Fits
@subsection Error Estimates for Fits
@noindent
over to use for a confidence test.
@end enumerate
-@node Standard Nonlinear Models, Curve Fitting Details, Error Estimates for Fits, Curve Fitting
+@node Standard Nonlinear Models
@subsection Standard Nonlinear Models
@noindent
(Unfortunately, Calc does not currently have any facilities for
taking Fourier and related transforms.)
-@node Curve Fitting Details, Interpolation, Standard Nonlinear Models, Curve Fitting
+@node Curve Fitting Details
@subsection Curve Fitting Details
@noindent
The @code{efit} (corresponding to @kbd{H a F}) and @code{xfit}
(for @kbd{I a F}) functions are completely analogous.
-@node Interpolation, , Curve Fitting Details, Curve Fitting
+@node Interpolation
@subsection Polynomial Interpolation
@kindex a p
explicitly, and quotients of polynomials are beyond @w{@kbd{a F}}'s
capabilities to fit.)
-@node Summations, Logical Operations, Curve Fitting, Algebra
+@node Summations
@section Summations
@noindent
vector of the results. For example, @samp{table(a_i, i, 1, 7, 2)}
produces @samp{[a_1, a_3, a_5, a_7]}.
-@node Logical Operations, Rewrite Rules, Summations, Algebra
+@node Logical Operations
@section Logical Operations
@noindent
it returns 0 when @code{dnonzero} would return 0 or leave itself
in symbolic form.)
-@node Rewrite Rules, , Logical Operations, Algebra
+@node Rewrite Rules
@section Rewrite Rules
@noindent
* Examples of Rewrite Rules::
@end menu
-@node Entering Rewrite Rules, Basic Rewrite Rules, Rewrite Rules, Rewrite Rules
+@node Entering Rewrite Rules
@subsection Entering Rewrite Rules
@noindent
@samp{[@var{old}, @var{new}]}. But because it is easily confused with a
vector of two rules, the use of this notation is no longer recommended.
-@node Basic Rewrite Rules, Conditional Rewrite Rules, Entering Rewrite Rules, Rewrite Rules
+@node Basic Rewrite Rules
@subsection Basic Rewrite Rules
@noindent
(up to a limit of 100 times). Use @kbd{C-u 1 a r} to make only one
change at a time.
-@node Conditional Rewrite Rules, Algebraic Properties of Rewrite Rules, Basic Rewrite Rules, Rewrite Rules
+@node Conditional Rewrite Rules
@subsection Conditional Rewrite Rules
@noindent
the functioning of the rule. (The rewrite compiler will ensure that
it doesn't even impact the speed of matching the rule.)
-@node Algebraic Properties of Rewrite Rules, Other Features of Rewrite Rules, Conditional Rewrite Rules, Rewrite Rules
+@node Algebraic Properties of Rewrite Rules
@subsection Algebraic Properties of Rewrite Rules
@noindent
use all the algebra it can muster, but the righthand side will
always simplify to a literal addition like @samp{f((-y) + x)}.
-@node Other Features of Rewrite Rules, Composing Patterns in Rewrite Rules, Algebraic Properties of Rewrite Rules, Rewrite Rules
+@node Other Features of Rewrite Rules
@subsection Other Features of Rewrite Rules
@noindent
is equivalent to @samp{remember}, and @samp{remember(0)} has no effect.
@end table
-@node Composing Patterns in Rewrite Rules, Nested Formulas with Rewrite Rules, Other Features of Rewrite Rules, Rewrite Rules
+@node Composing Patterns in Rewrite Rules
@subsection Composing Patterns in Rewrite Rules
@noindent
would have matched anything at all, and the pattern @samp{!!!a}
therefore would @emph{not} have matched anything at all!
-@node Nested Formulas with Rewrite Rules, Multi-Phase Rewrite Rules, Composing Patterns in Rewrite Rules, Rewrite Rules
+@node Nested Formulas with Rewrite Rules
@subsection Nested Formulas with Rewrite Rules
@noindent
the @code{iterations} value from the rule set is used; if both
are omitted, 100 is used.
-@node Multi-Phase Rewrite Rules, Selections with Rewrite Rules, Nested Formulas with Rewrite Rules, Rewrite Rules
+@node Multi-Phase Rewrite Rules
@subsection Multi-Phase Rewrite Rules
@noindent
before they had a chance to recombine. By putting these rules in
two separate phases, this problem is neatly avoided.
-@node Selections with Rewrite Rules, Matching Commands, Multi-Phase Rewrite Rules, Rewrite Rules
+@node Selections with Rewrite Rules
@subsection Selections with Rewrite Rules
@noindent
will ``do the right thing'' in both @kbd{a r} and @kbd{j r},
both with and without selections.
-@node Matching Commands, Automatic Rewrites, Selections with Rewrite Rules, Rewrite Rules
+@node Matching Commands
@subsection Matching Commands
@noindent
@samp{vmatches(f(1,2), f(a,b))} returns @samp{[a := 1, b := 2]}.
If the match fails, the function returns the number 0.
-@node Automatic Rewrites, Debugging Rewrites, Matching Commands, Rewrite Rules
+@node Automatic Rewrites
@subsection Automatic Rewrites
@noindent
@code{IntegSimpRules} contains simplification rules that are used
only during integration by @kbd{a i}.
-@node Debugging Rewrites, Examples of Rewrite Rules, Automatic Rewrites, Rewrite Rules
+@node Debugging Rewrites
@subsection Debugging Rewrites
@noindent
existence and forget about it, all your future rewrite commands will
be needlessly slow.
-@node Examples of Rewrite Rules, , Debugging Rewrites, Rewrite Rules
+@node Examples of Rewrite Rules
@subsection Examples of Rewrite Rules
@noindent
of the rule set. (But remember that multi-phase rule sets don't work
in @code{EvalRules}.)
-@node Units, Store and Recall, Algebra, Top
+@node Units
@chapter Operating on Units
@noindent
* Musical Notes::
@end menu
-@node Basic Operations on Units, The Units Table, Units, Units
+@node Basic Operations on Units
@section Basic Operations on Units
@noindent
be considered a ``femto-ton,'' but it is written as @samp{1000 at}
(1000 atto-tons) instead because @code{ft} would be confused with feet.
-@node The Units Table, Predefined Units, Basic Operations on Units, Units
+@node The Units Table
@section The Units Table
@noindent
command uses the English descriptions that appear in the righthand
column of the Units Table.
-@node Predefined Units, User-Defined Units, The Units Table, Units
+@node Predefined Units
@section Predefined Units
@noindent
@c Describe angular units, luminosity vs. steradians problem.
-@node User-Defined Units, Logarithmic Units, Predefined Units, Units
+@node User-Defined Units
@section User-Defined Units
@noindent
is replaced by the new set. (@xref{General Mode Commands}, for a way to
tell Calc to use a different file for the Calc init file.)
-@node Logarithmic Units, Musical Notes, User-Defined Units, Units
+@node Logarithmic Units
@section Logarithmic Units
The units @code{dB} (decibels) and @code{Np} (nepers) are logarithmic
unit by a number. Note that the reference quantities don't play a role
in this arithmetic.
-@node Musical Notes, , Logarithmic Units, Units
+@node Musical Notes
@section Musical Notes
Calc can convert between musical notes and their associated
@code{1}, Calc converts @code{261.625 Hz} to @code{C_4}.
-@node Store and Recall, Graphics, Units, Top
+@node Store and Recall
@chapter Storing and Recalling
@noindent
* Evaluates-To Operator::
@end menu
-@node Storing Variables, Recalling Variables, Store and Recall, Store and Recall
+@node Storing Variables
@section Storing Variables
@noindent
variables, @code{inf}, @code{uinf} or @code{nan}, is given a value, its
original behavior can be restored by voiding it with @kbd{s u}.
-@node Recalling Variables, Operations on Variables, Storing Variables, Store and Recall
+@node Recalling Variables
@section Recalling Variables
@noindent
The @kbd{r} prefix may be followed by a digit, so that @kbd{r 9} is
equivalent to @kbd{s r 9}.
-@node Operations on Variables, Let Command, Recalling Variables, Store and Recall
+@node Operations on Variables
@section Other Operations on Variables
@noindent
is that @kbd{s i} will store the variables in any buffer, and it also
stores in a more human-readable format.)
-@node Let Command, Evaluates-To Operator, Operations on Variables, Store and Recall
+@node Let Command
@section The Let Command
@noindent
produce @samp{f(2 pi)}, whereas @kbd{s l} would give @samp{f(6.28)}
since the evaluation step will also evaluate @code{pi}.
-@node Evaluates-To Operator, , Let Command, Store and Recall
+@node Evaluates-To Operator
@section The Evaluates-To Operator
@noindent
@TeX{} language output. The @dfn{eqn} mode gives similar
treatment to @samp{=>}.
-@node Graphics, Kill and Yank, Store and Recall, Top
+@node Graphics
@chapter Graphics
@noindent
* Devices::
@end menu
-@node Basic Graphics, Three Dimensional Graphics, Graphics, Graphics
+@node Basic Graphics
@section Basic Graphics
@noindent
or @kbd{g p} command later on, it will reuse the existing graphics
window if there is one.
-@node Three Dimensional Graphics, Managing Curves, Basic Graphics, Graphics
+@node Three Dimensional Graphics
@section Three-Dimensional Graphics
@kindex g F
As for @kbd{g f}, each of ``x'', ``y'', and ``z'' may instead be
variables containing the relevant data.
-@node Managing Curves, Graphics Options, Three Dimensional Graphics, Graphics
+@node Managing Curves
@section Managing Curves
@noindent
the screen unless you have specified otherwise and @kbd{g P} will
always plot to the printer.
-@node Graphics Options, Devices, Managing Curves, Graphics
+@node Graphics Options
@section Graphics Options
@noindent
still be assigned automatically, but you could store another vector in
@code{PointStyles} to define them, too.
-@node Devices, , Graphics Options, Graphics
+@node Devices
@section Graphical Devices
@noindent
you can see the process being killed. This is better if you are
killing GNUPLOT because you think it has gotten stuck.
-@node Kill and Yank, Keypad Mode, Graphics, Top
+@node Kill and Yank
@chapter Kill and Yank Functions
@noindent
* X Cut and Paste::
@end menu
-@node Killing From Stack, Yanking Into Stack, Kill and Yank, Kill and Yank
+@node Killing From Stack
@section Killing from the Stack
@noindent
@kbd{C-k} with a prefix argument of 1 copies the number with its trailing
newline.
-@node Yanking Into Stack, Saving Into Registers, Killing From Stack, Kill and Yank
+@node Yanking Into Stack
@section Yanking into the Stack
@noindent
the text is an algebraic expression), then the prefix will have no
effect.
-@node Saving Into Registers, Inserting From Registers, Yanking Into Stack, Kill and Yank
+@node Saving Into Registers
@section Saving into Registers
@noindent
@kbd{C-u} arguments, which will cause the region to be deleted after being
added to the register.
-@node Inserting From Registers, Grabbing From Buffers, Saving Into Registers, Kill and Yank
+@node Inserting From Registers
@section Inserting from Registers
@noindent
@kindex r i
inserted into the Calculator, otherwise whatever text is in the
register is reparsed and then inserted into the Calculator.
-@node Grabbing From Buffers, Yanking Into Buffers, Inserting From Registers, Kill and Yank
+@node Grabbing From Buffers
@section Grabbing from Other Buffers
@noindent
@xref{Statistical Operations}. Another approach would be to use
an explicit column reduction command, @kbd{V R : *}.
-@node Yanking Into Buffers, X Cut and Paste, Grabbing From Buffers, Kill and Yank
+@node Yanking Into Buffers
@section Yanking into Other Buffers
@noindent
it can be typed anywhere, not just in Calc. This provides an easy
way to guarantee that Calc knows which editing buffer you want to use!
-@node X Cut and Paste, , Yanking Into Buffers, Kill and Yank
+@node X Cut and Paste
@section X Cut and Paste
@noindent
just by double-clicking on it in the shell, then middle-clicking
in the Calc window.
-@node Keypad Mode, Embedded Mode, Kill and Yank, Top
+@node Keypad Mode
@chapter Keypad Mode
@noindent
* Keypad Modes Menu::
@end menu
-@node Keypad Main Menu, Keypad Functions Menu, Keypad Mode, Keypad Mode
+@node Keypad Main Menu
@section Main Menu
@smallexample
command line that started Emacs), then @kbd{OFF} is replaced with
@kbd{EXIT}; clicking on this actually exits Emacs itself.
-@node Keypad Functions Menu, Keypad Binary Menu, Keypad Main Menu, Keypad Mode
+@node Keypad Functions Menu
@section Functions Menu
@smallexample
@key{NXTP} finds the next prime after a number. @kbd{INV NXTP}
finds the previous prime.
-@node Keypad Binary Menu, Keypad Vectors Menu, Keypad Functions Menu, Keypad Mode
+@node Keypad Binary Menu
@section Binary Menu
@smallexample
using either the keyboard or the digits and @key{ENTER} from the keypad.
The initial word size is 32 bits.
-@node Keypad Vectors Menu, Keypad Modes Menu, Keypad Binary Menu, Keypad Mode
+@node Keypad Vectors Menu
@section Vectors Menu
@smallexample
@kbd{"x"} key pushes the variable names @expr{y}, @expr{z}, and
@expr{t}, respectively.
-@node Keypad Modes Menu, , Keypad Vectors Menu, Keypad Mode
+@node Keypad Modes Menu
@section Modes Menu
@smallexample
variables are not available in Keypad mode.) You can also use,
for example, @kbd{STO + 3} to add to register 3.
-@node Embedded Mode, Programming, Keypad Mode, Top
+@node Embedded Mode
@chapter Embedded Mode
@noindent
* Customizing Embedded Mode::
@end menu
-@node Basic Embedded Mode, More About Embedded Mode, Embedded Mode, Embedded Mode
+@node Basic Embedded Mode
@section Basic Embedded Mode
@noindent
will not do you any good, because as far as Calc is concerned
you haven't done anything with this formula yet.
-@node More About Embedded Mode, Assignments in Embedded Mode, Basic Embedded Mode, Embedded Mode
+@node More About Embedded Mode
@section More About Embedded Mode
@noindent
Embedded mode does not have to be enabled for this to work. Press
@kbd{C-c C-c} to finish the edit, or @kbd{C-x k} to cancel.
-@node Assignments in Embedded Mode, Mode Settings in Embedded Mode, More About Embedded Mode, Embedded Mode
+@node Assignments in Embedded Mode
@section Assignments in Embedded Mode
@noindent
stack will be updated but the Embedded buffer will not; you must
use @kbd{C-x * u} to update the buffer by hand.
-@node Mode Settings in Embedded Mode, Customizing Embedded Mode, Assignments in Embedded Mode, Embedded Mode
+@node Mode Settings in Embedded Mode
@section Mode Settings in Embedded Mode
@kindex m e
When Embedded mode is not enabled, mode-recording modes except
for @code{Save} have no effect.
-@node Customizing Embedded Mode, , Mode Settings in Embedded Mode, Embedded Mode
+@node Customizing Embedded Mode
@section Customizing Embedded Mode
@noindent
major modes. If you change this, it is a good idea still to end with a
newline so that mode annotations will appear on lines by themselves.
-@node Programming, Copying, Embedded Mode, Top
+@node Programming
@chapter Programming
@noindent
* Lisp Definitions::
@end menu
-@node Creating User Keys, Keyboard Macros, Programming, Programming
+@node Creating User Keys
@section Creating User Keys
@noindent
keyboard macros or formulas; further details are contained in the relevant
following sections.
-@node Keyboard Macros, Invocation Macros, Creating User Keys, Programming
+@node Keyboard Macros
@section Programming with Keyboard Macros
@noindent
* Queries in Macros::
@end menu
-@node Naming Keyboard Macros, Conditionals in Macros, Keyboard Macros, Keyboard Macros
+@node Naming Keyboard Macros
@subsection Naming Keyboard Macros
@noindent
It is a convenient way to define a keyboard macro that has been stored
in a file, or to define a macro without executing it at the same time.
-@node Conditionals in Macros, Loops in Macros, Naming Keyboard Macros, Keyboard Macros
+@node Conditionals in Macros
@subsection Conditionals in Keyboard Macros
@noindent
macro, type @kbd{Z C-g} to cancel the definition. (Typing plain @kbd{C-g}
actually adds a @kbd{C-g} keystroke to the macro.)
-@node Loops in Macros, Local Values in Macros, Conditionals in Macros, Keyboard Macros
+@node Loops in Macros
@subsection Loops in Keyboard Macros
@noindent
@xref{Conditionals in Macros}, for some additional notes about
conditional and looping commands.
-@node Local Values in Macros, Queries in Macros, Loops in Macros, Keyboard Macros
+@node Local Values in Macros
@subsection Local Values in Macros
@noindent
other settings such as the language mode and the various display modes,
are @emph{not} affected by @kbd{Z `} and @kbd{Z '}.
-@node Queries in Macros, , Local Values in Macros, Keyboard Macros
+@node Queries in Macros
@subsection Queries in Keyboard Macros
@c @noindent
any Calculator operations interactively before pressing @kbd{C-M-c} to
return control to the keyboard macro.
-@node Invocation Macros, Algebraic Definitions, Keyboard Macros, Programming
+@node Invocation Macros
@section Invocation Macros
@kindex C-x * z
@kbd{Z I} along with all the other Calc mode settings.
@xref{General Mode Commands}.
-@node Algebraic Definitions, Lisp Definitions, Invocation Macros, Programming
+@node Algebraic Definitions
@section Programming with Formulas
@noindent
in symbolic form without ever activating the @code{deriv} function. Press
@kbd{m D} to turn the default simplifications back on afterwards.
-@node Lisp Definitions, , Algebraic Definitions, Programming
+@node Lisp Definitions
@section Programming with Lisp
@noindent
* Internals::
@end menu
-@node Defining Functions, Defining Simple Commands, Lisp Definitions, Lisp Definitions
+@node Defining Functions
@subsection Defining New Functions
@noindent
the Calc key map, and any calls that redefine things defined inside Calc.
Ordinary @code{defun}s need not be enclosed with @code{calc-define}.
-@node Defining Simple Commands, Defining Stack Commands, Defining Functions, Lisp Definitions
+@node Defining Simple Commands
@subsection Defining New Simple Commands
@noindent
(run-hooks 'calc-check-defines)
@end smallexample
-@node Defining Stack Commands, Argument Qualifiers, Defining Simple Commands, Lisp Definitions
+@node Defining Stack Commands
@subsection Defining New Stack-Based Commands
@noindent
In this case, the integer @var{num} serves as a default number of
arguments to be used when no prefix is supplied.
-@node Argument Qualifiers, Example Definitions, Defining Stack Commands, Lisp Definitions
+@node Argument Qualifiers
@subsection Argument Qualifiers
@noindent
which performs the necessary checks and conversions before executing the
body of the function.
-@node Example Definitions, Calling Calc from Your Programs, Argument Qualifiers, Lisp Definitions
+@node Example Definitions
@subsection Example Definitions
@noindent
* Sine Example::
@end menu
-@node Bit Counting Example, Sine Example, Example Definitions, Example Definitions
+@node Bit Counting Example
@subsubsection Bit-Counting
@noindent
count))
@end smallexample
-@node Sine Example, , Bit Counting Example, Example Definitions
+@node Sine Example
@subsubsection The Sine Function
@noindent
when you know that your own use of the sine function will never encounter
a large argument, a simpler program like the first one shown is fine.
-@node Calling Calc from Your Programs, Internals, Example Definitions, Lisp Definitions
+@node Calling Calc from Your Programs
@subsection Calling Calc from Your Lisp Programs
@noindent
``F'' and ``C'', so that the character winds up before the cursor
instead of after it.
-@node Internals, , Calling Calc from Your Programs, Lisp Definitions
+@node Internals
@subsection Calculator Internals
@noindent
* Hooks::
@end menu
-@node Data Type Formats, Interactive Lisp Functions, Internals, Internals
+@node Data Type Formats
@subsubsection Data Type Formats
@noindent
about to be pushed on the stack; this feature is considered obsolete
and is not used by any built-in Calc functions.)
-@node Interactive Lisp Functions, Stack Lisp Functions, Data Type Formats, Internals
+@node Interactive Lisp Functions
@subsubsection Interactive Functions
@noindent
This predicate is the analogous function for the @kbd{H} key.
@end defun
-@node Stack Lisp Functions, Predicates, Interactive Lisp Functions, Internals
+@node Stack Lisp Functions
@subsubsection Stack-Oriented Functions
@noindent
rather than just the top few elements when the macro finishes.)
@end defun
-@node Predicates, Computational Lisp Functions, Stack Lisp Functions, Internals
+@node Predicates
@subsubsection Predicates
@noindent
This signals a floating-point underflow.
@end defun
-@node Computational Lisp Functions, Vector Lisp Functions, Predicates, Internals
+@node Computational Lisp Functions
@subsubsection Computational Functions
@noindent
returns @code{nil}.
@end defun
-@node Vector Lisp Functions, Symbolic Lisp Functions, Computational Lisp Functions, Internals
+@node Vector Lisp Functions
@subsubsection Vector Functions
@noindent
@var{m}.
@end defun
-@node Symbolic Lisp Functions, Formatting Lisp Functions, Vector Lisp Functions, Internals
+@node Symbolic Lisp Functions
@subsubsection Symbolic Functions
@noindent
by ones.
@end defun
-@node Formatting Lisp Functions, Hooks, Symbolic Lisp Functions, Internals
+@node Formatting Lisp Functions
@subsubsection I/O and Formatting Functions
@noindent
@comment @noindent
@comment (This section is currently unfinished.)
-@node Hooks, , Formatting Lisp Functions, Internals
+@node Hooks
@subsubsection Hooks
@noindent
list and also call @code{make-local-variable} itself.
@end defvar
-@node Copying, GNU Free Documentation License, Programming, Top
+@node Copying
@appendix GNU GENERAL PUBLIC LICENSE
@include gpl.texi
-@node GNU Free Documentation License, Customizing Calc, Copying, Top
+@node GNU Free Documentation License
@appendix GNU Free Documentation License
@include doclicense.texi
-@node Customizing Calc, Reporting Bugs, GNU Free Documentation License, Top
+@node Customizing Calc
@appendix Customizing Calc
The usual prefix for Calc is the key sequence @kbd{C-x *}. If you wish
The default value of @code{calc-gregorian-switch} is @code{nil}.
@end defvar
-@node Reporting Bugs, Summary, Customizing Calc, Top
+@node Reporting Bugs
@appendix Reporting Bugs
@noindent
repository. See @uref{https://savannah.gnu.org/projects/emacs}.
@c [summary]
-@node Summary, Key Index, Reporting Bugs, Top
+@node Summary
@appendix Calc Summary
@noindent
@c [end-summary]
-@node Key Index, Command Index, Summary, Top
+@node Key Index
@unnumbered Index of Key Sequences
@printindex ky
-@node Command Index, Function Index, Key Index, Top
+@node Command Index
@unnumbered Index of Calculator Commands
Since all Calculator commands begin with the prefix @samp{calc-}, the
@printindex pg
-@node Function Index, Concept Index, Command Index, Top
+@node Function Index
@unnumbered Index of Algebraic Functions
This is a list of built-in functions and operators usable in algebraic
@printindex tp
-@node Concept Index, Variable Index, Function Index, Top
+@node Concept Index
@unnumbered Concept Index
@printindex cp
-@node Variable Index, Lisp Function Index, Concept Index, Top
+@node Variable Index
@unnumbered Index of Variables
The variables in this list that do not contain dashes are accessible
@printindex vr
-@node Lisp Function Index, , Variable Index, Top
+@node Lisp Function Index
@unnumbered Index of Lisp Math Functions
The following functions are meant to be used with @code{defmath}, not