\section{Variables}
\begin{Variable}{assumptions}
\index{solve}
After solving a linear or polynomial equation system
with parameters, the variable \name{assumptions} contains a list
of side relations for the parameters. The solution is valid only
as long as none of these expression is zero.
\begin{Examples}
solve({a*x-b*y+x,y-c},{x,y});&
\{\{x=\rfrac{b*c}{a + 1},y=c\}\} \\
assumptions; & \{a + 1\}
\end{Examples}
\end{Variable}
\begin{Variable}{CARD\_NO}
\index{FORTRAN}\index{output}
\name{card\_no} sets the total number of cards allowed in a Fortran
output statement when \name{fort} is on. Default is 20.
\begin{Examples}
on fort; \\
card_no := 4; & CARD\_NO=4. \\
z := (x + y)**15; &
\begin{multilineoutput}{6cm}
ANS1=5005.*X**6*Y**9+3003.*X**5*Y**10+1365.*X**4*Y**
. 11+455.*X**3*Y**12+105.*X**2*Y**13+15.*X*Y**14+Y**15
Z=X**15+15.*X**14*Y+105.*X**13*Y**2+455.*X**12*Y**3+
. 1365.*X**11*Y**4+3003.*X**10*Y**5+5005.*X**9*Y**6+
. 6435.*X**8*Y**7+6435.*X**7*Y**8+ANS1
\end{multilineoutput}
\end{Examples}
\begin{Comments}
Twenty total cards means 19 continuation cards. You may set it for more
if your Fortran system allows more. Expressions are broken apart in a
Fortran-compatible way if they extend for more than \name{card\_no}
continuation cards.
\end{Comments}
\end{Variable}
\begin{Constant}{E}
The constant \name{e} is reserved for use as the base of the natural
logarithm. Its value is approximately 2.71828284590, which REDUCE gives
to the current decimal precision when the switch \nameref{rounded} is on.
\begin{Comments}
\name{e} may be used as an iterative variable in a \nameref{for} statement,
or as a local variable or a \nameref{procedure}. If \name{e} is defined
as a local
variable inside the procedure, the normal definition as the base of the
natural logarithm would be suspended inside the procedure.
\end{Comments}
\end{Constant}
\begin{Variable}{EVAL\_MODE}
\index{algebraic}\index{symbolic}
The system variable \name{eval\_mode} contains the current mode, either
\nameref{algebraic} or \nameref{symbolic}.
\begin{Examples}
EVAL\_MODE; & ALGEBRAIC
\end{Examples}
\begin{Comments}
Some commands do not behave the same way in algebraic and symbolic modes.
%You can determine what mode you are in without using this command by noting
%that the numbered prompt in algebraic mode contains a colon (\name{:}), while
%the numbered prompt in symbolic mode contains an asterisk (\name{*}).
\end{Comments}
\end{Variable}
\begin{Variable}{FORT\_WIDTH}
\index{output}\index{FORTRAN}
The \name{fort\_width} variable sets the number of characters in a line of
Fortran-compatible output produced when the \nameref{fort} switch is on.
Default is 70.
\begin{Examples}
fort_width := 30; & FORT\_WIDTH := 30 \\
on fort; \\
df(sin(x**3*y),x); & \begin{multilineoutput}{3cm}
ANS=3.*COS(X
. **3*Y)*X**2*
. Y
\end{multilineoutput}
\end{Examples}
\begin{Comments}
\name{fort\_width} includes the usually blank characters at the beginning
of the card. As you may notice above, it is conservative and makes the
lines even shorter than it was told.
\end{Comments}
\end{Variable}
\begin{Variable}{HIGH\_POW}
\index{polynomial}\index{degree}
The variable \name{high\_pow} is set by \nameref{coeff} to the highest power
of the variable of interest in the given expression. You can access this
variable for use in further computation or display.
\begin{Examples}
coeff((x+1)^5*(x*(y+3)^2)^2,x); &
\begin{multilineoutput}{6cm}
\{0,
0,
Y^{4} + 12*Y^{3} + 54*Y^{2} + 108*Y + 81,
5*(Y^{4} + 12*Y^{3} + 54*Y^{2} + 108*Y + 81),
10*(Y^{4} + 12*Y^{3} + 54*Y^{2} + 108*Y + 81),
10*(Y^{4} + 12*Y^{3} + 54*Y^{2} + 108*Y + 81),
5*(Y^{4} + 12*Y^{3} + 54*Y^{2} + 108*Y + 81),
Y^{4} + 12*Y^{3} + 54*Y^{2} + 108*Y + 81\}
\end{multilineoutput} \\
high_pow; & 7
\end{Examples}
\end{Variable}
\begin{Constant}{I}
\index{complex}
REDUCE knows \name{i} is the square root of -1,
and that \IFTEX{$i^2 = -1$}{i^2 = -1}.
\begin{Examples}
(a + b*i)*(c + d*i); & A*C + A*D*I + B*C*I - B*D \\
i**2; & -1
\end{Examples}
\begin{Comments}
\name{i} cannot be used as an identifier. It is all right to use \name{i}
as an index variable in a \name{for} loop, or as a local (\name{scalar})
variable inside a \name{begin...end} block, but it loses its definition as
the square root of -1 inside the block in that case.
Only the simplest properties of \IFTEX{$i$}{i} are known by REDUCE unless
the switch \nameref{complex} is turned on, which implements full complex
arithmetic in factoring, simplification, and functional values.
\name{complex} is ordinarily off.
\end{Comments}
\end{Constant}
\begin{Constant}{INFINITY}
The name \name{infinity} is used to represent the infinite positive number.
However, at the present time, arithmetic in terms of this operator reflects
finite arithmetic, rather than true operations on infinity.
\end{Constant}
\begin{Variable}{LOW\_POW}
\index{degree}\index{polynomial}
The variable \name{low\_pow} is set by \nameref{coeff} to the lowest power
of the variable of interest in the given expression. You can access this
variable for use in further computation or display.
\begin{Examples}
coeff((x+2*y)**6,y); &
\begin{multilineoutput}{6cm}
\{X^{6},
12*X^{5},
60*X^{4},
160*X^{3},
240*X^{2},
192*X,
64\}
\end{multilineoutput}\\
low_pow; & 0 \\
coeff(x**2*(x*sin(y) + 1),x);
& \{0,0,1,SIN(Y)\} \\
low_pow; & 2
\end{Examples}
\end{Variable}
\begin{Constant}{NIL}
\index{false}
\name{nil} represents the truth value {\it false} in symbolic mode, and is
a synonym for 0 in algebraic mode. It cannot be used for any other
purpose, even inside procedures or \nameref{for} loops.
\end{Constant}
\begin{Constant}{PI}
The identifier \name{pi} is reserved for use as the circular constant.
Its value is given by 3.14159265358..., which REDUCE gives to the current
decimal precision when REDUCE is in a floating-point mode.
\begin{Comments}
\name{pi} may be used as a looping variable in a \nameref{for} statement,
or as a local variable in a \nameref{procedure}. Its value in such cases
will be taken from the local environment.
\end{Comments}
\end{Constant}
\begin{Variable}{requirements}
\index{solve}
After an attempt to solve an inconsistent equation system
with parameters, the variable \name{requirements} contains a list
of expressions. These expressions define a set of conditions implicitly
equated with zero. Any solution to this system defines a setting for
the parameters sufficient to make the original system consistent.
\begin{Examples}
solve({x-a,x-y,y-1},{x,y}); & \{\}\\
requirements;&\{a - 1\}
\end{Examples}
\end{Variable}
\begin{Variable}{ROOT\_MULTIPLICITIES}
\index{root}\index{solve}\index{polynomial}
The \name{root\_multiplicities} variable is set to the list of the
multiplicities of the roots of an equation by the \nameref{solve} operator.
\begin{Comments}
\nameref{solve} returns its solutions in a list. The multiplicities of
each solution are put in the corresponding locations of the list
\name{root\_multiplicities}.
\end{Comments}
\end{Variable}
\begin{Constant}{T}
The constant \name{t} stands for the truth value {\it true}. It cannot be used
as a scalar variable in a \nameref{block}, as a looping variable in a
\nameref{for} statement or as an \nameref{operator} name.
\end{Constant}