This is maxima.info, produced by makeinfo version 4.8 from
../../doc/info/maxima.texi.

   This is a Texinfo Maxima Manual

   Copyright 1994,2001 William F. Schelter

INFO-DIR-SECTION Math
START-INFO-DIR-ENTRY
* Maxima: (maxima).     A computer algebra system.
END-INFO-DIR-ENTRY


File: maxima.info,  Node: lsquares-pkg,  Next: minpack-pkg,  Prev: linearalgebra-pkg,  Up: Top

69 lsquares
***********

* Menu:

* Introduction to lsquares::
* Functions and Variables for lsquares::


File: maxima.info,  Node: Introduction to lsquares,  Next: Functions and Variables for lsquares,  Prev: lsquares-pkg,  Up: lsquares-pkg

69.1 Introduction to lsquares
=============================

`lsquares' is a collection of functions to implement the method of
least squares to estimate parameters for a model from numerical data.


File: maxima.info,  Node: Functions and Variables for lsquares,  Prev: Introduction to lsquares,  Up: lsquares-pkg

69.2 Functions and Variables for lsquares
=========================================

 -- Function: lsquares_estimates
          lsquares_estimates (<D>, <x>, <e>, <a>)
          lsquares_estimates (<D>, <x>, <e>, <a>, initial = <L>, tol =
          <t>)
     Estimate parameters <a> to best fit the equation <e> in the
     variables <x> and <a> to the data <D>, as determined by the method
     of least squares.  `lsquares_estimates' first seeks an exact
     solution, and if that fails, then seeks an approximate solution.

     The return value is a list of lists of equations of the form `[a =
     ..., b = ..., c = ...]'.  Each element of the list is a distinct,
     equivalent minimum of the mean square error.

     The data <D> must be a matrix.  Each row is one datum (which may
     be called a `record' or `case' in some contexts), and each column
     contains the values of one variable across all data.  The list of
     variables <x> gives a name for each column of <D>, even the
     columns which do not enter the analysis.  The list of parameters
     <a> gives the names of the parameters for which estimates are
     sought.  The equation <e> is an expression or equation in the
     variables <x> and <a>; if <e> is not an equation, it is treated
     the same as `<e> = 0'.

     Additional arguments to `lsquares_estimates' are specified as
     equations and passed on verbatim to the function `lbfgs' which is
     called to find estimates by a numerical method when an exact
     result is not found.

     If some exact solution can be found (via `solve'), the data <D>
     may contain non-numeric values.  However, if no exact solution is
     found, each element of <D> must have a numeric value.  This
     includes numeric constants such as `%pi' and `%e' as well as
     literal numbers (integers, rationals, ordinary floats, and
     bigfloats).  Numerical calculations are carried out with ordinary
     floating-point arithmetic, so all other kinds of numbers are
     converted to ordinary floats for calculations.

     `load(lsquares)' loads this function.

     See also `lsquares_estimates_exact',
     `lsquares_estimates_approximate',
     `lsquares_mse', `lsquares_residuals', and `lsquares_residual_mse'.

     Examples:

     A problem for which an exact solution is found.

          (%i1) load (lsquares)$
          (%i2) M : matrix (
                  [1,1,1], [3/2,1,2], [9/4,2,1], [3,2,2], [2,2,1]);
                                     [ 1  1  1 ]
                                     [         ]
                                     [ 3       ]
                                     [ -  1  2 ]
                                     [ 2       ]
                                     [         ]
          (%o2)                      [ 9       ]
                                     [ -  2  1 ]
                                     [ 4       ]
                                     [         ]
                                     [ 3  2  2 ]
                                     [         ]
                                     [ 2  2  1 ]
          (%i3) lsquares_estimates (
                   M, [z,x,y], (z+D)^2 = A*x+B*y+C, [A,B,C,D]);
                            59        27      10921        107
          (%o3)     [[A = - --, B = - --, C = -----, D = - ---]]
                            16        16      1024         32

     A problem for which no exact solution is found, so
     `lsquares_estimates' resorts to numerical approximation.

          (%i1) load (lsquares)$
          (%i2) M : matrix ([1, 1], [2, 7/4], [3, 11/4], [4, 13/4]);
                                      [ 1  1  ]
                                      [       ]
                                      [    7  ]
                                      [ 2  -  ]
                                      [    4  ]
                                      [       ]
          (%o2)                       [    11 ]
                                      [ 3  -- ]
                                      [    4  ]
                                      [       ]
                                      [    13 ]
                                      [ 4  -- ]
                                      [    4  ]
          (%i3) lsquares_estimates (
            M, [x,y], y=a*x^b+c, [a,b,c], initial=[3,3,3], iprint=[-1,0]);
          (%o3) [[a = 1.375751433061394, b = 0.7148891534417651,
                                                 c = - 0.4020908910062951]]

     Exponential functions aren't well-conditioned for least min square
     fitting.  In case that fitting to them fails it might be possible
     to get rid of the exponential function using an logarithm.

          (%i1) load (lsquares)$
          (%i2) yvalues:[1,3,5,60,200,203,80]$
          (%i3) time:[1,2,4,5,6,8,10]$
          (%i4) f:y=a*exp(b*t);
                                             b t
          (%o4)                      y = a %e
          (%i5) yvalues_log:log(yvalues)$
          (%i6) f_log:log(subst(y=exp(y),f));
                                              b t
          (%o6)                   y = log(a %e   )
          (%i7) lsquares_estimates(
              transpose(matrix(yvalues_log,time)),
              [y,t],
              f_log,
              [a,b]
           );
          *************************************************
            N=    2   NUMBER OF CORRECTIONS=25
                 INITIAL VALUES
           F=  6.802906290754687D+00   GNORM=  2.851243373781393D+01
          *************************************************

             I  NFN     FUNC                    GNORM                   STEPLENGTH

             1    3     1.141838765593467D+00   1.067358003667488D-01   1.390943719972406D-02
             2    5     1.141118195694385D+00   1.237977833033414D-01   5.000000000000000D+00
             3    6     1.136945723147959D+00   3.806696991691383D-01   1.000000000000000D+00
             4    7     1.133958243220262D+00   3.865103550379243D-01   1.000000000000000D+00
             5    8     1.131725773805499D+00   2.292258231154026D-02   1.000000000000000D+00
             6    9     1.131625585698168D+00   2.664440547017370D-03   1.000000000000000D+00
             7   10     1.131620564856599D+00   2.519366958715444D-04   1.000000000000000D+00

           THE MINIMIZATION TERMINATED WITHOUT DETECTING ERRORS.
           IFLAG = 0
          (%o7)   [[a = 1.155904145765554, b = 0.5772666876959847]]


 -- Function: lsquares_estimates_exact (<MSE>, <a>)
     Estimate parameters <a> to minimize the mean square error <MSE>,
     by constructing a system of equations and attempting to solve them
     symbolically via `solve'.  The mean square error is an expression
     in the parameters <a>, such as that returned by `lsquares_mse'.

     The return value is a list of lists of equations of the form `[a =
     ..., b = ..., c = ...]'.  The return value may contain zero, one,
     or two or more elements.  If two or more elements are returned,
     each represents a distinct, equivalent minimum of the mean square
     error.

     See also `lsquares_estimates', `lsquares_estimates_approximate',
     `lsquares_mse', `lsquares_residuals', and `lsquares_residual_mse'.

     Example:

          (%i1) load (lsquares)$
          (%i2) M : matrix (
                   [1,1,1], [3/2,1,2], [9/4,2,1], [3,2,2], [2,2,1]);
                                     [ 1  1  1 ]
                                     [         ]
                                     [ 3       ]
                                     [ -  1  2 ]
                                     [ 2       ]
                                     [         ]
          (%o2)                      [ 9       ]
                                     [ -  2  1 ]
                                     [ 4       ]
                                     [         ]
                                     [ 3  2  2 ]
                                     [         ]
                                     [ 2  2  1 ]
          (%i3) mse : lsquares_mse (M, [z, x, y], (z + D)^2 = A*x + B*y + C);
                   5
                  ====
                  \                                         2     2
                   >    ((- B M    ) - A M     + (M     + D)  - C)
                  /            i, 3       i, 2     i, 1
                  ====
                  i = 1
          (%o3)   -------------------------------------------------
                                          5
          (%i4) lsquares_estimates_exact (mse, [A, B, C, D]);
                            59        27      10921        107
          (%o4)     [[A = - --, B = - --, C = -----, D = - ---]]
                            16        16      1024         32


 -- Function: lsquares_estimates_approximate (<MSE>, <a>, initial =
          <L>, tol = <t>)
     Estimate parameters <a> to minimize the mean square error <MSE>,
     via the numerical minimization function `lbfgs'.  The mean square
     error is an expression in the parameters <a>, such as that
     returned by `lsquares_mse'.

     The solution returned by `lsquares_estimates_approximate' is a
     local (perhaps global) minimum of the mean square error.  For
     consistency with `lsquares_estimates_exact', the return value is a
     nested list which contains one element, namely a list of equations
     of the form `[a = ..., b = ..., c = ...]'.

     Additional arguments to `lsquares_estimates_approximate' are
     specified as equations and passed on verbatim to the function
     `lbfgs'.

     <MSE> must evaluate to a number when the parameters are assigned
     numeric values.  This requires that the data from which <MSE> was
     constructed comprise only numeric constants such as `%pi' and `%e'
     and literal numbers (integers, rationals, ordinary floats, and
     bigfloats).  Numerical calculations are carried out with ordinary
     floating-point arithmetic, so all other kinds of numbers are
     converted to ordinary floats for calculations.

     `load(lsquares)' loads this function.

     See also `lsquares_estimates', `lsquares_estimates_exact',
     `lsquares_mse',
     `lsquares_residuals', and `lsquares_residual_mse'.

     Example:

          (%i1) load (lsquares)$
          (%i2) M : matrix (
                   [1,1,1], [3/2,1,2], [9/4,2,1], [3,2,2], [2,2,1]);
                                     [ 1  1  1 ]
                                     [         ]
                                     [ 3       ]
                                     [ -  1  2 ]
                                     [ 2       ]
                                     [         ]
          (%o2)                      [ 9       ]
                                     [ -  2  1 ]
                                     [ 4       ]
                                     [         ]
                                     [ 3  2  2 ]
                                     [         ]
                                     [ 2  2  1 ]
          (%i3) mse : lsquares_mse (M, [z, x, y], (z + D)^2 = A*x + B*y + C);
                   5
                  ====
                  \                                         2     2
                   >    ((- B M    ) - A M     + (M     + D)  - C)
                  /            i, 3       i, 2     i, 1
                  ====
                  i = 1
          (%o3)   -------------------------------------------------
                                          5
          (%i4) lsquares_estimates_approximate (
                  mse, [A, B, C, D], iprint = [-1, 0]);
          (%o4) [[A = - 3.678504947401971, B = - 1.683070351177937,
                           C = 10.63469950148714, D = - 3.340357993175297]]


 -- Function: lsquares_mse (<D>, <x>, <e>)
     Returns the mean square error (MSE), a summation expression, for
     the equation <e> in the variables <x>, with data <D>.

     The MSE is defined as:

                              n
                             ====
                         1   \                        2
                         -    >    (lhs(e ) - rhs(e ))
                         n   /           i         i
                             ====
                             i = 1

     where <n> is the number of data and `<e>[i]' is the equation <e>
     evaluated with the variables in <x> assigned values from the
     `i'-th datum, `<D>[i]'.

     `load(lsquares)' loads this function.

     Example:

          (%i1) load (lsquares)$
          (%i2) M : matrix (
                   [1,1,1], [3/2,1,2], [9/4,2,1], [3,2,2], [2,2,1]);
                                     [ 1  1  1 ]
                                     [         ]
                                     [ 3       ]
                                     [ -  1  2 ]
                                     [ 2       ]
                                     [         ]
          (%o2)                      [ 9       ]
                                     [ -  2  1 ]
                                     [ 4       ]
                                     [         ]
                                     [ 3  2  2 ]
                                     [         ]
                                     [ 2  2  1 ]
          (%i3) mse : lsquares_mse (M, [z, x, y], (z + D)^2 = A*x + B*y + C);
                   5
                  ====
                  \                                         2     2
                   >    ((- B M    ) - A M     + (M     + D)  - C)
                  /            i, 3       i, 2     i, 1
                  ====
                  i = 1
          (%o3)   -------------------------------------------------
                                          5
          (%i4) diff (mse, D);
          (%o4)
                5
               ====
               \                                                     2
             4  >    (M     + D) ((- B M    ) - A M     + (M     + D)  - C)
               /       i, 1             i, 3       i, 2     i, 1
               ====
               i = 1
             --------------------------------------------------------------
                                           5
          (%i5) ''mse, nouns;
                         2                 2         9 2               2
          (%o5) (((D + 3)  - C - 2 B - 2 A)  + ((D + -)  - C - B - 2 A)
                                                     4
                     2               2         3 2               2
           + ((D + 2)  - C - B - 2 A)  + ((D + -)  - C - 2 B - A)
                                               2
                     2             2
           + ((D + 1)  - C - B - A) )/5

          (%i3) mse : lsquares_mse (M, [z, x, y], (z + D)^2 = A*x + B*y + C);
                     5
                    ====
                    \                 2                         2
                     >    ((D + M    )  - C - M     B - M     A)
                    /            i, 1          i, 3      i, 2
                    ====
                    i = 1
          (%o3)     ---------------------------------------------
                                          5

          (%i4) diff (mse, D);
                   5
                  ====
                  \                             2
                4  >    (D + M    ) ((D + M    )  - C - M     B - M     A)
                  /           i, 1         i, 1          i, 3      i, 2
                  ====
                  i = 1
          (%o4) ----------------------------------------------------------
                                            5

          (%i5) ''mse, nouns;
                         2                 2         9 2               2
          (%o5) (((D + 3)  - C - 2 B - 2 A)  + ((D + -)  - C - B - 2 A)
                                                     4
                     2               2         3 2               2
           + ((D + 2)  - C - B - 2 A)  + ((D + -)  - C - 2 B - A)
                                               2
                     2             2
           + ((D + 1)  - C - B - A) )/5


 -- Function: lsquares_residuals (<D>, <x>, <e>, <a>)
     Returns the residuals for the equation <e> with specified
     parameters <a> and data <D>.

     <D> is a matrix, <x> is a list of variables, <e> is an equation or
     general expression; if not an equation, <e> is treated as if it
     were `<e> = 0'.  <a> is a list of equations which specify values
     for any free parameters in <e> aside from <x>.

     The residuals are defined as:

                                  lhs(e ) - rhs(e )
                                       i         i

     where `<e>[i]' is the equation <e> evaluated with the variables in
     <x> assigned values from the `i'-th datum, `<D>[i]', and assigning
     any remaining free variables from <a>.

     `load(lsquares)' loads this function.

     Example:

          (%i1) load (lsquares)$
          (%i2) M : matrix (
                   [1,1,1], [3/2,1,2], [9/4,2,1], [3,2,2], [2,2,1]);
                                     [ 1  1  1 ]
                                     [         ]
                                     [ 3       ]
                                     [ -  1  2 ]
                                     [ 2       ]
                                     [         ]
          (%o2)                      [ 9       ]
                                     [ -  2  1 ]
                                     [ 4       ]
                                     [         ]
                                     [ 3  2  2 ]
                                     [         ]
                                     [ 2  2  1 ]
          (%i3) a : lsquares_estimates (
                    M, [z,x,y], (z+D)^2 = A*x+B*y+C, [A,B,C,D]);
                            59        27      10921        107
          (%o3)     [[A = - --, B = - --, C = -----, D = - ---]]
                            16        16      1024         32
          (%i4) lsquares_residuals (
                    M, [z,x,y], (z+D)^2 = A*x+B*y+C, first(a));
                               13    13    13  13  13
          (%o4)               [--, - --, - --, --, --]
                               64    64    32  64  64


 -- Function: lsquares_residual_mse (<D>, <x>, <e>, <a>)
     Returns the residual mean square error (MSE) for the equation <e>
     with specified parameters <a> and data <D>.

     The residual MSE is defined as:

                              n
                             ====
                         1   \                        2
                         -    >    (lhs(e ) - rhs(e ))
                         n   /           i         i
                             ====
                             i = 1

     where `<e>[i]' is the equation <e> evaluated with the variables in
     <x> assigned values from the `i'-th datum, `<D>[i]', and assigning
     any remaining free variables from <a>.

     `load(lsquares)' loads this function.

     Example:

          (%i1) load (lsquares)$
          (%i2) M : matrix (
                   [1,1,1], [3/2,1,2], [9/4,2,1], [3,2,2], [2,2,1]);
                                     [ 1  1  1 ]
                                     [         ]
                                     [ 3       ]
                                     [ -  1  2 ]
                                     [ 2       ]
                                     [         ]
          (%o2)                      [ 9       ]
                                     [ -  2  1 ]
                                     [ 4       ]
                                     [         ]
                                     [ 3  2  2 ]
                                     [         ]
                                     [ 2  2  1 ]
          (%i3) a : lsquares_estimates (
                 M, [z,x,y], (z+D)^2 = A*x+B*y+C, [A,B,C,D]);
                            59        27      10921        107
          (%o3)     [[A = - --, B = - --, C = -----, D = - ---]]
                            16        16      1024         32
          (%i4) lsquares_residual_mse (
                 M, [z,x,y], (z + D)^2 = A*x + B*y + C, first (a));
                                        169
          (%o4)                         ----
                                        2560


 -- Function: plsquares
          plsquares (<Mat>,<VarList>,<depvars>)
          plsquares (<Mat>,<VarList>,<depvars>,<maxexpon>)
          plsquares (<Mat>,<VarList>,<depvars>,<maxexpon>,<maxdegree>)
     Multivariable polynomial adjustment of a data table by the "least
     squares" method. <Mat> is a matrix containing the data, <VarList>
     is a list of variable names (one for each Mat column, but use "-"
     instead of varnames to ignore Mat columns), <depvars> is the name
     of a dependent variable or a list with one or more names of
     dependent variables (which names should be in <VarList>),
     <maxexpon> is the optional maximum exponent for each independent
     variable (1 by default), and <maxdegree> is the optional maximum
     polynomial degree (<maxexpon> by default); note that the sum of
     exponents of each term must be equal or smaller than <maxdegree>,
     and if `maxdgree = 0' then no limit is applied.

     If <depvars> is the name of a dependent variable (not in a list),
     `plsquares' returns the adjusted polynomial. If <depvars> is a
     list of one or more dependent variables, `plsquares' returns a
     list with the adjusted polynomial(s). The Coefficients of
     Determination  are displayed in order to inform about the goodness
     of fit, which ranges from 0 (no correlation) to 1 (exact
     correlation). These values are also stored in the global variable
     <DETCOEF> (a list if <depvars> is a list).

     A simple example of multivariable linear adjustment:
          (%i1) load("plsquares")$

          (%i2) plsquares(matrix([1,2,0],[3,5,4],[4,7,9],[5,8,10]),
                          [x,y,z],z);
               Determination Coefficient for z = .9897039897039897
                                 11 y - 9 x - 14
          (%o2)              z = ---------------
                                        3

     The same example without degree restrictions:
          (%i3) plsquares(matrix([1,2,0],[3,5,4],[4,7,9],[5,8,10]),
                          [x,y,z],z,1,0);
               Determination Coefficient for z = 1.0
                              x y + 23 y - 29 x - 19
          (%o3)           z = ----------------------
                                        6

     How many diagonals does a N-sides polygon have? What polynomial
     degree should be used?
          (%i4) plsquares(matrix([3,0],[4,2],[5,5],[6,9],[7,14],[8,20]),
                          [N,diagonals],diagonals,5);
               Determination Coefficient for diagonals = 1.0
                                          2
                                         N  - 3 N
          (%o4)              diagonals = --------
                                            2
          (%i5) ev(%, N=9);   /* Testing for a 9 sides polygon */
          (%o5)                 diagonals = 27

     How many ways do we have to put two queens without they are
     threatened into a n x n chessboard?
          (%i6) plsquares(matrix([0,0],[1,0],[2,0],[3,8],[4,44]),
                          [n,positions],[positions],4);
               Determination Coefficient for [positions] = [1.0]
                                   4       3      2
                                3 n  - 10 n  + 9 n  - 2 n
          (%o6)    [positions = -------------------------]
                                            6
          (%i7) ev(%[1], n=8); /* Testing for a (8 x 8) chessboard */
          (%o7)                positions = 1288

     An example with six dependent variables:
          (%i8) mtrx:matrix([0,0,0,0,0,1,1,1],[0,1,0,1,1,1,0,0],
                            [1,0,0,1,1,1,0,0],[1,1,1,1,0,0,0,1])$
          (%i8) plsquares(mtrx,[a,b,_And,_Or,_Xor,_Nand,_Nor,_Nxor],
                               [_And,_Or,_Xor,_Nand,_Nor,_Nxor],1,0);
                Determination Coefficient for
          [_And, _Or, _Xor, _Nand, _Nor, _Nxor] =
          [1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
          (%o2) [_And = a b, _Or = - a b + b + a,
          _Xor = - 2 a b + b + a, _Nand = 1 - a b,
          _Nor = a b - b - a + 1, _Nxor = 2 a b - b - a + 1]

     To use this function write first `load("lsquares")'.



File: maxima.info,  Node: minpack-pkg,  Next: makeOrders-pkg,  Prev: lsquares-pkg,  Up: Top

70 minpack
**********

* Menu:

* Introduction to minpack::
* Functions and Variables for minpack::


File: maxima.info,  Node: Introduction to minpack,  Next: Functions and Variables for minpack,  Prev: minpack-pkg,  Up: minpack-pkg

70.1 Introduction to minpack
============================

`Minpack' is a Common Lisp translation (via `f2cl') of the Fortran
library MINPACK, as obtained from Netlib.


File: maxima.info,  Node: Functions and Variables for minpack,  Prev: Introduction to minpack,  Up: minpack-pkg

70.2 Functions and Variables for minpack
========================================

 -- Function: minpack_lsquares (<flist>, <varlist>, <guess> [,
          <tolerance>, <jacobian>])
     Compute the point that minimizes the sum of the squares of the
     functions in the list <flist>.  The variables are in the list
     <varlist>.  An initial guess of the optimum point must be provided
     in <guess>.

     The optional keyword arguments, <tolerance> and <jacobian> provide
     some control over the algorithm.  <tolerance> is the estimated
     relative error desired in the sum of squares.  <jacobian> can be
     used to specify the Jacobian.  If <jacobian> is not given or is
     `true' (the default), the Jacobian is computed from <flist>.  If
     <jacobian> is `false', a numerical approximation is used.

     `minpack_lsquares' returns a list.  The first item is the
     estimated solution; the second is the sum of squares, and the third
     indicates the success of the algorithm.  The possible values are

    `0'
          improper input parameters.

    `1'
          algorithm estimates that the relative error in the sum of
          squares is at most `tolerance'.

    `2'
          algorithm estimates that the relative error between x and the
          solution is at most `tolerance'.

    `3'
          conditions for info = 1 and info = 2 both hold.

    `4'
          fvec is orthogonal to the columns of the jacobian to machine
          precision.

    `5'
          number of calls to fcn with iflag = 1 has reached 100*(n+1).

    `6'
          tol is too small. no further reduction in the sum of squares
          is possible.

    `7'
          tol is too small. no further improvement in the approximate
          solution x is possible.

          /* Problem 6: Powell singular function */
          (%i1) powell(x1,x2,x3,x4) :=
                   [x1+10*x2, sqrt(5)*(x3-x4), (x2-2*x3)^2,
                        sqrt(10)*(x1-x4)^2]$
          (%i2) minpack_lsquares(powell(x1,x2,x3,x4), [x1,x2,x3,x4],
                                 [3,-1,0,1]);
          (%o2) [[1.652117596168394e-17, - 1.652117596168393e-18,
                  2.643388153869468e-18, 2.643388153869468e-18],
                 6.109327859207777e-34, 4]

          /* Same problem but use numerical approximation to Jacobian */
          (%i3) minpack_lsquares(powell(x1,x2,x3,x4), [x1,x2,x3,x4],
                                 [3,-1,0,1], jacobian = false);
          (%o3) [[5.060282149485331e-11, - 5.060282149491206e-12,
                  2.179447843547218e-11, 2.179447843547218e-11],
                 3.534491794847031e-21, 5]


 -- Function: minpack_solve (<flist>, <varlist>, <guess> [,
          <tolerance>, <jacobian>])
     Solve a system of `n' equations in `n' unknowns.  The `n'
     equations are given in the list <flist>, and the unknowns are in
     <varlist>.  An initial guess of the solution must be provided in
     <guess>.

     The optional keyword arguments, <tolerance> and <jacobian> provide
     some control over the algorithm.  <tolerance> is the estimated
     relative error desired in the sum of squares.  <jacobian> can be
     used to specify the Jacobian.  If <jacobian> is not given or is
     `true' (the default), the Jacobian is computed from <flist>.  If
     <jacobian> is `false', a numerical approximation is used.

     `minpack_solve' returns a list.  The first item is the estimated
     solution; the second is the sum of squares, and the third
     indicates the success of the algorithm.  The possible values are

    `0'
          improper input parameters.

    `1'
          algorithm estimates that the relative error in the solution is
          at most `tolerance'.

    `2'
          number of calls to fcn with iflag = 1 has reached 100*(n+1).

    `3'
          tol is too small. no further reduction in the sum of squares
          is possible.

    `4'
          Iteration is not making good progress.




File: maxima.info,  Node: makeOrders-pkg,  Next: mnewton-pkg,  Prev: minpack-pkg,  Up: Top

71 makeOrders
*************

* Menu:

* Functions and Variables for makeOrders::


File: maxima.info,  Node: Functions and Variables for makeOrders,  Prev: makeOrders-pkg,  Up: makeOrders-pkg

71.1 Functions and Variables for makeOrders
===========================================

 -- Function: makeOrders (<indvarlist>,<orderlist>)
     Returns a list of all powers for a polynomial up to and including
     the arguments.

          (%i1) load("makeOrders")$

          (%i2) makeOrders([a,b],[2,3]);
          (%o2) [[0, 0], [0, 1], [0, 2], [0, 3], [1, 0], [1, 1],
                      [1, 2], [1, 3], [2, 0], [2, 1], [2, 2], [2, 3]]
          (%i3) expand((1+a+a^2)*(1+b+b^2+b^3));
                 2  3      3    3    2  2      2    2    2
          (%o3) a  b  + a b  + b  + a  b  + a b  + b  + a  b + a b
                                                            2
                                                     + b + a  + a + 1
     where `[0, 1]' is associated with the term b and `[2, 3]' with a^2
     b^3.

     To use this function write first `load("makeOrders")'.



File: maxima.info,  Node: mnewton-pkg,  Next: numericalio-pkg,  Prev: makeOrders-pkg,  Up: Top

72 mnewton
**********

* Menu:

* Introduction to mnewton::
* Functions and Variables for mnewton::


File: maxima.info,  Node: Introduction to mnewton,  Next: Functions and Variables for mnewton,  Prev: mnewton-pkg,  Up: mnewton-pkg

72.1 Introduction to mnewton
============================

`mnewton' is an implementation of Newton's method for solving nonlinear
equations in one or more variables.


File: maxima.info,  Node: Functions and Variables for mnewton,  Prev: Introduction to mnewton,  Up: mnewton-pkg

72.2 Functions and Variables for mnewton
========================================

 -- Option variable: newtonepsilon
     Default value: `10.0^(-fpprec/2)'

     Precision to determine when the `mnewton' function has converged
     towards the solution.  If `newtonepsilon' is a bigfloat, then
     `mnewton' computations are done with bigfloats.  See also
     `mnewton'.


 -- Option variable: newtonmaxiter
     Default value: `50'

     Maximum number of iterations to stop the `mnewton' function if it
     does not converge or if it converges too slowly.

     See also `mnewton'.


 -- Function: mnewton (<FuncList>,<VarList>,<GuessList>)
     Multiple nonlinear functions solution using the Newton method.
     <FuncList> is the list of functions to solve, <VarList> is the
     list of variable names, and <GuessList> is the list of initial
     approximations.

     The solution is returned in the same format that `solve()' returns.
     If the solution is not found, `[]' is returned.

     This function is controlled by global variables `newtonepsilon' and
     `newtonmaxiter'.

          (%i1) load("mnewton")$

          (%i2) mnewton([x1+3*log(x1)-x2^2, 2*x1^2-x1*x2-5*x1+1],
                        [x1, x2], [5, 5]);
          (%o2) [[x1 = 3.756834008012769, x2 = 2.779849592817897]]
          (%i3) mnewton([2*a^a-5],[a],[1]);
          (%o3)             [[a = 1.70927556786144]]
          (%i4) mnewton([2*3^u-v/u-5, u+2^v-4], [u, v], [2, 2]);
          (%o4) [[u = 1.066618389595407, v = 1.552564766841786]]

     The variable `newtonepsilon' controls the precision of the
     approximations.  It also controls if computations are performed
     with floats or bigfloats.

          (%i1) load(mnewton)$

          (%i2) (fpprec : 25, newtonepsilon : bfloat(10^(-fpprec+5)))$

          (%i3) mnewton([2*3^u-v/u-5, u+2^v-4], [u, v], [2, 2]);
          (%o3) [[u = 1.066618389595406772591173b0,
                                         v = 1.552564766841786450100418b0]]

     To use this function write first `load("mnewton")'.  See also
     `newtonepsilon' and `newtonmaxiter'.



File: maxima.info,  Node: numericalio-pkg,  Next: operatingsystem-pkg,  Prev: mnewton-pkg,  Up: Top

73 numericalio
**************

* Menu:

* Introduction to numericalio::
* Functions and Variables for plain-text input and output::
* Functions and Variables for binary input and output::


File: maxima.info,  Node: Introduction to numericalio,  Next: Functions and Variables for plain-text input and output,  Prev: numericalio-pkg,  Up: numericalio-pkg

73.1 Introduction to numericalio
================================

`numericalio' is a collection of functions to read and write files and
streams.  Functions for plain-text input and output can read and write
numbers (integer, float, or bigfloat), symbols, and strings.  Functions
for binary input and output can read and write only floating-point
numbers.

   If there already exists a list, matrix, or array object to store
input data, `numericalio' input functions can write data into that
object.  Otherwise, `numericalio' can guess, to some degree, the
structure of an object to store the data, and return that object.

73.1.1 Plain-text input and output
----------------------------------

In plain-text input and output, it is assumed that each item to read or
write is an atom: an integer, float, bigfloat, string, or symbol, and
not a rational or complex number or any other kind of nonatomic
expression.  The `numericalio' functions may attempt to do something
sensible faced with nonatomic expressions, but the results are not
specified here and subject to change.

   Atoms in both input and output files have the same format as in
Maxima batch files or the interactive console.  In particular, strings
are enclosed in double quotes, backslash `\' prevents any special
interpretation of the next character, and the question mark `?' is
recognized at the beginning of a symbol to mean a Lisp symbol (as
opposed to a Maxima symbol).  No continuation character (to join broken
lines) is recognized.

73.1.2 Separator flag values for input
--------------------------------------

The functions for plain-text input and output take an optional argument,
<separator_flag>, that tells what character separates data.

   For plain-text input, these values of <separator_flag> are
recognized: `comma' for comma separated values, `pipe' for values
separated by the vertical bar character `|', `semicolon' for values
separated by semicolon `;', and `space' for values separated by space
or tab characters.  If the file name ends in `.csv' and
<separator_flag> is not specified, `comma' is assumed.  If the file
name ends in something other than `.csv' and `separator_flag' is not
specified, `space' is assumed.

   In plain-text input, multiple successive space and tab characters
count as a single separator.  However, multiple comma, pipe, or
semicolon characters are significant.  Successive comma, pipe, or
semicolon characters (with or without intervening spaces or tabs) are
considered to have `false' between the separators.  For example,
`1234,,Foo' is treated the same as `1234,false,Foo'.

73.1.3 Separator flag values for output
---------------------------------------

For plain-text output, `tab', for values separated by the tab character,
is recognized as a value of <separator_flag>, as well as `comma',
`pipe', `semicolon', and `space'.

   In plain-text output, `false' atoms are written as such; a list
`[1234, false, Foo]' is written `1234,false,Foo', and there is no
attempt to collapse the output to `1234,,Foo'.

73.1.4 Binary floating-point input and output
---------------------------------------------

`numericalio' functions can read and write 8-byte IEEE 754
floating-point numbers.  These numbers can be stored either least
significant byte first or most significant byte first, according to the
global flag set by `assume_external_byte_order'.  If not specified,
`numericalio' assumes the external byte order is most-significant byte
first.

   Other kinds of numbers are coerced to 8-byte floats; `numericalio'
cannot read or write binary non-numeric data.

   Some Lisp implementations do not recognize IEEE 754 special values
(positive and negative infinity, not-a-number values, denormalized
values).  The effect of reading such values with `numericalio' is
undefined.

   `numericalio' includes functions to open a stream for reading or
writing a stream of bytes.


File: maxima.info,  Node: Functions and Variables for plain-text input and output,  Next: Functions and Variables for binary input and output,  Prev: Introduction to numericalio,  Up: numericalio-pkg

73.2 Functions and Variables for plain-text input and output
============================================================

 -- Function: read_matrix
          read_matrix (<S>)
          read_matrix (<S>, <M>)
          read_matrix (<S>, <separator_flag>)
          read_matrix (<S>, <M>, <separator_flag>)
     `read_matrix(<S>)' reads the source <S> and returns its entire
     content as a matrix.  The size of the matrix is inferred from the
     input data; each line of the file becomes one row of the matrix.
     If some lines have different lengths, `read_matrix' complains.

     `read_matrix(<S>, <M>)' read the source <S> into the matrix <M>,
     until <M> is full or the source is exhausted.  Input data are read
     into the matrix in row-major order; the input need not have the
     same number of rows and columns as <M>.

     The source <S> may be a file name or a stream which for example
     allows skipping the very first line of a file (that may be useful,
     if you read CSV data, where the first line often contains the
     description of the columns):
          s : openr("data.txt");
          readline(s);  /* skip the first line */
          M : read_matrix(s, comma);  /* read the following (comma-separated) lines into matrix M */
          close(s);

     The recognized values of <separator_flag> are `comma', `pipe',
     `semicolon', and `space'.  If <separator_flag> is not specified,
     the file is assumed space-delimited.


 -- Function: read_array
          read_array (<S>, <A>)
          read_array (<S>, <A>, <separator_flag>)
     Reads the source <S> into the array <A>, until <A> is full or the
     source is exhausted.  Input data are read into the array in
     row-major order; the input need not conform to the dimensions of
     <A>.

     The source <S> may be a file name or a stream.

     The recognized values of <separator_flag> are `comma', `pipe',
     `semicolon', and `space'.  If <separator_flag> is not specified,
     the file is assumed space-delimited.


 -- Function: read_hashed_array
          read_hashed_array (<S>, <A>)
          read_hashed_array (<S>, <A>, <separator_flag>)
     Reads the source <S> and returns its entire content as a hashed
     array.  The source <S> may be a file name or a stream.

     `read_hashed_array' treats the first item on each line as a hash
     key, and associates the remainder of the line (as a list) with the
     key.  For example, the line `567 12 17 32 55' is equivalent to
     `A[567]: [12, 17, 32, 55]$'.  Lines need not have the same numbers
     of elements.

     The recognized values of <separator_flag> are `comma', `pipe',
     `semicolon', and `space'.  If <separator_flag> is not specified,
     the file is assumed space-delimited.


 -- Function: read_nested_list
          read_nested_list (<S>)
          read_nested_list (<S>, <separator_flag>)
     Reads the source <S> and returns its entire content as a nested
     list.  The source <S> may be a file name or a stream.

     `read_nested_list' returns a list which has a sublist for each
     line of input. Lines need not have the same numbers of elements.
     Empty lines are not ignored: an empty line yields an empty sublist.

     The recognized values of <separator_flag> are `comma', `pipe',
     `semicolon', and `space'.  If <separator_flag> is not specified,
     the file is assumed space-delimited.


 -- Function: read_list
          read_list (<S>)
          read_list (<S>, <L>)
          read_list (<S>, <separator_flag>)
          read_list (<S>, <L>, <separator_flag>)
     `read_list(<S>)' reads the source <S> and returns its entire
     content as a flat list.

     `read_list(<S>, <L>)' reads the source <S> into the list <L>,
     until <L> is full or the source is exhausted.

     The source <S> may be a file name or a stream.

     The recognized values of <separator_flag> are `comma', `pipe',
     `semicolon', and `space'.  If <separator_flag> is not specified,
     the file is assumed space-delimited.


 -- Function: write_data
          write_data (<X>, <D>)
          write_data (<X>, <D>, <separator_flag>)
     Writes the object <X> to the destination <D>.

     `write_data' writes a matrix in row-major order, with one line per
     row.

     `write_data' writes an array created by `array' or `make_array' in
     row-major order, with a new line at the end of every slab.
     Higher-dimensional slabs are separated by additional new lines.

     `write_data' writes a hashed array with each key followed by its
     associated list on one line.

     `write_data' writes a nested list with each sublist on one line.

     `write_data' writes a flat list all on one line.

     The destination <D> may be a file name or a stream.  When the
     destination is a file name, the global variable
     `file_output_append' governs whether the output file is appended
     or truncated.  When the destination is a stream, no special action
     is taken by `write_data' after all the data are written; in
     particular, the stream remains open.

     The recognized values of <separator_flag> are `comma', `pipe',
     `semicolon', `space', and `tab'.  If <separator_flag> is not
     specified, the file is assumed space-delimited.



File: maxima.info,  Node: Functions and Variables for binary input and output,  Prev: Functions and Variables for plain-text input and output,  Up: numericalio-pkg

73.3 Functions and Variables for binary input and output
========================================================

 -- Function: assume_external_byte_order (<byte_order_flag>)
     Tells `numericalio' the byte order for reading and writing binary
     data.  Two values of <byte_order_flag> are recognized: `lsb' which
     indicates least-significant byte first, also called little-endian
     byte order; and `msb' which indicates most-significant byte first,
     also called big-endian byte order.

     If not specified, `numericalio' assumes the external byte order is
     most-significant byte first.


 -- Function: openr_binary (<file_name>)
     Returns an input stream of 8-bit unsigned bytes to read the file
     named by <file_name>.


 -- Function: openw_binary (<file_name>)
     Returns an output stream of 8-bit unsigned bytes to write the file
     named by <file_name>.


 -- Function: opena_binary (<file_name>)
     Returns an output stream of 8-bit unsigned bytes to append the
     file named by <file_name>.


 -- Function: read_binary_matrix (<S>, <M>)
     Reads binary 8-byte floating point numbers from the source <S>
     into the matrix <M> until <M> is full, or the source is exhausted.
     Elements of <M> are read in row-major order.

     The source <S> may be a file name or a stream.

     The byte order in elements of the source is specified by
     `assume_external_byte_order'.


 -- Function: read_binary_array (<S>, <A>)
     Reads binary 8-byte floating point numbers from the source <S>
     into the array <A> until <A> is full, or the source is exhausted.
     <A> must be an array created by `array' or `make_array'.  Elements
     of <A> are read in row-major order.

     The source <S> may be a file name or a stream.

     The byte order in elements of the source is specified by
     `assume_external_byte_order'.


 -- Function: read_binary_list
          read_binary_list (<S>)
          read_binary_list (<S>, <L>)
     `read_binary_list(<S>)' reads the entire content of the source <S>
     as a sequence of binary 8-byte floating point numbers, and returns
     it as a list.  The source <S> may be a file name or a stream.

     `read_binary_list(<S>, <L>)' reads 8-byte binary floating point
     numbers from the source <S> until the list <L> is full, or the
     source is exhausted.

     The byte order in elements of the source is specified by
     `assume_external_byte_order'.


 -- Function: write_binary_data (<X>, <D>)
     Writes the object <X>, comprising binary 8-byte IEEE 754
     floating-point numbers, to the destination <D>.  Other kinds of
     numbers are coerced to 8-byte floats.  `write_binary_data' cannot
     write non-numeric data.

     The object <X> may be a list, a nested list, a matrix, or an array
     created by `array' or `make_array'; <X> cannot be an undeclared
     array or any other type of object.  `write_binary_data' writes
     nested lists, matrices, and arrays in row-major order.

     The destination <D> may be a file name or a stream.  When the
     destination is a file name, the global variable
     `file_output_append' governs whether the output file is appended
     or truncated.  When the destination is a stream, no special action
     is taken by `write_binary_data' after all the data are written; in
     particular, the stream remains open.

     The byte order in elements of the destination is specified by
     `assume_external_byte_order'.



File: maxima.info,  Node: operatingsystem-pkg,  Next: opsubst-pkg,  Prev: numericalio-pkg,  Up: Top

74 operatingsystem
******************

* Menu:

* Introduction to operatingsystem::
* Directory operations::
* File operations::
* Environment operations::


File: maxima.info,  Node: Introduction to operatingsystem,  Next: Directory operations,  Prev: operatingsystem-pkg,  Up: operatingsystem-pkg

74.1 Introduction to operatingsystem
====================================

Package `operatingsystem' contains functions for operatingsystem-tasks,
like file system operations.


File: maxima.info,  Node: Directory operations,  Next: File operations,  Prev: Introduction to operatingsystem,  Up: operatingsystem-pkg

74.2 Directory operations
=========================

 -- Function: chdir (<dir>)
     Change to directory <dir>

 -- Function: mkdir (<dir>)
     Create directory <dir>

 -- Function: rmdir (<dir>)
     remove directory <dir>

 -- Function: getcurrentdirectory ()
     returns the current working directory.

     See also `directory'.


   Examples:

     (%i1) load("operatingsystem")$
     (%i2) mkdir("testdirectory")$
     (%i3) chdir("testdirectory")$
     (%i4) chdir("..")$
     (%i5) rmdir("testdirectory")$


File: maxima.info,  Node: File operations,  Next: Environment operations,  Prev: Directory operations,  Up: operatingsystem-pkg

74.3 File operations
====================

 -- Function: copy_file (<file1>, <file2>)
     copies file <file1> to <file2>

 -- Function: rename_file (<file1>, <file2>)
     renames file <file1> to <file2>

 -- Function: delete_file (<file1>)
     deletes file <file1>


File: maxima.info,  Node: Environment operations,  Prev: File operations,  Up: operatingsystem-pkg

74.4 Environment operations
===========================

 -- Function: getenv (<env>)
     Get the value of the environmentvariable <env>

     Example:

          (%i1) load("operatingsystem")$
          (%i2) getenv("PATH");
          (%o2) /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin



File: maxima.info,  Node: opsubst-pkg,  Next: orthopoly-pkg,  Prev: operatingsystem-pkg,  Up: Top

75 opsubst
**********

* Menu:

* Functions and Variables for opsubst::


File: maxima.info,  Node: Functions and Variables for opsubst,  Prev: opsubst-pkg,  Up: opsubst-pkg

75.1 Functions and Variables for opsubst
========================================

 -- Function: opsubst
          opsubst (<f>,<g>,<e>)
          opsubst (<g>=<f>,<e>)
          opsubst ([<g1>=<f1>,<g2>=<f2>,..., <gn>=<fn>],<e>)
     The function `opsubst' is similar to the function `subst', except
     that `opsubst' only makes substitutions for the operators in an
     expression. In general, When <f> is an operator in the expression
     <e>, substitute <g> for <f> in the expression <e>.

     To determine the operator, `opsubst' sets `inflag' to true. This
     means `opsubst' substitutes for the internal, not the displayed,
     operator in the expression.

     Examples:
          (%i1) load ("opsubst")$

          (%i2) opsubst(f,g,g(g(x)));
          (%o2)                     f(f(x))
          (%i3) opsubst(f,g,g(g));
          (%o3)                       f(g)
          (%i4) opsubst(f,g[x],g[x](z));
          (%o4)                       f(z)
          (%i5) opsubst(g[x],f, f(z));
          (%o5)                      g (z)
                                      x
          (%i6) opsubst(tan, sin, sin(sin));
          (%o6)                     tan(sin)
          (%i7) opsubst([f=g,g=h],f(x));
          (%o7)                       h(x)

     Internally, Maxima does not use the unary negation, division, or
     the subtraction operators; thus:
          (%i8) opsubst("+","-",a-b);
          (%o8)                     a - b
          (%i9) opsubst("f","-",-a);
          (%o9)                      - a
          (%i10) opsubst("^^","/",a/b);
                                       a
          (%o10)                       -
                                       b

     The internal representation of -a*b is *(-1,a,b); thus
          (%i11) opsubst("[","*", -a*b);
          (%o11)                  [- 1, a, b]

     When either operator isn't a Maxima symbol, generally some other
     function will signal an error:
          (%i12) opsubst(a+b,f, f(x));

          Improper name or value in functional position:
          b + a
           -- an error.  Quitting.  To debug this try debugmode(true);

     However, subscripted operators are allowed:
          (%i13) opsubst(g[5],f, f(x));
          (%o13)                     g (x)
                                      5

     To use this function write first `load("opsubst")'.



File: maxima.info,  Node: orthopoly-pkg,  Next: ratpow-pkg,  Prev: opsubst-pkg,  Up: Top

76 orthopoly
************

* Menu:

* Introduction to orthogonal polynomials::
* Functions and Variables for orthogonal polynomials::


File: maxima.info,  Node: Introduction to orthogonal polynomials,  Next: Functions and Variables for orthogonal polynomials,  Prev: orthopoly-pkg,  Up: orthopoly-pkg

76.1 Introduction to orthogonal polynomials
===========================================

`orthopoly' is a package for symbolic and numerical evaluation of
several kinds of orthogonal polynomials, including Chebyshev, Laguerre,
Hermite, Jacobi, Legendre, and ultraspherical (Gegenbauer) polynomials.
Additionally, `orthopoly' includes support for the spherical Bessel,
spherical Hankel, and spherical harmonic functions.

   For the most part, `orthopoly' follows the conventions of Abramowitz
and Stegun Handbook of Mathematical Functions, Chapter 22 (10th
printing, December 1972); additionally, we use Gradshteyn and Ryzhik,
Table of Integrals, Series, and Products (1980 corrected and enlarged
edition), and Eugen Merzbacher Quantum Mechanics (2nd edition, 1970).

   Barton Willis of the University of Nebraska at Kearney (UNK) wrote
the `orthopoly' package and its documentation. The package is released
under the GNU General Public License (GPL).

76.1.1 Getting Started with orthopoly
-------------------------------------

`load (orthopoly)' loads the `orthopoly' package.

   To find the third-order Legendre polynomial,

     (%i1) legendre_p (3, x);
                           3             2
                  5 (1 - x)    15 (1 - x)
     (%o1)      - ---------- + ----------- - 6 (1 - x) + 1
                      2             2

   To express this as a sum of powers of <x>, apply <ratsimp> or <rat>
to the result.

     (%i2) [ratsimp (%), rat (%)];
                             3           3
                          5 x  - 3 x  5 x  - 3 x
     (%o2)/R/            [----------, ----------]
                              2           2

   Alternatively, make the second argument to `legendre_p' (its "main"
variable) a canonical rational expression (CRE).

     (%i1) legendre_p (3, rat (x));
                                   3
                                5 x  - 3 x
     (%o1)/R/                   ----------
                                    2

   For floating point evaluation, `orthopoly' uses a running error
analysis to estimate an upper bound for the error. For example,

     (%i1) jacobi_p (150, 2, 3, 0.2);
     (%o1) interval(- 0.062017037936715, 1.533267919277521E-11)

   Intervals have the form `interval (<c>, <r>)', where <c> is the
center and <r> is the radius of the interval. Since Maxima does not
support arithmetic on intervals, in some situations, such as graphics,
you want to suppress the error and output only the center of the
interval. To do this, set the option variable
`orthopoly_returns_intervals' to `false'.

     (%i1) orthopoly_returns_intervals : false;
     (%o1)                         false
     (%i2) jacobi_p (150, 2, 3, 0.2);
     (%o2)                  - 0.062017037936715

   Refer to the section *note Floating point Evaluation:: for more
information.

   Most functions in `orthopoly' have a `gradef' property; thus

     (%i1) diff (hermite (n, x), x);
     (%o1)                     2 n H     (x)
                                    n - 1
     (%i2) diff (gen_laguerre (n, a, x), x);
                   (a)               (a)
                n L   (x) - (n + a) L     (x) unit_step(n)
                   n                 n - 1
     (%o2)      ------------------------------------------
                                    x

   The unit step function in the second example prevents an error that
would otherwise arise by evaluating with <n> equal to 0.

     (%i3) ev (%, n = 0);
     (%o3)                           0

   The `gradef' property only applies to the "main" variable;
derivatives with respect other arguments usually result in an error
message; for example

     (%i1) diff (hermite (n, x), x);
     (%o1)                     2 n H     (x)
                                    n - 1
     (%i2) diff (hermite (n, x), n);

     Maxima doesn't know the derivative of hermite with respect the first
     argument
      -- an error.  Quitting.  To debug this try debugmode(true);

   Generally, functions in `orthopoly' map over lists and matrices. For
the mapping to fully evaluate, the option variables `doallmxops' and
`listarith' must both be `true' (the defaults).  To illustrate the
mapping over matrices, consider

     (%i1) hermite (2, x);
                                          2
     (%o1)                    - 2 (1 - 2 x )
     (%i2) m : matrix ([0, x], [y, 0]);
                                 [ 0  x ]
     (%o2)                       [      ]
                                 [ y  0 ]
     (%i3) hermite (2, m);
                    [                             2  ]
                    [      - 2        - 2 (1 - 2 x ) ]
     (%o3)          [                                ]
                    [             2                  ]
                    [ - 2 (1 - 2 y )       - 2       ]

   In the second example, the `i, j' element of the value is `hermite
(2, m[i,j])'; this is not the same as computing `-2 + 4 m . m', as seen
in the next example.

     (%i4) -2 * matrix ([1, 0], [0, 1]) + 4 * m . m;
                         [ 4 x y - 2      0     ]
     (%o4)               [                      ]
                         [     0      4 x y - 2 ]

   If you evaluate a function at a point outside its domain, generally
`orthopoly' returns the function unevaluated. For example,

     (%i1) legendre_p (2/3, x);
     (%o1)                        P   (x)
                                   2/3

   `orthopoly' supports translation into TeX; it also does
two-dimensional output on a terminal.

     (%i1) spherical_harmonic (l, m, theta, phi);
                               m
     (%o1)                    Y (theta, phi)
                               l
     (%i2) tex (%);
     $$Y_{l}^{m}\left(\vartheta,\varphi\right)$$
     (%o2)                         false
     (%i3) jacobi_p (n, a, a - b, x/2);
                               (a, a - b) x
     (%o3)                    P          (-)
                               n          2
     (%i4) tex (%);
     $$P_{n}^{\left(a,a-b\right)}\left({{x}\over{2}}\right)$$
     (%o4)                         false

76.1.2 Limitations
------------------

When an expression involves several orthogonal polynomials with
symbolic orders, it's possible that the expression actually vanishes,
yet Maxima is unable to simplify it to zero. If you divide by such a
quantity, you'll be in trouble. For example, the following expression
vanishes for integers <n> greater than 1, yet Maxima is unable to
simplify it to zero.

     (%i1) (2*n - 1) * legendre_p (n - 1, x) * x - n * legendre_p (n, x)
           + (1 - n) * legendre_p (n - 2, x);
     (%o1)  (2 n - 1) P     (x) x - n P (x) + (1 - n) P     (x)
                       n - 1           n               n - 2

   For a specific <n>, we can reduce the expression to zero.

     (%i2) ev (% ,n = 10, ratsimp);
     (%o2)                           0

   Generally, the polynomial form of an orthogonal polynomial is
ill-suited for floating point evaluation. Here's an example.

     (%i1) p : jacobi_p (100, 2, 3, x)$

     (%i2) subst (0.2, x, p);
     (%o2)                3.4442767023833592E+35
     (%i3) jacobi_p (100, 2, 3, 0.2);
     (%o3)  interval(0.18413609135169, 6.8990300925815987E-12)
     (%i4) float(jacobi_p (100, 2, 3, 2/10));
     (%o4)                   0.18413609135169

   The true value is about 0.184; this calculation suffers from extreme
subtractive cancellation error. Expanding the polynomial and then
evaluating, gives a better result.
     (%i5) p : expand(p)$
     (%i6) subst (0.2, x, p);
     (%o6) 0.18413609766122982

   This isn't a general rule; expanding the polynomial does not always
result in an expression that is better suited for numerical evaluation.
By far, the best way to do numerical evaluation is to make one or more
of the function arguments floating point numbers. By doing that,
specialized floating point algorithms are used for evaluation.

   Maxima's `float' function is somewhat indiscriminate; if you apply
`float' to an expression involving an orthogonal polynomial with a
symbolic degree or order parameter, these parameters may be converted
into floats; after that, the expression will not evaluate fully.
Consider

     (%i1) assoc_legendre_p (n, 1, x);
                                    1
     (%o1)                         P (x)
                                    n
     (%i2) float (%);
                                   1.0
     (%o2)                        P   (x)
                                   n
     (%i3) ev (%, n=2, x=0.9);
                                  1.0
     (%o3)                       P   (0.9)
                                  2

   The expression in (%o3) will not evaluate to a float; `orthopoly'
doesn't recognize floating point values where it requires an integer.
Similarly, numerical evaluation of the `pochhammer' function for orders
that exceed `pochhammer_max_index' can be troublesome; consider

     (%i1) x :  pochhammer (1, 10), pochhammer_max_index : 5;
     (%o1)                         (1)
                                      10

   Applying `float' doesn't evaluate <x> to a float

     (%i2) float (x);
     (%o2)                       (1.0)
                                      10.0

   To evaluate <x> to a float, you'll need to bind
`pochhammer_max_index' to 11 or greater and apply `float' to <x>.

     (%i3) float (x), pochhammer_max_index : 11;
     (%o3)                       3628800.0

   The default value of `pochhammer_max_index' is 100; change its value
after loading `orthopoly'.

   Finally, be aware that reference books vary on the definitions of the
orthogonal polynomials; we've generally used the conventions of
Abramowitz and Stegun.

   Before you suspect a bug in orthopoly, check some special cases to
determine if your definitions match those used by `orthopoly'.
Definitions often differ by a normalization; occasionally, authors use
"shifted" versions of the functions that makes the family orthogonal on
an interval other than (-1, 1). To define, for example, a Legendre
polynomial that is orthogonal on (0, 1), define

     (%i1) shifted_legendre_p (n, x) := legendre_p (n, 2*x - 1)$

     (%i2) shifted_legendre_p (2, rat (x));
                                 2
     (%o2)/R/                 6 x  - 6 x + 1
     (%i3) legendre_p (2, rat (x));
                                    2
                                 3 x  - 1
     (%o3)/R/                    --------
                                    2

76.1.3 Floating point Evaluation
--------------------------------

Most functions in `orthopoly' use a running error analysis to estimate
the error in floating point evaluation; the exceptions are the
spherical Bessel functions and the associated Legendre polynomials of
the second kind. For numerical evaluation, the spherical Bessel
functions call SLATEC functions. No specialized method is used for
numerical evaluation of the associated Legendre polynomials of the
second kind.

   The running error analysis ignores errors that are second or higher
order in the machine epsilon (also known as unit roundoff). It also
ignores a few other errors. It's possible (although unlikely) that the
actual error exceeds the estimate.

   Intervals have the form `interval (<c>, <r>)', where <c> is the
center of the interval and <r> is its radius. The center of an interval
can be a complex number, and the radius is always a positive real
number.

   Here is an example.

     (%i1) fpprec : 50$

     (%i2) y0 : jacobi_p (100, 2, 3, 0.2);
     (%o2) interval(0.1841360913516871, 6.8990300925815987E-12)
     (%i3) y1 : bfloat (jacobi_p (100, 2, 3, 1/5));
     (%o3) 1.8413609135168563091370224958913493690868904463668b-1

   Let's test that the actual error is smaller than the error estimate

     (%i4) is (abs (part (y0, 1) - y1) < part (y0, 2));
     (%o4)                         true

   Indeed, for this example the error estimate is an upper bound for the
true error.

   Maxima does not support arithmetic on intervals.

     (%i1) legendre_p (7, 0.1) + legendre_p (8, 0.1);
     (%o1) interval(0.18032072148437508, 3.1477135311021797E-15)
             + interval(- 0.19949294375000004, 3.3769353084291579E-15)

   A user could define arithmetic operators that do interval math. To
define interval addition, we can define

     (%i1) infix ("@+")$

     (%i2) "@+"(x,y) := interval (part (x, 1) + part (y, 1), part (x, 2)
           + part (y, 2))$

     (%i3) legendre_p (7, 0.1) @+ legendre_p (8, 0.1);
     (%o3) interval(- 0.019172222265624955, 6.5246488395313372E-15)

   The special floating point routines get called when the arguments
are complex.  For example,

     (%i1) legendre_p (10, 2 + 3.0*%i);
     (%o1) interval(- 3.876378825E+7 %i - 6.0787748E+7,
                                                1.2089173052721777E-6)

   Let's compare this to the true value.

     (%i1) float (expand (legendre_p (10, 2 + 3*%i)));
     (%o1)          - 3.876378825E+7 %i - 6.0787748E+7

   Additionally, when the arguments are big floats, the special
floating point routines get called; however, the big floats are
converted into double floats and the final result is a double.

     (%i1) ultraspherical (150, 0.5b0, 0.9b0);
     (%o1) interval(- 0.043009481257265, 3.3750051301228864E-14)

76.1.4 Graphics and `orthopoly'
-------------------------------

To plot expressions that involve the orthogonal polynomials, you must
do two things:
  1. Set the option variable `orthopoly_returns_intervals' to `false',

  2. Quote any calls to `orthopoly' functions.
        If function calls aren't quoted, Maxima evaluates them to
polynomials before plotting; consequently, the specialized floating
point code doesn't get called.  Here is an example of how to plot an
expression that involves a Legendre polynomial.

     (%i1) plot2d ('(legendre_p (5, x)), [x, 0, 1]),
                             orthopoly_returns_intervals : false;
     (%o1)

   The entire expression `legendre_p (5, x)' is quoted; this is
different than just quoting the function name using `'legendre_p (5,
<x>)'.

76.1.5 Miscellaneous Functions
------------------------------

The `orthopoly' package defines the Pochhammer symbol and a unit step
function. `orthopoly' uses the Kronecker delta function and the unit
step function in `gradef' statements.

   To convert Pochhammer symbols into quotients of gamma functions, use
`makegamma'.

     (%i1) makegamma (pochhammer (x, n));
                               gamma(x + n)
     (%o1)                     ------------
                                 gamma(x)
     (%i2) makegamma (pochhammer (1/2, 1/2));
                                     1
     (%o2)                       ---------
                                 sqrt(%pi)

   Derivatives of the Pochhammer symbol are given in terms of the `psi'
function.

     (%i1) diff (pochhammer (x, n), x);
     (%o1)             (x)  (psi (x + n) - psi (x))
                          n     0             0
     (%i2) diff (pochhammer (x, n), n);
     (%o2)                   (x)  psi (x + n)
                                n    0

   You need to be careful with the expression in (%o1); the difference
of the `psi' functions has polynomials when `<x> = -1, -2, .., -<n>'.
These polynomials cancel with factors in `pochhammer (<x>, <n>)' making
the derivative a degree `<n> - 1' polynomial when <n> is a positive
integer.

   The Pochhammer symbol is defined for negative orders through its
representation as a quotient of gamma functions. Consider

     (%i1) q : makegamma (pochhammer (x, n));
                               gamma(x + n)
     (%o1)                     ------------
                                 gamma(x)
     (%i2) sublis ([x=11/3, n= -6], q);
                                    729
     (%o2)                        - ----
                                    2240

   Alternatively, we can get this result directly.

     (%i1) pochhammer (11/3, -6);
                                    729
     (%o1)                        - ----
                                    2240

   The unit step function is left-continuous; thus

     (%i1) [unit_step (-1/10), unit_step (0), unit_step (1/10)];
     (%o1)                       [0, 0, 1]

   If you need a unit step function that is neither left or right
continuous at zero, define your own using `signum'; for example,

     (%i1) xunit_step (x) := (1 + signum (x))/2$

     (%i2) [xunit_step (-1/10), xunit_step (0), xunit_step (1/10)];
                                     1
     (%o2)                       [0, -, 1]
                                     2

   Do not redefine `unit_step' itself; some code in `orthopoly'
requires that the unit step function be left-continuous.

76.1.6 Algorithms
-----------------

Generally, `orthopoly' does symbolic evaluation by using a hypergeometic
representation of the orthogonal polynomials. The hypergeometic
functions are evaluated using the (undocumented) functions `hypergeo11'
and `hypergeo21'. The exceptions are the half-integer Bessel functions
and the associated Legendre function of the second kind. The
half-integer Bessel functions are evaluated using an explicit
representation, and the associated Legendre function of the second kind
is evaluated using recursion.

   For floating point evaluation, we again convert most functions into
a hypergeometic form; we evaluate the hypergeometic functions using
forward recursion. Again, the exceptions are the half-integer Bessel
functions and the associated Legendre function of the second kind.
Numerically, the half-integer Bessel functions are evaluated using the
SLATEC code.


File: maxima.info,  Node: Functions and Variables for orthogonal polynomials,  Prev: Introduction to orthogonal polynomials,  Up: orthopoly-pkg

76.2 Functions and Variables for orthogonal polynomials
=======================================================

 -- Function: assoc_legendre_p (<n>, <m>, <x>)
     The associated Legendre function of the first kind of degree <n>
     and order <m>.

     Reference: Abramowitz and Stegun, equations 22.5.37, page 779,
     8.6.6 (second equation), page 334, and 8.2.5, page 333.


 -- Function: assoc_legendre_q (<n>, <m>, <x>)
     The associated Legendre function of the second kind of degree <n>
     and order <m>.

     Reference: Abramowitz and Stegun, equation 8.5.3 and 8.1.8.


 -- Function: chebyshev_t (<n>, <x>)
     The Chebyshev polynomial of the first kind of degree <n>.

     Reference: Abramowitz and Stegun, equation 22.5.47, page 779.


 -- Function: chebyshev_u (<n>, <x>)
     The Chebyshev polynomial of the second kind of degree <n>.

     Reference: Abramowitz and Stegun, equation 22.5.48, page 779.


 -- Function: gen_laguerre (<n>, <a>, <x>)
     The generalized Laguerre polynomial of degree <n>.

     Reference: Abramowitz and Stegun, equation 22.5.54, page 780.


 -- Function: hermite (<n>, <x>)
     The Hermite polynomial of degree <n>.

     Reference: Abramowitz and Stegun, equation 22.5.55, page 780.


 -- Function: intervalp (<e>)
     Return `true' if the input is an interval and return false if it
     isn't.


 -- Function: jacobi_p (<n>, <a>, <b>, <x>)
     The Jacobi polynomial.

     The Jacobi polynomials are actually defined for all <a> and <b>;
     however, the Jacobi polynomial weight `(1 - <x>)^<a> (1 +
     <x>)^<b>' isn't integrable for `<a> <= -1' or `<b> <= -1'.

     Reference: Abramowitz and Stegun, equation 22.5.42, page 779.


 -- Function: laguerre (<n>, <x>)
     The Laguerre polynomial of degree <n>.

     Reference: Abramowitz and Stegun, equations 22.5.16 and 22.5.54,
     page 780.


 -- Function: legendre_p (<n>, <x>)
     The Legendre polynomial of the first kind of degree <n>.

     Reference: Abramowitz and Stegun, equations 22.5.50 and 22.5.51,
     page 779.


 -- Function: legendre_q (<n>, <x>)
     The Legendre function of the second kind of degree <n>.

     Reference: Abramowitz and Stegun, equations 8.5.3 and 8.1.8.


 -- Function: orthopoly_recur (<f>, <args>)
     Returns a recursion relation for the orthogonal function family
     <f> with arguments <args>. The recursion is with respect to the
     polynomial degree.

          (%i1) orthopoly_recur (legendre_p, [n, x]);
                              (2 n + 1) P (x) x - n P     (x)
                                         n           n - 1
          (%o1)   P     (x) = -------------------------------
                   n + 1                   n + 1

     The second argument to `orthopoly_recur' must be a list with the
     correct number of arguments for the function <f>; if it isn't,
     Maxima signals an error.

          (%i1) orthopoly_recur (jacobi_p, [n, x]);

          Function jacobi_p needs 4 arguments, instead it received 2
           -- an error.  Quitting.  To debug this try debugmode(true);

     Additionally, when <f> isn't the name of one of the families of
     orthogonal polynomials, an error is signalled.

          (%i1) orthopoly_recur (foo, [n, x]);

          A recursion relation for foo isn't known to Maxima
           -- an error.  Quitting.  To debug this try debugmode(true);


 -- Variable: orthopoly_returns_intervals
     Default value: `true'

     When `orthopoly_returns_intervals' is `true', floating point
     results are returned in the form `interval (<c>, <r>)', where <c>
     is the center of an interval and <r> is its radius. The center can
     be a complex number; in that case, the interval is a disk in the
     complex plane.


 -- Function: orthopoly_weight (<f>, <args>)
     Returns a three element list; the first element is the formula of
     the weight for the orthogonal polynomial family <f> with arguments
     given by the list <args>; the second and third elements give the
     lower and upper endpoints of the interval of orthogonality. For
     example,

          (%i1) w : orthopoly_weight (hermite, [n, x]);
                                      2
                                   - x
          (%o1)                 [%e    , - inf, inf]
          (%i2) integrate(w[1]*hermite(3, x)*hermite(2, x), x, w[2], w[3]);
          (%o2)                           0

     The main variable of <f> must be a symbol; if it isn't, Maxima
     signals an error.


 -- Function: pochhammer (<x>, <n>)
     The Pochhammer symbol. For nonnegative integers <n> with `<n> <=
     pochhammer_max_index', the expression `pochhammer (<x>, <n>)'
     evaluates to the product `<x> (<x> + 1) (<x> + 2) ... (<x> + n -
     1)' when `<n> > 0' and to 1 when `<n> = 0'. For negative <n>,
     `pochhammer (<x>, <n>)' is defined as `(-1)^<n> / pochhammer (1 -
     <x>, -<n>)'.  Thus

          (%i1) pochhammer (x, 3);
          (%o1)                   x (x + 1) (x + 2)
          (%i2) pochhammer (x, -3);
                                           1
          (%o2)               - -----------------------
                                (1 - x) (2 - x) (3 - x)

     To convert a Pochhammer symbol into a quotient of gamma functions,
     (see Abramowitz and Stegun, equation 6.1.22) use `makegamma'; for
     example

          (%i1) makegamma (pochhammer (x, n));
                                    gamma(x + n)
          (%o1)                     ------------
                                      gamma(x)

     When <n> exceeds `pochhammer_max_index' or when <n> is symbolic,
     `pochhammer' returns a noun form.

          (%i1) pochhammer (x, n);
          (%o1)                         (x)
                                           n


 -- Variable: pochhammer_max_index
     Default value: 100

     `pochhammer (<n>, <x>)' expands to a product if and only if `<n>
     <= pochhammer_max_index'.

     Examples:

          (%i1) pochhammer (x, 3), pochhammer_max_index : 3;
          (%o1)                   x (x + 1) (x + 2)
          (%i2) pochhammer (x, 4), pochhammer_max_index : 3;
          (%o2)                         (x)
                                           4

     Reference: Abramowitz and Stegun, equation 6.1.16, page 256.


 -- Function: spherical_bessel_j (<n>, <x>)
     The spherical Bessel function of the first kind.

     Reference: Abramowitz and Stegun, equations 10.1.8, page 437 and
     10.1.15, page 439.


 -- Function: spherical_bessel_y (<n>, <x>)
     The spherical Bessel function of the second kind.

     Reference: Abramowitz and Stegun, equations 10.1.9, page 437 and
     10.1.15, page 439.


 -- Function: spherical_hankel1 (<n>, <x>)
     The spherical Hankel function of the first kind.

     Reference: Abramowitz and Stegun, equation 10.1.36, page 439.


 -- Function: spherical_hankel2 (<n>, <x>)
     The spherical Hankel function of the second kind.

     Reference: Abramowitz and Stegun, equation 10.1.17, page 439.


 -- Function: spherical_harmonic (<n>, <m>, <x>, <y>)
     The spherical harmonic function.

     Reference: Merzbacher 9.64.


 -- Function: unit_step (<x>)
     The left-continuous unit step function; thus `unit_step (<x>)'
     vanishes for `<x> <= 0' and equals 1 for `<x> > 0'.

     If you want a unit step function that takes on the value 1/2 at
     zero, use `(1 + signum (<x>))/2'.


 -- Function: ultraspherical (<n>, <a>, <x>)
     The ultraspherical polynomial (also known as the Gegenbauer
     polynomial).

     Reference: Abramowitz and Stegun, equation 22.5.46, page 779.



File: maxima.info,  Node: ratpow-pkg,  Next: romberg-pkg,  Prev: orthopoly-pkg,  Up: Top

77 ratpow
*********

The package `ratpow' provides functions that find the exponents of the
denominator in a CRE polynomial. If the exponents in the denominator
are needed instead `ratdenom' can be used to extract this denominator
first. Returned coefficients are in CRE form except for numbers.

   In order to get a list of vars in a CRE polynomial `showratvars' can
be used.

   For information about CREs see also `rat', `ratdisrep' and
`showratvars'.

* Menu:

* Functions and Variables for ratpow::


File: maxima.info,  Node: Functions and Variables for ratpow,  Prev: Top,  Up: Top

77.1 Functions and Variables for ratpow
=======================================

 -- Function: ratp_hipow (<expr>, <x>)
     Finds the highest power of the main variable in `ratnumer(expr)'

          (%i1) load("ratpow")$
          (%i2) ratp_hipow( x^(5/2) + x^2 , x);
          (%o2)                           2
          (%i3) ratp_hipow( x^(5/2) + x^2 , sqrt(x));
          (%o3)                           5


 -- Function: ratp_lopow (<expr>, <x>)
     Finds the lowest power of the main variable in `ratnumer(expr)'

          (%i1) load("ratpow")$
          (%i2) ratp_lopow( x^5 + x^2 , x);
          (%o2)                           2

     The following example will return 0 since `1' equals `x^0':
          (%i1) load("ratpow")$
          (%i2) ratp_lopow( x^5 + x^2 + 1, x);
          (%o2)                           0

     The CRE form of the following equation contains `sqrt(x)' and `x'.
     Since they are interpreted as independent variables `ratp_lopow'
     returns `0' in this case:
          (%i1) load("ratpow")$
          (%i2) g:sqrt(x)^5 + sqrt(x)^2;
                                       5/2
          (%o2)                       x    + x
          (%i3) showratvars(g);
                                        1/2
          (%o3)                       [x   , x]
          (%i4) ratp_lopow( g, x);
          (%o4)                           0
          (%i5) ratp_lopow( g, sqrt(x));
          (%o5)                           0


 -- Function: ratp_coeffs (<expr>, <x>)
     Generates a list of powers and coefficients of the main variable
     `ratnumer(expr)'.
          (%i1) load("ratpow")$
          (%i2) ratp_coeffs( 4*x^3 + x + sqrt(x), x);
          (%o2)/R/         [[3, 4], [1, 1], [0, sqrt(x)]]


 -- Function: ratp_dense_coeffs (<expr>, <x>)
     Generates a list of coefficients in `ratnumer(expr)'; returned
     coefficients are in CRE form except for numbers.

          (%i1) load("ratpow")$
          (%i2) ratp_dense_coeffs( 4*x^3 + x + sqrt(x), x);
          (%o2)/R/               [4, 0, 1, sqrt(x)]



File: maxima.info,  Node: romberg-pkg,  Next: simplex-pkg,  Prev: ratpow-pkg,  Up: Top

78 romberg
**********

* Menu:

* Functions and Variables for romberg::


File: maxima.info,  Node: Functions and Variables for romberg,  Prev: Top,  Up: Top

78.1 Functions and Variables for romberg
========================================

 -- Function: romberg
          romberg (<expr>, <x>, <a>, <b>)
          romberg (<F>, <a>, <b>)
     Computes a numerical integration by Romberg's method.

     `romberg(<expr>, <x>, <a>, <b>)' returns an estimate of the
     integral `integrate(<expr>, <x>, <a>, <b>)'.  <expr> must be an
     expression which evaluates to a floating point value when <x> is
     bound to a floating point value.

     `romberg(<F>, <a>, <b>)' returns an estimate of the integral
     `integrate(<F>(x), x, <a>, <b>)' where `x' represents the unnamed,
     sole argument of <F>; the actual argument is not named `x'.  <F>
     must be a Maxima or Lisp function which returns a floating point
     value when the argument is a floating point value.  <F> may name a
     translated or compiled Maxima function.

     The accuracy of `romberg' is governed by the global variables
     `rombergabs' and `rombergtol'.  `romberg' terminates successfully
     when the absolute difference between successive approximations is
     less than `rombergabs', or the relative difference in successive
     approximations is less than `rombergtol'.  Thus when `rombergabs'
     is 0.0 (the default) only the relative error test has any effect
     on `romberg'.

     `romberg' halves the stepsize at most `rombergit' times before it
     gives up; the maximum number of function evaluations is therefore
     `2^rombergit'.  If the error criterion established by `rombergabs'
     and `rombergtol' is not satisfied, `romberg' prints an error
     message.  `romberg' always makes at least `rombergmin' iterations;
     this is a heuristic intended to prevent spurious termination when
     the integrand is oscillatory.

     `romberg' repeatedly evaluates the integrand after binding the
     variable of integration to a specific value (and not before).
     This evaluation policy makes it possible to nest calls to
     `romberg', to compute multidimensional integrals.  However, the
     error calculations do not take the errors of nested integrations
     into account, so errors may be underestimated.  Also, methods
     devised especially for multidimensional problems may yield the
     same accuracy with fewer function evaluations.

     `load(romberg)' loads this function.

     See also `QUADPACK', a collection of numerical integration
     functions.

     Examples:

     A 1-dimensional integration.

          (%i1) load (romberg);
          (%o1)    /usr/share/maxima/5.11.0/share/numeric/romberg.lisp
          (%i2) f(x) := 1/((x - 1)^2 + 1/100) + 1/((x - 2)^2 + 1/1000)
                        + 1/((x - 3)^2 + 1/200);
                              1                 1                1
          (%o2) f(x) := -------------- + --------------- + --------------
                               2    1           2    1            2    1
                        (x - 1)  + ---   (x - 2)  + ----   (x - 3)  + ---
                                   100              1000              200
          (%i3) rombergtol : 1e-6;
          (%o3)                 9.9999999999999995E-7
          (%i4) rombergit : 15;
          (%o4)                          15
          (%i5) estimate : romberg (f(x), x, -5, 5);
          (%o5)                   173.6730736617464
          (%i6) exact : integrate (f(x), x, -5, 5);
          (%o6) 10 sqrt(10) atan(70 sqrt(10))
           + 10 sqrt(10) atan(30 sqrt(10)) + 10 sqrt(2) atan(80 sqrt(2))
           + 10 sqrt(2) atan(20 sqrt(2)) + 10 atan(60) + 10 atan(40)
          (%i7) abs (estimate - exact) / exact, numer;
          (%o7)                7.5527060865060088E-11

     A 2-dimensional integration, implemented by nested calls to
     `romberg'.

          (%i1) load (romberg);
          (%o1)    /usr/share/maxima/5.11.0/share/numeric/romberg.lisp
          (%i2) g(x, y) := x*y / (x + y);
                                              x y
          (%o2)                   g(x, y) := -----
                                             x + y
          (%i3) rombergtol : 1e-6;
          (%o3)                 9.9999999999999995E-7
          (%i4) estimate : romberg (romberg (g(x, y), y, 0, x/2), x, 1, 3);
          (%o4)                   0.81930239628356
          (%i5) assume (x > 0);
          (%o5)                        [x > 0]
          (%i6) integrate (integrate (g(x, y), y, 0, x/2), x, 1, 3);
                                                    3
                                              2 log(-) - 1
                              9                     2        9
          (%o6)       - 9 log(-) + 9 log(3) + ------------ + -
                              2                    6         2
          (%i7) exact : radcan (%);
                              26 log(3) - 26 log(2) - 13
          (%o7)             - --------------------------
                                          3
          (%i8) abs (estimate - exact) / exact, numer;
          (%o8)                1.3711979871851024E-10


 -- Option variable: rombergabs
     Default value: 0.0

     The accuracy of `romberg' is governed by the global variables
     `rombergabs' and `rombergtol'.  `romberg' terminates successfully
     when the absolute difference between successive approximations is
     less than `rombergabs', or the relative difference in successive
     approximations is less than `rombergtol'.  Thus when `rombergabs'
     is 0.0 (the default) only the relative error test has any effect
     on `romberg'.

     See also `rombergit' and `rombergmin'.


 -- Option variable: rombergit
     Default value: 11

     `romberg' halves the stepsize at most `rombergit' times before it
     gives up; the maximum number of function evaluations is therefore
     `2^rombergit'.  `romberg' always makes at least `rombergmin'
     iterations; this is a heuristic intended to prevent spurious
     termination when the integrand is oscillatory.

     See also `rombergabs' and `rombergtol'.


 -- Option variable: rombergmin
     Default value: 0

     `romberg' always makes at least `rombergmin' iterations; this is a
     heuristic intended to prevent spurious termination when the
     integrand is oscillatory.

     See also `rombergit', `rombergabs', and `rombergtol'.


 -- Option variable: rombergtol
     Default value: 1e-4

     The accuracy of `romberg' is governed by the global variables
     `rombergabs' and `rombergtol'.  `romberg' terminates successfully
     when the absolute difference between successive approximations is
     less than `rombergabs', or the relative difference in successive
     approximations is less than `rombergtol'.  Thus when `rombergabs'
     is 0.0 (the default) only the relative error test has any effect
     on `romberg'.

     See also `rombergit' and `rombergmin'.



File: maxima.info,  Node: simplex-pkg,  Next: simplification-pkg,  Prev: romberg-pkg,  Up: Top

79 simplex
**********

* Menu:

* Introduction to simplex::
* Functions and Variables for simplex::


File: maxima.info,  Node: Introduction to simplex,  Next: Functions and Variables for simplex,  Prev: simplex-pkg,  Up: simplex-pkg

79.1 Introduction to simplex
============================

`simplex' is a package for linear optimization using the simplex
algorithm.

   Example:

     (%i1) load("simplex")$
     (%i2) minimize_lp(x+y, [3*x+2*y>2, x+4*y>3]);
                       9        7       1
     (%o2)            [--, [y = --, x = -]]
                       10       10      5

79.1.1 Tests for simplex
------------------------

There are some tests in the directory `share/simplex/Tests'.

79.1.1.1 klee_minty
...................

The function `klee_minty' produces input for `linear_program', for which
exponential time for solving is required without scaling.

   Example:

     load(klee_minty)$
     apply(linear_program, klee_minty(6));

   A better approach:

     epsilon_sx : 0$
     scale_sx : true$
     apply(linear_program, klee_minty(10));

79.1.1.2 NETLIB
...............

Some smaller problems from netlib (`http://www.netlib.org/lp/data/')
test suite are converted to a format, readable by Maxima. Problems are
`adlittle', `afiro', `kb2' and `sc50a'. Each problem has three input
files in CSV format for matrix <A> and vectors <b> and <c>.

   Example:

     A : read_matrix("adlittle_A.csv", 'csv)$
     b : read_list("adlittle_b.csv", 'csv)$
     c : read_list("adlittle_c.csv", 'csv)$
     linear_program(A, b, c)$
     %[2]
     => 225494.963126615

   Results:

     PROBLEM        MINIMUM                SCALING
     adlittle       225494.963126615       no
     afiro          - 464.7531428571429    no
     kb2            - 1749.900129055996    yes
     sc50a          - 64.5750770585645     no


File: maxima.info,  Node: Functions and Variables for simplex,  Prev: Introduction to simplex,  Up: simplex-pkg

79.2 Functions and Variables for simplex
========================================

 -- Option variable: epsilon_lp
     Default value: `10^-8'

     Epsilon used for numerical computations in `linear_program'.

     See also: `linear_program'.


 -- Function: linear_program (<A>, <b>, <c>)
     `linear_program' is an implementation of the simplex algorithm.
     `linear_program(A, b, c)' computes a vector <x> for which `c.x' is
     minimum possible among vectors for which `A.x = b' and `x >= 0'.
     Argument <A> is a matrix and arguments <b> and <c> are lists.

     `linear_program' returns a list which contains the minimizing
     vector <x> and the minimum value `c.x'. If the problem is not
     bounded, it returns "Problem not bounded!" and if the problem is
     not feasible, it returns "Problem not feasible!".

     To use this function first load the `simplex' package with
     `load(simplex);'.

     Example:

          (%i2) A: matrix([1,1,-1,0], [2,-3,0,-1], [4,-5,0,0])$
          (%i3) b: [1,1,6]$
          (%i4) c: [1,-2,0,0]$
          (%i5) linear_program(A, b, c);
                             13     19        3
          (%o5)            [[--, 4, --, 0], - -]
                             2      2         2

     See also: `minimize_lp', `scale_lp', and `epsilon_lp'.


 -- Function: maximize_lp (<obj>, <cond>, [<pos>])
     Maximizes linear objective function <obj> subject to some linear
     constraints <cond>. See `minimize_lp' for detailed description of
     arguments and return value.

     See also: `minimize_lp'.


 -- Function: minimize_lp (<obj>, <cond>, [<pos>])
     Minimizes a linear objective function <obj> subject to some linear
     constraints <cond>. <cond> a list of linear equations or
     inequalities. In strict inequalities `>' is replaced by `>=' and
     `<' by `<='. The optional argument <pos> is a list of decision
     variables which are assumed to be positive.

     If the minimum exists, `minimize_lp' returns a list which contains
     the minimum value of the objective function and a list of decision
     variable values for which the minimum is attained. If the problem
     is not bounded, `minimize_lp' returns "Problem not bounded!" and
     if the problem is not feasible, it returns "Problem not feasible!".

     The decision variables are not assumed to be nonegative by
     default. If all decision variables are nonegative, set
     `nonegative_lp' to `true'.  If only some of decision variables are
     positive, list them in the optional argument <pos> (note that this
     is more efficient than adding constraints).

     `minimize_lp' uses the simplex algorithm which is implemented in
     maxima `linear_program' function.

     To use this function first load the `simplex' package with
     `load(simplex);'.

     Examples:

          (%i1) minimize_lp(x+y, [3*x+y=0, x+2*y>2]);
                                4       6        2
          (%o1)                [-, [y = -, x = - -]]
                                5       5        5
          (%i2) minimize_lp(x+y, [3*x+y>0, x+2*y>2]), nonegative_lp=true;
          (%o2)                [1, [y = 1, x = 0]]
          (%i3) minimize_lp(x+y, [3*x+y=0, x+2*y>2]), nonegative_lp=true;
          (%o3)                Problem not feasible!
          (%i4) minimize_lp(x+y, [3*x+y>0]);
          (%o4)                Problem not bounded!

     See also: `maximize_lp', `nonegative_lp', `epsilon_lp'.


 -- Option variable: nonegative_lp
     Default value: `false'

     If `nonegative_lp' is true all decision variables to `minimize_lp'
     and `maximize_lp' are assumed to be positive.

     See also: `minimize_lp'.


 -- Option variable: scale_lp
     Default value: `false'

     When `scale_lp' is `true', `linear_program' scales its input so
     that the maximum absolute value in each row or column is 1.


 -- Variable: pivot_count_sx
     After `linear_program' returns, `pivot_count_sx' is the number of
     pivots in last computation.


 -- Variable: pivot_max_sx
     `pivot_max_sx' is the maximum number of pivots allowed by
     `linear_program'.



File: maxima.info,  Node: simplification-pkg,  Next: solve_rec-pkg,  Prev: simplex-pkg,  Up: Top

80 simplification
*****************

* Menu:

* Introduction to simplification::
* Package absimp::
* Package facexp::
* Package functs::
* Package ineq::
* Package rducon::
* Package scifac::
* Package sqdnst::


File: maxima.info,  Node: Introduction to simplification,  Next: Package absimp,  Prev: simplification-pkg,  Up: simplification-pkg

80.1 Introduction to simplification
===================================

The directory `maxima/share/simplification' contains several scripts
which implement simplification rules and functions, and also some
functions not related to simplification.


File: maxima.info,  Node: Package absimp,  Next: Package facexp,  Prev: Introduction to simplification,  Up: simplification-pkg

80.2 Package absimp
===================

The `absimp' package contains pattern-matching rules that extend the
built-in simplification rules for the `abs' and `signum' functions.
`absimp' respects relations established with the built-in `assume'
function and by declarations such as  `modedeclare (m, even, n, odd)'
for even or odd integers.

   `absimp' defines `unitramp' and `unitstep' functions in terms of
`abs' and `signum'.

   `load (absimp)' loads this package.  `demo (absimp)' shows a
demonstration of this package.

   Examples:

     (%i1) load (absimp)$
     (%i2) (abs (x))^2;
                                            2
     (%o2)                                 x
     (%i3) diff (abs (x), x);
                                           x
     (%o3)                               ------
                                         abs(x)
     (%i4) cosh (abs (x));
     (%o4)                               cosh(x)


File: maxima.info,  Node: Package facexp,  Next: Package functs,  Prev: Package absimp,  Up: simplification-pkg

80.3 Package facexp
===================

The `facexp' package contains several related  functions that provide
the user with the ability to structure expressions by controlled
expansion.   This capability  is especially  useful when  the expression
contains variables that have physical meaning, because it is  often true
that the most economical form  of such an expression can be  obtained by
fully expanding the expression with respect to those variables, and then
factoring their coefficients.  While it is  true that this  procedure is
not difficult to carry out using standard Maxima  functions, additional
fine-tuning may also  be desirable, and  these finishing touches  can be
more  difficult to  apply.

   The  function `facsum'  and its  related forms provide a convenient
means for controlling the structure  of expressions in this way.
Another function, `collectterms', can be used to add  two or more
expressions that have already been simplified to this form, without
resimplifying the whole expression again.  This function may be useful
when the expressions are very large.

   `load (facexp)' loads this package.  `demo (facexp)' shows a
demonstration of this package.

 -- Function: facsum (<expr>, <arg_1>, ..., <arg_n>)
     Returns  a form  of <expr>  which depends  on the arguments
     <arg_1>, ..., <arg_n>.  The arguments can be any form suitable for
     `ratvars', or they can be lists  of such  forms.  If  the
     arguments  are not  lists, then  the form returned is  fully
     expanded with respect  to the arguments,  and the coefficients of
     the arguments are factored.  These  coefficients are free of the
     arguments, except perhaps in a non-rational sense.

     If any of the arguments are  lists, then all such lists are
     combined into  a  single  list,   and  instead  of  calling
     `factor'   on  the coefficients  of  the  arguments,  `facsum'
     calls  itself   on  these coefficients, using  this newly
     constructed  single list as  the new argument list  for this
     recursive  call.  This  process can  be  repeated to arbitrary
     depth by nesting the desired elements in lists.

     It is possible that one may wish to `facsum' with respect  to more
     complicated subexpressions,  such as  `log (x + y)'.  Such
     arguments are also  permissible.

     Occasionally the user may wish to obtain any of the  above forms
     for expressions which are specified only by their leading
     operators.  For example, one may wish  to `facsum' with respect to
     all  `log''s.  In this situation, one may  include among the
     arguments either  the specific `log''s which are to be treated in
     this way, or  alternatively, either the expression  `operator
     (log)' or `'operator (log)'.   If one  wished to `facsum' the
     expression <expr> with respect to the operators <op_1>, ...,
     <op_n>, one   would  evaluate  `facsum (<expr>, operator (<op_1>,
     ..., <op_n>))'.  The `operator' form may also appear inside list
     arguments.

     In  addition,  the  setting  of  the  switches   `facsum_combine'
     and `nextlayerfactor' may affect the result of `facsum'.


 -- Global variable: nextlayerfactor
     Default value: `false'

     When `nextlayerfactor' is `true', recursive calls  of `facsum' are
     applied  to  the  factors  of  the  factored  form   of  the
     coefficients of the arguments.

     When  `false', `facsum' is applied to each coefficient as a whole
     whenever recusive calls to  `facsum' occur.

     Inclusion   of   the  atom `nextlayerfactor' in  the argument
     list of `facsum'  has the  effect of `nextlayerfactor: true', but
     for the next level of the expression only.  Since
     `nextlayerfactor' is  always bound to  either `true' or  `false',
     it must be presented single-quoted whenever it appears in the
     argument list of `facsum'.


 -- Global variable: facsum_combine
     Default value: `true'

     `facsum_combine' controls the form  of the final result  returned
     by `facsum'  when  its  argument  is  a  quotient  of
     polynomials.   If `facsum_combine' is `false'  then the form will
     be returned as  a fully expanded  sum  as described  above,  but
     if  `true',  then  the expression returned is a ratio of
     polynomials, with each polynomial in the form described above.

     The `true' setting of this switch is useful when one wants to
     `facsum' both  the numerator and  denominator of  a rational
     expression,  but  does not  want  the denominator  to  be
     multiplied through the terms of the numerator.


 -- Function: factorfacsum (<expr>, <arg_1>, ... <arg_n>)
     Returns a  form of <expr>  which is obtained by calling  `facsum'
     on the factors  of <expr> with <arg_1>, ... <arg_n> as arguments.
     If any of the factors of <expr> is raised to a  power, both the
     factor and the exponent will be processed in this way.


 -- Function: collectterms (<expr>, <arg_1>, ..., <arg_n>)
     If several expressions have been simplified  with the following
     functions `facsum', `factorfacsum', `factenexpand', `facexpten' or
     `factorfacexpten', and they are to be added together, it may be
     desirable to combine them using the function  `collecterms'.
     `collecterms' can take as arguments all of the arguments that can
     be given to these other associated functions with the exception of
     `nextlayerfactor', which has no effect on `collectterms'.  The
     advantage of `collectterms' is that it returns a form  similar to
     `facsum', but since it is adding forms that have already been
     processed by `facsum', it does not need to repeat that effort.
     This capability is especially useful when the expressions to be
     summed are very large.



File: maxima.info,  Node: Package functs,  Next: Package ineq,  Prev: Package facexp,  Up: simplification-pkg

80.4 Package functs
===================

 -- Function: rempart (<expr>, <n>)
     Removes part <n> from the expression <expr>.

     If <n> is a list of the form `[<l>, <m>]' then parts <l> thru <m>
     are removed.

     To use this function write first `load(functs)'.


 -- Function: wronskian ([<f_1>, ..., <f_n>], <x>)
     Returns the Wronskian matrix of the list of expressions [<f_1>,
     ..., <f_n>] in the variable <x>.  The determinant of the Wronskian
     matrix is the Wronskian determinant of the list of expressions.

     To use `wronskian', first `load(functs)'. Example:

          (%i1) load(functs)$
          (%i2) wronskian([f(x), g(x)],x);
          (%o2) matrix([f(x),g(x)],['diff(f(x),x,1),'diff(g(x),x,1)])


 -- Function: tracematrix (<M>)
     Returns the trace (sum of the diagonal elements) of matrix <M>.

     To use this function write first `load(functs)'.


 -- Function: rational (<z>)
     Multiplies numerator and denominator of <z> by the complex
     conjugate of denominator, thus rationalizing the denominator.
     Returns canonical rational expression (CRE) form if given one,
     else returns general form.

     To use this function write first `load(functs)'.


 -- Function: nonzeroandfreeof (<x>, <expr>)
     Returns `true' if <expr> is nonzero and `freeof (<x>, <expr>)'
     returns `true'.  Returns `false' otherwise.

     To use this function write first `load(functs)'.


 -- Function: linear (<expr>, <x>)
     When <expr> is an expression of the form `<a>*<x> + <b>' where <a>
     is nonzero, and <a> and <b> are free of <x>, `linear' returns a
     list of three equations, one for each of the three formal
     variables <b>, <a>, and <x>. Otherwise, `linear' returns `false'.

     `load(antid)' loads this function.

     Example:

          (%i1) load (antid);
          (%o1)        /usr/share/maxima/5.29.1/share/integration/antid.mac
          (%i2) linear ((1 - w)*(1 - x)*z, z);
          (%o2)  [bargumentb = 0, aargumenta = (w - 1) x - w + 1, xargumentx = z]
          (%i3) linear (cos(u - v) + cos(u + v), u);
          (%o3)                                false


 -- Function: gcdivide (<p>, <q>)
     When the option variable `takegcd' is `true' which is the default,
     `gcdivide' divides the polynomials <p> and <q> by their greatest
     common divisor and returns the ratio of the results.  `gcdivde'
     calls the function `ezgcd' to divide the polynomials by the
     greatest common divisor.

     When `takegcd' is `false', `gcdivide' returns the ratio `<p>/<q>'.

     To use this function write first `load(functs)'.

     See also `ezgcd', `gcd', `gcdex', and `poly_gcd'.

     Example:

          (%i1) load(functs)$

          (%i2) p1:6*x^3+19*x^2+19*x+6;
                                  3       2
          (%o2)                6 x  + 19 x  + 19 x + 6
          (%i3) p2:6*x^5+13*x^4+12*x^3+13*x^2+6*x;
                            5       4       3       2
          (%o3)          6 x  + 13 x  + 12 x  + 13 x  + 6 x
          (%i4) gcdivide(p1, p2);
                                       x + 1
          (%o4)                        ------
                                        3
                                       x  + x
          (%i5) takegcd:false;
          (%o5)                         false
          (%i6) gcdivide(p1, p2);
                                 3       2
                              6 x  + 19 x  + 19 x + 6
          (%o6)          ----------------------------------
                            5       4       3       2
                         6 x  + 13 x  + 12 x  + 13 x  + 6 x
          (%i7) ratsimp(%);
                                       x + 1
          (%o7)                        ------
                                        3
                                       x  + x


 -- Function: arithmetic (<a>, <d>, <n>)
     Returns the <n>-th term of the arithmetic series `<a>, <a> + <d>,
     <a> + 2*<d>, ..., <a> + (<n> - 1)*<d>'.

     To use this function write first `load(functs)'.


 -- Function: geometric (<a>, <r>, <n>)
     Returns the <n>-th term of the geometric series `<a>, <a>*<r>,
     <a>*<r>^2, ..., <a>*<r>^(<n> - 1)'.

     To use this function write first `load(functs)'.


 -- Function: harmonic (<a>, <b>, <c>, <n>)
     Returns the <n>-th term of the harmonic series `<a>/<b>, <a>/(<b>
     + <c>), <a>/(<b> + 2*<c>), ..., <a>/(<b> + (<n> - 1)*<c>)'.

     To use this function write first `load(functs)'.


 -- Function: arithsum (<a>, <d>, <n>)
     Returns the sum of the arithmetic series from 1 to <n>.

     To use this function write first `load(functs)'.


 -- Function: geosum (<a>, <r>, <n>)
     Returns the sum of the geometric series from 1 to <n>.  If <n> is
     infinity (`inf') then a sum is finite only if the absolute value
     of <r> is less than 1.

     To use this function write first `load(functs)'.


 -- Function: gaussprob (<x>)
     Returns the Gaussian probability function `%e^(-<x>^2/2) /
     sqrt(2*%pi)'.

     To use this function write first `load(functs)'.


 -- Function: gd (<x>)
     Returns the Gudermannian function `2*atan(%e^x)-%pi/2'.

     To use this function write first `load(functs)'.


 -- Function: agd (<x>)
     Returns the inverse Gudermannian function `log (tan (%pi/4 +
     x/2))'.

     To use this function write first `load(functs)'.


 -- Function: vers (<x>)
     Returns the versed sine `1 - cos (x)'.

     To use this function write first `load(functs)'.


 -- Function: covers (<x>)
     Returns the coversed sine `1 - sin (<x>)'.

     To use this function write first `load(functs)'.


 -- Function: exsec (<x>)
     Returns the exsecant `sec (<x>) - 1'.

     To use this function write first `load(functs)'.


 -- Function: hav (<x>)
     Returns the haversine `(1 - cos(x))/2'.

     To use this function write first `load(functs)'.


 -- Function: combination (<n>, <r>)
     Returns the number of combinations of <n> objects taken <r> at a
     time.

     To use this function write first `load(functs)'.


 -- Function: permutation (<n>, <r>)
     Returns the number of permutations of <r> objects selected from a
     set of <n> objects.

     To use this function write first `load(functs)'.



File: maxima.info,  Node: Package ineq,  Next: Package rducon,  Prev: Package functs,  Up: simplification-pkg

80.5 Package ineq
=================

The `ineq' package contains simplification rules for inequalities.

   Example session:

     (%i1) load(ineq)$
     Warning: Putting rules on '+' or '*' is inefficient, and may not work.
     Warning: Putting rules on '+' or '*' is inefficient, and may not work.
     Warning: Putting rules on '+' or '*' is inefficient, and may not work.
     Warning: Putting rules on '+' or '*' is inefficient, and may not work.
     Warning: Putting rules on '+' or '*' is inefficient, and may not work.
     Warning: Putting rules on '+' or '*' is inefficient, and may not work.
     Warning: Putting rules on '+' or '*' is inefficient, and may not work.
     Warning: Putting rules on '+' or '*' is inefficient, and may not work.
     (%i2) a>=4;  /* a sample inequality */
     (%o2)                               a >= 4
     (%i3) (b>c)+%; /* add a second, strict inequality */
     (%o3)                            b + a > c + 4
     (%i4) 7*(x<y); /* multiply by a positive number */
     (%o4)                              7 x < 7 y
     (%i5) -2*(x>=3*z); /* multiply by a negative number */
     (%o5)                           - 2 x <= - 6 z
     (%i6) (1+a^2)*(1/(1+a^2)<=1); /* Maxima knows that 1+a^2 > 0 */
                                             2
     (%o6)                             1 <= a  + 1
     (%i7) assume(x>0)$ x*(2<3); /* assuming x>0 */
     (%o7)                              2 x < 3 x
     (%i8) a>=b; /* another inequality */
     (%o8)                               a >= b
     (%i9) 3+%; /* add something */
     (%o9)                           a + 3 >= b + 3
     (%i10) %-3; /* subtract it out */
     (%o10)                              a >= b
     (%i11) a>=c-b; /* yet another inequality */
     (%o11)                            a >= c - b
     (%i12) b+%; /* add b to both sides */
     (%o12)                            b + a >= c
     (%i13) %-c; /* subtract c from both sides */
     (%o13)                         - c + b + a >= 0
     (%i14) -%;  /* multiply by -1 */
     (%o14)                          c - b - a <= 0
     (%i15) (z-1)^2>-2*z; /* determining truth of assertion */
                                           2
     (%o15)                         (z - 1)  > - 2 z
     (%i16) expand(%)+2*z; /* expand this and add 2*z to both sides */
                                        2
     (%o16)                            z  + 1 > 0
     (%i17) %,pred;
     (%o17)                               true

   Be careful about using parentheses around the inequalities: when the
user types in `(A > B) + (C = 5)' the result is `A + C > B + 5', but `A
> B + C = 5' is a syntax error, and `(A > B + C) = 5' is something else
entirely.

   Do `disprule (all)' to see a complete listing of the rule
definitions.

   The user will be queried if Maxima is unable to decide the sign of a
quantity multiplying an inequality.

   The most common mis-feature is illustrated by:

     (%i1) eq: a > b;
     (%o1)                              a > b
     (%i2) 2*eq;
     (%o2)                            2 (a > b)
     (%i3) % - eq;
     (%o3)                              a > b

   Another problem is 0 times an inequality; the default to have this
turn into 0 has been left alone. However, if you type
`X*<some_inequality>' and Maxima asks about the sign of `X' and you
respond `zero' (or `z'), the program returns `X*<some_inequality>' and
not use the information that `X' is 0. You should do `ev (%, x: 0)' in
such a case, as the database will only be used for comparison purposes
in decisions, and not for the purpose of evaluating `X'.

   The user may note a slower response when this package is loaded, as
the simplifier is forced to examine more rules than without the
package, so you might wish to remove the rules after making use of
them. Do `kill (rules)' to eliminate all of the rules (including any
that you might have defined); or you may be more selective by killing
only some of them; or use `remrule' on a specific rule.

   Note that if you load this package after defining your own rules you
will clobber your rules that have the same name. The rules in this
package are: `*rule1', ..., `*rule8', `+rule1', ..., `+rule18', and you
must enclose the rulename in quotes to refer to it, as in `remrule
("+", "+rule1")' to specifically remove the first rule on `"+"' or
`disprule ("*rule2")' to display the definition of the second
multiplicative rule.


File: maxima.info,  Node: Package rducon,  Next: Package scifac,  Prev: Package ineq,  Up: simplification-pkg

80.6 Package rducon
===================

 -- Function: reduce_consts (<expr>)
     Replaces constant subexpressions of <expr> with constructed
     constant atoms, saving the definition of all these constructed
     constants in the list of equations `const_eqns', and returning the
     modified <expr>.  Those parts of <expr> are constant which return
     `true' when operated on by the function `constantp'.  Hence,
     before invoking `reduce_consts', one should do

          declare ([<objects to be given the constant property>], constant)$

     to set up a database of the constant quantities occurring in your
     expressions.

     If you are planning to generate Fortran output after these symbolic
     calculations, one of the first code sections should be the
     calculation of all constants.  To generate this code segment, do

          map ('fortran, const_eqns)$

     Variables besides `const_eqns' which affect `reduce_consts' are:

     `const_prefix' (default value: `xx') is the string of characters
     used to prefix all symbols generated by `reduce_consts' to
     represent constant subexpressions.

     `const_counter' (default value: 1) is the integer index used to
     generate unique symbols to represent each constant subexpression
     found by `reduce_consts'.

     `load (rducon)' loads this function.  `demo (rducon)' shows a
     demonstration of this function.



File: maxima.info,  Node: Package scifac,  Next: Package sqdnst,  Prev: Package rducon,  Up: simplification-pkg

80.7 Package scifac
===================

 -- Function: gcfac (<expr>)
     `gcfac' is a factoring function that attempts to apply the same
     heuristics which scientists apply in trying to make expressions
     simpler.  `gcfac' is limited to monomial-type factoring.  For a
     sum, `gcfac' does the following:

       1. Factors over the integers.

       2. Factors out the largest powers of terms occurring as
          coefficients, regardless of the complexity of the terms.

       3. Uses (1) and (2) in factoring adjacent pairs of terms.

       4. Repeatedly and recursively applies these techniques until the
          expression no longer changes.

     Item (3) does not necessarily do an optimal job of pairwise
     factoring because of the combinatorially-difficult nature of
     finding which of all possible rearrangements of the pairs yields
     the most compact pair-factored result.

     `load (scifac)' loads this function.  `demo (scifac)' shows a
     demonstration of this function.



File: maxima.info,  Node: Package sqdnst,  Prev: Package scifac,  Up: simplification-pkg

80.8 Package sqdnst
===================

 -- Function: sqrtdenest (<expr>)
     Denests `sqrt' of simple, numerical, binomial surds, where
     possible.  E.g.

          (%i1) load (sqdnst)$
          (%i2) sqrt(sqrt(3)/2+1)/sqrt(11*sqrt(2)-12);
                                              sqrt(3)
                                         sqrt(------- + 1)
                                                 2
          (%o2)                        ---------------------
                                       sqrt(11 sqrt(2) - 12)
          (%i3) sqrtdenest(%);
                                            sqrt(3)   1
                                            ------- + -
                                               2      2
          (%o3)                            -------------
                                              1/4    3/4
                                           3 2    - 2

     Sometimes it helps to apply `sqrtdenest' more than once, on such as
     `(19601-13860 sqrt(2))^(7/4)'.

     `load (sqdnst)' loads this function.



File: maxima.info,  Node: solve_rec-pkg,  Next: stats-pkg,  Prev: simplification-pkg,  Up: Top

81 solve_rec
************

* Menu:

* Introduction to solve_rec::
* Functions and Variables for solve_rec::


File: maxima.info,  Node: Introduction to solve_rec,  Next: Functions and Variables for solve_rec,  Prev: solve_rec-pkg,  Up: solve_rec-pkg

81.1 Introduction to solve_rec
==============================

`solve_rec' is a package for solving linear recurrences with polynomial
coefficients.

   A demo is available with `demo(solve_rec);'.

   Example:

     (%i1) load("solve_rec")$
     (%i2) solve_rec((n+4)*s[n+2] + s[n+1] - (n+1)*s[n], s[n]);
                                         n
                      %k  (2 n + 3) (- 1)          %k
                        1                            2
     (%o2)       s  = -------------------- + ---------------
                  n     (n + 1) (n + 2)      (n + 1) (n + 2)


File: maxima.info,  Node: Functions and Variables for solve_rec,  Prev: Introduction to solve_rec,  Up: solve_rec-pkg

81.2 Functions and Variables for solve_rec
==========================================

 -- Function: reduce_order (<rec>, <sol>, <var>)
     Reduces the order of linear recurrence <rec> when a particular
     solution <sol> is known. The reduced reccurence can be used to get
     other solutions.

     Example:

          (%i3) rec: x[n+2] = x[n+1] + x[n]/n;
                                                x
                                                 n
          (%o3)               x      = x      + --
                               n + 2    n + 1   n
          (%i4) solve_rec(rec, x[n]);
          WARNING: found some hypergeometrical solutions!
          (%o4)                    x  = %k  n
                                    n     1
          (%i5) reduce_order(rec, n, x[n]);
          (%t5)                    x  = n %z
                                    n       n

                                     n - 1
                                     ====
                                     \
          (%t6)                %z  =  >     %u
                                 n   /        %j
                                     ====
                                     %j = 0

          (%o6)             (- n - 2) %u     - %u
                                        n + 1     n
          (%i6) solve_rec((n+2)*%u[n+1] + %u[n], %u[n]);
                                               n
                                      %k  (- 1)
                                        1
          (%o6)                 %u  = ----------
                                  n    (n + 1)!

          So the general solution is

                       n - 1
                       ====        j
                       \      (- 1)
                 %k  n  >    -------- + %k  n
                   2   /     (j + 1)!     1
                       ====
                       j = 0


 -- Option variable: simplify_products
     Default value: `true'

     If `simplify_products' is `true', `solve_rec' will try to simplify
     products in result.

     See also: `solve_rec'.


 -- Function: simplify_sum (<expr>)
     Tries to simplify all sums appearing in <expr> to a closed form.

     To use this function first load the `simplify_sum' package with
     `load(simplify_sum)'.

     Example:

          (%i1) load("simplify_sum")$
          (%i2) sum(binomial(n+k,k)/2^k,k,1,n)+sum(binomial(2*n,2*k),k,1,n);
                  n                          n
                 ====                       ====
                 \     binomial(n + k, k)   \
          (%o2)   >    ------------------ +  >    binomial(2 n, 2 k)
                 /              k           /
                 ====          2            ====
                 k = 1                      k = 1
          (%i3) simplify_sum(%);

                                   2 n - 1    n
          (%o3)                   2        + 2  - 2


 -- Function: solve_rec (<eqn>, <var>, [<init>])
     Solves for hypergeometrical solutions to linear recurrence <eqn>
     with polynomials coefficient in variable <var>. Optional arguments
     <init> are initial conditions.

     `solve_rec' can solve linear recurrences with constant
     coefficients, finds hypergeometrical solutions to homogeneous
     linear recurrences with polynomial coefficients, rational
     solutions to linear recurrences with polynomial coefficients and
     can solve Ricatti type recurrences.

     Note that the running time of the algorithm used to find
     hypergeometrical solutions is exponential in the degree of the
     leading and trailing coefficient.

     To use this function first load the `solve_rec' package with
     `load(solve_rec);'.

     Example of linear recurrence with constant coefficients:

          (%i2) solve_rec(a[n]=a[n-1]+a[n-2]+n/2^n, a[n]);
                                  n          n
                     (sqrt(5) - 1)  %k  (- 1)
                                      1           n
          (%o2) a  = ------------------------- - ----
                 n               n                  n
                                2                5 2
                                                          n
                                             (sqrt(5) + 1)  %k
                                                              2    2
                                           + ------------------ - ----
                                                      n              n
                                                     2            5 2

     Example of linear recurrence with polynomial coefficients:

          (%i7) 2*x*(x+1)*y[x] - (x^2+3*x-2)*y[x+1] + (x-1)*y[x+2];
                                   2
          (%o7) (x - 1) y      - (x  + 3 x - 2) y      + 2 x (x + 1) y
                         x + 2                   x + 1                x
          (%i8) solve_rec(%, y[x], y[1]=1, y[3]=3);
                                        x
                                     3 2    x!
          (%o9)                 y  = ---- - --
                                 x    4     2

     Example of Ricatti type recurrence:

          (%i2) x*y[x+1]*y[x] - y[x+1]/(x+2) + y[x]/(x-1) = 0;
                                      y         y
                                       x + 1     x
          (%o2)         x y  y      - ------ + ----- = 0
                           x  x + 1   x + 2    x - 1
          (%i3) solve_rec(%, y[x], y[3]=5)$
          (%i4) ratsimp(minfactorial(factcomb(%)));
                                             3
                                         30 x  - 30 x
          (%o4) y  = - -------------------------------------------------
                 x        6      5       4       3       2
                       5 x  - 3 x  - 25 x  + 15 x  + 20 x  - 12 x - 1584

     See also: `solve_rec_rat', `simplify_products' and
     `product_use_gamma'.


 -- Function: solve_rec_rat (<eqn>, <var>, [<init>])
     Solves for rational solutions to linear recurrences. See solve_rec
     for description of arguments.

     To use this function first load the `solve_rec' package with
     `load(solve_rec);'.

     Example:

          (%i1) (x+4)*a[x+3] + (x+3)*a[x+2] - x*a[x+1] + (x^2-1)*a[x];
          (%o1)  (x + 4) a      + (x + 3) a      - x a
                          x + 3            x + 2      x + 1
                                                             2
                                                         + (x  - 1) a
                                                                      x
          (%i2) solve_rec_rat(% = (x+2)/(x+1), a[x]);
                                 1
          (%o2)      a  = ---------------
                      x   (x - 1) (x + 1)

     See also: `solve_rec'.


 -- Option variable: product_use_gamma
     Default value: `true'

     When simplifying products, `solve_rec' introduces gamma function
     into the expression if `product_use_gamma' is `true'.

     See also: `simplify_products', `solve_rec'.


 -- Function: summand_to_rec
          summand_to_rec (<summand>, <k>, <n>)
          summand_to_rec (<summand>, [<k>, <lo>, <hi>], <n>)
     Returns the recurrence sattisfied by the sum

               hi
              ====
              \
               >     summand
              /
              ====
            k = lo

     where summand is hypergeometrical in <k> and <n>. If <lo> and <hi>
     are omitted, they are assumed to be `lo = -inf' and `hi = inf'.

     To use this function first load the `simplify_sum' package with
     `load(simplify_sum)'.

     Example:

          (%i1) load("simplify_sum")$
          (%i2) summand: binom(n,k);
          (%o2)                           binomial(n, k)
          (%i3) summand_to_rec(summand,k,n);
          (%o3)                      2 sm  - sm      = 0
                                         n     n + 1
          (%i7) summand: binom(n, k)/(k+1);
                                          binomial(n, k)
          (%o7)                           --------------
                                              k + 1
          (%i8) summand_to_rec(summand, [k, 0, n], n);
          (%o8)               2 (n + 1) sm  - (n + 2) sm      = - 1
                                          n             n + 1



File: maxima.info,  Node: stats-pkg,  Next: stirling-pkg,  Prev: solve_rec-pkg,  Up: Top

82 stats
********

* Menu:

* Introduction to stats::
* Functions and Variables for inference_result::
* Functions and Variables for stats::
* Functions and Variables for special distributions::


File: maxima.info,  Node: Introduction to stats,  Next: Functions and Variables for inference_result,  Prev: Top,  Up: Top

82.1 Introduction to stats
==========================

Package `stats' contains a set of classical statistical inference and
hypothesis testing procedures.

   All these functions return an `inference_result' Maxima object which
contains the necessary results for population inferences and decision
making.

   Global variable `stats_numer' controls whether results are given in
floating point or symbolic and rational format; its default value is
`true' and results are returned in floating point format.

   Package `descriptive' contains some utilities to manipulate data
structures (lists and matrices); for example, to extract subsamples. It
also contains some examples on how to use package `numericalio' to read
data from plain text files. See `descriptive' and `numericalio' for
more details.

   Package `stats' loads packages `descriptive', `distrib' and
`inference_result'.

   For comments, bugs or suggestions, please contact the author at

   <'mario AT edu DOT xunta DOT es'>.


File: maxima.info,  Node: Functions and Variables for inference_result,  Next: Functions and Variables for stats,  Prev: Introduction to stats,  Up: Top

82.2 Functions and Variables for inference_result
=================================================

 -- Function: inference_result (<title>, <values>, <numbers>)
     Constructs an `inference_result' object of the type returned by the
     stats functions. Argument <title> is a string with the name of the
     procedure; <values> is a list with elements of the form `symbol =
     value' and <numbers> is a list with positive integer numbers
     ranging from one to `length(<values>)', indicating which values
     will be shown by default.

     Example:

     This is a simple example showing results concerning a rectangle.
     The title of this object is the string `"Rectangle"', it stores
     five results, named `'base', `'height', `'diagonal', `'area', and
     `'perimeter', but only the first, second, fifth, and fourth will
     be displayed. The `'diagonal' is stored in this object, but it is
     not displayed; to access its value, make use of function
     `take_inference'.

          (%i1) load(inference_result)$
          (%i2) b: 3$ h: 2$
          (%i3) inference_result("Rectangle",
                                  ['base=b,
                                   'height=h,
                                   'diagonal=sqrt(b^2+h^2),
                                   'area=b*h,
                                   'perimeter=2*(b+h)],
                                  [1,2,5,4] );
                                  |   Rectangle
                                  |
                                  |    base = 3
                                  |
          (%o3)                   |   height = 2
                                  |
                                  | perimeter = 10
                                  |
                                  |    area = 6
          (%i4) take_inference('diagonal,%);
          (%o4)                        sqrt(13)

     See also `take_inference'.


 -- Function: inferencep (<obj>)
     Returns `true' or `false', depending on whether <obj> is an
     `inference_result' object or not.


 -- Function: items_inference (<obj>)
     Returns a list with the names of the items stored in <obj>, which
     must be an `inference_result' object.

     Example:

     The `inference_result' object stores two values, named `'pi' and
     `'e', but only the second is displayed. The `items_inference'
     function returns the names of all items, no matter they are
     displayed or not.

          (%i1) load(inference_result)$
          (%i2) inference_result("Hi", ['pi=%pi,'e=%e],[2]);
                                      |   Hi
          (%o2)                       |
                                      | e = %e
          (%i3) items_inference(%);
          (%o3)                        [pi, e]


 -- Function: take_inference
          take_inference (<n>, <obj>)
          take_inference (<name>, <obj>)
          take_inference (<list>, <obj>)
     Returns the <n>-th value stored in <obj> if <n> is a positive
     integer, or the item named <name> if this is the name of an item.
     If the first argument is a list of numbers and/or symbols,
     function `take_inference' returns a list with the corresponding
     results.

     Example:

     Given an `inference_result' object, function `take_inference' is
     called in order to extract some information stored in it.

          (%i1) load(inference_result)$
          (%i2) b: 3$ h: 2$
          (%i3) sol: inference_result("Rectangle",
                                      ['base=b,
                                       'height=h,
                                       'diagonal=sqrt(b^2+h^2),
                                       'area=b*h,
                                       'perimeter=2*(b+h)],
                                      [1,2,5,4] );
                                  |   Rectangle
                                  |
                                  |    base = 3
                                  |
          (%o3)                   |   height = 2
                                  |
                                  | perimeter = 10
                                  |
                                  |    area = 6
          (%i4) take_inference('base,sol);
          (%o4)                           3
          (%i5) take_inference(5,sol);
          (%o5)                          10
          (%i6) take_inference([1,'diagonal],sol);
          (%o6)                     [3, sqrt(13)]
          (%i7) take_inference(items_inference(sol),sol);
          (%o7)                [3, 2, sqrt(13), 6, 10]

     See also `inference_result', and `take_inference'.



File: maxima.info,  Node: Functions and Variables for stats,  Next: Functions and Variables for special distributions,  Prev: Functions and Variables for inference_result,  Up: Top

82.3 Functions and Variables for stats
======================================

 -- Option variable: stats_numer
     Default value: `true'

     If `stats_numer' is `true', inference statistical functions return
     their results in floating point numbers. If it is `false', results
     are given in symbolic and rational format.


 -- Function: test_mean
          test_mean (<x>)
          test_mean (<x>, <options> ...)
     This is the mean <t>-test. Argument <x> is a list or a column
     matrix containing a one dimensional sample. It also performs an
     asymptotic test based on the Central Limit Theorem if option
     `'asymptotic' is `true'.

     Options:

        * `'mean', default `0', is the mean value to be checked.

        * `'alternative', default `'twosided', is the alternative
          hypothesis; valid values are: `'twosided', `'greater' and
          `'less'.

        * `'dev', default `'unknown', this is the value of the standard
          deviation when it is known; valid values are: `'unknown' or a
          positive expression.

        * `'conflevel', default `95/100', confidence level for the
          confidence interval; it must be an expression which takes a
          value in (0,1).

        * `'asymptotic', default `false', indicates whether it performs
          an exact <t>-test or an asymptotic one based on the Central
          Limit Theorem; valid values are `true' and `false'.


     The output of function `test_mean' is an `inference_result' Maxima
     object showing the following results:

       1. `'mean_estimate': the sample mean.

       2. `'conf_level': confidence level selected by the user.

       3. `'conf_interval': confidence interval for the population mean.

       4. `'method': inference procedure.

       5. `'hypotheses': null and alternative hypotheses to be tested.

       6. `'statistic': value of the sample statistic used for testing
          the null hypothesis.

       7. `'distribution': distribution of the sample statistic,
          together with its parameter(s).

       8. `'p_value': p-value of the test.


     Examples:

     Performs an exact <t>-test with unknown variance. The null
     hypothesis is H_0: mean=50 against the one sided alternative H_1:
     mean<50; according to the results, the p-value is too great, there
     are no evidence for rejecting H_0.

          (%i1) load("stats")$
          (%i2) data: [78,64,35,45,45,75,43,74,42,42]$
          (%i3) test_mean(data,'conflevel=0.9,'alternative='less,'mean=50);
                    |                 MEAN TEST
                    |
                    |            mean_estimate = 54.3
                    |
                    |              conf_level = 0.9
                    |
                    | conf_interval = [minf, 61.51314273502712]
                    |
          (%o3)     |  method = Exact t-test. Unknown variance.
                    |
                    | hypotheses = H0: mean = 50 , H1: mean < 50
                    |
                    |       statistic = .8244705235071678
                    |
                    |       distribution = [student_t, 9]
                    |
                    |        p_value = .7845100411786889

     This time Maxima performs an asymptotic test, based on the Central
     Limit Theorem.  The null hypothesis is H_0: equal(mean, 50)
     against the two sided alternative H_1: not equal(mean, 50);
     according to the results, the p-value is very small, H_0 should be
     rejected in favor of the alternative H_1. Note that, as indicated
     by the `Method' component, this procedure should be applied to
     large samples.

          (%i1) load("stats")$
          (%i2) test_mean([36,118,52,87,35,256,56,178,57,57,89,34,25,98,35,
                        98,41,45,198,54,79,63,35,45,44,75,42,75,45,45,
                        45,51,123,54,151],
                        'asymptotic=true,'mean=50);
                    |                       MEAN TEST
                    |
                    |           mean_estimate = 74.88571428571429
                    |
                    |                   conf_level = 0.95
                    |
                    | conf_interval = [57.72848600856194, 92.04294256286663]
                    |
          (%o2)     |    method = Large sample z-test. Unknown variance.
                    |
                    |       hypotheses = H0: mean = 50 , H1: mean # 50
                    |
                    |             statistic = 2.842831192874313
                    |
                    |             distribution = [normal, 0, 1]
                    |
                    |             p_value = .004471474652002261


 -- Function: test_means_difference
          test_means_difference (<x1>, <x2>)
          test_means_difference (<x1>, <x2>, <options> ...)
     This is the difference of means <t>-test for two samples.
     Arguments <x1> and <x2> are lists or column matrices containing
     two independent samples. In case of different unknown variances
     (see options `'dev1', `'dev2' and `'varequal' bellow), the degrees
     of freedom are computed by means of the Welch approximation.  It
     also performs an asymptotic test based on the Central Limit
     Theorem if option `'asymptotic' is set to `true'.

     Options:

        *        * `'alternative', default `'twosided', is the alternative
          hypothesis; valid values are: `'twosided', `'greater' and
          `'less'.

        * `'dev1', default `'unknown', this is the value of the
          standard deviation of the <x1> sample when it is known; valid
          values are: `'unknown' or a positive expression.

        * `'dev2', default `'unknown', this is the value of the
          standard deviation of the <x2> sample when it is known; valid
          values are: `'unknown' or a positive expression.

        * `'varequal', default `false', whether variances should be
          considered to be equal or not; this option takes effect only
          when `'dev1' and/or `'dev2' are  `'unknown'.

        * `'conflevel', default `95/100', confidence level for the
          confidence interval; it must be an expression which takes a
          value in (0,1).

        * `'asymptotic', default `false', indicates whether it performs
          an exact <t>-test or an asymptotic one based on the Central
          Limit Theorem; valid values are `true' and `false'.


     The output of function `test_means_difference' is an
     `inference_result' Maxima object showing the following results:

       1. `'diff_estimate': the difference of means estimate.

       2. `'conf_level': confidence level selected by the user.

       3. `'conf_interval': confidence interval for the difference of
          means.

       4. `'method': inference procedure.

       5. `'hypotheses': null and alternative hypotheses to be tested.

       6. `'statistic': value of the sample statistic used for testing
          the null hypothesis.

       7. `'distribution': distribution of the sample statistic,
          together with its parameter(s).

       8. `'p_value': p-value of the test.


     Examples:

     The equality of means is tested with two small samples <x> and <y>,
     against the alternative H_1: m_1>m_2, being m_1 and m_2 the
     populations means; variances are unknown and supposed to be
     different.

          (%i1) load("stats")$
          (%i2) x: [20.4,62.5,61.3,44.2,11.1,23.7]$
          (%i3) y: [1.2,6.9,38.7,20.4,17.2]$
          (%i4) test_means_difference(x,y,'alternative='greater);
                      |              DIFFERENCE OF MEANS TEST
                      |
                      |         diff_estimate = 20.31999999999999
                      |
                      |                 conf_level = 0.95
                      |
                      |    conf_interval = [- .04597417812882298, inf]
                      |
          (%o4)       |        method = Exact t-test. Welch approx.
                      |
                      | hypotheses = H0: mean1 = mean2 , H1: mean1 > mean2
                      |
                      |           statistic = 1.838004300728477
                      |
                      |    distribution = [student_t, 8.62758740184604]
                      |
                      |            p_value = .05032746527991905

     The same test as before, but now variances are supposed to be
     equal.

          (%i1) load("stats")$
          (%i2) x: [20.4,62.5,61.3,44.2,11.1,23.7]$
          (%i3) y: matrix([1.2],[6.9],[38.7],[20.4],[17.2])$
          (%i4) test_means_difference(x,y,'alternative='greater,
                                                           'varequal=true);
                      |              DIFFERENCE OF MEANS TEST
                      |
                      |         diff_estimate = 20.31999999999999
                      |
                      |                 conf_level = 0.95
                      |
                      |     conf_interval = [- .7722627696897568, inf]
                      |
          (%o4)       |   method = Exact t-test. Unknown equal variances
                      |
                      | hypotheses = H0: mean1 = mean2 , H1: mean1 > mean2
                      |
                      |           statistic = 1.765996124515009
                      |
                      |           distribution = [student_t, 9]
                      |
                      |            p_value = .05560320992529344


 -- Function: test_variance
          test_variance (<x>)
          test_variance (<x>, <options>, ...)
     This is the variance <chi^2>-test. Argument <x> is a list or a
     column matrix containing a one dimensional sample taken from a
     normal population.

     Options:

        * `'mean', default `'unknown', is the population's mean, when
          it is known.

        * `'alternative', default `'twosided', is the alternative
          hypothesis; valid values are: `'twosided', `'greater' and
          `'less'.

        * `'variance', default `1', this is the variance value
          (positive) to be checked.

        * `'conflevel', default `95/100', confidence level for the
          confidence interval; it must be an expression which takes a
          value in (0,1).


     The output of function `test_variance' is an `inference_result'
     Maxima object showing the following results:

       1. `'var_estimate': the sample variance.

       2. `'conf_level': confidence level selected by the user.

       3. `'conf_interval': confidence interval for the population
          variance.

       4. `'method': inference procedure.

       5. `'hypotheses': null and alternative hypotheses to be tested.

       6. `'statistic': value of the sample statistic used for testing
          the null hypothesis.

       7. `'distribution': distribution of the sample statistic,
          together with its parameter.

       8. `'p_value': p-value of the test.


     Examples:

     It is tested whether the variance of a population with unknown mean
     is equal to or greater than 200.

          (%i1) load("stats")$
          (%i2) x: [203,229,215,220,223,233,208,228,209]$
          (%i3) test_variance(x,'alternative='greater,'variance=200);
                       |                  VARIANCE TEST
                       |
                       |              var_estimate = 110.75
                       |
                       |                conf_level = 0.95
                       |
                       |     conf_interval = [57.13433376937479, inf]
                       |
          (%o3)        | method = Variance Chi-square test. Unknown mean.
                       |
                       |    hypotheses = H0: var = 200 , H1: var > 200
                       |
                       |                 statistic = 4.43
                       |
                       |             distribution = [chi2, 8]
                       |
                       |           p_value = .8163948512777689


 -- Function: test_variance_ratio
          test_variance_ratio (<x1>, <x2>)
          test_variance_ratio (<x1>, <x2>, <options> ...)
     This is the variance ratio <F>-test for two normal populations.
     Arguments <x1> and <x2> are lists or column matrices containing
     two independent samples.

     Options:

        * `'alternative', default `'twosided', is the alternative
          hypothesis; valid values are: `'twosided', `'greater' and
          `'less'.

        * `'mean1', default `'unknown', when it is known, this is the
          mean of the population from which <x1> was taken.

        * `'mean2', default `'unknown', when it is known, this is the
          mean of the population from which <x2> was taken.

        * `'conflevel', default `95/100', confidence level for the
          confidence interval of the ratio; it must be an expression
          which takes a value in (0,1).


     The output of function `test_variance_ratio' is an
     `inference_result' Maxima object showing the following results:

       1. `'ratio_estimate': the sample variance ratio.

       2. `'conf_level': confidence level selected by the user.

       3. `'conf_interval': confidence interval for the variance ratio.

       4. `'method': inference procedure.

       5. `'hypotheses': null and alternative hypotheses to be tested.

       6. `'statistic': value of the sample statistic used for testing
          the null hypothesis.

       7. `'distribution': distribution of the sample statistic,
          together with its parameters.

       8. `'p_value': p-value of the test.


     Examples:

     The equality of the variances of two normal populations is checked
     against the alternative that the first is greater than the second.

          (%i1) load("stats")$
          (%i2) x: [20.4,62.5,61.3,44.2,11.1,23.7]$
          (%i3) y: [1.2,6.9,38.7,20.4,17.2]$
          (%i4) test_variance_ratio(x,y,'alternative='greater);
                        |              VARIANCE RATIO TEST
                        |
                        |       ratio_estimate = 2.316933391522034
                        |
                        |               conf_level = 0.95
                        |
                        |    conf_interval = [.3703504689507268, inf]
                        |
          (%o4)         | method = Variance ratio F-test. Unknown means.
                        |
                        | hypotheses = H0: var1 = var2 , H1: var1 > var2
                        |
                        |         statistic = 2.316933391522034
                        |
                        |            distribution = [f, 5, 4]
                        |
                        |          p_value = .2179269692254457


 -- Function: test_proportion
          test_proportion (<x>, <n>)
          test_proportion (<x>, <n>, <options> ...)
     Inferences on a proportion. Argument <x> is the number of successes
     in <n> trials in a Bernoulli experiment with unknown probability.

     Options:

        * `'proportion', default `1/2', is the value of the proportion
          to be checked.

        * `'alternative', default `'twosided', is the alternative
          hypothesis; valid values are: `'twosided', `'greater' and
          `'less'.

        * `'conflevel', default `95/100', confidence level for the
          confidence interval; it must be an expression which takes a
          value in (0,1).

        * `'asymptotic', default `false', indicates whether it performs
          an exact test based on the binomial distribution, or an
          asymptotic one based on the Central Limit Theorem; valid
          values are `true' and `false'.

        * `'correct', default `true', indicates whether Yates
          correction is applied or not.


     The output of function `test_proportion' is an `inference_result'
     Maxima object showing the following results:

       1. `'sample_proportion': the sample proportion.

       2. `'conf_level': confidence level selected by the user.

       3. `'conf_interval': Wilson confidence interval for the
          proportion.

       4. `'method': inference procedure.

       5. `'hypotheses': null and alternative hypotheses to be tested.

       6. `'statistic': value of the sample statistic used for testing
          the null hypothesis.

       7. `'distribution': distribution of the sample statistic,
          together with its parameters.

       8. `'p_value': p-value of the test.


     Examples:

     Performs an exact test. The null hypothesis is H_0: p=1/2 against
     the one sided alternative H_1: p<1/2.

          (%i1) load("stats")$
          (%i2) test_proportion(45, 103, alternative = less);
                   |            PROPORTION TEST
                   |
                   | sample_proportion = .4368932038834951
                   |
                   |           conf_level = 0.95
                   |
                   | conf_interval = [0, 0.522714149150231]
                   |
          (%o2)    |     method = Exact binomial test.
                   |
                   | hypotheses = H0: p = 0.5 , H1: p < 0.5
                   |
                   |             statistic = 45
                   |
                   |  distribution = [binomial, 103, 0.5]
                   |
                   |      p_value = .1184509388901454

     A two sided asymptotic test. Confidence level is 99/100.

          (%i1) load("stats")$
          (%i2) fpprintprec:7$
          (%i3) test_proportion(45, 103,
                            conflevel = 99/100, asymptotic=true);
                |                 PROPORTION TEST
                |
                |           sample_proportion = .43689
                |
                |                conf_level = 0.99
                |
                |        conf_interval = [.31422, .56749]
                |
          (%o3) | method = Asympthotic test with Yates correction.
                |
                |     hypotheses = H0: p = 0.5 , H1: p # 0.5
                |
                |               statistic = .43689
                |
                |      distribution = [normal, 0.5, .048872]
                |
                |                p_value = .19662


 -- Function: test_proportions_difference
          test_proportions_difference (<x1>, <n1>, <x2>, <n2>)
          test_proportions_difference (<x1>, <n1>, <x2>, <n2>,
          <options> ...)
     Inferences on the difference of two proportions. Argument <x1> is
     the number of successes in <n1> trials in a Bernoulli experiment
     in the first population, and <x2> and <n2> are the corresponding
     values in the second population. Samples are independent and the
     test is asymptotic.

     Options:

        * `'alternative', default `'twosided', is the alternative
          hypothesis; valid values are: `'twosided' (`p1 # p2'),
          `'greater' (`p1 > p2') and `'less' (`p1 < p2').

        * `'conflevel', default `95/100', confidence level for the
          confidence interval; it must be an expression which takes a
          value in (0,1).

        * `'correct', default `true', indicates whether Yates
          correction is applied or not.


     The output of function `test_proportions_difference' is an
     `inference_result' Maxima object showing the following results:

       1. `'proportions': list with the two sample proportions.

       2. `'conf_level': confidence level selected by the user.

       3. `'conf_interval': Confidence interval for the difference of
          proportions `p1 - p2'.

       4. `'method': inference procedure and warning message in case of
          any of the samples sizes is less than 10.

       5. `'hypotheses': null and alternative hypotheses to be tested.

       6. `'statistic': value of the sample statistic used for testing
          the null hypothesis.

       7. `'distribution': distribution of the sample statistic,
          together with its parameters.

       8. `'p_value': p-value of the test.


     Examples:

     A machine produced 10 defective articles in a batch of 250.  After
     some maintenance work, it produces 4 defective in a batch of 150.
     In order to know if the machine has improved, we test the null
     hypothesis `H0:p1=p2', against the alternative `H0:p1>p2', where
     `p1' and `p2' are the probabilities for one produced article to be
     defective before and after maintenance. According to the p value,
     there is not enough evidence to accept the alternative.

          (%i1) load("stats")$
          (%i2) fpprintprec:7$
          (%i3) test_proportions_difference(10, 250, 4, 150,
                                          alternative = greater);
                |       DIFFERENCE OF PROPORTIONS TEST
                |
                |       proportions = [0.04, .02666667]
                |
                |              conf_level = 0.95
                |
                |      conf_interval = [- .02172761, 1]
                |
          (%o3) | method = Asymptotic test. Yates correction.
                |
                |   hypotheses = H0: p1 = p2 , H1: p1 > p2
                |
                |            statistic = .01333333
                |
                |    distribution = [normal, 0, .01898069]
                |
                |             p_value = .2411936

     Exact standard deviation of the asymptotic normal distribution
     when the data are unknown.

          (%i1) load("stats")$
          (%i2) stats_numer: false$
          (%i3) sol: test_proportions_difference(x1,n1,x2,n2)$
          (%i4) last(take_inference('distribution,sol));
                         1    1                  x2 + x1
                        (-- + --) (x2 + x1) (1 - -------)
                         n2   n1                 n2 + n1
          (%o4)    sqrt(---------------------------------)
                                     n2 + n1


 -- Function: test_sign
          test_sign (<x>)
          test_sign (<x>, <options> ...)
     This is the non parametric sign test for the median of a
     continuous population.  Argument <x> is a list or a column matrix
     containing a one dimensional sample.

     Options:

        * `'alternative', default `'twosided', is the alternative
          hypothesis; valid values are: `'twosided', `'greater' and
          `'less'.

        * `'median', default `0', is the median value to be checked.


     The output of function `test_sign' is an `inference_result' Maxima
     object showing the following results:

       1. `'med_estimate': the sample median.

       2. `'method': inference procedure.

       3. `'hypotheses': null and alternative hypotheses to be tested.

       4. `'statistic': value of the sample statistic used for testing
          the null hypothesis.

       5. `'distribution': distribution of the sample statistic,
          together with its parameter(s).

       6. `'p_value': p-value of the test.


     Examples:

     Checks whether the population from which the sample was taken has
     median 6, against the alternative H_1: median > 6.

          (%i1) load("stats")$
          (%i2) x: [2,0.1,7,1.8,4,2.3,5.6,7.4,5.1,6.1,6]$
          (%i3) test_sign(x,'median=6,'alternative='greater);
                         |                  SIGN TEST
                         |
                         |              med_estimate = 5.1
                         |
                         |      method = Non parametric sign test.
                         |
          (%o3)          | hypotheses = H0: median = 6 , H1: median > 6
                         |
                         |                statistic = 7
                         |
                         |      distribution = [binomial, 10, 0.5]
                         |
                         |         p_value = .05468749999999989


 -- Function: test_signed_rank
          test_signed_rank (<x>)
          test_signed_rank (<x>, <options> ...)
     This is the Wilcoxon signed rank test to make inferences about the
     median of a continuous population. Argument <x> is a list or a
     column matrix containing a one dimensional sample. Performs normal
     approximation if the sample size is greater than 20, or if there
     are zeroes or ties.

     See also `pdf_rank_test' and `cdf_rank_test'

     Options:

        * `'median', default `0', is the median value to be checked.

        * `'alternative', default `'twosided', is the alternative
          hypothesis; valid values are: `'twosided', `'greater' and
          `'less'.


     The output of function `test_signed_rank' is an `inference_result'
     Maxima object with the following results:

       1. `'med_estimate': the sample median.

       2. `'method': inference procedure.

       3. `'hypotheses': null and alternative hypotheses to be tested.

       4. `'statistic': value of the sample statistic used for testing
          the null hypothesis.

       5. `'distribution': distribution of the sample statistic,
          together with its parameter(s).

       6. `'p_value': p-value of the test.


     Examples:

     Checks the null hypothesis H_0: median = 15 against the
     alternative H_1: median > 15. This is an exact test, since there
     are no ties.

          (%i1) load("stats")$
          (%i2) x: [17.1,15.9,13.7,13.4,15.5,17.6]$
          (%i3) test_signed_rank(x,median=15,alternative=greater);
                           |             SIGNED RANK TEST
                           |
                           |           med_estimate = 15.7
                           |
                           |           method = Exact test
                           |
          (%o3)            | hypotheses = H0: med = 15 , H1: med > 15
                           |
                           |              statistic = 14
                           |
                           |     distribution = [signed_rank, 6]
                           |
                           |            p_value = 0.28125

     Checks the null hypothesis H_0: equal(median, 2.5) against the
     alternative H_1: not equal(median, 2.5). This is an approximated
     test, since there are ties.

          (%i1) load("stats")$
          (%i2) y:[1.9,2.3,2.6,1.9,1.6,3.3,4.2,4,2.4,2.9,1.5,3,2.9,4.2,3.1]$
          (%i3) test_signed_rank(y,median=2.5);
                       |                 SIGNED RANK TEST
                       |
                       |                med_estimate = 2.9
                       |
                       |          method = Asymptotic test. Ties
                       |
          (%o3)        |    hypotheses = H0: med = 2.5 , H1: med # 2.5
                       |
                       |                 statistic = 76.5
                       |
                       | distribution = [normal, 60.5, 17.58195097251724]
                       |
                       |           p_value = .3628097734643669


 -- Function: test_rank_sum
          test_rank_sum (<x1>, <x2>)
          test_rank_sum (<x1>, <x2>, <option>)
     This is the Wilcoxon-Mann-Whitney test for comparing the medians
     of two continuous populations. The first two arguments <x1> and
     <x2> are lists or column matrices with the data of two independent
     samples. Performs normal approximation if any of the sample sizes
     is greater than 10, or if there are ties.

     Option:

        * `'alternative', default `'twosided', is the alternative
          hypothesis; valid values are: `'twosided', `'greater' and
          `'less'.


     The output of function `test_rank_sum' is an `inference_result'
     Maxima object with the following results:

       1. `'method': inference procedure.

       2. `'hypotheses': null and alternative hypotheses to be tested.

       3. `'statistic': value of the sample statistic used for testing
          the null hypothesis.

       4. `'distribution': distribution of the sample statistic,
          together with its parameters.

       5. `'p_value': p-value of the test.


     Examples:

     Checks whether populations have similar medians. Samples sizes are
     small and an exact test is made.

          (%i1) load("stats")$
          (%i2) x:[12,15,17,38,42,10,23,35,28]$
          (%i3) y:[21,18,25,14,52,65,40,43]$
          (%i4) test_rank_sum(x,y);
                        |                 RANK SUM TEST
                        |
                        |              method = Exact test
                        |
                        | hypotheses = H0: med1 = med2 , H1: med1 # med2
          (%o4)         |
                        |                 statistic = 22
                        |
                        |        distribution = [rank_sum, 9, 8]
                        |
                        |          p_value = .1995886466474702

     Now, with greater samples and ties, the procedure makes normal
     approximation. The alternative hypothesis is H_1: median1 <
     median2.

          (%i1) load("stats")$
          (%i2) x: [39,42,35,13,10,23,15,20,17,27]$
          (%i3) y: [20,52,66,19,41,32,44,25,14,39,43,35,19,56,27,15]$
          (%i4) test_rank_sum(x,y,'alternative='less);
                       |                  RANK SUM TEST
                       |
                       |          method = Asymptotic test. Ties
                       |
                       |  hypotheses = H0: med1 = med2 , H1: med1 < med2
          (%o4)        |
                       |                 statistic = 48.5
                       |
                       | distribution = [normal, 79.5, 18.95419580097078]
                       |
                       |           p_value = .05096985666598441


 -- Function: test_normality (<x>)
     Shapiro-Wilk test for normality. Argument <x> is a list of
     numbers, and sample size must be greater than 2 and less or equal
     than 5000, otherwise, function `test_normality' signals an error
     message.

     Reference:

     [1] Algorithm AS R94, Applied Statistics (1995), vol.44, no.4,
     547-551

     The output of function `test_normality' is an `inference_result'
     Maxima object with the following results:

       1. `'statistic': value of the <W> statistic.

       2. `'p_value': p-value under normal assumption.


     Examples:

     Checks for the normality of a population, based on a sample of
     size 9.

          (%i1) load("stats")$
          (%i2) x:[12,15,17,38,42,10,23,35,28]$
          (%i3) test_normality(x);
                                 |      SHAPIRO - WILK TEST
                                 |
          (%o3)                  | statistic = .9251055695162436
                                 |
                                 |  p_value = .4361763918860381


 -- Function: linear_regression
          linear_regression (<x>)
          linear_regression (<x> <option>)
     Multivariate linear regression, y_i = b0 + b1*x_1i + b2*x_2i + ...
     + bk*x_ki + u_i, where u_i are N(0,sigma) independent random
     variables.  Argument <x> must be a matrix with more than one
     column. The last column is considered as the responses (y_i).

     Option:

        * `'conflevel', default `95/100', confidence level for the
          confidence intervals; it must be an expression which takes a
          value in (0,1).

     The output of function `linear_regression' is an
     `inference_result' Maxima object with the following results:

       1. `'b_estimation': regression coefficients estimates.

       2. `'b_covariances': covariance matrix of the regression
          coefficients estimates.

       3. `b_conf_int': confidence intervals of the regression
          coefficients.

       4. `b_statistics': statistics for testing coefficient.

       5. `b_p_values': p-values for coefficient tests.

       6. `b_distribution': probability distribution for coefficient
          tests.

       7. `v_estimation': unbiased variance estimator.

       8. `v_conf_int': variance confidence interval.

       9. `v_distribution': probability distribution for variance test.

      10. `residuals': residuals.

      11. `adc': adjusted determination coefficient.

      12. `aic': Akaike's information criterion.

      13. `bic': Bayes's information criterion.


     Only items 1, 4, 5, 6, 7, 8, 9 and 11 above, in this order, are
     shown by default. The rest remain hidden until the user makes use
     of functions `items_inference' and `take_inference'.

     Example:

     Fitting a linear model to a trivariate sample. The last column is
     considered as the responses (y_i).

          (%i2) load("stats")$
          (%i3) X:matrix(
              [58,111,64],[84,131,78],[78,158,83],
              [81,147,88],[82,121,89],[102,165,99],
              [85,174,101],[102,169,102])$
          (%i4) fpprintprec: 4$
          (%i5) res: linear_regression(X);
                       |       LINEAR REGRESSION MODEL
                       |
                       | b_estimation = [9.054, .5203, .2397]
                       |
                       | b_statistics = [.6051, 2.246, 1.74]
                       |
                       | b_p_values = [.5715, .07466, .1423]
                       |
          (%o5)        |   b_distribution = [student_t, 5]
                       |
                       |         v_estimation = 35.27
                       |
                       |     v_conf_int = [13.74, 212.2]
                       |
                       |      v_distribution = [chi2, 5]
                       |
                       |             adc = .7922
          (%i6) items_inference(res);
          (%o6) [b_estimation, b_covariances, b_conf_int, b_statistics,
          b_p_values, b_distribution, v_estimation, v_conf_int,
          v_distribution, residuals, adc, aic, bic]
          (%i7) take_inference('b_covariances, res);
                            [  223.9    - 1.12   - .8532  ]
                            [                             ]
          (%o7)             [ - 1.12    .05367   - .02305 ]
                            [                             ]
                            [ - .8532  - .02305   .01898  ]
          (%i8) take_inference('bic, res);
          (%o8)                          30.98
          (%i9) load("draw")$
          (%i10) draw2d(
              points_joined = true,
              grid = true,
              points(take_inference('residuals, res)) )$



File: maxima.info,  Node: Functions and Variables for special distributions,  Prev: Functions and Variables for stats,  Up: Top

82.4 Functions and Variables for special distributions
======================================================

 -- Function: pdf_signed_rank (<x>, <n>)
     Probability density function of the exact distribution of the
     signed rank statistic. Argument <x> is a real number and <n> a
     positive integer.

     See also `test_signed_rank'.


 -- Function: cdf_signed_rank (<x>, <n>)
     Cumulative density function of the exact distribution of the
     signed rank statistic. Argument <x> is a real number and <n> a
     positive integer.

     See also `test_signed_rank'.


 -- Function: pdf_rank_sum (<x>, <n>, <m>)
     Probability density function of the exact distribution of the rank
     sum statistic. Argument <x> is a real number and <n> and <m> are
     both positive integers.

     See also `test_rank_sum'.


 -- Function: cdf_rank_sum (<x>, <n>, <m>)
     Cumulative density function of the exact distribution of the rank
     sum statistic. Argument <x> is a real number and <n> and <m> are
     both positive integers.

     See also `test_rank_sum'.



File: maxima.info,  Node: stirling-pkg,  Next: stringproc-pkg,  Prev: stats-pkg,  Up: Top

83 stirling
***********

* Menu:

* Functions and Variables for stirling::


File: maxima.info,  Node: Functions and Variables for stirling,  Prev: stirling-pkg,  Up: stirling-pkg

83.1 Functions and Variables for stirling
=========================================

 -- Function: stirling
          stirling (<z>,<n>)
          stirling (<z>,<n>,<pred>)
     Replace `gamma(x)' with the O(1/x^(2n-1)) Stirling formula. when
     <n> isn't a nonnegative integer, signal an error. With the
     optional third argument `pred', the Stirling formula is applied
     only when `pred' is true.

     Reference: Abramowitz & Stegun, " Handbook of mathematical
     functions", 6.1.40.

     Examples:
          (%i1) load (stirling)$

          (%i2) stirling(gamma(%alpha+x)/gamma(x),1);
                 1/2 - x             x + %alpha - 1/2
          (%o2) x        (x + %alpha)
                                             1           1
                                      --------------- - ---- - %alpha
                                      12 (x + %alpha)   12 x
                                    %e
          (%i3) taylor(%,x,inf,1);
                              %alpha       2    %alpha
                    %alpha   x       %alpha  - x       %alpha
          (%o3)/T/ x       + -------------------------------- + . . .
                                           2 x
          (%i4) map('factor,%);
                                                 %alpha - 1
                   %alpha   (%alpha - 1) %alpha x
          (%o4)   x       + -------------------------------
                                            2

     The function `stirling' knows the difference between the variable
     'gamma' and the function gamma:

          (%i5) stirling(gamma + gamma(x),0);
                                              x - 1/2   - x
          (%o5)    gamma + sqrt(2) sqrt(%pi) x        %e
          (%i6) stirling(gamma(y) + gamma(x),0);
                                   y - 1/2   - y
          (%o6) sqrt(2) sqrt(%pi) y        %e
                                                        x - 1/2   - x
                                   + sqrt(2) sqrt(%pi) x        %e

     To apply the Stirling formula only to terms that involve the
     variable `k', use an optional third argument; for example
          (%i7) makegamma(pochhammer(a,k)/pochhammer(b,k));
          (%o7) (gamma(b)*gamma(k+a))/(gamma(a)*gamma(k+b))
          (%i8) stirling(%,1, lambda([s], not(freeof(k,s))));
          (%o8) (%e^(b-a)*gamma(b)*(k+a)^(k+a-1/2)*(k+b)^(-k-b+1/2))/gamma(a)
     The terms `gamma(a)' and `gamma(b)' are free of `k', so the
     Stirling formula was not applied to these two terms.

     To use this function write first `load("stirling")'.



File: maxima.info,  Node: stringproc-pkg,  Next: to_poly_solve-pkg,  Prev: stirling-pkg,  Up: Top

84 stringproc
*************

* Menu:

* Introduction to String Processing::
* Input and Output::
* Characters::
* String Processing::
* Octets and Utilities for Cryptography::


File: maxima.info,  Node: Introduction to String Processing,  Next: Input and Output,  Prev: stringproc-pkg,  Up: stringproc-pkg

84.1 Introduction to String Processing
======================================

The package `stringproc' contains functions for processing strings and
characters including formatting, encoding and data streams.  This
package is completed by some tools for cryptography, e.g. base64 and
hash functions.

   It can be directly loaded via `load(stringproc)' or automatically by
using one of its functions.

   For questions and bug reports please contact the author. The
following command prints his e-mail-address.

   `printf(true, "~{~a~}@gmail.com", split(sdowncase("Volker van
Nek")))$'

   A string is constructed by typing e.g. `"Text"'.  When the option
variable `stringdisp' is set to `false', which is the default, the
double quotes won't be printed.  *Note stringp:: is a test, if an
object is a string.

     (%i1) str: "Text";
     (%o1)                         Text
     (%i2) stringp(str);
     (%o2)                         true

   Characters are represented by a string of length 1.  *Note charp::
is the corresponding test.

     (%i1) char: "e";
     (%o1)                           e
     (%i2) charp(char);
     (%o2)                         true

   In Maxima position indices in strings are like in list 1-indexed
which results to the following consistency.

     (%i1) is(charat("Lisp",1) = charlist("Lisp")[1]);
     (%o1)                         true

   A string may contain Maxima expressions.  These can be parsed with
*Note parse_string::.

     (%i1) map(parse_string, ["42" ,"sqrt(2)", "%pi"]);
     (%o1)                   [42, sqrt(2), %pi]
     (%i2) map('float, %);
     (%o2)        [42.0, 1.414213562373095, 3.141592653589793]

   Strings can be processed as characters or in binary form as octets.
Functions for conversions are *Note string_to_octets:: and *Note
octets_to_string::.  Usable encodings depend on the platform, the
application and the underlying Lisp.  (The following shows Maxima in
GNU/Linux, compiled with SBCL.)

     (%i1) obase: 16.$
     (%i2) string_to_octets("$#Euro ", "cp1252");
     (%o2)                     [24, 0A3, 80]
     (%i3) string_to_octets("$#Euro ", "utf-8");
     (%o3)               [24, 0C2, 0A3, 0E2, 82, 0AC]

   Strings may be written to character streams or as octets to binary
streams.  The following example demonstrates file in and output of
characters.

   *Note openw:: returns an output stream to a file, *Note printf::
writes formatted to that file and by e.g.  *Note close:: all characters
contained in the stream are written to the file.

     (%i1) s: openw("file.txt");
     (%o1)                #<output stream file.txt>
     (%i2) printf(s, "~%~d ~f ~a ~a ~f ~e ~a~%",
     42, 1.234, sqrt(2), %pi, 1.0e-2, 1.0e-2, 1.0b-2)$
     (%i3) close(s)$

   *Note openr:: then returns an input stream from the previously used
file and *Note readline:: returns the line read as a string.  The
string may be tokenized by e.g. *Note split:: or *Note tokens:: and
finally parsed by *Note parse_string::.

     (%i4) s: openr("file.txt");
     (%o4)                 #<input stream file.txt>
     (%i5) readline(s);
     (%o5)          42 1.234 sqrt(2) %pi 0.01 1.0E-2 1.0b-2
     (%i6) map(parse_string, split(%));
     (%o6)       [42, 1.234, sqrt(2), %pi, 0.01, 0.01, 1.0b-2]
     (%i7) close(s)$


File: maxima.info,  Node: Input and Output,  Next: Characters,  Prev: Introduction to String Processing,  Up: stringproc-pkg

84.2 Input and Output
=====================

Example: Formatted printing to a file.

     (%i1) s: openw("file.txt");
     (%o1)                      #<output stream file.txt>
     (%i2) control:
     "~2tAn atom: ~20t~a~%~2tand a list: ~20t~{~r ~}~%~2t\
     and an integer: ~20t~d~%"$
     (%i3) printf( s,control, 'true,[1,2,3],42 )$
     (%o3)                                false
     (%i4) close(s);
     (%o4)                                true
     (%i5) s: openr("file.txt");
     (%o5)                      #<input stream file.txt>
     (%i6) while stringp( tmp:readline(s) ) do print(tmp)$
       An atom:          true
       and a list:       one two three
       and an integer:   42
     (%i7) close(s)$

 -- Function: close (<stream>)
     Closes <stream> and returns `true' if <stream> had been open.


 -- Function: flength (<stream>)
     <stream> has to be an open stream from or to a file.  `flength'
     then returns the number of bytes which are currently present in
     this file.

     Example: See *Note writebyte:: .


 -- Function: flush_output (<stream>)
     Flushes <stream> where <stream> has to be an output stream to a
     file.

     Example: See *Note writebyte:: .


 -- Function: fposition
          fposition (<stream>)
          fposition (<stream>, <pos>)
     Returns the current position in <stream>, if <pos> is not used.
     If <pos> is used, `fposition' sets the position in <stream>.
     <stream> has to be a stream from or to a file and <pos> has to be
     a positive number.

     Positions in data streams are like in strings or lists 1-indexed,
     i.e. the first element in <stream> is in position 1.


 -- Function: freshline
          freshline ()
          freshline (<stream>)
     Writes a new line to the standard output stream if the position is
     not at the beginning of a line und returns `true'.  Using the
     optional argument <stream> the new line is written to that stream.
     There are some cases, where `freshline()' does not work as
     expected.

     See also *Note newline::.


 -- Function: get_output_stream_string (<stream>)
     Returns a string containing all the characters currently present in
     <stream> which must be an open string-output stream.  The returned
     characters are removed from <stream>.

     Example: See *Note make_string_output_stream:: .


 -- Function: make_string_input_stream
          make_string_input_stream (<string>)
          make_string_input_stream (<string>, <start>)
          make_string_input_stream (<string>, <start>, <end>)
     Returns an input stream which contains parts of <string> and an
     end of file.  Without optional arguments the stream contains the
     entire string and is positioned in front of the first character.
     <start> and <end> define the substring contained in the stream.
     The first character is available at position 1.

          (%i1) istream : make_string_input_stream("text", 1, 4);
          (%o1)              #<string-input stream from "text">
          (%i2) (while (c : readchar(istream)) # false do sprint(c), newline())$
          t e x
          (%i3) close(istream)$


 -- Function: make_string_output_stream ()
     Returns an output stream that accepts characters. Characters
     currently present in this stream can be retrieved by *Note
     get_output_stream_string::.

          (%i1) ostream : make_string_output_stream();
          (%o1)               #<string-output stream 09622ea0>
          (%i2) printf(ostream, "foo")$

          (%i3) printf(ostream, "bar")$

          (%i4) string : get_output_stream_string(ostream);
          (%o4)                            foobar
          (%i5) printf(ostream, "baz")$

          (%i6) string : get_output_stream_string(ostream);
          (%o6)                              baz
          (%i7) close(ostream)$


 -- Function: newline
          newline ()
          newline (<stream>)
     Writes a new line to the standard output stream.  Using the
     optional argument <stream> the new line is written to that stream.
     There are some cases, where `newline()' does not work as expected.

     See *Note sprint:: for an example of using `newline()'.


 -- Function: opena (<file>)
     Returns a character output stream to <file>.  If an existing file
     is opened, `opena' appends elements at the end of <file>.

     For binary output see *Note opena_binary: Functions and Variables
     for binary input and output .


 -- Function: openr (<file>)
     Returns a character input stream to <file>.  `openr' assumes that
     <file> already exists.

     For binary input see *Note openr_binary: Functions and Variables
     for binary input and output .


 -- Function: openw (<file>)
     Returns a character output stream to <file>.  If <file> does not
     exist, it will be created.  If an existing file is opened, `openw'
     destructively modifies <file>.

     For binary output see *Note openw_binary: Functions and Variables
     for binary input and output .


 -- Function: printf
          printf (<dest>, <string>)
          printf (<dest>, <string>, <expr_1>, ..., <expr_n>)
     Produces formatted output by outputting the characters of
     control-string <string> and observing that a tilde introduces a
     directive.  The character after the tilde, possibly preceded by
     prefix parameters and modifiers, specifies what kind of formatting
     is desired.  Most directives use one or more elements of the
     arguments <expr_1>, ..., <expr_n> to create their output.

     If <dest> is a stream or `true', then `printf' returns `false'.
     Otherwise, `printf' returns a string containing the output.  By
     default the streams <stdin>, <stdout> and <stderr> are defined.
     If maxima is running as a server (which is the normal case if
     maxima communicating with a graphical user interface)
     `setup-client' will define <old_stdout> and <old_stderr>, too.

     `printf' provides the Common Lisp function `format' in Maxima.
     The following example illustrates the general relation between
     these two functions.

          (%i1) printf(true, "R~dD~d~%", 2, 2);
          R2D2
          (%o1)                                false
          (%i2) :lisp (format t "R~dD~d~%" 2 2)
          R2D2
          NIL

     The following description is limited to a rough sketch of the
     possibilities of `printf'.  The Lisp function `format' is
     described in detail in many reference books.  Of good help is e.g.
     the free available online-manual "Common Lisp the Language" by Guy
     L. Steele. See chapter 22.3.3 there.

             ~%       new line
             ~&       fresh line
             ~t       tab
             ~$       monetary
             ~d       decimal integer
             ~b       binary integer
             ~o       octal integer
             ~x       hexadecimal integer
             ~br      base-b integer
             ~r       spell an integer
             ~p       plural
             ~f       floating point
             ~e       scientific notation
             ~g       ~f or ~e, depending upon magnitude
             ~h       bigfloat
             ~a       uses Maxima function string
             ~s       like ~a, but output enclosed in "double quotes"
             ~~       ~
             ~<       justification, ~> terminates
             ~(       case conversion, ~) terminates
             ~[       selection, ~] terminates
             ~{       iteration, ~} terminates

     The directive ~h for bigfloat is no Lisp-standard and is therefore
     illustrated below.

     Note that the directive ~* is not supported.

     If <dest> is a stream or `true', then `printf' returns `false'.
     Otherwise, `printf' returns a string containing the output.

          (%i1) printf( false, "~a ~a ~4f ~a ~@r",
                        "String",sym,bound,sqrt(12),144), bound = 1.234;
          (%o1)                 String sym 1.23 2*sqrt(3) CXLIV
          (%i2) printf( false,"~{~a ~}",["one",2,"THREE"] );
          (%o2)                          one 2 THREE
          (%i3) printf(true,"~{~{~9,1f ~}~%~}",mat ),
                    mat = args(matrix([1.1,2,3.33],[4,5,6],[7,8.88,9]))$
                1.1       2.0       3.3
                4.0       5.0       6.0
                7.0       8.9       9.0
          (%i4) control: "~:(~r~) bird~p ~[is~;are~] singing."$
          (%i5) printf( false,control, n,n,if n=1 then 1 else 2 ), n=2;
          (%o5)                    Two birds are singing.

     The directive ~h has been introduced to handle bigfloats.

          ~w,d,e,x,o,p@H
           w : width
           d : decimal digits behind floating point
           e : minimal exponent digits
           x : preferred exponent
           o : overflow character
           p : padding character
           @ : display sign for positive numbers

          (%i1) fpprec : 1000$
          (%i2) printf(true, "|~h|~%", 2.b0^-64)$
          |0.0000000000000000000542101086242752217003726400434970855712890625|
          (%i3) fpprec : 26$
          (%i4) printf(true, "|~h|~%", sqrt(2))$
          |1.4142135623730950488016887|
          (%i5) fpprec : 24$
          (%i6) printf(true, "|~h|~%", sqrt(2))$
          |1.41421356237309504880169|
          (%i7) printf(true, "|~28h|~%", sqrt(2))$
          |   1.41421356237309504880169|
          (%i8) printf(true, "|~28,,,,,'*h|~%", sqrt(2))$
          |***1.41421356237309504880169|
          (%i9) printf(true, "|~,18h|~%", sqrt(2))$
          |1.414213562373095049|
          (%i10) printf(true, "|~,,,-3h|~%", sqrt(2))$
          |1414.21356237309504880169b-3|
          (%i11) printf(true, "|~,,2,-3h|~%", sqrt(2))$
          |1414.21356237309504880169b-03|
          (%i12) printf(true, "|~20h|~%", sqrt(2))$
          |1.41421356237309504880169|
          (%i13) printf(true, "|~20,,,,'+h|~%", sqrt(2))$
          |++++++++++++++++++++|


 -- Function: readbyte (<stream>)
     Removes and returns the first byte in <stream> which must be a
     binary input stream.  If the end of file is encountered `readbyte'
     returns `false'.

     Example: Read the first 16 bytes from a file encrypted with AES in
     OpenSSL.

          (%i1) ibase: obase: 16.$

          (%i2) in: openr_binary("msg.bin");
          (%o2)                       #<input stream msg.bin>
          (%i3) (L:[],  thru 16. do push(readbyte(in), L),  L:reverse(L));
          (%o3) [53, 61, 6C, 74, 65, 64, 5F, 5F, 88, 56, 0DE, 8A, 74, 0FD, 0AD, 0F0]
          (%i4) close(in);
          (%o4)                                true
          (%i5) map(ascii, rest(L,-8));
          (%o5)                      [S, a, l, t, e, d, _, _]
          (%i6) salt: octets_to_number(rest(L,8));
          (%o6)                          8856de8a74fdadf0


 -- Function: readchar (<stream>)
     Removes and returns the first character in <stream>.  If the end
     of file is encountered `readchar' returns `false'.

     Example: See *Note make_string_input_stream::.


 -- Function: readline (<stream>)
     Returns a string containing all characters starting at the current
     position in <stream> up to the end of the line or `false' if the
     end of the file is encountered.


 -- Function: sprint (<expr_1>, ..., <expr_n>)
     Evaluates and displays its arguments one after the other `on a
     line' starting at the leftmost position.  The expressions are
     printed with a space character right next to the number, and it
     disregards line length.  `newline()' might be used for line
     breaking.

     Example: Sequential printing with `sprint'.  Creating a new line
     with `newline()'.

          (%i1) for n:0 thru 19 do sprint(fib(n))$
          0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
          (%i2) for n:0 thru 22 do (
                   sprint(fib(n)),
                   if mod(n,10) = 9 then newline() )$
          0 1 1 2 3 5 8 13 21 34
          55 89 144 233 377 610 987 1597 2584 4181
          6765 10946 17711


 -- Function: writebyte (<byte>, <stream>)
     Writes <byte> to <stream> which must be a binary output stream.
     `writebyte' returns `byte'.

     Example: Write some bytes to a binary file output stream.  In this
     example all bytes correspond to printable characters and are
     printed by `printfile'.  The bytes remain in the stream until
     `flush_output' or `close' have been called.

          (%i1) ibase: obase: 16.$

          (%i2) bytes: map(cint, charlist("GNU/Linux"));
          (%o2)                [47, 4E, 55, 2F, 4C, 69, 6E, 75, 78]
          (%i3) out: openw_binary("test.bin");
          (%o3)                      #<output stream test.bin>
          (%i4) for i thru 3 do writebyte(bytes[i], out);
          (%o4)                                done
          (%i5) printfile("test.bin")$

          (%i6) flength(out);
          (%o6)                                  0
          (%i7) flush_output(out);
          (%o7)                                true
          (%i8) flength(out);
          (%o8)                                  3
          (%i9) printfile("test.bin")$
          GNU
          (%i0A) for b in rest(bytes,3) do writebyte(b, out);
          (%o0A)                               done
          (%i0B) close(out);
          (%o0B)                               true
          (%i0C) printfile("test.bin")$
          GNU/Linux



File: maxima.info,  Node: Characters,  Next: String Processing,  Prev: Input and Output,  Up: stringproc-pkg

84.3 Characters
===============

Characters are strings of length 1.

 -- Function: adjust_external_format ()
     Prints information about the current external format of the Lisp
     reader and in case the external format encoding differs from the
     encoding of the application which runs Maxima
     `adjust_external_format' tries to adjust the encoding or prints
     some help or instruction.  `adjust_external_format' returns `true'
     when the external format has been changed and `false' otherwise.

     Functions like *Note cint::, *Note unicode::, *Note
     octets_to_string:: and *Note string_to_octets:: need UTF-8 as the
     external format of the Lisp reader to work properly over the full
     range of Unicode characters.

     Examples (Maxima on Windows, March 2016): Using
     `adjust_external_format' when the default external format is not
     equal to the encoding provided by the application.

     1. Command line Maxima

     In case a terminal session is preferred it is recommended to use
     Maxima compiled with SBCL. Here Unicode support is provided by
     default and calls to `adjust_external_format' are unnecessary.

     If Maxima is compiled with CLISP or GCL it is recommended to change
     the terminal encoding from CP850 to CP1252.
     `adjust_external_format' prints some help.

     CCL reads UTF-8 while the terminal input is CP850 by default.
     CP1252 is not supported by CCL. `adjust_external_format' prints
     instructions for changing the terminal encoding and external format
     both to iso-8859-1.

     2. wxMaxima

     In wxMaxima SBCL reads CP1252 by default but the input from the
     application is UTF-8 encoded. Adjustment is needed.

     Calling `adjust_external_format' and restarting Maxima permanently
     changes the default external format to UTF-8.

          (%i1)adjust_external_format();
          The line
          (setf sb-impl::*default-external-format* :utf-8)
          has been appended to the init file
          C:/Users/Username/.sbclrc
          Please restart Maxima to set the external format to UTF-8.
          (%i1) false

     Restarting Maxima.

          (%i1) adjust_external_format();
          The external format is currently UTF-8
          and has not been changed.
          (%i1) false


 -- Function: alphacharp (<char>)
     Returns `true' if <char> is an alphabetic character.

     To identify a non-US-ASCII character as an alphabetic character
     the underlying Lisp must provide full Unicode support.  E.g. a
     German umlaut is detected as an alphabetic character with SBCL in
     GNU/Linux but not with GCL.  (In Windows Maxima, when compiled
     with SBCL, must be set to UTF-8.  See *Note
     adjust_external_format:: for more.)

     Example: Examination of non-US-ASCII characters.

     The underlying Lisp (SBCL, GNU/Linux) is able to convert the typed
     character into a Lisp character and to examine.

          (%i1) alphacharp("u"");
          (%o1)                          true

     In GCL this is not possible. An error break occurs.

          (%i1) alphacharp("u");
          (%o1)                          true
          (%i2) alphacharp("u"");

          package stringproc: u" cannot be converted into a Lisp character.
           -- an error.


 -- Function: alphanumericp (<char>)
     Returns `true' if <char> is an alphabetic character or a digit
     (only corresponding US-ASCII characters are regarded as digits).

     Note: See remarks on *Note alphacharp::.


 -- Function: ascii (<int>)
     Returns the US-ASCII character corresponding to the integer <int>
     which has to be less than `128'.

     See *Note unicode:: for converting code points larger than `127'.

     Examples:

          (%i1) for n from 0 thru 127 do (
                  ch: ascii(n),
                  if alphacharp(ch) then sprint(ch),
                  if n = 96 then newline() )$
          A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
          a b c d e f g h i j k l m n o p q r s t u v w x y z


 -- Function: cequal (<char_1>, <char_2>)
     Returns `true' if <char_1> and <char_2> are the same character.


 -- Function: cequalignore (<char_1>, <char_2>)
     Like `cequal' but ignores case which is only possible for
     non-US-ASCII characters when the underlying Lisp is able to
     recognize a character as an alphabetic character. See remarks on
     *Note alphacharp::.


 -- Function: cgreaterp (<char_1>, <char_2>)
     Returns `true' if the code point of <char_1> is greater than the
     code point of <char_2>.


 -- Function: cgreaterpignore (<char_1>, <char_2>)
     Like `cgreaterp' but ignores case which is only possible for
     non-US-ASCII characters when the underlying Lisp is able to
     recognize a character as an alphabetic character. See remarks on
     *Note alphacharp::.


 -- Function: charp (<obj>)
     Returns `true' if <obj> is a Maxima-character.  See introduction
     for example.


 -- Function: cint (<char>)
     Returns the Unicode code point of <char> which must be a Maxima
     character, i.e. a string of length `1'.

     Examples: The hexadecimal code point of some characters (Maxima
     with SBCL on GNU/Linux).

          (%i1) obase: 16.$
          (%i2) map(cint, ["$","#","Euro "]);
          (%o2)                           [24, 0A3, 20AC]

     Warning: It is not possible to enter characters corresponding to
     code points larger than 16 bit in wxMaxima with SBCL on Windows
     when the external format has not been set to UTF-8. See *Note
     adjust_external_format::.

     CMUCL doesn't process these characters as one character.  `cint'
     then returns `false'.  Converting a character to a code point via
     UTF-8-octets may serve as a workaround:

     `utf8_to_unicode(string_to_octets(character));'

     See *Note utf8_to_unicode::, *Note string_to_octets::.


 -- Function: clessp (<char_1>, <char_2>)
     Returns `true' if the code point of <char_1> is less than the code
     point of <char_2>.


 -- Function: clesspignore (<char_1>, <char_2>)
     Like `clessp' but ignores case which is only possible for
     non-US-ASCII characters when the underlying Lisp is able to
     recognize a character as an alphabetic character. See remarks on
     *Note alphacharp::.


 -- Function: constituent (<char>)
     Returns `true' if <char> is a graphic character but not a space
     character.  A graphic character is a character one can see, plus
     the space character.  (`constituent' is defined by Paul Graham.
     See Paul Graham, ANSI Common Lisp, 1996, page 67.)

          (%i1) for n from 0 thru 255 do (
          tmp: ascii(n), if constituent(tmp) then sprint(tmp) )$
          ! " #  %  ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B
          C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c
          d e f g h i j k l m n o p q r s t u v w x y z { | } ~


 -- Function: digitcharp (<char>)
     Returns `true' if <char> is a digit where only the corresponding
     US-ASCII-character is regarded as a digit.


 -- Function: lowercasep (<char>)
     Returns `true' if <char> is a lowercase character.

     Note: See remarks on *Note alphacharp::.


 -- Variable: newline
     The newline character (ASCII-character 10).


 -- Variable: space
     The space character.


 -- Variable: tab
     The tab character.


 -- Function: unicode (<arg>)
     Returns the character defined by <arg> which might be a Unicode
     code point or a name string if the underlying Lisp provides full
     Unicode support.

     Example: Characters defined by hexadecimal code points (Maxima
     with SBCL on GNU/Linux).

          (%i1) ibase: 16.$
          (%i2) map(unicode, [24, 0A3, 20AC]);
          (%o2)                            [$, #, Euro ]

     Warning: In wxMaxima with SBCL on Windows it is not possible to
     convert code points larger than 16 bit to characters when the
     external format has not been set to UTF-8. See *Note
     adjust_external_format:: for more information.

     CMUCL doesn't process code points larger than 16 bit.  In these
     cases `unicode' returns `false'.  Converting a code point to a
     character via UTF-8 octets may serve as a workaround:

     `octets_to_string(unicode_to_utf8(code_point));'

     See *Note octets_to_string::, *Note unicode_to_utf8::.

     In case the underlying Lisp provides full Unicode support the
     character might be specified by its name. The following is
     possible in ECL, CLISP and SBCL, where in SBCL on Windows the
     external format has to be set to UTF-8.  `unicode(name)' is
     supported by CMUCL too but again limited to 16 bit characters.

     The string argument to `unicode' is basically the same string
     returned by `printf' using the "~@c" specifier.  But as shown
     below the prefix "#\" must be omitted.  Underlines might be
     replaced by spaces and uppercase letters by lowercase ones.

     Example (continued): Characters defined by names (Maxima with SBCL
     on GNU/Linux).

          (%i3) printf(false, "~@c", unicode(0DF));
          (%o3)                    #\LATIN_SMALL_LETTER_SHARP_S
          (%i4) unicode("LATIN_SMALL_LETTER_SHARP_S");
          (%o4)                                  ss
          (%i5) unicode("Latin small letter sharp s");
          (%o5)                                  ss


 -- Function: unicode_to_utf8 (<code_point>)
     Returns a list containing the UTF-8 code corresponding to the
     Unicode <code_point>.

     Examples: Converting Unicode code points to UTF-8 and vice versa.

          (%i1) ibase: obase: 16.$
          (%i2) map(cint, ["$","#","Euro "]);
          (%o2)                           [24, 0A3, 20AC]
          (%i3) map(unicode_to_utf8, %);
          (%o3)                 [[24], [0C2, 0A3], [0E2, 82, 0AC]]
          (%i4) map(utf8_to_unicode, %);
          (%o4)                           [24, 0A3, 20AC]


 -- Function: uppercasep (<char>)
     Returns `true' if <char> is an uppercase character.

     Note: See remarks on *Note alphacharp::.


 -- Variable: us_ascii_only
     This option variable affects Maxima when the character encoding
     provided by the application which runs Maxima is UTF-8 but the
     external format of the Lisp reader is not equal to UTF-8.

     On GNU/Linux this is true when Maxima is built with GCL and on
     Windows in wxMaxima with GCL- and SBCL-builds.  With SBCL it is
     recommended to change the external format to UTF-8.  Setting
     `us_ascii_only' is unnecessary then.  See *Note
     adjust_external_format:: for details.

     `us_ascii_only' is `false' by default.  Maxima itself then (i.e.
     in the above described situation) parses the UTF-8 encoding.

     When `us_ascii_only' is set to `true' it is assumed that all
     strings used as arguments to string processing functions do not
     contain Non-US-ASCII characters.  Given that promise, Maxima
     avoids parsing UTF-8 and strings can be processed more efficiently.


 -- Function: utf8_to_unicode (<list>)
     Returns a Unicode code point corresponding to the <list> which
     must contain the UTF-8 encoding of a single character.

     Examples: See *Note unicode_to_utf8::.



File: maxima.info,  Node: String Processing,  Next: Octets and Utilities for Cryptography,  Prev: Characters,  Up: stringproc-pkg

84.4 String Processing
======================

Position indices in strings are 1-indexed like in Maxima lists.  See
example in *Note charat::.

 -- Function: charat (<string>, <n>)
     Returns the <n>-th character of <string>.  The first character in
     <string> is returned with <n> = 1.

          (%i1) charat("Lisp",1);
          (%o1)                           L
          (%i2) charlist("Lisp")[1];
          (%o2)                           L


 -- Function: charlist (<string>)
     Returns the list of all characters in <string>.

          (%i1) charlist("Lisp");
          (%o1)                     [L, i, s, p]


 -- Function: eval_string (<str>)
     Parse the string <str> as a Maxima expression and evaluate it.
     The string <str> may or may not have a terminator (dollar sign `$'
     or semicolon `;').  Only the first expression is parsed and
     evaluated, if there is more than one.

     Complain if <str> is not a string.

     Examples:

          (%i1) eval_string ("foo: 42; bar: foo^2 + baz");
          (%o1)                       42
          (%i2) eval_string ("(foo: 42, bar: foo^2 + baz)");
          (%o2)                   baz + 1764

     See also *Note parse_string::.


 -- Function: parse_string (<str>)
     Parse the string <str> as a Maxima expression (do not evaluate it).
     The string <str> may or may not have a terminator (dollar sign `$'
     or semicolon `;').  Only the first expression is parsed, if there
     is more than one.

     Complain if <str> is not a string.

     Examples:

          (%i1) parse_string ("foo: 42; bar: foo^2 + baz");
          (%o1)                    foo : 42
          (%i2) parse_string ("(foo: 42, bar: foo^2 + baz)");
                                             2
          (%o2)          (foo : 42, bar : foo  + baz)

     See also *Note eval_string::.


 -- Function: scopy (<string>)
     Returns a copy of <string> as a new string.


 -- Function: sdowncase
          sdowncase (<string>)
          sdowncase (<string>, <start>)
          sdowncase (<string>, <start>, <end>)
     Like *Note supcase:: but uppercase characters are converted to
     lowercase.


 -- Function: sequal (<string_1>, <string_2>)
     Returns `true' if <string_1> and <string_2> contain the same
     sequence of characters.


 -- Function: sequalignore (<string_1>, <string_2>)
     Like `sequal' but ignores case which is only possible for
     non-US-ASCII characters when the underlying Lisp is able to
     recognize a character as an alphabetic character. See remarks on
     *Note alphacharp::.


 -- Function: sexplode (<string>)
     `sexplode' is an alias for function `charlist'.


 -- Function: simplode
          simplode (<list>)
          simplode (<list>, <delim>)
     `simplode' takes a list of expressions and concatenates them into
     a string.  If no delimiter <delim> is specified, `simplode' uses
     no delimiter.  <delim> can be any string.

     Examples:

          (%i1) simplode(["xx[",3,"]:",expand((x+y)^3)]);
          (%o1)             xx[3]:y^3+3*x*y^2+3*x^2*y+x^3
          (%i2) simplode( sexplode("stars")," * " );
          (%o2)                   s * t * a * r * s
          (%i3) simplode( ["One","more","coffee."]," " );
          (%o3)                   One more coffee.


 -- Function: sinsert (<seq>, <string>, <pos>)
     Returns a string that is a concatenation of `substring(<string>,
     1, <pos>-1)', the string <seq> and `substring (<string>, <pos>)'.
     Note that the first character in <string> is in position 1.

     Examples:

          (%i1) s: "A submarine."$
          (%i2) concat( substring(s,1,3),"yellow ",substring(s,3) );
          (%o2)                  A yellow submarine.
          (%i3) sinsert("hollow ",s,3);
          (%o3)                  A hollow submarine.


 -- Function: sinvertcase
          sinvertcase (<string>)
          sinvertcase (<string>, <start>)
          sinvertcase (<string>, <start>, <end>)
     Returns <string> except that each character from position <start>
     to <end> is inverted.  If <end> is not given, all characters from
     <start> to the end of <string> are replaced.

     Examples:

          (%i1) sinvertcase("sInvertCase");
          (%o1)                      SiNVERTcASE


 -- Function: slength (<string>)
     Returns the number of characters in <string>.


 -- Function: smake (<num>, <char>)
     Returns a new string with a number of <num> characters <char>.

     Example:

          (%i1) smake(3,"w");
          (%o1)                          www


 -- Function: smismatch
          smismatch (<string_1>, <string_2>)
          smismatch (<string_1>, <string_2>, <test>)
     Returns the position of the first character of <string_1> at which
     <string_1> and <string_2> differ or `false'.  Default test
     function for matching is `sequal'.  If `smismatch' should ignore
     case, use `sequalignore' as test.

     Example:

          (%i1) smismatch("seven","seventh");
          (%o1)                           6


 -- Function: split
          split (<string>)
          split (<string>, <delim>)
          split (<string>, <delim>, <multiple>)
     Returns the list of all tokens in <string>.  Each token is an
     unparsed string.  `split' uses <delim> as delimiter.  If <delim>
     is not given, the space character is the default delimiter.
     <multiple> is a boolean variable with `true' by default.  Multiple
     delimiters are read as one.  This is useful if tabs are saved as
     multiple space characters.  If <multiple> is set to `false', each
     delimiter is noted.

     Examples:

          (%i1) split("1.2   2.3   3.4   4.5");
          (%o1)                 [1.2, 2.3, 3.4, 4.5]
          (%i2) split("first;;third;fourth",";",false);
          (%o2)               [first, , third, fourth]


 -- Function: sposition (<char>, <string>)
     Returns the position of the first character in <string> which
     matches <char>.  The first character in <string> is in position 1.
     For matching characters ignoring case see *Note ssearch::.


 -- Function: sremove
          sremove (<seq>, <string>)
          sremove (<seq>, <string>, <test>)
          sremove (<seq>, <string>, <test>, <start>)
          sremove (<seq>, <string>, <test>, <start>, <end>)
     Returns a string like <string> but without all substrings matching
     <seq>.  Default test function for matching is `sequal'.  If
     `sremove' should ignore case while searching for <seq>, use
     `sequalignore' as test.  Use <start> and <end> to limit searching.
     Note that the first character in <string> is in position 1.

     Examples:

          (%i1) sremove("n't","I don't like coffee.");
          (%o1)                   I do like coffee.
          (%i2) sremove ("DO ",%,'sequalignore);
          (%o2)                    I like coffee.


 -- Function: sremovefirst
          sremovefirst (<seq>, <string>)
          sremovefirst (<seq>, <string>, <test>)
          sremovefirst (<seq>, <string>, <test>, <start>)
          sremovefirst (<seq>, <string>, <test>, <start>, <end>)
     Like `sremove' except that only the first substring that matches
     <seq> is removed.


 -- Function: sreverse (<string>)
     Returns a string with all the characters of <string> in reverse
     order.


 -- Function: ssearch
          ssearch (<seq>, <string>)
          ssearch (<seq>, <string>, <test>)
          ssearch (<seq>, <string>, <test>, <start>)
          ssearch (<seq>, <string>, <test>, <start>, <end>)
     Returns the position of the first substring of <string> that
     matches the string <seq>.  Default test function for matching is
     `sequal'.  If `ssearch' should ignore case, use `sequalignore' as
     test.  Use <start> and <end> to limit searching.  Note that the
     first character in <string> is in position 1.

     Example:

          (%i1) ssearch("~s","~{~S ~}~%",'sequalignore);
          (%o1)                                  4


 -- Function: ssort
          ssort (<string>)
          ssort (<string>, <test>)
     Returns a string that contains all characters from <string> in an
     order such there are no two successive characters <c> and <d> such
     that `test (<c>, <d>)' is `false' and `test (<d>, <c>)' is `true'.
     Default test function for sorting is <clessp>.  The set of test
     functions is `{clessp, clesspignore, cgreaterp, cgreaterpignore,
     cequal, cequalignore}'.

     Examples:

          (%i1) ssort("I don't like Mondays.");
          (%o1)                    '.IMaddeiklnnoosty
          (%i2) ssort("I don't like Mondays.",'cgreaterpignore);
          (%o2)                 ytsoonnMlkIiedda.'


 -- Function: ssubst
          ssubst (<new>, <old>, <string>)
          ssubst (<new>, <old>, <string>, <test>)
          ssubst (<new>, <old>, <string>, <test>, <start>)
          ssubst (<new>, <old>, <string>, <test>, <start>, <end>)
     Returns a string like <string> except that all substrings matching
     <old> are replaced by <new>.  <old> and <new> need not to be of
     the same length.  Default test function for matching is `sequal'.
     If `ssubst' should ignore case while searching for old, use
     `sequalignore' as test.  Use <start> and <end> to limit searching.
     Note that the first character in <string> is in position 1.

     Examples:

          (%i1) ssubst("like","hate","I hate Thai food. I hate green tea.");
          (%o1)          I like Thai food. I like green tea.
          (%i2) ssubst("Indian","thai",%,'sequalignore,8,12);
          (%o2)         I like Indian food. I like green tea.


 -- Function: ssubstfirst
          ssubstfirst (<new>, <old>, <string>)
          ssubstfirst (<new>, <old>, <string>, <test>)
          ssubstfirst (<new>, <old>, <string>, <test>, <start>)
          ssubstfirst (<new>, <old>, <string>, <test>, <start>, <end>)
     Like `subst' except that only the first substring that matches
     <old> is replaced.


 -- Function: strim (<seq>,<string>)
     Returns a string like <string>, but with all characters that
     appear in <seq> removed from both ends.

     Examples:

          (%i1) "/* comment */"$
          (%i2) strim(" /*",%);
          (%o2)                        comment
          (%i3) slength(%);
          (%o3)                           7


 -- Function: striml (<seq>, <string>)
     Like `strim' except that only the left end of <string> is trimmed.


 -- Function: strimr (<seq>, <string>)
     Like `strim' except that only the right end of <string> is trimmed.


 -- Function: stringp (<obj>)
     Returns `true' if <obj> is a string.  See introduction for example.


 -- Function: substring
          substring (<string>, <start>)
          substring (<string>, <start>, <end>)
     Returns the substring of <string> beginning at position <start>
     and ending at position <end>.  The character at position <end> is
     not included.  If <end> is not given, the substring contains the
     rest of the string.  Note that the first character in <string> is
     in position 1.

     Examples:

          (%i1) substring("substring",4);
          (%o1)                        string
          (%i2) substring(%,4,6);
          (%o2)                          in


 -- Function: supcase
          supcase (<string>)
          supcase (<string>, <start>)
          supcase (<string>, <start>, <end>)
     Returns <string> except that lowercase characters from position
     <start> to <end> are replaced by the corresponding uppercase ones.
     If <end> is not given, all lowercase characters from <start> to
     the end of <string> are replaced.

     Example:

          (%i1) supcase("english",1,2);
          (%o1)                        English


 -- Function: tokens
          tokens (<string>)
          tokens (<string>, <test>)
     Returns a list of tokens, which have been extracted from <string>.
     The tokens are substrings whose characters satisfy a certain test
     function.  If test is not given, <constituent> is used as the
     default test.  `{constituent, alphacharp, digitcharp, lowercasep,
     uppercasep, charp, characterp, alphanumericp}' is the set of test
     functions.  (The Lisp-version of `tokens' is written by Paul
     Graham. ANSI Common Lisp, 1996, page 67.)

     Examples:

          (%i1) tokens("24 October 2005");
          (%o1)                  [24, October, 2005]
          (%i2) tokens("05-10-24",'digitcharp);
          (%o2)                     [05, 10, 24]
          (%i3) map(parse_string,%);
          (%o3)                      [5, 10, 24]



File: maxima.info,  Node: Octets and Utilities for Cryptography,  Prev: String Processing,  Up: stringproc-pkg

84.5 Octets and Utilities for Cryptography
==========================================

 -- Function: base64 (<arg>)
     Returns the base64-representation of <arg> as a string.  The
     argument <arg> may be a string, a non-negative integer or a list
     of octets.

     Examples:

          (%i1) base64: base64("foo bar baz");
          (%o1)                          Zm9vIGJhciBiYXo=
          (%i2) string: base64_decode(base64);
          (%o2)                            foo bar baz
          (%i3) obase: 16.$
          (%i4) integer: base64_decode(base64, 'number);
          (%o4)                       666f6f206261722062617a
          (%i5) octets: base64_decode(base64, 'list);
          (%o5)            [66, 6F, 6F, 20, 62, 61, 72, 20, 62, 61, 7A]
          (%i6) ibase: 16.$
          (%i7) base64(octets);
          (%o7)                          Zm9vIGJhciBiYXo=

     Note that if <arg> contains umlauts (resp. octets larger than 127)
     the resulting base64-string is platform dependend.  However the
     decoded string will be equal to the original.


 -- Function: base64_decode
          base64_decode (<base64-string>)
          base64_decode (<base64-string>, <return-type>)
     By default `base64_decode' decodes the <base64-string> back to the
     original string.

     The optional argument <return-type> allows `base64_decode' to
     alternatively return the corresponding number or list of octets.
     <return-type> may be `string', `number' or `list'.

     Example: See *Note base64::.


 -- Function: crc24sum
          crc24sum (<octets>)
          crc24sum (<octets>, <return-type>)
     By default `crc24sum' returns the `CRC24' checksum of an octet-list
     as a string.

     The optional argument <return-type> allows `crc24sum' to
     alternatively return the corresponding number or list of octets.
     <return-type> may be `string', `number' or `list'.

     Example:

          -----BEGIN PGP SIGNATURE-----
          Version: GnuPG v2.0.22 (GNU/Linux)

          iQEcBAEBAgAGBQJVdCTzAAoJEG/1Mgf2DWAqCSYH/AhVFwhu1D89C3/QFcgVvZTM
          wnOYzBUURJAL/cT+IngkLEpp3hEbREcugWp+Tm6aw3R4CdJ7G3FLxExBH/5KnDHi
          rBQu+I7+3ySK2hpryQ6Wx5J9uZSa4YmfsNteR8up0zGkaulJeWkS4pjiRM+auWVe
          vajlKZCIK52P080DG7Q2dpshh4fgTeNwqCuCiBhQ73t8g1IaLdhDN6EzJVjGIzam
          /spqT/sTo6sw8yDOJjvU+Qvn6/mSMjC/YxjhRMaQt9EMrR1AZ4ukBF5uG1S7mXOH
          WdiwkSPZ3gnIBhM9SuC076gLWZUNs6NqTeE3UzMjDAFhH3jYk1T7mysCvdtIkms=
          =WmeC
          -----END PGP SIGNATURE-----

          (%i1) ibase : obase : 16.$
          (%i2) sig64 : sconcat(
           "iQEcBAEBAgAGBQJVdCTzAAoJEG/1Mgf2DWAqCSYH/AhVFwhu1D89C3/QFcgVvZTM",
           "wnOYzBUURJAL/cT+IngkLEpp3hEbREcugWp+Tm6aw3R4CdJ7G3FLxExBH/5KnDHi",
           "rBQu+I7+3ySK2hpryQ6Wx5J9uZSa4YmfsNteR8up0zGkaulJeWkS4pjiRM+auWVe",
           "vajlKZCIK52P080DG7Q2dpshh4fgTeNwqCuCiBhQ73t8g1IaLdhDN6EzJVjGIzam",
           "/spqT/sTo6sw8yDOJjvU+Qvn6/mSMjC/YxjhRMaQt9EMrR1AZ4ukBF5uG1S7mXOH",
           "WdiwkSPZ3gnIBhM9SuC076gLWZUNs6NqTeE3UzMjDAFhH3jYk1T7mysCvdtIkms=" )$
          (%i3) octets: base64_decode(sig64, 'list)$
          (%i4) crc24: crc24sum(octets, 'list);
          (%o4)                          [5A, 67, 82]
          (%i5) base64(crc24);
          (%o5)                              WmeC


 -- Function: md5sum
          md5sum (<arg>)
          md5sum (<arg>, <return-type>)
     Returns the `MD5' checksum of a string, a non-negative integer or
     a list of octets. The default return value is a string containing
     32 hex characters.

     The optional argument <return-type> allows `md5sum' to
     alternatively return the corresponding number or list of octets.
     <return-type> may be `string', `number' or `list'.

     Examples:

          (%i1) ibase: obase: 16.$
          (%i2) msg: "foo bar baz"$
          (%i3) string: md5sum(msg);
          (%o3)                  ab07acbb1e496801937adfa772424bf7
          (%i4) integer: md5sum(msg, 'number);
          (%o4)                 0ab07acbb1e496801937adfa772424bf7
          (%i5) octets: md5sum(msg, 'list);
          (%o5)        [0AB,7,0AC,0BB,1E,49,68,1,93,7A,0DF,0A7,72,42,4B,0F7]
          (%i6) sdowncase( printf(false, "~{~2,'0x~^:~}", octets) );
          (%o6)           ab:07:ac:bb:1e:49:68:01:93:7a:df:a7:72:42:4b:f7

     Note that in case <arg> contains German umlauts or other non-ASCII
     characters (resp. octets larger than 127) the `MD5' checksum is
     platform dependend.


 -- Function: mgf1_sha1
          mgf1_sha1 (<seed>, <len>)
          mgf1_sha1 (<seed>, <len>, <return-type>)
     Returns a pseudo random number of variable length.  By default the
     returned value is a number with a length of <len> octets.

     The optional argument <return-type> allows `mgf1_sha1' to
     alternatively return the corresponding list of <len> octets.
     <return-type> may be `number' or `list'.

     The computation of the returned value is described in `RFC 3447',
     appendix `B.2.1 MGF1'.  `SHA1' ist used as hash function, i.e. the
     randomness of the computed number relies on the randomness of
     `SHA1' hashes.

     Example:

          (%i1) ibase: obase: 16.$
          (%i2) number: mgf1_sha1(4711., 8);
          (%o2)                        0e0252e5a2a42fea1
          (%i3) octets: mgf1_sha1(4711., 8, 'list);
          (%o3)                  [0E0,25,2E,5A,2A,42,0FE,0A1]


 -- Function: number_to_octets (<number>)
     Returns an octet-representation of <number> as a list of octets.
     The <number> must be a non-negative integer.

     Example:

          (%i1) ibase : obase : 16.$
          (%i2) octets: [0ca,0fe,0ba,0be]$
          (%i3) number: octets_to_number(octets);
          (%o3)                            0cafebabe
          (%i4) number_to_octets(number);
          (%o4)                      [0CA, 0FE, 0BA, 0BE]


 -- Function: octets_to_number (<octets>)
     Returns a number by concatenating the octets in the list of
     <octets>.

     Example: See *Note number_to_octets::.


 -- Function: octets_to_oid (<octets>)
     Computes an object identifier (OID) from the list of <octets>.

     Example: RSA encryption OID

          (%i1) ibase : obase : 16.$
          (%i2) oid: octets_to_oid([2A,86,48,86,0F7,0D,1,1,1]);
          (%o2)                      1.2.840.113549.1.1.1
          (%i3) oid_to_octets(oid);
          (%o3)               [2A, 86, 48, 86, 0F7, 0D, 1, 1, 1]


 -- Function: octets_to_string
          octets_to_string (<octets>)
          octets_to_string (<octets>, <encoding>)
     Decodes the list of <octets> into a string according to current
     system defaults.  When decoding octets corresponding to
     Non-US-ASCII characters the result depends on the platform,
     application and underlying Lisp.

     Example: Using system defaults (Maxima compiled with GCL, which
     uses no format definition and simply passes through the
     UTF-8-octets encoded by the GNU/Linux terminal).

          (%i1) octets: string_to_octets("abc");
          (%o1)                            [61, 62, 63]
          (%i2) octets_to_string(octets);
          (%o2)                                 abc
          (%i3) ibase: obase: 16.$
          (%i4) unicode(20AC);
          (%o4)                                  Euro
          (%i5) octets: string_to_octets(%);
          (%o5)                           [0E2, 82, 0AC]
          (%i6) octets_to_string(octets);
          (%o6)                                  Euro
          (%i7) utf8_to_unicode(octets);
          (%o7)                                20AC

     In case the external format of the Lisp reader is equal to UTF-8
     the optional argument <encoding> allows to set the encoding for
     the octet to string conversion.  If necessary see *Note
     adjust_external_format:: for changing the external format.

     Some names of supported encodings (see corresponding Lisp manual
     for more):
     CCL, CLISP, SBCL: `utf-8, ucs-2be, ucs-4be, iso-8859-1, cp1252,
     cp850'
     CMUCL: `utf-8, utf-16-be, utf-32-be, iso8859-1, cp1252'
     ECL: `utf-8, ucs-2be, ucs-4be, iso-8859-1, windows-cp1252,
     dos-cp850'

     Example (continued): Using the optional encoding argument (Maxima
     compiled with SBCL, GNU/Linux terminal).

          (%i8) string_to_octets("Euro ", "ucs-2be");
          (%o8)                              [20, 0AC]


 -- Function: oid_to_octets (<oid-string>)
     Convertes an object identifier (OID) to a list of <octets>.

     Example: See *Note octets_to_oid::.


 -- Function: sha1sum
          sha1sum (<arg>)
          sha1sum (<arg>, <return-type>)
     Returns the `SHA1' fingerprint of a string, a non-negative integer
     or a list of octets. The default return value is a string
     containing 40 hex characters.

     The optional argument <return-type> allows `sha1sum' to
     alternatively return the corresponding number or list of octets.
     <return-type> may be `string', `number' or `list'.

     Example:

          (%i1) ibase: obase: 16.$
          (%i2) msg: "foo bar baz"$
          (%i3) string: sha1sum(msg);
          (%o3)              c7567e8b39e2428e38bf9c9226ac68de4c67dc39
          (%i4) integer: sha1sum(msg, 'number);
          (%o4)             0c7567e8b39e2428e38bf9c9226ac68de4c67dc39
          (%i5) octets: sha1sum(msg, 'list);
          (%o5)  [0C7,56,7E,8B,39,0E2,42,8E,38,0BF,9C,92,26,0AC,68,0DE,4C,67,0DC,39]
          (%i6) sdowncase( printf(false, "~{~2,'0x~^:~}", octets) );
          (%o6)     c7:56:7e:8b:39:e2:42:8e:38:bf:9c:92:26:ac:68:de:4c:67:dc:39

     Note that in case <arg> contains German umlauts or other non-ASCII
     characters (resp. octets larger than 127) the `SHA1' fingerprint
     is platform dependend.


 -- Function: sha256sum
          sha256sum (<arg>)
          sha256sum (<arg>, <return-type>)
     Returns the `SHA256' fingerprint of a string, a non-negative
     integer or a list of octets. The default return value is a string
     containing 64 hex characters.

     The optional argument <return-type> allows `sha256sum' to
     alternatively return the corresponding number or list of octets
     (see *Note sha1sum::).

     Example:

          (%i1) string: sha256sum("foo bar baz");
          (%o1)  dbd318c1c462aee872f41109a4dfd3048871a03dedd0fe0e757ced57dad6f2d7

     Note that in case <arg> contains German umlauts or other non-ASCII
     characters (resp. octets larger than 127) the `SHA256' fingerprint
     is platform dependend.


 -- Function: string_to_octets
          string_to_octets (<string>)
          string_to_octets (<string>, <encoding>)
     Encodes a <string> into a list of octets according to current
     system defaults.  When encoding strings containing Non-US-ASCII
     characters the result depends on the platform, application and
     underlying Lisp.

     In case the external format of the Lisp reader is equal to UTF-8
     the optional argument <encoding> allows to set the encoding for
     the string to octet conversion.  If necessary see *Note
     adjust_external_format:: for changing the external format.

     See *Note octets_to_string:: for examples and some more
     information.



File: maxima.info,  Node: to_poly_solve-pkg,  Next: unit-pkg,  Prev: stringproc-pkg,  Up: Top

85 to_poly_solve
****************

* Menu:

* Functions and Variables for to_poly_solve::


File: maxima.info,  Node: Functions and Variables for to_poly_solve,  Prev: to_poly_solve-pkg,  Up: to_poly_solve-pkg

85.1 Functions and Variables for to_poly_solve
==============================================

The packages `to_poly' and `to_poly_solve' are experimental; the
specifications of the functions in these packages might change or the
some of the functions in these packages might be merged into other
Maxima functions.

   Barton Willis (Professor of Mathematics, University of Nebraska at
Kearney) wrote the `to_poly' and `to_poly_solve' packages and the
English language user documentation for these packages.

 -- Operator: %and
     The operator `%and' is a simplifying nonshort-circuited logical
     conjunction.  Maxima simplifies an `%and' expression to either
     true, false, or a logically equivalent, but simplified,
     expression.  The operator `%and' is associative, commutative, and
     idempotent.  Thus when `%and' returns a noun form, the arguments
     of `%and' form a non-redundant sorted list; for example

          (%i1) a %and (a %and b);
          (%o1)                       a %and b

     If one argument to a conjunction is the explicit the negation of
     another argument, `%and' returns false:

          (%i2) a %and (not a);
          (%o2)                         false

     If any member of the conjunction is false, the conjunction
     simplifies to false even if other members are manifestly
     non-boolean; for example

          (%i3) 42 %and false;
          (%o3)                         false

     Any argument of an `%and' expression that is an inequation (that
     is, an inequality or equation), is simplified using the Fourier
     elimination package.  The Fourier elimination simplifier has a
     pre-processor that converts some, but not all, nonlinear
     inequations into linear inequations; for example the Fourier
     elimination code simplifies `abs(x) + 1 > 0' to true, so

          (%i4) (x < 1) %and (abs(x) + 1 > 0);
          (%o4)                         x < 1

     Notes
        * The option variable `prederror' does not alter the
          simplification `%and' expressions.

        * To avoid operator precedence errors, compound expressions
          involving the operators `%and, %or', and `not' should be
          fully parenthesized.

        * The Maxima operators `and' and `or' are both short-circuited.
          Thus `and' isn't associative or commutative.


     Limitations The conjunction `%and' simplifies inequations locally,
     not globally.  This means that conjunctions such as

          (%i5) (x < 1) %and (x > 1);
          (%o5)                 (x > 1) %and (x < 1)

     do not simplify to false.  Also, the Fourier elimination code
     ignores the fact database;

          (%i6) assume(x > 5);
          (%o6)                        [x > 5]
          (%i7) (x > 1) %and (x > 2);
          (%o7)                 (x > 1) %and (x > 2)

     Finally, nonlinear inequations that aren't easily converted into an
     equivalent linear inequation aren't simplified.

     There is no support for distributing `%and' over `%or'; neither is
     there support for distributing a logical negation over `%and'.

     To use `load(to_poly_solve)'

     Related functions `%or, %if, and, or, not'

     Status The operator `%and' is experimental; the specifications of
     this function might change and its functionality might be merged
     into other Maxima functions.


 -- Operator: %if (<bool>, <a>, <b>)
     The operator `%if' is a simplifying conditional.  The conditional
     <bool> should be boolean-valued.  When the conditional is true,
     return the second argument; when the conditional is false, return
     the third; in all other cases, return a noun form.

     Maxima inequations (either an inequality or an equality) are not
     boolean-valued; for example, Maxima does not simplify 5 < 6 to
     true, and it does not simplify 5 = 6 to false; however, in the
     context of a conditional to an `%if' statement, Maxima
     automatically attempts to determine the truth value of an
     inequation.  Examples:

          (%i1) f : %if(x # 1, 2, 8);
          (%o1)                 %if(x - 1 # 0, 2, 8)
          (%i2) [subst(x = -1,f), subst(x=1,f)];
          (%o2)                        [2, 8]

     If the conditional involves an inequation, Maxima simplifies it
     using the Fourier elimination package.

     Notes

        * If the conditional is manifestly non-boolean, Maxima returns
          a noun form:

          (%i3) %if(42,1,2);
          (%o3)                     %if(42, 1, 2)

        * The Maxima operator `if' is nary, the operator `%if' isn't
          nary.

     Limitations The Fourier elimination code only simplifies nonlinear
     inequations that are readily convertible to an equivalent linear
     inequation.

     To use: `load(to_poly_solve)'

     Status: The operator `%if' is experimental; its specifications
     might change and its functionality might be merged into other
     Maxima functions.


 -- Operator: %or
     The operator `%or' is a simplifying nonshort-circuited logical
     disjunction.  Maxima simplifies an `%or' expression to either
     true, false, or a logically equivalent, but simplified,
     expression.  The operator `%or' is associative, commutative, and
     idempotent.  Thus when `%or' returns a noun form, the arguments of
     `%or' form a non-redundant sorted list; for example

          (%i1) a %or (a %or b);
          (%o1)                        a %or b

     If one member of the disjunction is the explicit the negation of
     another member, `%or' returns true:

          (%i2) a %or (not a);
          (%o2)                         true

     If any member of the disjunction is true, the disjunction
     simplifies to true even if other members of the disjunction are
     manifestly non-boolean; for example

          (%i3) 42 %or true;
          (%o3)                         true

     Any argument of an `%or' expression that is an inequation (that
     is, an inequality or equation), is simplified using the Fourier
     elimination package.  The Fourier elimination code simplifies
     `abs(x) + 1 > 0' to true, so we have

          (%i4) (x < 1) %or (abs(x) + 1 > 0);
          (%o4)                         true

     Notes
        * The option variable `prederror' does not alter the
          simplification of `%or' expressions.

        * You should parenthesize compound expressions involving the
          operators `%and, %or', and `not'; the binding powers of these
          operators might not match your expectations.

        * The Maxima operators `and' and `or' are both short-circuited.
          Thus `or' isn't associative or commutative.


     Limitations The conjunction `%or' simplifies inequations locally,
     not globally.  This means that conjunctions such as

          (%i1) (x < 1) %or (x >= 1);
          (%o1) (x > 1) %or (x >= 1)

     do not simplify to true.  Further, the Fourier elimination code
     ignores the fact database;

          (%i2) assume(x > 5);
          (%o2)                        [x > 5]
          (%i3) (x > 1) %and (x > 2);
          (%o3)                 (x > 1) %and (x > 2)

     Finally, nonlinear inequations that aren't easily converted into an
     equivalent linear inequation aren't simplified.

     The algorithm that looks for terms that cannot both be false is
     weak; also there is no support for distributing `%or' over `%and';
     neither is there support for distributing a logical negation over
     `%or'.

     To use `load(to_poly_solve)'

     Related functions `%or, %if, and, or, not'

     Status The operator `%or' is experimental; the specifications of
     this function might change and its functionality might be merged
     into other Maxima functions.


 -- Function: complex_number_p (<x>)
     The predicate `complex_number_p' returns true if its argument is
     either `a + %i * b', `a', `%i b', or `%i', where `a' and `b' are
     either rational or floating point numbers (including big floating
     point); for all other inputs, `complex_number_p' returns false;
     for example

          (%i1) map('complex_number_p,[2/3, 2 + 1.5 * %i, %i]);
          (%o1)                  [true, true, true]
          (%i2) complex_number_p((2+%i)/(5-%i));
          (%o2)                         false
          (%i3) complex_number_p(cos(5 - 2 * %i));
          (%o3)                         false

     Related functions `isreal_p'

     To use `load(to_poly_solve)'

     Status The operator `complex_number_p' is experimental; its
     specifications might change and its functionality might be merged
     into other Maxima functions.


 -- Function: compose_functions (<l>)
     The function call `compose_functions(l)' returns a lambda form
     that is the composition of the functions in the list <l>.  The
     functions are applied from right to left; for example

          (%i1) compose_functions([cos, exp]);
                                                  %g151
          (%o1)             lambda([%g151], cos(%e     ))
          (%i2) %(x);
                                            x
          (%o2)                       cos(%e )

     When the function list is empty, return the identity function:

          (%i3) compose_functions([]);
          (%o3)                lambda([%g152], %g152)
          (%i4)  %(x);
          (%o4)                           x

     Notes
        * When Maxima determines that a list member isn't a symbol or a
          lambda form, `funmake' (not `compose_functions') signals an
          error:

          (%i5) compose_functions([a < b]);

          funmake: first argument must be a symbol, subscripted symbol,
          string, or lambda expression; found: a < b
          #0: compose_functions(l=[a < b])(to_poly_solve.mac line 40)
           -- an error. To debug this try: debugmode(true);

        * To avoid name conflicts, the independent variable is
          determined by the function `new_variable'.

               (%i6) compose_functions([%g0]);
               (%o6)              lambda([%g154], %g0(%g154))
               (%i7) compose_functions([%g0]);
               (%o7)              lambda([%g155], %g0(%g155))

          Although the independent variables are different, Maxima is
          able to to deduce that these lambda forms are semantically
          equal:

               (%i8) is(equal(%o6,%o7));
               (%o8)                         true

     To use `load(to_poly_solve)'

     Status  The function `compose_functions' is experimental; its
     specifications might change and its functionality might be merged
     into other Maxima functions.

 -- Function: dfloat (<x>)
     The function `dfloat' is a similar to `float', but the function
     `dfloat' applies `rectform' when `float' fails to evaluate to an
     IEEE double floating point number; thus

          (%i1) float(4.5^(1 + %i));
                                         %i + 1
          (%o1)                       4.5
          (%i2) dfloat(4.5^(1 + %i));
          (%o2)        4.48998802962884 %i + .3000124893895671

     Notes

        * The rectangular form of an expression might be poorly suited
          for numerical evaluation-for example, the rectangular form
          might needlessly involve the difference of floating point
          numbers (subtractive cancellation).

        * The identifier `float' is both an option variable (default
          value false) and a function name.


     Related functions `float, bfloat'

     To use `load(to_poly_solve)'

     Status The function `dfloat' is experimental; its specifications
     might change and its functionality might be merged into other
     Maxima functions.


 -- Function: elim (<l>, <x>)
     The function `elim' eliminates the variables in the set or list
     `x' from the equations in the set or list `l'.  Each member of `x'
     must be a symbol; the members of `l' can either be equations, or
     expressions that are assumed to equal zero.

     The function `elim' returns a list of two lists; the first is the
     list of expressions with the variables eliminated; the second is
     the list of pivots; thus, the second list is a list of expressions
     that `elim' used to eliminate the variables.

     Here is a example of eliminating between linear equations:

          (%i1) elim(set(x + y + z = 1, x - y  - z = 8, x - z = 1),
                     set(x,y));
          (%o1)            [[2 z - 7], [y + 7, z - x + 1]]

     Eliminating `x' and `y' yields the single equation `2 z - 7 = 0';
     the equations `y + 7 = 0' and `z - z + 1 = 1' were used as pivots.
     Eliminating all three variables from these equations,
     triangularizes the linear system:

          (%i2) elim(set(x + y + z = 1, x - y  - z = 8, x - z = 1),
                     set(x,y,z));
          (%o2)           [[], [2 z - 7, y + 7, z - x + 1]]

     Of course, the equations needn't be linear:

          (%i3) elim(set(x^2 - 2 * y^3 = 1,  x - y = 5), [x,y]);
                               3    2
          (%o3)       [[], [2 y  - y  - 10 y - 24, y - x + 5]]

     The user doesn't control the order the variables are eliminated.
     Instead, the algorithm uses a heuristic to attempt to choose the
     best pivot and the best elimination order.

     Notes

        * Unlike the related function `eliminate', the function `elim'
          does not invoke `solve' when the number of equations equals
          the number of variables.

        * The function `elim' works by applying resultants; the option
          variable `resultant' determines which algorithm Maxima uses.
          Using `sqfr', Maxima factors each resultant and suppresses
          multiple zeros.

        * The `elim' will triangularize a nonlinear set of polynomial
          equations; the solution set of the triangularized set can be
          larger than that solution set of the untriangularized set.
          Thus, the triangularized equations can have spurious
          solutions.

     Related functions elim_allbut, eliminate_using, eliminate

     Option variables resultant

     To use `load(to_poly)'

     Status The function `elim' is experimental; its specifications
     might change and its functionality might be merged into other
     Maxima functions.


 -- Function: elim_allbut (<l>, <x>)
     This function is similar to `elim', except that it eliminates all
     the variables in the list of equations `l' except for those
     variables that in in the list `x'

          (%i1) elim_allbut([x+y = 1, x - 5*y = 1],[]);
          (%o1)                 [[], [y, y + x - 1]]
          (%i2) elim_allbut([x+y = 1, x - 5*y = 1],[x]);
          (%o2)                [[x - 1], [y + x - 1]]

     To use `load(to_poly)'

     Option variables resultant

     Related functions elim, eliminate_using, eliminate

     Status The function `elim_allbut' is experimental; its
     specifications might change and its functionality might be merged
     into other Maxima functions.


 -- Function: eliminate_using (<l>, <e>, <x>)
     Using `e' as the pivot, eliminate the symbol `x' from the list or
     set of equations in `l'.  The function `eliminate_using' returns a
     set.

          (%i1) eq : [x^2 - y^2 - z^3 , x*y - z^2 - 5, x - y + z];
                         3    2    2     2
          (%o1)      [- z  - y  + x , - z  + x y - 5, z - y + x]
          (%i2) eliminate_using(eq,first(eq),z);
                  3              2      2      3    2
          (%o2) {y  + (1 - 3 x) y  + 3 x  y - x  - x ,
                                  4    3  3       2  2             4
                                 y  - x  y  + 13 x  y  - 75 x y + x  + 125}
          (%i3) eliminate_using(eq,second(eq),z);
                  2            2       4    3  3       2  2             4
          (%o3) {y  - 3 x y + x  + 5, y  - x  y  + 13 x  y  - 75 x y + x
                                                                     + 125}
          (%i4) eliminate_using(eq, third(eq),z);
                  2            2       3              2      2      3    2
          (%o4) {y  - 3 x y + x  + 5, y  + (1 - 3 x) y  + 3 x  y - x  - x }

     Option variables resultant

     Related functions elim, eliminate, elim_allbut

     To use `load(to_poly)'

     Status The function `eliminate_using' is experimental; its
     specifications might change and its functionality might be merged
     into other Maxima functions.


 -- Function: fourier_elim ([<eq1>, <eq2>, ...], [<var1>, <var>, ...])
     Fourier elimination is the analog of Gauss elimination for linear
     inequations (equations or inequalities).  The function call
     `fourier_elim([eq1, eq2, ...], [var1, var2, ...])' does Fourier
     elimination on a list of linear inequations `[eq1, eq2, ...]' with
     respect to the variables `[var1, var2, ...]'; for example

          (%i1) fourier_elim([y-x < 5, x - y < 7, 10 < y],[x,y]);
          (%o1)            [y - 5 < x, x < y + 7, 10 < y]
          (%i2) fourier_elim([y-x < 5, x - y < 7, 10 < y],[y,x]);
          (%o2)        [max(10, x - 7) < y, y < x + 5, 5 < x]

     Eliminating first with respect to x and second with respect to y
     yields lower and upper bounds for x that depend on y, and lower
     and upper bounds for y that are numbers.  Eliminating in the other
     order gives x dependent lower and upper bounds for y, and
     numerical lower and upper bounds for x.

     When necessary, `fourier_elim' returns a _disjunction_ of lists of
     inequations:

          (%i3) fourier_elim([x # 6],[x]);
          (%o3)                  [x < 6] or [6 < x]

     When the solution set is empty,  `fourier_elim' returns `emptyset',
     and when the solution set is all reals, `fourier_elim' returns
     `universalset'; for example

          (%i4) fourier_elim([x < 1, x > 1],[x]);
          (%o4)                       emptyset
          (%i5) fourier_elim([minf < x, x < inf],[x]);
          (%o5)                     universalset

     For nonlinear inequations, `fourier_elim' returns a (somewhat)
     simplified list of inequations:

          (%i6) fourier_elim([x^3 - 1 > 0],[x]);
                         2                             2
          (%o6) [1 < x, x  + x + 1 > 0] or [x < 1, - (x  + x + 1) > 0]
          (%i7) fourier_elim([cos(x) < 1/2],[x]);
          (%o7)                  [1 - 2 cos(x) > 0]

     Instead of a list of inequations, the first argument to
     `fourier_elim' may be a logical disjunction or conjunction:

          (%i8) fourier_elim((x + y < 5) and (x - y >8),[x,y]);
                                                        3
          (%o8)            [y + 8 < x, x < 5 - y, y < - -]
                                                        2
          (%i9) fourier_elim(((x + y < 5) and x < 1) or  (x - y >8),[x,y]);
          (%o9)          [y + 8 < x] or [x < min(1, 5 - y)]

     The function `fourier_elim' supports the inequation operators `<,
     <=, >, >=, #', and `='.

     The Fourier elimination code has a preprocessor that converts some
     nonlinear inequations that involve the absolute value, minimum, and
     maximum functions into linear in equations.  Additionally, the
     preprocessor handles some expressions that are the product or
     quotient of linear terms:

          (%i10) fourier_elim([max(x,y) > 6, x # 8, abs(y-1) > 12],[x,y]);
          (%o10) [6 < x, x < 8, y < - 11] or [8 < x, y < - 11]
           or [x < 8, 13 < y] or [x = y, 13 < y] or [8 < x, x < y, 13 < y]
           or [y < x, 13 < y]
          (%i11) fourier_elim([(x+6)/(x-9) <= 6],[x]);
          (%o11)           [x = 12] or [12 < x] or [x < 9]
          (%i12) fourier_elim([x^2 - 1 # 0],[x]);
          (%o12)      [- 1 < x, x < 1] or [1 < x] or [x < - 1]

     To use `load(fourier_elim)'


 -- Function: isreal_p (<e>)
     The predicate `isreal_p' returns true when Maxima is able to
     determine that `e' is real-valued on the entire real line; it
     returns false when Maxima is able to determine that `e' isn't
     real-valued on some nonempty subset of the real line; and it
     returns a noun form for all other cases.

          (%i1) map('isreal_p, [-1, 0, %i, %pi]);
          (%o1)               [true, true, false, true]

     Maxima variables are assumed to be real; thus

          (%i2) isreal_p(x);
          (%o2)                         true

     The function `isreal_p' examines the fact database:

          (%i3) declare(z,complex)$

          (%i4) isreal_p(z);
          (%o4)                      isreal_p(z)

     Limitations Too often, `isreal_p' returns a noun form when it
     should be able to return false; a simple example: the logarithm
     function isn't real-valued on the entire real line, so
     `isreal_p(log(x))' should return false; however

          (%i5) isreal_p(log(x));
          (%o5)                   isreal_p(log(x))

     To use `load(to_poly_solve)'

     Related functions complex_number_p

     Status The function `isreal_p' is experimental; its specifications
     might change and its functionality might be merged into other
     Maxima functions.

 -- Function: new_variable (type)
     Return a unique symbol of the form `%[z,n,r,c,g]k', where `k' is
     an integer.  The allowed values for type are integer,
     natural_number, real, natural_number, and general.  (By natural
     number, we mean the nonnegative integers; thus zero is a natural
     number.  Some, but not all,definitions of natural number exclude
     zero.)

     When type isn't one of the allowed values, type defaults to
     general.  For integers, natural numbers, and complex numbers,
     Maxima automatically appends this information to the fact database.

          (%i1) map('new_variable,
                    ['integer, 'natural_number, 'real, 'complex, 'general]);
          (%o1)          [%z144, %n145, %r146, %c147, %g148]
          (%i2) nicedummies(%);
          (%o2)               [%z0, %n0, %r0, %c0, %g0]
          (%i3) featurep(%z0, 'integer);
          (%o3)                         true
          (%i4) featurep(%n0, 'integer);
          (%o4)                         true
          (%i5) is(%n0 >= 0);
          (%o5)                         true
          (%i6) featurep(%c0, 'complex);
          (%o6)                         true

     Note Generally, the argument to `new_variable' should be quoted.
     The quote will protect against errors similar to

          (%i7) integer : 12$

          (%i8) new_variable(integer);
          (%o8)                         %g149
          (%i9) new_variable('integer);
          (%o9)                         %z150

     Related functions nicedummies

     To use `load(to_poly_solve)'

     Status The function `new_variable' is experimental; its
     specifications might change and its functionality might be merged
     into other Maxima functions.


 -- Function: nicedummies
     Starting with zero, the function `nicedummies' re-indexes the
     variables in an expression that were introduced by `new_variable';

          (%i1) new_variable('integer) + 52 * new_variable('integer);
          (%o1)                   52 %z136 + %z135
          (%i2) new_variable('integer) - new_variable('integer);
          (%o2)                     %z137 - %z138
          (%i3) nicedummies(%);
          (%o3)                       %z0 - %z1

     Related functions new_variable

     To use `load(to_poly_solve)'

     Status The function `nicedummies' is experimental; its
     specifications might change and its functionality might be merged
     into other Maxima functions.


 -- Function: parg (<x>)
     The function `parg' is a simplifying version of the complex
     argument function `carg'; thus

          (%i1) map('parg,[1,1+%i,%i, -1 + %i, -1]);
                                  %pi  %pi  3 %pi
          (%o1)               [0, ---, ---, -----, %pi]
                                   4    2     4

     Generally, for a non-constant input, `parg' returns a noun form;
     thus

          (%i2) parg(x + %i * sqrt(x));
          (%o2)                 parg(x + %i sqrt(x))

     When `sign' can determine that the input is a positive or negative
     real number, `parg' will return a non-noun form for a non-constant
     input.  Here are two examples:

          (%i3) parg(abs(x));
          (%o3) 0
          (%i4) parg(-x^2-1);
          (%o4)                          %pi

     Note The `sign' function mostly ignores the variables that are
     declared to be complex (`declare(x,complex)'); for variables that
     are declared to be complex, the `parg' can return incorrect
     values; for example

          (%i1) declare(x,complex)$

          (%i2) parg(x^2 + 1);
          (%o2) 0

     Related function carg, isreal_p

     To use `load(to_poly_solve)'

     Status The function `parg' is experimental; its specifications
     might change and its functionality might be merged into other
     Maxima functions.


 -- Function: real_imagpart_to_conjugate (<e>)
     The function `real_imagpart_to_conjugate' replaces all occurrences
     of `realpart' and `imagpart' to algebraically equivalent
     expressions involving the `conjugate'.

          (%i1) declare(x, complex)$

          (%i2) real_imagpart_to_conjugate(realpart(x) +  imagpart(x) = 3);
                    conjugate(x) + x   %i (x - conjugate(x))
          (%o2)     ---------------- - --------------------- = 3
                           2                     2

     To use `load(to_poly_solve)'

     Status The function `real_imagpart_to_conjugate' is experimental;
     its specifications might change and its functionality might be
     merged into other Maxima functions.


 -- Function: rectform_log_if_constant (<e>)
     The function `rectform_log_if_constant' converts all terms of the
     form ` log(c)' to  `rectform(log(c))', where `c' is either a
     declared constant expression or explicitly declared constant

          (%i1) rectform_log_if_constant(log(1-%i) - log(x - %i));
                                           log(2)   %i %pi
          (%o1)            - log(x - %i) + ------ - ------
                                             2        4
          (%i2) declare(a,constant, b,constant)$

          (%i3) rectform_log_if_constant(log(a + %i*b));
                                 2    2
                            log(b  + a )
          (%o3)             ------------ + %i atan2(b, a)
                                 2

     To use `load(to_poly_solve)'

     Status The function `rectform_log_if_constant' is experimental;
     the specifications of this function might change might change and
     its functionality might be merged into other Maxima functions.


 -- Function: simp_inequality (<e>)
     The function `simp_inequality' applies some simplifications to
     conjunctions and disjunctions of inequations.

     Limitations The function `simp_inequality' is limited in at least
     two ways; first, the simplifications are local; thus

          (%i1) simp_inequality((x > minf) %and (x < 0));
          (%o1) (x>1) %and (x<1)

     And second, `simp_inequality' doesn't consult the fact database:

          (%i2) assume(x > 0)$

          (%i3) simp_inequality(x > 0);
          (%o3)                         x > 0

     To use `load(fourier_elim)'

     Status The function `simp_inequality' is experimental; its
     specifications might change and its functionality might be merged
     into other Maxima functions.


 -- Function: standardize_inverse_trig (<e>)
     This function applies the identities `cot(x) = atan(1/x), acsc(x)
     = asin(1/x),' and similarly for `asec, acoth, acsch' and `asech'
     to an expression.  See Abramowitz and Stegun, Eqs. 4.4.6 through
     4.4.8 and 4.6.4 through 4.6.6.

     To use `load(to_poly_solve)'

     Status The function `standardize_inverse_trig' is experimental; its
     specifications might change and its functionality might be merged
     into other Maxima functions.

 -- Function: subst_parallel (<l>, <e>)
     When `l' is a single equation or a list of equations, substitute
     the right hand side of each equation for the left hand side.  The
     substitutions are made in parallel; for example

          (%i1) load(to_poly_solve)$

          (%i2) subst_parallel([x=y,y=x], [x,y]);
          (%o2)                        [y, x]

     Compare this to substitutions made serially:

          (%i3) subst([x=y,y=x],[x,y]);
          (%o3)                        [x, x]

     The function `subst_parallel' is similar to `sublis' except that
     `subst_parallel' allows for substitution of nonatoms; for example

          (%i4) subst_parallel([x^2 = a, y = b], x^2 * y);
          (%o4)                          a b
          (%i5) sublis([x^2 = a, y = b], x^2 * y);

                                                                       2
          sublis: left-hand side of equation must be a symbol; found: x
           -- an error. To debug this try: debugmode(true);

     The substitutions made by `subst_parallel' are literal, not
     semantic; thus `subst_parallel' does not recognize that x * y is a
     subexpression of x^2 * y

          (%i6) subst_parallel([x * y = a], x^2 * y);
                                         2
          (%o6)                         x  y

     The function `subst_parallel' completes all substitutions before
     simplifications.  This allows for substitutions into conditional
     expressions where errors might occur if the simplifications were
     made earlier:

          (%i7) subst_parallel([x = 0], %if(x < 1, 5, log(x)));
          (%o7)                           5
          (%i8) subst([x = 0], %if(x < 1, 5, log(x)));

          log: encountered log(0).
           -- an error. To debug this try: debugmode(true);

     Related functions subst, sublis, ratsubst

     To use `load(to_poly_solve_extra.lisp)'

     Status The function `subst_parallel' is experimental; the
     specifications of this function might change might change and its
     functionality might be merged into other Maxima functions.


 -- Function: to_poly (<e>, <l>)
     The function `to_poly' attempts to convert the equation `e' into a
     polynomial system along with inequality constraints; the solutions
     to the polynomial system that satisfy the constraints are
     solutions to the equation `e'.  Informally, `to_poly' attempts to
     polynomialize the equation <e>; an example might clarify:

          (%i1) load(to_poly_solve)$

          (%i2) to_poly(sqrt(x) = 3, [x]);
                                      2
          (%o2) [[%g130 - 3, x = %g130 ],
                                %pi                               %pi
                             [- --- < parg(%g130), parg(%g130) <= ---], []]
                                 2                                 2

     The conditions `-%pi/2<parg(%g130),parg(%g130)<=%pi/2' tell us that
     `%g130' is in the range of the square root function.  When this is
     true, the solution set to `sqrt(x) = 3' is the same as the
     solution set to `%g130-3,x=%g130^2'.

     To polynomialize trigonometric expressions, it is necessary to
     introduce a non algebraic substitution; these non algebraic
     substitutions are returned in the third list returned by
     `to_poly'; for example

          (%i3) to_poly(cos(x),[x]);
                          2                                 %i x
          (%o3)    [[%g131  + 1], [2 %g131 # 0], [%g131 = %e    ]]

     Constant terms aren't polynomializied unless the number one is a
     member of the variable list; for example

          (%i4) to_poly(x = sqrt(5),[x]);
          (%o4)                [[x - sqrt(5)], [], []]
          (%i5) to_poly(x = sqrt(5),[1,x]);
                                      2
          (%o5) [[x - %g132, 5 = %g132 ],
                                %pi                               %pi
                             [- --- < parg(%g132), parg(%g132) <= ---], []]
                                 2                                 2

     To generate a polynomial with sqrt(5) + sqrt(7) as one of its
     roots, use the commands

          (%i6) first(elim_allbut(first(to_poly(x = sqrt(5) + sqrt(7),
                                                [1,x])), [x]));
                                    4       2
          (%o6)                   [x  - 24 x  + 4]

     Related functions to_poly_solve

     To use `load(to_poly)'

     Status: The function `to_poly' is experimental; its specifications
     might change and its functionality might be merged into other
     Maxima functions.


 -- Function: to_poly_solve (<e>, <l>, [options])
     The function `to_poly_solve' tries to solve the equations e for
     the variables l.  The equation(s) e can either be a single
     expression or a set or list of expressions; similarly, l can
     either be a single symbol or a list of set of symbols.  When a
     member of e isn't explicitly an equation, for example x^2 -1, the
     solver asummes that the expression vanishes.

     The basic strategy of `to_poly_solve' is to convert the input into
     a polynomial form and to call `algsys' on the polynomial system.
     Internally  `to_poly_solve' defaults `algexact' to true. To change
     the default for `algexact', append 'algexact=false to the
     `to_poly_solve' argument list.

     When `to_poly_solve' is able to determine the solution set, each
     member of the solution set is a list in a `%union' object:

          (%i1) load(to_poly_solve)$

          (%i2) to_poly_solve(x*(x-1) = 0, x);
          (%o2)               %union([x = 0], [x = 1])

     When  `to_poly_solve' is unable to determine the solution set, a
     `%solve' nounform is returned (in this case, a warning is printed)

          (%i3) to_poly_solve(x^k + 2* x + 1 = 0, x);

          Nonalgebraic argument given to 'to_poly'
          unable to solve
                                    k
          (%o3)            %solve([x  + 2 x + 1 = 0], [x])

     Subsitution into a `%solve' nounform can sometimes result in the
     solution

          (%i4) subst(k = 2, %);
          (%o4)                   %union([x = - 1])

     Especially for trigonometric equations, the solver sometimes needs
     to introduce an arbitrary integer.  These arbitrary integers have
     the form `%zXXX', where `XXX' is an integer; for example

          (%i5) to_poly_solve(sin(x) = 0, x);
          (%o5)   %union([x = 2 %pi %z33 + %pi], [x = 2 %pi %z35])

     To re-index these variables to zero, use `nicedummies':

          (%i6) nicedummies(%);
          (%o6)    %union([x = 2 %pi %z0 + %pi], [x = 2 %pi %z1])

     Occasionally, the solver introduces an arbitrary complex number of
     the form `%cXXX' or an  arbitrary real number of the form `%rXXX'.
     The function `nicedummies' will re-index these identifiers to zero.

     The solution set sometimes involves simplifing versions of various
     of logical operators including `%and', `%or', or `%if' for
     conjunction, disjuntion, and implication, respectively; for example

          (%i7) sol : to_poly_solve(abs(x) = a, x);
          (%o7) %union(%if(isnonnegative_p(a), [x = - a], %union()),
                                %if(isnonnegative_p(a), [x = a], %union()))
          (%i8) subst(a = 42, sol);
          (%o8)             %union([x = - 42], [x = 42])
          (%i9) subst(a = -42, sol);
          (%o9)                       %union()

     The empty set is represented by `%union'.

     The function `to_poly_solve' is able to solve some, but not all,
     equations involving rational powers, some nonrational powers,
     absolute values, trigonometric functions, and minimum and maximum.
     Also, some it can solve some equations that are solvable in in
     terms of the Lambert W function; some examples:

          (%i1) load(to_poly_solve)$

          (%i2) to_poly_solve(set(max(x,y) = 5, x+y = 2), set(x,y));
          (%o2)      %union([x = - 3, y = 5], [x = 5, y = - 3])
          (%i3) to_poly_solve(abs(1-abs(1-x)) = 10,x);
          (%o3)             %union([x = - 10], [x = 12])
          (%i4) to_poly_solve(set(sqrt(x) + sqrt(y) = 5, x + y = 10),
                              set(x,y));
                               3/2               3/2
                              5    %i - 10      5    %i + 10
          (%o4) %union([x = - ------------, y = ------------],
                                   2                 2
                                          3/2                 3/2
                                         5    %i + 10        5    %i - 10
                                    [x = ------------, y = - ------------])
                                              2                   2
          (%i5) to_poly_solve(cos(x) * sin(x) = 1/2,x,
                              'simpfuncs = ['expand, 'nicedummies]);
                                                   %pi
          (%o5)              %union([x = %pi %z0 + ---])
                                                    4
          (%i6) to_poly_solve(x^(2*a) + x^a + 1,x);
                                                  2 %i %pi %z81
                                                  -------------
                                            1/a         a
                            (sqrt(3) %i - 1)    %e
          (%o6) %union([x = -----------------------------------],
                                            1/a
                                           2
                                                            2 %i %pi %z83
                                                            -------------
                                                      1/a         a
                                    (- sqrt(3) %i - 1)    %e
                               [x = -------------------------------------])
                                                     1/a
                                                    2
          (%i7) to_poly_solve(x * exp(x) = a, x);
          (%o7)              %union([x = lambert_w(a)])

     For linear inequalities, `to_poly_solve' automatically does Fourier
     elimination:

          (%i8) to_poly_solve([x + y < 1, x - y >= 8], [x,y]);
                                         7
          (%o8) %union([x = y + 8, y < - -],
                                         2
                                                                        7
                                           [y + 8 < x, x < 1 - y, y < - -])
                                                                        2

     Each optional argument to `to_poly_solve' must be an equation;
     generally, the order of these options does not matter.

        * `simpfuncs = l', where `l' is a list of functions.  Apply the
          composition of the members of l to each solution.

               (%i1) to_poly_solve(x^2=%i,x);
                                              1/4             1/4
               (%o1)       %union([x = - (- 1)   ], [x = (- 1)   ])
               (%i2) to_poly_solve(x^2= %i,x, 'simpfuncs = ['rectform]);
                                     %i         1             %i         1
               (%o2) %union([x = - ------- - -------], [x = ------- + -------])
                                   sqrt(2)   sqrt(2)        sqrt(2)   sqrt(2)

          Sometimes additional simplification can revert a
          simplification; for example

               (%i3) to_poly_solve(x^2=1,x);
               (%o3)              %union([x = - 1], [x = 1])
               (%i4) to_poly_solve(x^2= 1,x, 'simpfuncs = [polarform]);
                                                       %i %pi
               (%o4)            %union([x = 1], [x = %e      ]

          Maxima doesn't try to check that each member of the function
          list `l' is purely a simplification; thus

               (%i5) to_poly_solve(x^2 = %i,x, 'simpfuncs = [lambda([s],s^2)]);
               (%o5)                   %union([x = %i])

          To convert each solution to a double float, use `simpfunc =
          ['dfloat]':

               (%i6) to_poly_solve(x^3 +x + 1 = 0,x,
                                   'simpfuncs = ['dfloat]), algexact : true;
               (%o6) %union([x = - .6823278038280178],
               [x = .3411639019140089 - 1.161541399997251 %i],
               [x = 1.161541399997251 %i + .3411639019140089])

        * `use_grobner = true' With this option, the function
          `poly_reduced_grobner' is applied to the equations before
          attempting their solution.  Primarily, this option provides a
          workaround for weakness in the function `algsys'.  Here is an
          example of such a workaround:

               (%i7) to_poly_solve([x^2+y^2=2^2,(x-1)^2+(y-1)^2=2^2],[x,y],
                                   'use_grobner = true);
                                   sqrt(7) - 1      sqrt(7) + 1
               (%o7) %union([x = - -----------, y = -----------],
                                        2                2
                                                sqrt(7) + 1        sqrt(7) - 1
                                           [x = -----------, y = - -----------])
                                                     2                  2
               (%i8) to_poly_solve([x^2+y^2=2^2,(x-1)^2+(y-1)^2=2^2],[x,y]);
               (%o8)                       %union()

        * `maxdepth = k', where `k' is a positive integer.  This
          function controls the maximum recursion depth for the solver.
          The default value for `maxdepth' is five.  When the
          recursions depth is exceeded, the solver signals an error:

               (%i9) to_poly_solve(cos(x) = x,x, 'maxdepth = 2);

               Unable to solve
               Unable to solve
               (%o9)        %solve([cos(x) = x], [x], maxdepth = 2)

        * `parameters = l', where `l' is a list of symbols.  The solver
          attempts to return a solution that is valid for all members
          of the list `l'; for example:

               (%i10) to_poly_solve(a * x = x, x);
               (%o10)                   %union([x = 0])
               (%i11) to_poly_solve(a * x = x, x, 'parameters = [a]);
               (%o11) %union(%if(a - 1 = 0, [x = %c111], %union()),
                                              %if(a - 1 # 0, [x = 0], %union()))

          In `(%o2)', the solver introduced a dummy variable; to
          re-index the these dummy variables, use the function
          `nicedummies':

               (%i12) nicedummies(%);
               (%o12) %union(%if(a - 1 = 0, [x = %c0], %union()),
                                              %if(a - 1 # 0, [x = 0], %union()))

     The `to_poly_solve' uses data stored in the hashed array
     `one_to_one_reduce' to solve equations of the form f(a) = f(b).
     The assignment `one_to_one_reduce['f,'f] : lambda([a,b], a=b)'
     tells `to_poly_solve' that the solution set of f(a) = f(b) equals
     the solution set of a=b; for example

          (%i13) one_to_one_reduce['f,'f] : lambda([a,b], a=b)$

          (%i14) to_poly_solve(f(x^2-1) = f(0),x);
          (%o14)             %union([x = - 1], [x = 1])

     More generally, the assignment `one_to_one_reduce['f,'g] :
     lambda([a,b], w(a, b) = 0' tells `to_poly_solve' that the solution
     set of f(a) = f(b) equals the solution set of w(a,b) = 0; for
     example

          (%i15) one_to_one_reduce['f,'g] : lambda([a,b], a = 1 + b/2)$

          (%i16) to_poly_solve(f(x) - g(x),x);
          (%o16)                   %union([x = 2])

     Additionally, the function `to_poly_solve' uses data stored in the
     hashed array `function_inverse' to solve equations of the form
     f(a) = b.  The assignment `function_inverse['f] : lambda([s],
     g(s))' informs  `to_poly_solve' that the solution set to `f(x) =
     b' equals the solution set to `x = g(b)'; two examples:

          (%i17) function_inverse['Q] : lambda([s], P(s))$

          (%i18) to_poly_solve(Q(x-1) = 2009,x);
          (%o18)              %union([x = P(2009) + 1])
          (%i19) function_inverse['G] : lambda([s], s+new_variable(integer));
          (%o19)       lambda([s], s + new_variable(integer))
          (%i20) to_poly_solve(G(x - a) = b,x);
          (%o20)             %union([x = b + a + %z125])

     Notes

        * The solve variables needn't be symbols; when `fullratsubst' is
          able to appropriately make substitutions, the solve variables
          can be nonsymbols:

          (%i1) to_poly_solve([x^2 + y^2 + x * y = 5, x * y = 8],
                              [x^2 + y^2, x * y]);
                                            2    2
          (%o1)           %union([x y = 8, y  + x  = - 3])

        * For equations that involve complex conjugates, the solver
          automatically appends the conjugate equations; for example

          (%i1) declare(x,complex)$

          (%i2) to_poly_solve(x + (5 + %i) * conjugate(x) = 1, x);
                                             %i + 21
          (%o2)              %union([x = - -----------])
                                           25 %i - 125
          (%i3) declare(y,complex)$

          (%i4) to_poly_solve(set(conjugate(x) - y = 42 + %i,
                                  x + conjugate(y) = 0), set(x,y));
                                     %i - 42        %i + 42
          (%o4)        %union([x = - -------, y = - -------])
                                        2              2

        * For an equation that involves the absolute value function, the
          `to_poly_solve' consults the fact database to decide if the
          argument to the absolute value is complex valued.  When

               (%i1) to_poly_solve(abs(x) = 6, x);
               (%o1)              %union([x = - 6], [x = 6])
               (%i2) declare(z,complex)$

               (%i3) to_poly_solve(abs(z) = 6, z);
               (%o3) %union(%if((%c11 # 0) %and (%c11 conjugate(%c11) - 36 =
                                                      0), [z = %c11], %union()))

          This is the only situation that the solver consults the fact
          database.  If a solve variable is declared to be an integer,
          for example, `to_poly_solve' ignores this declaration.

     Relevant option variables algexact, resultant, algebraic

     Related functions to_poly

     To use `load(to_poly_solve)'

     Status: The function `to_poly_solve' is experimental; its
     specifications might change and its functionality might be merged
     into other Maxima functions.


File: maxima.info,  Node: unit-pkg,  Next: zeilberger-pkg,  Prev: to_poly_solve-pkg,  Up: Top

86 unit
*******

* Menu:

* Introduction to Units::
* Functions and Variables for Units::


File: maxima.info,  Node: Introduction to Units,  Next: Functions and Variables for Units,  Prev: unit-pkg,  Up: unit-pkg

86.1 Introduction to Units
==========================

The _unit_ package enables the user to convert between arbitrary units
and work with dimensions in equations. The functioning of this package
is radically different from the original Maxima units package - whereas
the original was a basic list of definitions, this package uses
rulesets to allow the user to chose, on a per dimension basis, what
unit final answers should be rendered in.  It will separate units
instead of intermixing them in the display, allowing the user to
readily identify the units associated with a particular answer.  It
will allow a user to simplify an expression to its fundamental Base
Units, as well as providing fine control over simplifying to derived
units.  Dimensional analysis is possible, and a variety of tools are
available to manage conversion and simplification options. In addition
to customizable automatic conversion, _units_ also provides a
traditional manual conversion option.

   Note - when unit conversions are inexact Maxima will make
approximations resulting in fractions. This is a consequence of the
techniques used to simplify units.  The messages warning of this type
of substitution are disabled by default in the case of units (normally
they are on) since this situation occurs frequently and the warnings
clutter the output.  (The existing state of ratprint is restored after
unit conversions, so user changes to that setting will be preserved
otherwise.)  If  the user needs this information for units, they can set
_unitverbose:on_ to reactivate the printing of warnings from the unit
conversion process.

   _unit_ is included in Maxima in the share/contrib/unit directory. It
obeys normal Maxima package loading conventions:

     (%i1) load("unit")$
     *******************************************************************
     *                       Units version 0.50                        *
     *          Definitions based on the NIST Reference on             *
     *              Constants, Units, and Uncertainty                  *
     *       Conversion factors from various sources including         *
     *                   NIST and the GNU units package                *
     *******************************************************************

     Redefining necessary functions...
     WARNING: DEFUN/DEFMACRO: redefining function TOPLEVEL-MACSYMA-EVAL ...
     WARNING: DEFUN/DEFMACRO: redefining function MSETCHK ...
     WARNING: DEFUN/DEFMACRO: redefining function KILL1 ...
     WARNING: DEFUN/DEFMACRO: redefining function NFORMAT ...
     Initializing unit arrays...
     Done.

   The WARNING messages are expected and not a cause for concern - they
indicate the _unit_ package is redefining functions already defined in
Maxima proper.  This is necessary in order to properly handle units.
The user should be aware that if other changes have been made to these
functions by other packages those changes will be overwritten by this
loading process.

   The _unit.mac_ file also loads a lisp file _unit-functions.lisp_
which contains the lisp functions needed for the package.

   Clifford Yapp is the primary author.  He has received valuable
assistance from Barton Willis of the University of Nebraska at Kearney
(UNK), Robert Dodier, and other intrepid folk of the Maxima mailing
list.

   There are probably lots of bugs.  Let me know.  `float' and `numer'
don't do what is expected.

   TODO : dimension functionality, handling of temperature, showabbr
and friends.  Show examples with addition of quantities containing
units.


File: maxima.info,  Node: Functions and Variables for Units,  Prev: Introduction to Units,  Up: unit-pkg

86.2 Functions and Variables for Units
======================================

 -- Function: setunits (<list>)
     By default, the _unit_ package does not use any derived
     dimensions, but will convert all units to the seven fundamental
     dimensions using MKS units.
          (%i2) N;
                                               kg m
          (%o2)                                ----
                                                 2
                                                s
          (%i3) dyn;
                                             1      kg m
          (%o3)                           (------) (----)
                                           100000     2
                                                     s
          (%i4) g;
                                              1
          (%o4)                             (----) (kg)
                                             1000
          (%i5) centigram*inch/minutes^2;
                                            127        kg m
          (%o5)                       (-------------) (----)
                                       1800000000000     2
                                                        s

     In some cases this is the desired behavior.  If the user wishes to
     use other units, this is achieved with the `setunits' command:
          (%i6) setunits([centigram,inch,minute]);
          (%o6)                                done
          (%i7) N;
                                      1800000000000   %in cg
          (%o7)                      (-------------) (------)
                                           127            2
                                                      %min
          (%i8) dyn;
                                         18000000   %in cg
          (%o8)                         (--------) (------)
                                           127          2
                                                    %min
          (%i9) g;
          (%o9)                             (100) (cg)
          (%i10) centigram*inch/minutes^2;
                                              %in cg
          (%o10)                              ------
                                                  2
                                              %min

     The setting of units is quite flexible.  For example, if we want to
     get back to kilograms, meters, and seconds as defaults for those
     dimensions we can do:
          (%i11) setunits([kg,m,s]);
          (%o11)                               done
          (%i12) centigram*inch/minutes^2;
                                            127        kg m
          (%o12)                      (-------------) (----)
                                       1800000000000     2
                                                        s

     Derived units are also handled by this command:
          (%i17) setunits(N);
          (%o17)                               done
          (%i18) N;
          (%o18)                                 N
          (%i19) dyn;
                                              1
          (%o19)                           (------) (N)
                                            100000
          (%i20) kg*m/s^2;
          (%o20)                                 N
          (%i21) centigram*inch/minutes^2;
                                              127
          (%o21)                        (-------------) (N)
                                         1800000000000

     Notice that the _unit_ package recognized the non MKS combination
     of mass, length, and inverse time squared as a force, and
     converted it to Newtons.  This is how Maxima works in general.
     If, for example, we prefer dyne to Newtons, we simply do the
     following:
          (%i22) setunits(dyn);
          (%o22)                               done
          (%i23) kg*m/s^2;
          (%o23)                          (100000) (dyn)
          (%i24) centigram*inch/minutes^2;
                                            127
          (%o24)                         (--------) (dyn)
                                          18000000

     To discontinue simplifying to any force, we use the uforget
     command:
          (%i26) uforget(dyn);
          (%o26)                               false
          (%i27) kg*m/s^2;
                                               kg m
          (%o27)                               ----
                                                 2
                                                s
          (%i28) centigram*inch/minutes^2;
                                            127        kg m
          (%o28)                      (-------------) (----)
                                       1800000000000     2
                                                        s
     This would have worked equally well with `uforget(N)' or
     `uforget(%force)'.

     See also `uforget'. To use this function write first
     `load("unit")'.


 -- Function: uforget (<list>)
     By default, the _unit_ package converts all units to the seven
     fundamental dimensions using MKS units. This behavior can be
     changed with the `setunits' command. After that, the user can
     restore the default behavior for a particular dimension by means
     of the `uforget' command:
          (%i13) setunits([centigram,inch,minute]);
          (%o13)                               done
          (%i14) centigram*inch/minutes^2;
                                              %in cg
          (%o14)                              ------
                                                  2
                                              %min
          (%i15) uforget([cg,%in,%min]);
          (%o15)                      [false, false, false]
          (%i16) centigram*inch/minutes^2;
                                            127        kg m
          (%o16)                      (-------------) (----)
                                       1800000000000     2
                                                        s

     `uforget' operates on dimensions, not units, so any unit of a
     particular dimension will work.  The dimension itself is also a
     legal argument.

     See also `setunits'. To use this function write first
     `load("unit")'.


 -- Function: convert (<expr>, <list>)
     When resetting the global environment is overkill, there is the
     `convert' command, which allows one time conversions.  It can
     accept either a single argument or a list of units to use in
     conversion.  When a convert operation is done, the normal global
     evaluation system is bypassed, in order to avoid the desired
     result being converted again.  As a consequence, for inexact
     calculations "rat" warnings will be visible if the global
     environment controlling this behavior (`ratprint') is true.  This
     is also useful for spot-checking the accuracy of a global
     conversion.  Another feature is `convert' will allow a user to do
     Base Dimension conversions even if the global environment is set to
     simplify to a Derived Dimension.

          (%i2) kg*m/s^2;
                                               kg m
          (%o2)                                ----
                                                 2
                                                s
          (%i3) convert(kg*m/s^2,[g,km,s]);
                                               g km
          (%o3)                                ----
                                                 2
                                                s
          (%i4) convert(kg*m/s^2,[g,inch,minute]);

          `rat' replaced 39.37007874015748 by 5000/127 = 39.37007874015748
                                        18000000000   %in g
          (%o4)                        (-----------) (-----)
                                            127           2
                                                      %min
          (%i5) convert(kg*m/s^2,[N]);
          (%o5)                                  N
          (%i6) convert(kg*m^2/s^2,[N]);
          (%o6)                                 m N
          (%i7) setunits([N,J]);
          (%o7)                                done
          (%i8) convert(kg*m^2/s^2,[N]);
          (%o8)                                 m N
          (%i9) convert(kg*m^2/s^2,[N,inch]);

          `rat' replaced 39.37007874015748 by 5000/127 = 39.37007874015748
                                           5000
          (%o9)                           (----) (%in N)
                                           127
          (%i10) convert(kg*m^2/s^2,[J]);
          (%o10)                                 J
          (%i11) kg*m^2/s^2;
          (%o11)                                 J
          (%i12) setunits([g,inch,s]);
          (%o12)                               done
          (%i13) kg*m/s^2;
          (%o13)                                 N
          (%i14) uforget(N);
          (%o14)                               false
          (%i15) kg*m/s^2;
                                          5000000   %in g
          (%o15)                         (-------) (-----)
                                            127       2
                                                     s
          (%i16) convert(kg*m/s^2,[g,inch,s]);

          `rat' replaced 39.37007874015748 by 5000/127 = 39.37007874015748
                                          5000000   %in g
          (%o16)                         (-------) (-----)
                                            127       2
                                                     s

     See also `setunits' and `uforget'. To use this function write
     first `load("unit")'.


 -- Optional variable: usersetunits
     Default value: none

     If a user wishes to have a default unit behavior other than that
     described, they can make use of _maxima-init.mac_ and the
     _usersetunits_ variable.  The _unit_ package will check on startup
     to see if this variable has been assigned a list.  If it has, it
     will use setunits on that list and take the units from that list
     to be defaults.  `uforget' will revert to the behavior defined by
     usersetunits over its own defaults.  For example, if we have a
     _maxima-init.mac_ file containing:
          usersetunits : [N,J];
     we would see the following behavior:
          (%i1) load("unit")$
          *******************************************************************
          *                       Units version 0.50                        *
          *          Definitions based on the NIST Reference on             *
          *              Constants, Units, and Uncertainty                  *
          *       Conversion factors from various sources including         *
          *                   NIST and the GNU units package                *
          *******************************************************************

          Redefining necessary functions...
          WARNING: DEFUN/DEFMACRO: redefining function
           TOPLEVEL-MACSYMA-EVAL ...
          WARNING: DEFUN/DEFMACRO: redefining function MSETCHK ...
          WARNING: DEFUN/DEFMACRO: redefining function KILL1 ...
          WARNING: DEFUN/DEFMACRO: redefining function NFORMAT ...
          Initializing unit arrays...
          Done.
          User defaults found...
          User defaults initialized.
          (%i2) kg*m/s^2;
          (%o2)                                  N
          (%i3) kg*m^2/s^2;
          (%o3)                                  J
          (%i4) kg*m^3/s^2;
          (%o4)                                 J m
          (%i5) kg*m*km/s^2;
          (%o5)                             (1000) (J)
          (%i6) setunits([dyn,eV]);
          (%o6)                                done
          (%i7) kg*m/s^2;
          (%o7)                           (100000) (dyn)
          (%i8) kg*m^2/s^2;
          (%o8)                     (6241509596477042688) (eV)
          (%i9) kg*m^3/s^2;
          (%o9)                    (6241509596477042688) (eV m)
          (%i10) kg*m*km/s^2;
          (%o10)                   (6241509596477042688000) (eV)
          (%i11) uforget([dyn,eV]);
          (%o11)                           [false, false]
          (%i12) kg*m/s^2;
          (%o12)                                 N
          (%i13) kg*m^2/s^2;
          (%o13)                                 J
          (%i14) kg*m^3/s^2;
          (%o14)                                J m
          (%i15) kg*m*km/s^2;
          (%o15)                            (1000) (J)
     Without `usersetunits', the initial inputs would have been
     converted to MKS, and uforget would have resulted in a return to
     MKS rules.  Instead, the user preferences are respected in both
     cases.  Notice these can still be overridden if desired.  To
     completely eliminate this simplification - i.e.  to have the user
     defaults reset to factory defaults - the `dontusedimension'
     command can be used.  `uforget' can restore user settings again,
     but only if `usedimension' frees it for use.  Alternately,
     `kill(usersetunits)' will completely remove all knowledge of the
     user defaults from the session.  Here are some examples of how
     these various options work.
          (%i2) kg*m/s^2;
          (%o2)                                  N
          (%i3) kg*m^2/s^2;
          (%o3)                                  J
          (%i4) setunits([dyn,eV]);
          (%o4)                                done
          (%i5) kg*m/s^2;
          (%o5)                           (100000) (dyn)
          (%i6) kg*m^2/s^2;
          (%o6)                     (6241509596477042688) (eV)
          (%i7) uforget([dyn,eV]);
          (%o7)                          [false, false]
          (%i8) kg*m/s^2;
          (%o8)                                  N
          (%i9) kg*m^2/s^2;
          (%o9)                                  J
          (%i10) dontusedimension(N);
          (%o10)                             [%force]
          (%i11) dontusedimension(J);
          (%o11)                         [%energy, %force]
          (%i12) kg*m/s^2;
                                               kg m
          (%o12)                               ----
                                                 2
                                                s
          (%i13) kg*m^2/s^2;
                                                   2
                                               kg m
          (%o13)                               -----
                                                 2
                                                s
          (%i14) setunits([dyn,eV]);
          (%o14)                               done
          (%i15) kg*m/s^2;
                                               kg m
          (%o15)                               ----
                                                 2
                                                s
          (%i16) kg*m^2/s^2;
                                                   2
                                               kg m
          (%o16)                               -----
                                                 2
                                                s
          (%i17) uforget([dyn,eV]);
          (%o17)                         [false, false]
          (%i18) kg*m/s^2;
                                               kg m
          (%o18)                               ----
                                                 2
                                                s
          (%i19) kg*m^2/s^2;
                                                   2
                                               kg m
          (%o19)                               -----
                                                 2
                                                s
          (%i20) usedimension(N);
          Done.  To have Maxima simplify to this dimension, use
          setunits([unit]) to select a unit.
          (%o20)                               true
          (%i21) usedimension(J);
          Done.  To have Maxima simplify to this dimension, use
          setunits([unit]) to select a unit.
          (%o21)                               true
          (%i22) kg*m/s^2;
                                               kg m
          (%o22)                               ----
                                                 2
                                                s
          (%i23) kg*m^2/s^2;
                                                   2
                                               kg m
          (%o23)                               -----
                                                 2
                                                s
          (%i24) setunits([dyn,eV]);
          (%o24)                               done
          (%i25) kg*m/s^2;
          (%o25)                          (100000) (dyn)
          (%i26) kg*m^2/s^2;
          (%o26)                    (6241509596477042688) (eV)
          (%i27) uforget([dyn,eV]);
          (%o27)                           [false, false]
          (%i28) kg*m/s^2;
          (%o28)                                 N
          (%i29) kg*m^2/s^2;
          (%o29)                                 J
          (%i30) kill(usersetunits);
          (%o30)                               done
          (%i31) uforget([dyn,eV]);
          (%o31)                          [false, false]
          (%i32) kg*m/s^2;
                                               kg m
          (%o32)                               ----
                                                 2
                                                s
          (%i33) kg*m^2/s^2;
                                                   2
                                               kg m
          (%o33)                               -----
                                                 2
                                                s
     Unfortunately this wide variety of options is a little
     confusing at first, but once the user grows used to them they
     should find they have very full control over their working
     environment.


 -- Function: metricexpandall (<x>)
     Rebuilds global unit lists automatically creating all desired
     metric units.  <x> is a numerical argument which is used to
     specify how many metric prefixes the user wishes defined.  The
     arguments are as follows, with each higher number defining all
     lower numbers' units:
                     0 - none. Only base units
                     1 - kilo, centi, milli
          (default)  2 - giga, mega, kilo, hecto, deka, deci, centi, milli,
                         micro, nano
                     3 - peta, tera, giga, mega, kilo, hecto, deka, deci,
                         centi, milli, micro, nano, pico, femto
                     4 - all
     Normally, Maxima will not define the full expansion since
     this results in a very large number of units, but
     `metricexpandall' can be used to rebuild the list in a more or
     less complete fashion. The relevant variable in the _unit.mac_
     file is <%unitexpand>.


 -- Variable: %unitexpand
     Default value: `2'

     This is the value supplied to `metricexpandall' during the initial
     loading of _unit_.



File: maxima.info,  Node: zeilberger-pkg,  Next: Error and warning messages,  Prev: unit-pkg,  Up: Top

87 zeilberger
*************

* Menu:

* Introduction to zeilberger::
* Functions and Variables for zeilberger::


File: maxima.info,  Node: Introduction to zeilberger,  Next: Functions and Variables for zeilberger,  Prev: zeilberger-pkg,  Up: zeilberger-pkg

87.1 Introduction to zeilberger
===============================

`zeilberger' is a implementation of Zeilberger's algorithm for definite
hypergeometric summation, and also Gosper's algorithm for indefinite
hypergeometric summation.

   `zeilberger' makes use of the "filtering" optimization method
developed by Axel Riese.

   `zeilberger' was developed by Fabrizio Caruso.

   `load (zeilberger)' loads this package.

87.1.1 The indefinite summation problem
---------------------------------------

`zeilberger' implements Gosper's algorithm for indefinite
hypergeometric summation.  Given a hypergeometric term F_k in k we want
to find its hypergeometric anti-difference, that is, a hypergeometric
term f_k such that

   F_k = f_(k+1) - f_k.

87.1.2 The definite summation problem
-------------------------------------

`zeilberger' implements Zeilberger's algorithm for definite
hypergeometric summation.  Given a proper hypergeometric term (in n and
k) F_(n,k) and a positive integer d we want to find a d-th order linear
recurrence with polynomial coefficients (in n) for F_(n,k) and a
rational function R in n and k such that

   a_0 F_(n,k) + ... + a_d F_(n+d),k = Delta_k(R(n,k) F_(n,k)),

   where Delta_k is the k-forward difference operator, i.e.,
Delta_k(t_k) := t_(k+1) - t_k.

87.1.3 Verbosity levels
-----------------------

There are also verbose versions of the commands which are called by
adding one of the following prefixes:

`Summary'
     Just a summary at the end is shown

`Verbose'
     Some information in the intermidiate steps

`VeryVerbose'
     More information

`Extra'
     Even more information including information on the linear system
     in Zeilberger's algorithm

   For example:
`GosperVerbose', `parGosperVeryVerbose', `ZeilbergerExtra',
`AntiDifferenceSummary'.


File: maxima.info,  Node: Functions and Variables for zeilberger,  Prev: Introduction to zeilberger,  Up: zeilberger-pkg

87.2 Functions and Variables for zeilberger
===========================================

 -- Function: AntiDifference (F_k, <k>)
     Returns the hypergeometric anti-difference of F_k, if it exists.
     Otherwise `AntiDifference' returns `no_hyp_antidifference'.


 -- Function: Gosper (F_k, <k>)
     Returns the rational certificate R(k) for F_k, that is, a rational
     function such that F_k = R(k+1) F_(k+1) - R(k) F_k, if it exists.
     Otherwise, `Gosper' returns `no_hyp_sol'.


 -- Function: GosperSum (F_k, <k>, <a>, <b>)
     Returns the summmation of F_k from <k> = <a> to <k> = <b> if F_k
     has a hypergeometric anti-difference.  Otherwise, `GosperSum'
     returns `nongosper_summable'.

     Examples:

          (%i1) load (zeilberger)$
          (%i2) GosperSum ((-1)^k*k / (4*k^2 - 1), k, 1, n);
          Dependent equations eliminated:  (1)
                                     3       n + 1
                                (n + -) (- 1)
                                     2               1
          (%o2)               - ------------------ - -
                                            2        4
                                2 (4 (n + 1)  - 1)
          (%i3) GosperSum (1 / (4*k^2 - 1), k, 1, n);
                                          3
                                    - n - -
                                          2       1
          (%o3)                  -------------- + -
                                          2       2
                                 4 (n + 1)  - 1
          (%i4) GosperSum (x^k, k, 1, n);
                                    n + 1
                                   x          x
          (%o4)                    ------ - -----
                                   x - 1    x - 1
          (%i5) GosperSum ((-1)^k*a! / (k!*(a - k)!), k, 1, n);
                                          n + 1
                          a! (n + 1) (- 1)              a!
          (%o5)       - ------------------------- - ----------
                        a (- n + a - 1)! (n + 1)!   a (a - 1)!
          (%i6) GosperSum (k*k!, k, 1, n);
          Dependent equations eliminated:  (1)
          (%o6)                     (n + 1)! - 1
          (%i7) GosperSum ((k + 1)*k! / (k + 1)!, k, 1, n);
                            (n + 1) (n + 2) (n + 1)!
          (%o7)             ------------------------ - 1
                                    (n + 2)!
          (%i8) GosperSum (1 / ((a - k)!*k!), k, 1, n);
          (%o8)                  NON_GOSPER_SUMMABLE


 -- Function: parGosper (F_(n,k), <k>, <n>, <d>)
     Attempts to find a <d>-th order recurrence for F_(n,k).

     The algorithm yields a sequence [s_1, s_2, ..., s_m] of solutions.
     Each solution has the form

     [R(n, k), [a_0, a_1, ..., a_d]].

     `parGosper' returns `[]' if it fails to find a recurrence.


 -- Function: Zeilberger (F_(n,k), <k>, <n>)
     Attempts to compute the indefinite hypergeometric summation of
     F_(n,k).

     `Zeilberger' first invokes `Gosper', and if that fails to find a
     solution, then invokes `parGosper' with order 1, 2, 3, ..., up to
     `MAX_ORD'.  If Zeilberger finds a solution before reaching
     `MAX_ORD', it stops and returns the solution.

     The algorithms yields a sequence [s_1, s_2, ..., s_m] of solutions.
     Each solution has the form

     [R(n,k), [a_0, a_1, ..., a_d]].

     `Zeilberger' returns `[]' if it fails to find a solution.

     `Zeilberger' invokes `Gosper' only if `Gosper_in_Zeilberger' is
     `true'.


87.3 General global variables
=============================

 -- Global variable: MAX_ORD
     Default value: 5

     `MAX_ORD' is the maximum recurrence order attempted by
     `Zeilberger'.


 -- Global variable: simplified_output
     Default value: `false'

     When `simplified_output' is `true', functions in the `zeilberger'
     package attempt further simplification of the solution.


 -- Global variable: linear_solver
     Default value: `linsolve'

     `linear_solver' names the solver which is used to solve the system
     of equations in Zeilberger's algorithm.


 -- Global variable: warnings
     Default value: `true'

     When `warnings' is `true', functions in the `zeilberger' package
     print warning messages during execution.


 -- Global variable: Gosper_in_Zeilberger
     Default value: `true'

     When `Gosper_in_Zeilberger' is `true', the `Zeilberger' function
     calls `Gosper' before calling `parGosper'.  Otherwise,
     `Zeilberger' goes immediately to `parGosper'.


 -- Global variable: trivial_solutions
     Default value: `true'

     When `trivial_solutions' is `true', `Zeilberger' returns solutions
     which have certificate equal to zero, or all coefficients equal to
     zero.


87.4 Variables related to the modular test
==========================================

 -- Global variable: mod_test
     Default value: `false'

     When `mod_test' is `true', `parGosper' executes a modular test for
     discarding systems with no solutions.


 -- Global variable: modular_linear_solver
     Default value: `linsolve'

     `modular_linear_solver' names the linear solver used by the
     modular test in `parGosper'.


 -- Global variable: ev_point
     Default value: `big_primes[10]'

     `ev_point' is the value at which the variable <n> is evaluated
     when executing the modular test in `parGosper'.


 -- Global variable: mod_big_prime
     Default value: `big_primes[1]'

     `mod_big_prime' is the modulus used by the modular test in
     `parGosper'.


 -- Global variable: mod_threshold
     Default value: 4

     `mod_threshold' is the greatest order for which the modular test
     in `parGosper' is attempted.



File: maxima.info,  Node: Error and warning messages,  Next: Function and Variable Index,  Prev: zeilberger-pkg,  Up: Top

88 Error and warning messages
*****************************

* Menu:

* Error messages::
* Warning messages::

   This chapter provides detailed information about the meaning of some
error messages or on how to recover from errors.


File: maxima.info,  Node: Error messages,  Next: part fell off the end,  Prev: Error and warning messages,  Up: Error and warning messages

88.1 Error messages
===================

* Menu:

* part fell off the end::
* undefined variable during plotting::
* loadfile failed to load::
* Only symbols can be bound::
* out of memory::
* cannot assign to function::
* No such list element::
* Comma is not a prefix operator::
* makelist second argument must evaluate to a number::
* Illegal use of delimiter::
* VTK is not installed::


File: maxima.info,  Node: part fell off the end,  Next: undefined variable during plotting,  Prev: Error messages,  Up: Error messages

88.1.1 part: fell off the end
-----------------------------

`part()' was used to access the `n'th item in something that has less
than `n' items.


File: maxima.info,  Node: undefined variable during plotting,  Next: loadfile failed to load,  Prev: part fell off the end,  Up: Error messages

88.1.2 undefined variable (draw or plot)
----------------------------------------

A function could not be plotted since it still contained a variable
maxima doesn't know the value of.

   In order to find out which variable this could be it is sometimes
helpful to temporarily replace the name of the drawing command
(`draw2d', `plot2d' or similar) by a random name (for example
`ddraw2d') that doesn't coincide with the name of an existing function
to make maxima print out what parameters the drawing command sees.

     (%i1) load("draw")$
     (%i2) f(x):=sin(omega*t);
     (%o2) f(x) := sin(omega t)
     (%i3) draw2d(
             explicit(
               f(x),
               x,1,10
             )
           );
     draw2d (explicit): non defined variable
      -- an error. To debug this try: debugmode(true);
     (%i4) ddraw2d(
             explicit(
               f(x),
               x,1,10
             )
           );
     (%o4) ddraw2d(explicit(sin(omega t), x, 1, 10))


File: maxima.info,  Node: loadfile failed to load,  Next: Only symbols can be bound,  Prev: undefined variable during plotting,  Up: Error messages

88.1.3 loadfile: failed to load <filename>
------------------------------------------

This error message normally indicates that the file exists, but can not
be read.  If the file is present and readable there is another possible
for this error message: Maxima can compile packages to native binary
files in order to make them run faster. If after compiling the file
something in the system has changed in a way that makes it incompatible
with the binary the binary the file cannot be loaded any more. Maxima
normally puts binary files it creates from its own packages in a folder
named `binary' within the folder whose name it is printed after typing:
     (%i1) maxima_userdir;
     (%o1)                 /home/gunter/.maxima
If this directory is missing maxima will recreate it again as soon
as it has to compile a package.


File: maxima.info,  Node: Only symbols can be bound,  Next: out of memory,  Prev: loadfile failed to load,  Up: Error messages

88.1.4 Only symbols can be bound
--------------------------------

The most probable cause for this error is that there was an attempt to
either use a number or a variable whose numerical value is known as a
loop counter.


File: maxima.info,  Node: out of memory,  Next: cannot assign to function,  Prev: Only symbols can be bound,  Up: Error messages

88.1.5 Out of memory
--------------------

Lisp typically handles several types of memory containing at least one
stack and a heap that contains user objects. To avoid running out of
memory several approaches might be useful:
   * If possible, the best solution normally is to use an algorithm
     that is       more memory-efficient.

   * Compiling a function might drastically reduce the amount of memory
     it       needs.

   * Arrays of a fixed type might be more memory-efficient than lists.

   * If maxima is run by sbcl sbcl's memory limit might be set to a
     value       that is too low to solve the current problem. In this
     case the       command-line option `--dynamic-space-size <n>'
     allows to tell       sbcl to reserve `n' megabytes for the heap.
     It is to note, though,       that sbcl has to handle several
     distinct types of memory and therefore       might be able to only
     reserve about half of the available physical       memory. Also
     note that 32-bit processes might only be able to access       2GB
     of physical memory.


File: maxima.info,  Node: cannot assign to function,  Next: No such list element,  Prev: out of memory,  Up: Error messages

88.1.6 assignment: cannot assign to <function name>
---------------------------------------------------

Maxima supports several assignment operators. When trying to define a
function `:=' has to be used.


File: maxima.info,  Node: No such list element,  Next: Comma is not a prefix operator,  Prev: cannot assign to function,  Up: Error messages

88.1.7 apply: no such "list" element
------------------------------------

One common cause for this error message is that square brackets operator
(`[ ]') was used trying to access a list element that whose element
number was `< 1' or `> length(list)'.


File: maxima.info,  Node: Comma is not a prefix operator,  Next: makelist second argument must evaluate to a number,  Prev: No such list element,  Up: Error messages

88.1.8 incorrect syntax: , is not a prefix operator
---------------------------------------------------

This might be caused by a command starting with a comma (`,') or by one
comma being directly followed by another one..


File: maxima.info,  Node: makelist second argument must evaluate to a number,  Next: Illegal use of delimiter,  Prev: Comma is not a prefix operator,  Up: Error messages

88.1.9 makelist: second argument must evaluate to a number
----------------------------------------------------------

`makelist' expects the second argument to be the name of the variable
whose value is to be stepped. This time instead of the name of a
still-undefined variable maxima has found something else, possibly a
list or the name of a list.


File: maxima.info,  Node: Illegal use of delimiter,  Next: VTK is not installed,  Prev: makelist second argument must evaluate to a number,  Up: Error messages

88.1.10 incorrect syntax: Illegal use of delimiter )
----------------------------------------------------

Common reasons for this error appearing are a closing parenthesis
without an opening one or a closing parenthesis directly preceded by a
comma.


File: maxima.info,  Node: VTK is not installed,  Prev: Illegal use of delimiter,  Up: Error messages

88.1.11 VTK is not installed, which is required for Scene
---------------------------------------------------------

This might either mean that VTK is actually not installed - or cannot
be found by maxima - or that maxima has no write access to the
directory whose name is output if the following maxima command is
entered:
     (%i1) maxima_tempdir;
     (%o1)                     /home/gunter


File: maxima.info,  Node: Warning messages,  Next: undefined variable during translation,  Prev: Error and warning messages,  Up: Error and warning messages

88.2 Warning messages
=====================

* Menu:

* undefined variable during translation::
* replaced x by y::


File: maxima.info,  Node: undefined variable during translation,  Next: replaced x by y,  Prev: Warning messages,  Up: Warning messages

88.2.1 Encountered undefined variable <x> in translation
--------------------------------------------------------

A function was compiled but the type of the variable `x' was not known.
This means that the compiled command contains additional code that
makes it retain all the flexibility maxima provides in respect to this
variable.  If `x' isn't meant as a variable name but just a named
option to a command prepending the named option by a single quote (`'')
should resolve this issue.


File: maxima.info,  Node: replaced x by y,  Prev: undefined variable during translation,  Up: Warning messages

88.2.2 Rat: replaced <x> by <y> = <z>
-------------------------------------

Floating-point numbers provide a maximum number of digits that is
typically high, but still limited. Good examples that this limitation
might be too low even for harmless-looking examples include Wilkinson's
Polynomial (https://en.wikipedia.org/wiki/Wilkinson%27s_polynomial),
The Rump polynomial and the fact that an exact 1/10 cannot be expressed
as a binary floating-point number.  In places where the floating-point
error might add up or hinder terms from cancelling each other out
maxima therefore by default replaces them with exact fractions.  See
also `ratprint', `ratepsilon', `bftorat', `fpprintprec' and
`rationalize'.


File: maxima.info,  Node: Function and Variable Index,  Prev: Error and warning messages,  Up: Top

Appendix A Function and Variable Index
**************************************

[index]
* Menu:

* !:                                     Combinatorial Functions.
                                                             (line   75)
* !!:                                    Combinatorial Functions.
                                                             (line    7)
* #:                                     Operators for Equations.
                                                             (line    7)
* $:                                     Functions and Variables for Command Line.
                                                             (line  203)
* %:                                     Functions and Variables for Command Line.
                                                             (line   92)
* %%:                                    Functions and Variables for Command Line.
                                                             (line  106)
* %and:                                  Functions and Variables for to_poly_solve.
                                                             (line   16)
* %c:                                    Functions and Variables for contrib_ode.
                                                             (line   59)
* %e:                                    Functions and Variables for Constants.
                                                             (line    7)
* %e_to_numlog:                          Root Exponential and Logarithmic Functions.
                                                             (line    7)
* %edispflag:                            Functions and Variables for Display.
                                                             (line    7)
* %emode:                                Root Exponential and Logarithmic Functions.
                                                             (line   17)
* %enumer:                               Root Exponential and Logarithmic Functions.
                                                             (line   58)
* %f:                                    Hypergeometric Functions.
                                                             (line   22)
* %gamma:                                Functions and Variables for Constants.
                                                             (line   22)
* %i:                                    Functions and Variables for Constants.
                                                             (line   13)
* %iargs:                                Functions and Variables for Trigonometric.
                                                             (line   54)
* %if:                                   Functions and Variables for to_poly_solve.
                                                             (line   91)
* %k1:                                   Functions and Variables for contrib_ode.
                                                             (line   63)
* %k2:                                   Functions and Variables for contrib_ode.
                                                             (line   67)
* %m:                                    Hypergeometric Functions.
                                                             (line   13)
* %or:                                   Functions and Variables for to_poly_solve.
                                                             (line  134)
* %phi:                                  Functions and Variables for Constants.
                                                             (line   49)
* %pi:                                   Functions and Variables for Constants.
                                                             (line  104)
* %piargs:                               Functions and Variables for Trigonometric.
                                                             (line    7)
* %rnum_list:                            Functions and Variables for Equations.
                                                             (line    7)
* %s:                                    Bessel Functions.   (line  169)
* %th:                                   Functions and Variables for Command Line.
                                                             (line  152)
* %unitexpand:                           Functions and Variables for Units.
                                                             (line  416)
* %w:                                    Hypergeometric Functions.
                                                             (line   18)
* ':                                     Functions and Variables for Evaluation.
                                                             (line    7)
* '':                                    Functions and Variables for Evaluation.
                                                             (line  133)
* *:                                     Arithmetic operators.
                                                             (line    9)
* **:                                    Arithmetic operators.
                                                             (line  167)
* +:                                     Arithmetic operators.
                                                             (line    7)
* -:                                     Arithmetic operators.
                                                             (line    8)
* .:                                     Arithmetic operators.
                                                             (line  209)
* /:                                     Arithmetic operators.
                                                             (line   10)
* ::                                     Assignment operators.
                                                             (line    7)
* :::                                    Assignment operators.
                                                             (line   90)
* ::=:                                   Assignment operators.
                                                             (line  116)
* :=:                                    Assignment operators.
                                                             (line  189)
* ;:                                     Functions and Variables for Command Line.
                                                             (line  217)
* <:                                     Relational operators.
                                                             (line    7)
* <=:                                    Relational operators.
                                                             (line    8)
* =:                                     Operators for Equations.
                                                             (line   31)
* >:                                     Relational operators.
                                                             (line   10)
* >=:                                    Relational operators.
                                                             (line    9)
* ?:                                     Functions and Variables for Command Line.
                                                             (line  182)
* ??:                                    Functions and Variables for Command Line.
                                                             (line  195)
* @:                                     Functions and Variables for Structures.
                                                             (line   73)
* [:                                     Functions and Variables for Lists.
                                                             (line    7)
* ]:                                     Functions and Variables for Lists.
                                                             (line    8)
* ^:                                     Arithmetic operators.
                                                             (line   11)
* ^^:                                    Arithmetic operators.
                                                             (line  190)
* _:                                     Functions and Variables for Command Line.
                                                             (line   47)
* __:                                    Functions and Variables for Command Line.
                                                             (line    7)
* `:                                     Functions and Variables for ezunits.
                                                             (line   95)
* abasep:                                Functions and Variables for atensor.
                                                             (line  137)
* abs:                                   Functions for Numbers.
                                                             (line    7)
* absboxchar:                            Functions and Variables for Display.
                                                             (line   27)
* absint:                                Functions and Variables for Fourier series.
                                                             (line   37)
* absolute_real_time:                    Functions and Variables for Runtime Environment.
                                                             (line  191)
* acos:                                  Functions and Variables for Trigonometric.
                                                             (line   84)
* acosh:                                 Functions and Variables for Trigonometric.
                                                             (line   88)
* acot:                                  Functions and Variables for Trigonometric.
                                                             (line   92)
* acoth:                                 Functions and Variables for Trigonometric.
                                                             (line   96)
* acsc:                                  Functions and Variables for Trigonometric.
                                                             (line  100)
* acsch:                                 Functions and Variables for Trigonometric.
                                                             (line  104)
* activate:                              Functions and Variables for Facts.
                                                             (line    7)
* activecontexts:                        Functions and Variables for Facts.
                                                             (line   17)
* adapt_depth <1>:                       Plotting Options.   (line   15)
* adapt_depth:                           Functions and Variables for draw.
                                                             (line  198)
* add_edge:                              Functions and Variables for graphs.
                                                             (line 1240)
* add_edges:                             Functions and Variables for graphs.
                                                             (line 1254)
* add_vertex:                            Functions and Variables for graphs.
                                                             (line 1269)
* add_vertices:                          Functions and Variables for graphs.
                                                             (line 1284)
* addcol:                                Functions and Variables for Matrices and Linear Algebra.
                                                             (line    7)
* Addition:                              Arithmetic operators.
                                                             (line    6)
* additive:                              Functions and Variables for Simplification.
                                                             (line    7)
* addmatrices:                           Functions and Variables for linearalgebra.
                                                             (line    7)
* addrow:                                Functions and Variables for Matrices and Linear Algebra.
                                                             (line   12)
* adim:                                  Functions and Variables for atensor.
                                                             (line   77)
* adjacency_matrix:                      Functions and Variables for graphs.
                                                             (line  365)
* adjoin:                                Functions and Variables for Sets.
                                                             (line    7)
* adjoint:                               Functions and Variables for Matrices and Linear Algebra.
                                                             (line   17)
* adjust_external_format:                Characters.         (line    9)
* af:                                    Functions and Variables for atensor.
                                                             (line  105)
* aform:                                 Functions and Variables for atensor.
                                                             (line   85)
* agd:                                   Package functs.     (line  159)
* airy_ai:                               Airy Functions.     (line   16)
* airy_bi:                               Airy Functions.     (line   30)
* airy_dai:                              Airy Functions.     (line   24)
* airy_dbi:                              Airy Functions.     (line   38)
* alg_type:                              Functions and Variables for atensor.
                                                             (line   72)
* algebraic:                             Functions and Variables for Polynomials.
                                                             (line    7)
* algepsilon:                            Functions and Variables for Equations.
                                                             (line   31)
* algexact:                              Functions and Variables for Equations.
                                                             (line   37)
* algsys:                                Functions and Variables for Equations.
                                                             (line   55)
* alias:                                 Functions and Variables for Expressions.
                                                             (line    8)
* aliases:                               Functions and Variables for Expressions.
                                                             (line   13)
* all_dotsimp_denoms:                    Functions and Variables for Affine.
                                                             (line  144)
* allbut:                                Functions and Variables for Expressions.
                                                             (line   21)
* allocation:                            Functions and Variables for draw.
                                                             (line  209)
* allroots:                              Functions and Variables for Equations.
                                                             (line  158)
* allsym:                                Functions and Variables for itensor.
                                                             (line  531)
* alphabetic:                            Functions and Variables for Properties.
                                                             (line    7)
* alphacharp:                            Characters.         (line   65)
* alphanumericp:                         Characters.         (line   93)
* amortization:                          Functions and Variables for finance.
                                                             (line  106)
* and:                                   Logical operators.  (line    7)
* animation:                             Visualization with VTK.
                                                             (line  180)
* annuity_fv:                            Functions and Variables for finance.
                                                             (line   67)
* annuity_pv:                            Functions and Variables for finance.
                                                             (line   54)
* antid:                                 Functions and Variables for Differentiation.
                                                             (line    7)
* antidiff:                              Functions and Variables for Differentiation.
                                                             (line   61)
* AntiDifference:                        Functions and Variables for zeilberger.
                                                             (line    7)
* antisymmetric:                         Functions and Variables for Simplification.
                                                             (line   31)
* append:                                Functions and Variables for Lists.
                                                             (line   44)
* appendfile:                            Functions and Variables for File Input and Output.
                                                             (line    7)
* apply:                                 Functions and Variables for Function Definition.
                                                             (line    7)
* apply1:                                Functions and Variables for Rules and Patterns.
                                                             (line    7)
* apply2:                                Functions and Variables for Rules and Patterns.
                                                             (line   22)
* applyb1:                               Functions and Variables for Rules and Patterns.
                                                             (line   35)
* apropos:                               Functions and Variables for Help.
                                                             (line    7)
* args:                                  Functions and Variables for Expressions.
                                                             (line   49)
* arit_amortization:                     Functions and Variables for finance.
                                                             (line  131)
* arithmetic:                            Package functs.     (line  111)
* arithsum:                              Package functs.     (line  132)
* array:                                 Functions and Variables for Arrays.
                                                             (line   10)
* arrayapply:                            Functions and Variables for Arrays.
                                                             (line   37)
* arrayinfo:                             Functions and Variables for Arrays.
                                                             (line   45)
* arraymake:                             Functions and Variables for Arrays.
                                                             (line  143)
* arrays:                                Functions and Variables for Arrays.
                                                             (line  188)
* arraysetapply:                         Functions and Variables for Arrays.
                                                             (line  217)
* ascii:                                 Characters.         (line  100)
* asec:                                  Functions and Variables for Trigonometric.
                                                             (line  108)
* asech:                                 Functions and Variables for Trigonometric.
                                                             (line  112)
* asin:                                  Functions and Variables for Trigonometric.
                                                             (line  116)
* asinh:                                 Functions and Variables for Trigonometric.
                                                             (line  120)
* askexp:                                Functions and Variables for Miscellaneous Options.
                                                             (line    7)
* askinteger:                            Functions and Variables for Facts.
                                                             (line   29)
* asksign:                               Functions and Variables for Facts.
                                                             (line   41)
* Assignment operator:                   Assignment operators.
                                                             (line    7)
* Assignment operator (evaluates left-hand side): Assignment operators.
                                                             (line   90)
* assoc:                                 Functions and Variables for Lists.
                                                             (line   57)
* assoc_legendre_p:                      Functions and Variables for orthogonal polynomials.
                                                             (line    7)
* assoc_legendre_q:                      Functions and Variables for orthogonal polynomials.
                                                             (line   15)
* assume:                                Functions and Variables for Facts.
                                                             (line   50)
* assume_external_byte_order:            Functions and Variables for binary input and output.
                                                             (line    7)
* assume_pos:                            Functions and Variables for Facts.
                                                             (line  132)
* assume_pos_pred:                       Functions and Variables for Facts.
                                                             (line  157)
* assumescalar:                          Functions and Variables for Facts.
                                                             (line  108)
* asymbol:                               Functions and Variables for atensor.
                                                             (line   92)
* asympa:                                Introduction to asympa.
                                                             (line    7)
* at:                                    Functions and Variables for Differentiation.
                                                             (line  113)
* atan:                                  Functions and Variables for Trigonometric.
                                                             (line  124)
* atan2:                                 Functions and Variables for Trigonometric.
                                                             (line  128)
* atanh:                                 Functions and Variables for Trigonometric.
                                                             (line  133)
* atensimp:                              Functions and Variables for atensor.
                                                             (line   63)
* atom:                                  Functions and Variables for Expressions.
                                                             (line   78)
* atomgrad:                              Functions and Variables for Differentiation.
                                                             (line  158)
* atrig1:                                Functions and Variables for Trigonometric.
                                                             (line  137)
* atvalue:                               Functions and Variables for Differentiation.
                                                             (line  165)
* augcoefmatrix:                         Functions and Variables for Matrices and Linear Algebra.
                                                             (line   23)
* augmented_lagrangian_method:           Functions and Variables for augmented_lagrangian.
                                                             (line   14)
* av:                                    Functions and Variables for atensor.
                                                             (line  112)
* average_degree:                        Functions and Variables for graphs.
                                                             (line  381)
* axes:                                  Plotting Options.   (line   22)
* axis_3d:                               Functions and Variables for draw.
                                                             (line  250)
* axis_bottom:                           Functions and Variables for draw.
                                                             (line  269)
* axis_left:                             Functions and Variables for draw.
                                                             (line  286)
* axis_right:                            Functions and Variables for draw.
                                                             (line  302)
* axis_top:                              Functions and Variables for draw.
                                                             (line  318)
* azimuth <1>:                           Plotting Options.   (line   33)
* azimuth:                               Visualization with VTK.
                                                             (line   63)
* background:                            Visualization with VTK.
                                                             (line   72)
* background_color:                      Functions and Variables for draw.
                                                             (line  335)
* backslash:                             Introduction to Strings.
                                                             (line    6)
* backsubst:                             Functions and Variables for Equations.
                                                             (line  227)
* backtrace:                             Functions and Variables for Program Flow.
                                                             (line    9)
* bars:                                  Functions and Variables for draw.
                                                             (line 2886)
* barsplot:                              Functions and Variables for statistical graphs.
                                                             (line    8)
* barsplot_description:                  Functions and Variables for statistical graphs.
                                                             (line  121)
* Base of natural logarithm:             Functions and Variables for Constants.
                                                             (line    7)
* base64:                                Octets and Utilities for Cryptography.
                                                             (line    7)
* base64_decode:                         Octets and Utilities for Cryptography.
                                                             (line   34)
* bashindices:                           Functions and Variables for Sums and Products.
                                                             (line    7)
* batch:                                 Functions and Variables for File Input and Output.
                                                             (line   18)
* batchload:                             Functions and Variables for File Input and Output.
                                                             (line   69)
* bc2:                                   Functions and Variables for Differential Equations.
                                                             (line    7)
* bdvac:                                 Functions and Variables for ctensor.
                                                             (line  803)
* belln:                                 Functions and Variables for Sets.
                                                             (line   25)
* benefit_cost:                          Functions and Variables for finance.
                                                             (line  240)
* berlefact:                             Functions and Variables for Polynomials.
                                                             (line   14)
* bern:                                  Functions and Variables for Number Theory.
                                                             (line    7)
* bernpoly:                              Functions and Variables for Number Theory.
                                                             (line   25)
* bernstein_approx:                      Functions and Variables for Bernstein.
                                                             (line   76)
* bernstein_expand:                      Functions and Variables for Bernstein.
                                                             (line  103)
* bernstein_explicit:                    Functions and Variables for Bernstein.
                                                             (line   50)
* bernstein_poly:                        Functions and Variables for Bernstein.
                                                             (line    7)
* bessel_i:                              Bessel Functions.   (line   35)
* bessel_j:                              Bessel Functions.   (line    7)
* bessel_k:                              Bessel Functions.   (line   51)
* bessel_simplify:                       Functions and Variables for contrib_ode.
                                                             (line  124)
* bessel_y:                              Bessel Functions.   (line   23)
* besselexpand:                          Bessel Functions.   (line  128)
* beta:                                  Gamma and factorial Functions.
                                                             (line  220)
* beta_args_sum_to_integer:              Gamma and factorial Functions.
                                                             (line  712)
* beta_expand:                           Gamma and factorial Functions.
                                                             (line  705)
* beta_incomplete:                       Gamma and factorial Functions.
                                                             (line  335)
* beta_incomplete_generalized:           Gamma and factorial Functions.
                                                             (line  583)
* beta_incomplete_regularized:           Gamma and factorial Functions.
                                                             (line  484)
* bezout:                                Functions and Variables for Polynomials.
                                                             (line   22)
* bf_fft:                                Functions and Variables for fast Fourier transform.
                                                             (line  255)
* bf_find_root:                          Functions for numerical solution of equations.
                                                             (line   37)
* bf_fmin_cobyla:                        Functions and Variables for cobyla.
                                                             (line   74)
* bf_inverse_fft:                        Functions and Variables for fast Fourier transform.
                                                             (line  249)
* bf_inverse_real_fft:                   Functions and Variables for fast Fourier transform.
                                                             (line  267)
* bf_real_fft:                           Functions and Variables for fast Fourier transform.
                                                             (line  261)
* bfallroots:                            Functions and Variables for Equations.
                                                             (line  218)
* bffac:                                 Gamma and factorial Functions.
                                                             (line   11)
* bfhzeta:                               Functions and Variables for Number Theory.
                                                             (line   35)
* bfloat:                                Functions and Variables for Numbers.
                                                             (line    7)
* bfloatp:                               Functions and Variables for Numbers.
                                                             (line   17)
* bfpsi:                                 Gamma and factorial Functions.
                                                             (line   17)
* bfpsi0:                                Gamma and factorial Functions.
                                                             (line   18)
* bftorat:                               Functions and Variables for Numbers.
                                                             (line   21)
* bftrunc:                               Functions and Variables for Numbers.
                                                             (line   49)
* bfzeta:                                Functions and Variables for Number Theory.
                                                             (line   29)
* biconnected_components:                Functions and Variables for graphs.
                                                             (line  392)
* bimetric:                              Functions and Variables for ctensor.
                                                             (line  827)
* bindtest:                              Functions and Variables for Properties.
                                                             (line   26)
* binomial:                              Combinatorial Functions.
                                                             (line   24)
* bipartition:                           Functions and Variables for graphs.
                                                             (line  408)
* bit_and:                               Functions and Variables for bitwise.
                                                             (line   24)
* bit_length:                            Functions and Variables for bitwise.
                                                             (line  142)
* bit_lsh:                               Functions and Variables for bitwise.
                                                             (line   99)
* bit_not:                               Functions and Variables for bitwise.
                                                             (line    7)
* bit_onep:                              Functions and Variables for bitwise.
                                                             (line  158)
* bit_or:                                Functions and Variables for bitwise.
                                                             (line   49)
* bit_rsh:                               Functions and Variables for bitwise.
                                                             (line  120)
* bit_xor:                               Functions and Variables for bitwise.
                                                             (line   74)
* block:                                 Functions and Variables for Function Definition.
                                                             (line   78)
* blockmatrixp:                          Functions and Variables for linearalgebra.
                                                             (line   22)
* bode_gain:                             Functions and Variables for bode.
                                                             (line    7)
* bode_phase:                            Functions and Variables for bode.
                                                             (line   53)
* border:                                Functions and Variables for draw.
                                                             (line  350)
* bothcoef:                              Functions and Variables for Polynomials.
                                                             (line   40)
* boundaries_array:                      Functions and Variables for worldmap.
                                                             (line   12)
* box <1>:                               Functions and Variables for Expressions.
                                                             (line   86)
* box:                                   Plotting Options.   (line   46)
* boxchar:                               Functions and Variables for Expressions.
                                                             (line  135)
* boxplot:                               Functions and Variables for statistical graphs.
                                                             (line  148)
* boxplot_description:                   Functions and Variables for statistical graphs.
                                                             (line  202)
* break:                                 Functions and Variables for Function Definition.
                                                             (line  137)
* breakup:                               Functions and Variables for Equations.
                                                             (line  246)
* bug_report:                            Functions and Variables for Bug Detection and Reporting.
                                                             (line   79)
* build_info:                            Functions and Variables for Bug Detection and Reporting.
                                                             (line   90)
* build_sample:                          Functions and Variables for data manipulation.
                                                             (line    9)
* buildq:                                Macros.             (line    7)
* burn:                                  Functions and Variables for Number Theory.
                                                             (line   53)
* cabs:                                  Functions for Complex Numbers.
                                                             (line    7)
* canform:                               Functions and Variables for itensor.
                                                             (line  598)
* canten:                                Functions and Variables for itensor.
                                                             (line  511)
* capping <1>:                           Functions and Variables for draw.
                                                             (line  370)
* capping:                               Visualization with VTK.
                                                             (line  193)
* cardinality:                           Functions and Variables for Sets.
                                                             (line   52)
* carg:                                  Functions for Complex Numbers.
                                                             (line   97)
* cartan:                                Functions and Variables for Differentiation.
                                                             (line  221)
* cartesian_product:                     Functions and Variables for Sets.
                                                             (line   70)
* catch:                                 Functions and Variables for Function Definition.
                                                             (line  143)
* cauchy_matrix:                         Functions and Variables for Matrices and Linear Algebra.
                                                             (line   40)
* cauchysum:                             Functions and Variables for Series.
                                                             (line    7)
* cbffac:                                Gamma and factorial Functions.
                                                             (line   27)
* cbrange:                               Functions and Variables for draw.
                                                             (line  390)
* cbtics:                                Functions and Variables for draw.
                                                             (line  418)
* cdf_bernoulli:                         Functions and Variables for discrete distributions.
                                                             (line  257)
* cdf_beta:                              Functions and Variables for continuous distributions.
                                                             (line  902)
* cdf_binomial:                          Functions and Variables for discrete distributions.
                                                             (line  112)
* cdf_cauchy:                            Functions and Variables for continuous distributions.
                                                             (line 1448)
* cdf_chi2:                              Functions and Variables for continuous distributions.
                                                             (line  303)
* cdf_continuous_uniform:                Functions and Variables for continuous distributions.
                                                             (line  969)
* cdf_discrete_uniform:                  Functions and Variables for discrete distributions.
                                                             (line  428)
* cdf_exp:                               Functions and Variables for continuous distributions.
                                                             (line  602)
* cdf_f:                                 Functions and Variables for continuous distributions.
                                                             (line  508)
* cdf_gamma:                             Functions and Variables for continuous distributions.
                                                             (line  829)
* cdf_general_finite_discrete:           Functions and Variables for discrete distributions.
                                                             (line   26)
* cdf_geometric:                         Functions and Variables for discrete distributions.
                                                             (line  370)
* cdf_gumbel:                            Functions and Variables for continuous distributions.
                                                             (line 1478)
* cdf_hypergeometric:                    Functions and Variables for discrete distributions.
                                                             (line  496)
* cdf_laplace:                           Functions and Variables for continuous distributions.
                                                             (line 1390)
* cdf_logistic:                          Functions and Variables for continuous distributions.
                                                             (line 1031)
* cdf_lognormal:                         Functions and Variables for continuous distributions.
                                                             (line  753)
* cdf_negative_binomial:                 Functions and Variables for discrete distributions.
                                                             (line  568)
* cdf_noncentral_chi2:                   Functions and Variables for continuous distributions.
                                                             (line  446)
* cdf_noncentral_student_t:              Functions and Variables for continuous distributions.
                                                             (line  192)
* cdf_normal:                            Functions and Variables for continuous distributions.
                                                             (line   13)
* cdf_pareto:                            Functions and Variables for continuous distributions.
                                                             (line 1089)
* cdf_poisson:                           Functions and Variables for discrete distributions.
                                                             (line  181)
* cdf_rank_sum:                          Functions and Variables for special distributions.
                                                             (line   31)
* cdf_rayleigh:                          Functions and Variables for continuous distributions.
                                                             (line 1219)
* cdf_signed_rank:                       Functions and Variables for special distributions.
                                                             (line   15)
* cdf_student_t:                         Functions and Variables for continuous distributions.
                                                             (line   93)
* cdf_weibull:                           Functions and Variables for continuous distributions.
                                                             (line 1147)
* cdisplay:                              Functions and Variables for ctensor.
                                                             (line  859)
* ceiling:                               Functions for Numbers.
                                                             (line   95)
* center:                                Visualization with VTK.
                                                             (line  201)
* central_moment:                        Functions and Variables for descriptive statistics.
                                                             (line  150)
* cequal:                                Characters.         (line  116)
* cequalignore:                          Characters.         (line  120)
* cf:                                    Functions and Variables for Number Theory.
                                                             (line   95)
* cfdisrep:                              Functions and Variables for Number Theory.
                                                             (line  164)
* cfexpand:                              Functions and Variables for Number Theory.
                                                             (line  181)
* cflength:                              Functions and Variables for Number Theory.
                                                             (line  198)
* cframe_flag:                           Functions and Variables for ctensor.
                                                             (line 1108)
* cgeodesic:                             Functions and Variables for ctensor.
                                                             (line  796)
* cgreaterp:                             Characters.         (line  127)
* cgreaterpignore:                       Characters.         (line  132)
* changename:                            Functions and Variables for itensor.
                                                             (line   25)
* changevar:                             Functions and Variables for Integration.
                                                             (line    7)
* chaosgame:                             Graphical analysis of discrete dynamical systems.
                                                             (line    8)
* charat:                                String Processing.  (line   10)
* charfun:                               Functions and Variables for Predicates.
                                                             (line    7)
* charfun2:                              Functions and Variables for interpol.
                                                             (line  108)
* charlist:                              String Processing.  (line   20)
* charp:                                 Characters.         (line  139)
* charpoly:                              Functions and Variables for Matrices and Linear Algebra.
                                                             (line   70)
* chdir:                                 Directory operations.
                                                             (line    7)
* chebyshev_t:                           Functions and Variables for orthogonal polynomials.
                                                             (line   22)
* chebyshev_u:                           Functions and Variables for orthogonal polynomials.
                                                             (line   28)
* check_overlaps:                        Functions and Variables for Affine.
                                                             (line   97)
* checkdiv:                              Functions and Variables for ctensor.
                                                             (line  787)
* chinese:                               Functions and Variables for Number Theory.
                                                             (line   74)
* cholesky:                              Functions and Variables for linearalgebra.
                                                             (line   74)
* christof:                              Functions and Variables for ctensor.
                                                             (line  198)
* chromatic_index:                       Functions and Variables for graphs.
                                                             (line  421)
* chromatic_number:                      Functions and Variables for graphs.
                                                             (line  431)
* cint:                                  Characters.         (line  144)
* circulant_graph:                       Functions and Variables for graphs.
                                                             (line   72)
* clear_edge_weight:                     Functions and Variables for graphs.
                                                             (line  442)
* clear_rules:                           Functions and Variables for Rules and Patterns.
                                                             (line  862)
* clear_vertex_label:                    Functions and Variables for graphs.
                                                             (line  456)
* clebsch_gordan:                        Functions and Variables for clebsch_gordan.
                                                             (line    7)
* clebsch_graph:                         Functions and Variables for graphs.
                                                             (line   93)
* clessp:                                Characters.         (line  169)
* clesspignore:                          Characters.         (line  174)
* close:                                 Input and Output.   (line   26)
* closefile:                             Functions and Variables for File Input and Output.
                                                             (line   85)
* cmetric:                               Functions and Variables for ctensor.
                                                             (line   18)
* cnonmet_flag:                          Functions and Variables for ctensor.
                                                             (line 1123)
* coeff:                                 Functions and Variables for Polynomials.
                                                             (line   57)
* coefmatrix:                            Functions and Variables for Matrices and Linear Algebra.
                                                             (line  107)
* cograd:                                Functions and Variables for ctensor.
                                                             (line  733)
* col:                                   Functions and Variables for Matrices and Linear Algebra.
                                                             (line  117)
* collapse:                              Functions and Variables for Expressions.
                                                             (line  146)
* collectterms:                          Package facexp.     (line  106)
* color <1>:                             Functions and Variables for draw.
                                                             (line  442)
* color <2>:                             Plotting Options.   (line   53)
* color:                                 Visualization with VTK.
                                                             (line  210)
* color_bar:                             Plotting Options.   (line   68)
* color_bar_tics:                        Plotting Options.   (line   77)
* colorbox:                              Functions and Variables for draw.
                                                             (line  492)
* columnop:                              Functions and Variables for linearalgebra.
                                                             (line   27)
* columns:                               Functions and Variables for draw.
                                                             (line  524)
* columnspace:                           Functions and Variables for linearalgebra.
                                                             (line   38)
* columnswap:                            Functions and Variables for linearalgebra.
                                                             (line   33)
* columnvector:                          Functions and Variables for Matrices and Linear Algebra.
                                                             (line  122)
* combination:                           Package functs.     (line  190)
* combine:                               Functions and Variables for Simplification.
                                                             (line   58)
* commutative:                           Functions and Variables for Simplification.
                                                             (line   74)
* comp2pui:                              Functions and Variables for Symmetries.
                                                             (line   10)
* compare:                               Functions and Variables for Predicates.
                                                             (line   24)
* compfile:                              Functions and Variables for Function Definition.
                                                             (line  170)
* compile:                               Functions and Variables for Function Definition.
                                                             (line  189)
* compile_file:                          Functions and Variables for Function Definition.
                                                             (line 1385)
* complement_graph:                      Functions and Variables for graphs.
                                                             (line   97)
* complete_bipartite_graph:              Functions and Variables for graphs.
                                                             (line  101)
* complete_graph:                        Functions and Variables for graphs.
                                                             (line  105)
* complex:                               Functions and Variables for Properties.
                                                             (line  543)
* Complex infinity:                      Functions and Variables for Constants.
                                                             (line   41)
* complex_number_p:                      Functions and Variables for to_poly_solve.
                                                             (line  209)
* components:                            Functions and Variables for itensor.
                                                             (line  204)
* compose_functions:                     Functions and Variables for to_poly_solve.
                                                             (line  232)
* concan:                                Functions and Variables for itensor.
                                                             (line  524)
* concat:                                Functions and Variables for Strings.
                                                             (line    7)
* conditional evaluation:                Functions and Variables for to_poly_solve.
                                                             (line   91)
* cone:                                  Visualization with VTK.
                                                             (line  136)
* conjugate:                             Functions for Complex Numbers.
                                                             (line  146)
* conmetderiv:                           Functions and Variables for itensor.
                                                             (line  798)
* connect_vertices:                      Functions and Variables for graphs.
                                                             (line 1288)
* connected_components:                  Functions and Variables for graphs.
                                                             (line  470)
* cons:                                  Functions and Variables for Lists.
                                                             (line   88)
* constant:                              Functions and Variables for Properties.
                                                             (line   42)
* constantp:                             Functions and Variables for Properties.
                                                             (line   61)
* constituent:                           Characters.         (line  181)
* constvalue:                            Functions and Variables for ezunits.
                                                             (line  257)
* cont2part:                             Functions and Variables for Symmetries.
                                                             (line  223)
* content:                               Functions and Variables for Polynomials.
                                                             (line  151)
* context:                               Functions and Variables for Facts.
                                                             (line  227)
* contexts:                              Functions and Variables for Facts.
                                                             (line  242)
* continuous_freq:                       Functions and Variables for data manipulation.
                                                             (line   65)
* contortion:                            Functions and Variables for ctensor.
                                                             (line  666)
* contour:                               Functions and Variables for draw.
                                                             (line  544)
* contour_levels:                        Functions and Variables for draw.
                                                             (line  581)
* contour_plot:                          Functions and Variables for Plotting.
                                                             (line    8)
* contract <1>:                          Functions and Variables for itensor.
                                                             (line  188)
* contract:                              Functions and Variables for Symmetries.
                                                             (line  235)
* contract_edge:                         Functions and Variables for graphs.
                                                             (line 1307)
* Contraction with a vector:             Functions and Variables for itensor.
                                                             (line 1439)
* contragrad:                            Functions and Variables for ctensor.
                                                             (line  739)
* contrib_ode:                           Functions and Variables for contrib_ode.
                                                             (line    7)
* convert:                               Functions and Variables for Units.
                                                             (line  144)
* coord:                                 Functions and Variables for itensor.
                                                             (line  775)
* copy:                                  Functions and Variables for linearalgebra.
                                                             (line   45)
* copy_file:                             File operations.    (line    7)
* copy_graph:                            Functions and Variables for graphs.
                                                             (line   68)
* copylist:                              Functions and Variables for Lists.
                                                             (line  119)
* copymatrix:                            Functions and Variables for Matrices and Linear Algebra.
                                                             (line  149)
* cor:                                   Functions and Variables for descriptive statistics.
                                                             (line  632)
* cos:                                   Functions and Variables for Trigonometric.
                                                             (line  146)
* cosh:                                  Functions and Variables for Trigonometric.
                                                             (line  150)
* cosnpiflag:                            Functions and Variables for Fourier series.
                                                             (line   66)
* cot:                                   Functions and Variables for Trigonometric.
                                                             (line  154)
* coth:                                  Functions and Variables for Trigonometric.
                                                             (line  158)
* cov:                                   Functions and Variables for descriptive statistics.
                                                             (line  521)
* cov1:                                  Functions and Variables for descriptive statistics.
                                                             (line  551)
* covdiff:                               Functions and Variables for itensor.
                                                             (line  949)
* covect:                                Functions and Variables for Matrices and Linear Algebra.
                                                             (line  123)
* covers:                                Package functs.     (line  172)
* crc24sum:                              Octets and Utilities for Cryptography.
                                                             (line   47)
* create_graph:                          Functions and Variables for graphs.
                                                             (line   13)
* create_list:                           Functions and Variables for Lists.
                                                             (line  124)
* csc:                                   Functions and Variables for Trigonometric.
                                                             (line  162)
* csch:                                  Functions and Variables for Trigonometric.
                                                             (line  166)
* csetup:                                Functions and Variables for ctensor.
                                                             (line   10)
* cspline:                               Functions and Variables for interpol.
                                                             (line  186)
* ct_coords:                             Functions and Variables for ctensor.
                                                             (line 1284)
* ct_coordsys:                           Functions and Variables for ctensor.
                                                             (line   39)
* ctaylor:                               Functions and Variables for ctensor.
                                                             (line  343)
* ctaypov:                               Functions and Variables for ctensor.
                                                             (line 1141)
* ctaypt:                                Functions and Variables for ctensor.
                                                             (line 1146)
* ctayswitch:                            Functions and Variables for ctensor.
                                                             (line 1130)
* ctayvar:                               Functions and Variables for ctensor.
                                                             (line 1136)
* ctorsion_flag:                         Functions and Variables for ctensor.
                                                             (line 1117)
* ctransform:                            Functions and Variables for ctensor.
                                                             (line  679)
* ctranspose:                            Functions and Variables for linearalgebra.
                                                             (line   81)
* ctrgsimp:                              Functions and Variables for ctensor.
                                                             (line 1102)
* cube:                                  Visualization with VTK.
                                                             (line  154)
* cube_graph:                            Functions and Variables for graphs.
                                                             (line  121)
* cuboctahedron_graph:                   Functions and Variables for graphs.
                                                             (line  117)
* Current input expression:              Functions and Variables for Command Line.
                                                             (line    7)
* current_let_rule_package:              Functions and Variables for Rules and Patterns.
                                                             (line   52)
* cv:                                    Functions and Variables for descriptive statistics.
                                                             (line  176)
* cycle_digraph:                         Functions and Variables for graphs.
                                                             (line  109)
* cycle_graph:                           Functions and Variables for graphs.
                                                             (line  113)
* cylinder:                              Visualization with VTK.
                                                             (line  161)
* cylindrical:                           Functions and Variables for draw.
                                                             (line 2915)
* data_file_name:                        Functions and Variables for draw.
                                                             (line  630)
* days360:                               Functions and Variables for finance.
                                                             (line    7)
* dblint:                                Functions and Variables for Integration.
                                                             (line   60)
* deactivate:                            Functions and Variables for Facts.
                                                             (line  272)
* debugmode:                             Functions and Variables for Debugging.
                                                             (line    7)
* declare:                               Functions and Variables for Properties.
                                                             (line   94)
* declare_constvalue:                    Functions and Variables for ezunits.
                                                             (line  280)
* declare_dimensions:                    Functions and Variables for ezunits.
                                                             (line  492)
* declare_fundamental_dimensions:        Functions and Variables for ezunits.
                                                             (line  524)
* declare_fundamental_units:             Functions and Variables for ezunits.
                                                             (line  556)
* declare_qty:                           Functions and Variables for ezunits.
                                                             (line  390)
* declare_translated:                    Functions and Variables for Function Definition.
                                                             (line 1412)
* declare_unit_conversion:               Functions and Variables for ezunits.
                                                             (line  449)
* declare_units:                         Functions and Variables for ezunits.
                                                             (line  340)
* declare_weights:                       Functions and Variables for Affine.
                                                             (line   62)
* decreasing:                            Functions and Variables for Properties.
                                                             (line  236)
* decsym:                                Functions and Variables for itensor.
                                                             (line  542)
* default_let_rule_package:              Functions and Variables for Rules and Patterns.
                                                             (line   65)
* defcon:                                Functions and Variables for itensor.
                                                             (line  163)
* define:                                Functions and Variables for Function Definition.
                                                             (line  226)
* define_alt_display:                    Functions and Variables for alt-display.
                                                             (line    7)
* define_variable:                       Functions and Variables for Function Definition.
                                                             (line  314)
* defint:                                Functions and Variables for Integration.
                                                             (line  106)
* defmatch:                              Functions and Variables for Rules and Patterns.
                                                             (line   75)
* defrule:                               Functions and Variables for Rules and Patterns.
                                                             (line  175)
* defstruct:                             Functions and Variables for Structures.
                                                             (line   14)
* deftaylor:                             Functions and Variables for Series.
                                                             (line   41)
* degree_sequence:                       Functions and Variables for graphs.
                                                             (line  510)
* del:                                   Functions and Variables for Differentiation.
                                                             (line  233)
* delay:                                 Functions and Variables for draw.
                                                             (line  643)
* delete:                                Functions and Variables for Lists.
                                                             (line  155)
* delete_file:                           File operations.    (line   13)
* deleten:                               Functions and Variables for ctensor.
                                                             (line 1075)
* delta:                                 Functions and Variables for Differentiation.
                                                             (line  253)
* demo:                                  Functions and Variables for Help.
                                                             (line   33)
* demoivre:                              Functions and Variables for Simplification.
                                                             (line   96)
* denom:                                 Functions and Variables for Polynomials.
                                                             (line  164)
* dependencies:                          Functions and Variables for Differentiation.
                                                             (line  269)
* depends:                               Functions and Variables for Differentiation.
                                                             (line  306)
* derivabbrev:                           Functions and Variables for Differentiation.
                                                             (line  365)
* derivdegree:                           Functions and Variables for Differentiation.
                                                             (line  373)
* derivlist:                             Functions and Variables for Differentiation.
                                                             (line  390)
* derivsubst:                            Functions and Variables for Differentiation.
                                                             (line  395)
* describe:                              Functions and Variables for Help.
                                                             (line   73)
* desolve:                               Functions and Variables for Differential Equations.
                                                             (line   21)
* determinant:                           Functions and Variables for Matrices and Linear Algebra.
                                                             (line  160)
* detout:                                Functions and Variables for Matrices and Linear Algebra.
                                                             (line  171)
* dfloat:                                Functions and Variables for to_poly_solve.
                                                             (line  284)
* dgauss_a:                              Functions and Variables for contrib_ode.
                                                             (line   88)
* dgauss_b:                              Functions and Variables for contrib_ode.
                                                             (line   93)
* dgeev:                                 Functions and Variables for lapack.
                                                             (line    9)
* dgemm:                                 Functions and Variables for lapack.
                                                             (line  303)
* dgeqrf:                                Functions and Variables for lapack.
                                                             (line   74)
* dgesv:                                 Functions and Variables for lapack.
                                                             (line  105)
* dgesvd:                                Functions and Variables for lapack.
                                                             (line  179)
* diag:                                  Functions and Variables for diag.
                                                             (line    7)
* diag_matrix:                           Functions and Variables for linearalgebra.
                                                             (line   87)
* diagmatrix:                            Functions and Variables for Matrices and Linear Algebra.
                                                             (line  199)
* diagmatrixp:                           Functions and Variables for ctensor.
                                                             (line  837)
* diagmetric:                            Functions and Variables for ctensor.
                                                             (line 1091)
* diameter:                              Functions and Variables for graphs.
                                                             (line  481)
* diff <1>:                              Functions and Variables for Differentiation.
                                                             (line  481)
* diff:                                  Functions and Variables for itensor.
                                                             (line  619)
* digitcharp:                            Characters.         (line  194)
* dim:                                   Functions and Variables for ctensor.
                                                             (line 1083)
* dimacs_export:                         Functions and Variables for graphs.
                                                             (line 1362)
* dimacs_import:                         Functions and Variables for graphs.
                                                             (line 1367)
* dimension:                             Functions and Variables for Equations.
                                                             (line  319)
* dimensionless:                         Functions and Variables for ezunits.
                                                             (line  676)
* dimensions <1>:                        Functions and Variables for ezunits.
                                                             (line  596)
* dimensions:                            Functions and Variables for draw.
                                                             (line  670)
* dimensions_as_list:                    Functions and Variables for ezunits.
                                                             (line  597)
* direct:                                Functions and Variables for Symmetries.
                                                             (line  295)
* directory:                             Functions and Variables for File Input and Output.
                                                             (line  315)
* discrete_freq:                         Functions and Variables for data manipulation.
                                                             (line  107)
* disjoin:                               Functions and Variables for Sets.
                                                             (line   89)
* disjointp:                             Functions and Variables for Sets.
                                                             (line  109)
* disolate:                              Functions and Variables for Expressions.
                                                             (line  157)
* disp:                                  Functions and Variables for Display.
                                                             (line   40)
* dispcon:                               Functions and Variables for itensor.
                                                             (line   12)
* dispflag:                              Functions and Variables for Equations.
                                                             (line  325)
* dispform:                              Functions and Variables for Expressions.
                                                             (line  169)
* dispfun:                               Functions and Variables for Function Definition.
                                                             (line  402)
* dispJordan:                            Functions and Variables for diag.
                                                             (line  117)
* display:                               Functions and Variables for Display.
                                                             (line   63)
* display2d:                             Functions and Variables for Display.
                                                             (line   89)
* display_format_internal:               Functions and Variables for Display.
                                                             (line  110)
* disprule:                              Functions and Variables for Rules and Patterns.
                                                             (line  192)
* dispterms:                             Functions and Variables for Display.
                                                             (line  134)
* distrib:                               Functions and Variables for Simplification.
                                                             (line  112)
* distribute_over:                       Functions and Variables for Simplification.
                                                             (line  134)
* divide:                                Functions and Variables for Polynomials.
                                                             (line  185)
* Division:                              Arithmetic operators.
                                                             (line    6)
* divisors:                              Functions and Variables for Sets.
                                                             (line  122)
* divsum:                                Functions and Variables for Number Theory.
                                                             (line  218)
* dkummer_m:                             Functions and Variables for contrib_ode.
                                                             (line  116)
* dkummer_u:                             Functions and Variables for contrib_ode.
                                                             (line  120)
* dlange:                                Functions and Variables for lapack.
                                                             (line  279)
* do:                                    Functions and Variables for Program Flow.
                                                             (line   55)
* doallmxops:                            Functions and Variables for Matrices and Linear Algebra.
                                                             (line  212)
* dodecahedron_graph:                    Functions and Variables for graphs.
                                                             (line  125)
* domain:                                Functions and Variables for Simplification.
                                                             (line  195)
* domxexpt:                              Functions and Variables for Matrices and Linear Algebra.
                                                             (line  220)
* domxmxops:                             Functions and Variables for Matrices and Linear Algebra.
                                                             (line  253)
* domxnctimes:                           Functions and Variables for Matrices and Linear Algebra.
                                                             (line  261)
* dontfactor:                            Functions and Variables for Matrices and Linear Algebra.
                                                             (line  268)
* doscmxops:                             Functions and Variables for Matrices and Linear Algebra.
                                                             (line  279)
* doscmxplus:                            Functions and Variables for Matrices and Linear Algebra.
                                                             (line  286)
* dot0nscsimp:                           Functions and Variables for Matrices and Linear Algebra.
                                                             (line  293)
* dot0simp:                              Functions and Variables for Matrices and Linear Algebra.
                                                             (line  300)
* dot1simp:                              Functions and Variables for Matrices and Linear Algebra.
                                                             (line  307)
* dotassoc:                              Functions and Variables for Matrices and Linear Algebra.
                                                             (line  314)
* dotconstrules:                         Functions and Variables for Matrices and Linear Algebra.
                                                             (line  321)
* dotdistrib:                            Functions and Variables for Matrices and Linear Algebra.
                                                             (line  330)
* dotexptsimp:                           Functions and Variables for Matrices and Linear Algebra.
                                                             (line  337)
* dotident:                              Functions and Variables for Matrices and Linear Algebra.
                                                             (line  344)
* dotproduct:                            Functions and Variables for linearalgebra.
                                                             (line  109)
* dotscrules:                            Functions and Variables for Matrices and Linear Algebra.
                                                             (line  350)
* dotsimp:                               Functions and Variables for Affine.
                                                             (line   76)
* Double factorial:                      Combinatorial Functions.
                                                             (line    7)
* dpart:                                 Functions and Variables for Expressions.
                                                             (line  221)
* draw:                                  Functions and Variables for draw.
                                                             (line   72)
* draw2d:                                Functions and Variables for draw.
                                                             (line  114)
* draw3d:                                Functions and Variables for draw.
                                                             (line  123)
* draw_file:                             Functions and Variables for draw.
                                                             (line  132)
* draw_graph:                            Functions and Variables for graphs.
                                                             (line 1412)
* draw_graph_program:                    Functions and Variables for graphs.
                                                             (line 1516)
* draw_realpart:                         Functions and Variables for draw.
                                                             (line  713)
* drawdf:                                Functions and Variables for drawdf.
                                                             (line   19)
* dscalar <1>:                           Functions and Variables for Differentiation.
                                                             (line  486)
* dscalar:                               Functions and Variables for ctensor.
                                                             (line  766)
* e:                                     Functions and Variables for Constants.
                                                             (line    7)
* echelon:                               Functions and Variables for Matrices and Linear Algebra.
                                                             (line  357)
* edge_color:                            Functions and Variables for graphs.
                                                             (line 1596)
* edge_coloring:                         Functions and Variables for graphs.
                                                             (line  490)
* edge_connectivity:                     Functions and Variables for graphs.
                                                             (line  519)
* edge_partition:                        Functions and Variables for graphs.
                                                             (line 1627)
* edge_type:                             Functions and Variables for graphs.
                                                             (line 1604)
* edge_width:                            Functions and Variables for graphs.
                                                             (line 1600)
* edges:                                 Functions and Variables for graphs.
                                                             (line  525)
* eigens_by_jacobi:                      Functions and Variables for linearalgebra.
                                                             (line  117)
* eigenvalues:                           Functions and Variables for Matrices and Linear Algebra.
                                                             (line  388)
* eigenvectors:                          Functions and Variables for Matrices and Linear Algebra.
                                                             (line  420)
* eighth:                                Functions and Variables for Lists.
                                                             (line  216)
* einstein:                              Functions and Variables for ctensor.
                                                             (line  237)
* eivals:                                Functions and Variables for Matrices and Linear Algebra.
                                                             (line  389)
* eivects:                               Functions and Variables for Matrices and Linear Algebra.
                                                             (line  421)
* elapsed_real_time:                     Functions and Variables for Runtime Environment.
                                                             (line  205)
* elapsed_run_time:                      Functions and Variables for Runtime Environment.
                                                             (line  221)
* ele2comp:                              Functions and Variables for Symmetries.
                                                             (line   30)
* ele2polynome:                          Functions and Variables for Symmetries.
                                                             (line  525)
* ele2pui:                               Functions and Variables for Symmetries.
                                                             (line   23)
* elem:                                  Functions and Variables for Symmetries.
                                                             (line   37)
* elementp:                              Functions and Variables for Sets.
                                                             (line  165)
* elevation <1>:                         Visualization with VTK.
                                                             (line   80)
* elevation:                             Plotting Options.   (line   86)
* elevation_grid:                        Functions and Variables for draw.
                                                             (line 2936)
* elim:                                  Functions and Variables for to_poly_solve.
                                                             (line  315)
* elim_allbut:                           Functions and Variables for to_poly_solve.
                                                             (line  379)
* eliminate:                             Functions and Variables for Polynomials.
                                                             (line  202)
* eliminate_using:                       Functions and Variables for to_poly_solve.
                                                             (line  400)
* ellipse:                               Functions and Variables for draw.
                                                             (line 2964)
* elliptic_e:                            Functions and Variables for Elliptic Integrals.
                                                             (line   15)
* elliptic_ec:                           Functions and Variables for Elliptic Integrals.
                                                             (line   55)
* elliptic_eu:                           Functions and Variables for Elliptic Integrals.
                                                             (line   23)
* elliptic_f:                            Functions and Variables for Elliptic Integrals.
                                                             (line    7)
* elliptic_kc:                           Functions and Variables for Elliptic Integrals.
                                                             (line   46)
* elliptic_pi:                           Functions and Variables for Elliptic Integrals.
                                                             (line   38)
* ematrix:                               Functions and Variables for Matrices and Linear Algebra.
                                                             (line  537)
* empty_graph:                           Functions and Variables for graphs.
                                                             (line  129)
* emptyp:                                Functions and Variables for Sets.
                                                             (line  178)
* endcons:                               Functions and Variables for Lists.
                                                             (line  223)
* endphi:                                Visualization with VTK.
                                                             (line  217)
* endtheta:                              Visualization with VTK.
                                                             (line  229)
* engineering_format_floats:             Functions and Variables for engineering-format.
                                                             (line    7)
* enhanced3d:                            Functions and Variables for draw.
                                                             (line  736)
* entermatrix:                           Functions and Variables for Matrices and Linear Algebra.
                                                             (line  542)
* entertensor:                           Functions and Variables for itensor.
                                                             (line   18)
* entier:                                Functions for Numbers.
                                                             (line  184)
* epsilon_lp:                            Functions and Variables for simplex.
                                                             (line    7)
* equal:                                 Functions and Variables for Predicates.
                                                             (line   55)
* Equal (syntactic equality):            Operators for Equations.
                                                             (line   31)
* equalp:                                Functions and Variables for Fourier series.
                                                             (line    7)
* Equation operator:                     Operators for Equations.
                                                             (line   31)
* equiv_classes:                         Functions and Variables for Sets.
                                                             (line  190)
* erf:                                   Error Function.     (line   10)
* erf_generalized:                       Error Function.     (line   28)
* erf_representation:                    Error Function.     (line   58)
* erfc:                                  Error Function.     (line   16)
* erfflag:                               Functions and Variables for Integration.
                                                             (line  119)
* erfi:                                  Error Function.     (line   22)
* errcatch:                              Functions and Variables for Program Flow.
                                                             (line  246)
* error:                                 Functions and Variables for Program Flow.
                                                             (line  258)
* error_size:                            Functions and Variables for Program Flow.
                                                             (line  273)
* error_syms:                            Functions and Variables for Program Flow.
                                                             (line  318)
* error_type:                            Functions and Variables for draw.
                                                             (line  876)
* errormsg:                              Functions and Variables for Program Flow.
                                                             (line  339)
* errors:                                Functions and Variables for draw.
                                                             (line 2996)
* euler:                                 Functions and Variables for Number Theory.
                                                             (line  234)
* Euler's number:                        Functions and Variables for Constants.
                                                             (line    7)
* Euler-Mascheroni constant:             Functions and Variables for Constants.
                                                             (line   22)
* ev:                                    Functions and Variables for Evaluation.
                                                             (line  269)
* ev_point:                              Functions and Variables for zeilberger.
                                                             (line  157)
* eval:                                  Functions and Variables for Evaluation.
                                                             (line  457)
* eval_string:                           String Processing.  (line   27)
* even:                                  Functions and Variables for Properties.
                                                             (line  256)
* evenfun:                               Functions and Variables for Simplification.
                                                             (line  202)
* evenp:                                 Functions and Variables for Numbers.
                                                             (line   58)
* every:                                 Functions and Variables for Sets.
                                                             (line  228)
* evflag:                                Functions and Variables for Evaluation.
                                                             (line  475)
* evfun:                                 Functions and Variables for Evaluation.
                                                             (line  540)
* evolution:                             Graphical analysis of discrete dynamical systems.
                                                             (line   23)
* evolution2d:                           Graphical analysis of discrete dynamical systems.
                                                             (line   42)
* evundiff:                              Functions and Variables for itensor.
                                                             (line  692)
* example:                               Functions and Variables for Help.
                                                             (line  137)
* exp:                                   Root Exponential and Logarithmic Functions.
                                                             (line   90)
* expand:                                Functions and Variables for Simplification.
                                                             (line  224)
* expandwrt:                             Functions and Variables for Simplification.
                                                             (line  315)
* expandwrt_denom:                       Functions and Variables for Simplification.
                                                             (line  328)
* expandwrt_factored:                    Functions and Variables for Simplification.
                                                             (line  338)
* expintegral_chi:                       Exponential Integrals.
                                                             (line   51)
* expintegral_ci:                        Exponential Integrals.
                                                             (line   37)
* expintegral_e:                         Exponential Integrals.
                                                             (line   24)
* expintegral_e1:                        Exponential Integrals.
                                                             (line   10)
* expintegral_e_simplify:                Functions and Variables for contrib_ode.
                                                             (line  147)
* expintegral_ei:                        Exponential Integrals.
                                                             (line   16)
* expintegral_li:                        Exponential Integrals.
                                                             (line   20)
* expintegral_shi:                       Exponential Integrals.
                                                             (line   45)
* expintegral_si:                        Exponential Integrals.
                                                             (line   31)
* expintexpand:                          Exponential Integrals.
                                                             (line   77)
* expintrep:                             Exponential Integrals.
                                                             (line   59)
* explicit:                              Functions and Variables for draw.
                                                             (line 3040)
* explose:                               Functions and Variables for Symmetries.
                                                             (line  253)
* expon:                                 Functions and Variables for Simplification.
                                                             (line  346)
* exponentialize:                        Functions and Variables for Simplification.
                                                             (line  355)
* Exponentiation:                        Arithmetic operators.
                                                             (line    6)
* expop:                                 Functions and Variables for Simplification.
                                                             (line  370)
* express:                               Functions and Variables for Differentiation.
                                                             (line  492)
* expt:                                  Functions and Variables for Display.
                                                             (line  161)
* exptdispflag:                          Functions and Variables for Display.
                                                             (line  169)
* exptisolate:                           Functions and Variables for Expressions.
                                                             (line  236)
* exptsubst:                             Functions and Variables for Expressions.
                                                             (line  243)
* exsec:                                 Package functs.     (line  178)
* extdiff:                               Functions and Variables for itensor.
                                                             (line 1470)
* extract_linear_equations:              Functions and Variables for Affine.
                                                             (line  126)
* extremal_subset:                       Functions and Variables for Sets.
                                                             (line  296)
* ezgcd:                                 Functions and Variables for Polynomials.
                                                             (line  230)
* f90:                                   Functions and Variables for f90.
                                                             (line    7)
* facexpand:                             Functions and Variables for Polynomials.
                                                             (line  262)
* facsum:                                Package facexp.     (line   28)
* facsum_combine:                        Package facexp.     (line   83)
* factcomb:                              Combinatorial Functions.
                                                             (line   48)
* factlim:                               Combinatorial Functions.
                                                             (line  160)
* factor:                                Functions and Variables for Polynomials.
                                                             (line  272)
* factorfacsum:                          Package facexp.     (line   99)
* factorflag:                            Functions and Variables for Polynomials.
                                                             (line  403)
* factorial:                             Combinatorial Functions.
                                                             (line   74)
* factorial_expand:                      Combinatorial Functions.
                                                             (line  167)
* factorout:                             Functions and Variables for Polynomials.
                                                             (line  410)
* factors_only:                          Functions and Variables for Number Theory.
                                                             (line  249)
* factorsum:                             Functions and Variables for Polynomials.
                                                             (line  429)
* facts:                                 Functions and Variables for Facts.
                                                             (line  278)
* false:                                 Functions and Variables for Constants.
                                                             (line   17)
* fast_central_elements:                 Functions and Variables for Affine.
                                                             (line   84)
* fast_linsolve:                         Functions and Variables for Affine.
                                                             (line    8)
* fasttimes:                             Functions and Variables for Polynomials.
                                                             (line  449)
* fb:                                    Functions and Variables for ctensor.
                                                             (line 1234)
* feature:                               Functions and Variables for Properties.
                                                             (line  277)
* featurep:                              Functions and Variables for Properties.
                                                             (line  286)
* features:                              Functions and Variables for Properties.
                                                             (line  303)
* fernfale:                              Definitions for IFS fractals.
                                                             (line   43)
* Fetch documentation:                   Functions and Variables for Command Line.
                                                             (line  182)
* Fetch documentation (inexact search):  Functions and Variables for Command Line.
                                                             (line  195)
* fft:                                   Functions and Variables for fast Fourier transform.
                                                             (line  109)
* fib:                                   Functions and Variables for Number Theory.
                                                             (line  260)
* fibtophi:                              Functions and Variables for Number Theory.
                                                             (line  272)
* fifth:                                 Functions and Variables for Lists.
                                                             (line  250)
* file_name <1>:                         Functions and Variables for graphs.
                                                             (line 1669)
* file_name:                             Functions and Variables for draw.
                                                             (line  886)
* file_output_append:                    Functions and Variables for File Input and Output.
                                                             (line   89)
* file_search:                           Functions and Variables for File Input and Output.
                                                             (line  115)
* file_search_demo:                      Functions and Variables for File Input and Output.
                                                             (line  156)
* file_search_lisp:                      Functions and Variables for File Input and Output.
                                                             (line  155)
* file_search_maxima:                    Functions and Variables for File Input and Output.
                                                             (line  154)
* file_search_tests:                     Functions and Variables for File Input and Output.
                                                             (line  158)
* file_search_usage:                     Functions and Variables for File Input and Output.
                                                             (line  157)
* file_type:                             Functions and Variables for File Input and Output.
                                                             (line  192)
* file_type_lisp:                        Functions and Variables for File Input and Output.
                                                             (line  215)
* file_type_maxima:                      Functions and Variables for File Input and Output.
                                                             (line  223)
* filename_merge:                        Functions and Variables for File Input and Output.
                                                             (line  104)
* fill_color:                            Functions and Variables for draw.
                                                             (line  906)
* fill_density:                          Functions and Variables for draw.
                                                             (line  915)
* fillarray:                             Functions and Variables for Arrays.
                                                             (line  224)
* filled_func:                           Functions and Variables for draw.
                                                             (line  923)
* find_root:                             Functions for numerical solution of equations.
                                                             (line   36)
* find_root_abs:                         Functions for numerical solution of equations.
                                                             (line   40)
* find_root_error:                       Functions for numerical solution of equations.
                                                             (line   39)
* find_root_rel:                         Functions for numerical solution of equations.
                                                             (line   41)
* findde:                                Functions and Variables for ctensor.
                                                             (line  686)
* first:                                 Functions and Variables for Lists.
                                                             (line  255)
* fix:                                   Functions for Numbers.
                                                             (line  237)
* fixed_vertices:                        Functions and Variables for graphs.
                                                             (line 1682)
* flatten:                               Functions and Variables for Sets.
                                                             (line  316)
* flength:                               Input and Output.   (line   30)
* flipflag:                              Functions and Variables for itensor.
                                                             (line  146)
* float:                                 Functions and Variables for Numbers.
                                                             (line   66)
* float2bf:                              Functions and Variables for Numbers.
                                                             (line   73)
* floatnump:                             Functions and Variables for Numbers.
                                                             (line   81)
* floor:                                 Functions for Numbers.
                                                             (line  190)
* flower_snark:                          Functions and Variables for graphs.
                                                             (line  133)
* flush:                                 Functions and Variables for itensor.
                                                             (line  748)
* flush1deriv:                           Functions and Variables for itensor.
                                                             (line  897)
* flush_output:                          Input and Output.   (line   38)
* flushd:                                Functions and Variables for itensor.
                                                             (line  753)
* flushnd:                               Functions and Variables for itensor.
                                                             (line  758)
* fmin_cobyla:                           Functions and Variables for cobyla.
                                                             (line    9)
* font:                                  Functions and Variables for draw.
                                                             (line  957)
* font_size:                             Functions and Variables for draw.
                                                             (line 1040)
* for:                                   Functions and Variables for Program Flow.
                                                             (line  373)
* forget:                                Functions and Variables for Facts.
                                                             (line  291)
* fortindent:                            Functions and Variables for Fortran Output.
                                                             (line    7)
* fortran:                               Functions and Variables for Fortran Output.
                                                             (line   16)
* fortspaces:                            Functions and Variables for Fortran Output.
                                                             (line   73)
* fourcos:                               Functions and Variables for Fourier series.
                                                             (line   78)
* fourexpand:                            Functions and Variables for Fourier series.
                                                             (line   72)
* fourier:                               Functions and Variables for Fourier series.
                                                             (line   50)
* fourier_elim:                          Functions and Variables for to_poly_solve.
                                                             (line  432)
* fourint:                               Functions and Variables for Fourier series.
                                                             (line   93)
* fourintcos:                            Functions and Variables for Fourier series.
                                                             (line   98)
* fourintsin:                            Functions and Variables for Fourier series.
                                                             (line  103)
* foursimp:                              Functions and Variables for Fourier series.
                                                             (line   55)
* foursin:                               Functions and Variables for Fourier series.
                                                             (line   83)
* fourth:                                Functions and Variables for Lists.
                                                             (line  292)
* fposition:                             Input and Output.   (line   47)
* fpprec:                                Functions and Variables for Numbers.
                                                             (line   86)
* fpprintprec:                           Functions and Variables for Numbers.
                                                             (line   96)
* frame_bracket:                         Functions and Variables for ctensor.
                                                             (line  474)
* freeof:                                Functions and Variables for Expressions.
                                                             (line  264)
* freshline:                             Input and Output.   (line   59)
* fresnel_c:                             Error Function.     (line   32)
* fresnel_s:                             Error Function.     (line   45)
* from_adjacency_matrix:                 Functions and Variables for graphs.
                                                             (line  143)
* frucht_graph:                          Functions and Variables for graphs.
                                                             (line  147)
* full_listify:                          Functions and Variables for Sets.
                                                             (line  383)
* fullmap:                               Functions and Variables for Function Definition.
                                                             (line  486)
* fullmapl:                              Functions and Variables for Function Definition.
                                                             (line  505)
* fullratsimp:                           Functions and Variables for Polynomials.
                                                             (line  458)
* fullratsubst:                          Functions and Variables for Polynomials.
                                                             (line  497)
* fullsetify:                            Functions and Variables for Sets.
                                                             (line  398)
* funcsolve:                             Functions and Variables for Equations.
                                                             (line  334)
* Function definition operator:          Assignment operators.
                                                             (line  189)
* functions:                             Functions and Variables for Function Definition.
                                                             (line  515)
* fundamental_dimensions:                Functions and Variables for ezunits.
                                                             (line  526)
* fundamental_units:                     Functions and Variables for ezunits.
                                                             (line  642)
* fundef:                                Functions and Variables for Function Definition.
                                                             (line  561)
* funmake:                               Functions and Variables for Function Definition.
                                                             (line  589)
* funp:                                  Functions and Variables for Fourier series.
                                                             (line   25)
* fv:                                    Functions and Variables for finance.
                                                             (line   18)
* gamma:                                 Gamma and factorial Functions.
                                                             (line   33)
* gamma_expand:                          Gamma and factorial Functions.
                                                             (line  182)
* gamma_greek:                           Gamma and factorial Functions.
                                                             (line  121)
* gamma_incomplete:                      Gamma and factorial Functions.
                                                             (line  135)
* gamma_incomplete_generalized:          Gamma and factorial Functions.
                                                             (line  167)
* gamma_incomplete_regularized:          Gamma and factorial Functions.
                                                             (line  153)
* gammalim:                              Gamma and factorial Functions.
                                                             (line  202)
* gauss_a:                               Functions and Variables for contrib_ode.
                                                             (line   71)
* gauss_b:                               Functions and Variables for contrib_ode.
                                                             (line   84)
* gaussprob:                             Package functs.     (line  146)
* gcd:                                   Functions and Variables for Polynomials.
                                                             (line  554)
* gcdex:                                 Functions and Variables for Polynomials.
                                                             (line  603)
* gcdivide:                              Package functs.     (line   68)
* gcfac:                                 Package scifac.     (line    7)
* gcfactor:                              Functions and Variables for Polynomials.
                                                             (line  643)
* gd:                                    Package functs.     (line  153)
* gdet:                                  Functions and Variables for ctensor.
                                                             (line 1151)
* gen_laguerre:                          Functions and Variables for orthogonal polynomials.
                                                             (line   34)
* generalized_lambert_w:                 Functions and Variables for Special Functions.
                                                             (line  185)
* genfact:                               Combinatorial Functions.
                                                             (line  175)
* genindex:                              Functions and Variables for Miscellaneous Options.
                                                             (line   15)
* genmatrix:                             Functions and Variables for Matrices and Linear Algebra.
                                                             (line  584)
* gensumnum:                             Functions and Variables for Miscellaneous Options.
                                                             (line   22)
* gensym:                                Functions and Variables for Miscellaneous Options.
                                                             (line   32)
* geo_amortization:                      Functions and Variables for finance.
                                                             (line  160)
* geo_annuity_fv:                        Functions and Variables for finance.
                                                             (line   93)
* geo_annuity_pv:                        Functions and Variables for finance.
                                                             (line   80)
* geomap:                                Functions and Variables for worldmap.
                                                             (line  162)
* geometric:                             Package functs.     (line  118)
* geometric_mean:                        Functions and Variables for descriptive statistics.
                                                             (line  396)
* geosum:                                Package functs.     (line  138)
* get:                                   Functions and Variables for Properties.
                                                             (line  344)
* get_edge_weight:                       Functions and Variables for graphs.
                                                             (line  536)
* get_lu_factors:                        Functions and Variables for linearalgebra.
                                                             (line  175)
* get_output_stream_string:              Input and Output.   (line   69)
* get_pixel:                             Functions and Variables for pictures.
                                                             (line    7)
* get_plot_option:                       Functions and Variables for Plotting.
                                                             (line   33)
* get_tex_environment:                   Functions and Variables for TeX Output.
                                                             (line  215)
* get_tex_environment_default:           Functions and Variables for TeX Output.
                                                             (line  255)
* get_vertex_label:                      Functions and Variables for graphs.
                                                             (line  554)
* getcurrentdirectory:                   Directory operations.
                                                             (line   16)
* getenv:                                Environment operations.
                                                             (line    7)
* gfactor:                               Functions and Variables for Polynomials.
                                                             (line  650)
* gfactorsum:                            Functions and Variables for Polynomials.
                                                             (line  661)
* ggf:                                   Functions and Variables for ggf.
                                                             (line   38)
* GGFCFMAX:                              Functions and Variables for ggf.
                                                             (line   23)
* GGFINFINITY:                           Functions and Variables for ggf.
                                                             (line    7)
* girth:                                 Functions and Variables for graphs.
                                                             (line  627)
* global_variances:                      Functions and Variables for descriptive statistics.
                                                             (line  583)
* globalsolve:                           Functions and Variables for Equations.
                                                             (line  356)
* gnuplot_close:                         Gnuplot_pipes Format Functions.
                                                             (line   13)
* gnuplot_command:                       Functions and Variables for Plotting.
                                                             (line   42)
* gnuplot_curve_styles:                  Gnuplot Options.    (line  154)
* gnuplot_curve_titles:                  Gnuplot Options.    (line  149)
* gnuplot_default_term_command:          Gnuplot Options.    (line   99)
* gnuplot_dumb_term_command:             Gnuplot Options.    (line  107)
* gnuplot_file_args:                     Functions and Variables for Plotting.
                                                             (line   53)
* gnuplot_file_name:                     Functions and Variables for draw.
                                                             (line 1054)
* gnuplot_out_file:                      Gnuplot Options.    (line   61)
* gnuplot_pdf_term_command:              Gnuplot Options.    (line  117)
* gnuplot_pm3d:                          Gnuplot Options.    (line   80)
* gnuplot_png_term_command:              Gnuplot Options.    (line  125)
* gnuplot_postamble:                     Gnuplot Options.    (line   92)
* gnuplot_preamble:                      Gnuplot Options.    (line   85)
* gnuplot_ps_term_command:               Gnuplot Options.    (line  133)
* gnuplot_replot:                        Gnuplot_pipes Format Functions.
                                                             (line   25)
* gnuplot_reset:                         Gnuplot_pipes Format Functions.
                                                             (line   31)
* gnuplot_restart:                       Gnuplot_pipes Format Functions.
                                                             (line   18)
* gnuplot_start:                         Gnuplot_pipes Format Functions.
                                                             (line    7)
* gnuplot_svg_term_command:              Gnuplot Options.    (line  142)
* gnuplot_term:                          Gnuplot Options.    (line   14)
* gnuplot_view_args:                     Functions and Variables for Plotting.
                                                             (line   62)
* go:                                    Functions and Variables for Program Flow.
                                                             (line  378)
* Golden mean:                           Functions and Variables for Constants.
                                                             (line   49)
* Gosper:                                Functions and Variables for zeilberger.
                                                             (line   12)
* Gosper_in_Zeilberger:                  Functions and Variables for zeilberger.
                                                             (line  124)
* GosperSum:                             Functions and Variables for zeilberger.
                                                             (line   18)
* gr2d:                                  Functions and Variables for draw.
                                                             (line   11)
* gr3d:                                  Functions and Variables for draw.
                                                             (line   50)
* gradef:                                Functions and Variables for Differentiation.
                                                             (line  555)
* gradefs:                               Functions and Variables for Differentiation.
                                                             (line  600)
* gramschmidt:                           Functions and Variables for Matrices and Linear Algebra.
                                                             (line  644)
* graph6_decode:                         Functions and Variables for graphs.
                                                             (line 1371)
* graph6_encode:                         Functions and Variables for graphs.
                                                             (line 1375)
* graph6_export:                         Functions and Variables for graphs.
                                                             (line 1379)
* graph6_import:                         Functions and Variables for graphs.
                                                             (line 1384)
* graph_center:                          Functions and Variables for graphs.
                                                             (line  576)
* graph_charpoly:                        Functions and Variables for graphs.
                                                             (line  564)
* graph_eigenvalues:                     Functions and Variables for graphs.
                                                             (line  586)
* graph_flow:                            Functions and Variables for finance.
                                                             (line   42)
* graph_order:                           Functions and Variables for graphs.
                                                             (line  617)
* graph_periphery:                       Functions and Variables for graphs.
                                                             (line  597)
* graph_product:                         Functions and Variables for graphs.
                                                             (line  151)
* graph_size:                            Functions and Variables for graphs.
                                                             (line  607)
* graph_union:                           Functions and Variables for graphs.
                                                             (line  160)
* great_rhombicosidodecahedron_graph:    Functions and Variables for graphs.
                                                             (line  168)
* great_rhombicuboctahedron_graph:       Functions and Variables for graphs.
                                                             (line  172)
* Greater than:                          Relational operators.
                                                             (line    6)
* Greater than or equal:                 Relational operators.
                                                             (line    6)
* grid <1>:                              Functions and Variables for draw.
                                                             (line 1077)
* grid:                                  Plotting Options.   (line   99)
* grid2d:                                Plotting Options.   (line  107)
* grid_graph:                            Functions and Variables for graphs.
                                                             (line  164)
* grind:                                 Functions and Variables for Display.
                                                             (line  281)
* grobner_basis:                         Functions and Variables for Affine.
                                                             (line   25)
* grotzch_graph:                         Functions and Variables for graphs.
                                                             (line  176)
* halfangles:                            Functions and Variables for Trigonometric.
                                                             (line  170)
* hamilton_cycle:                        Functions and Variables for graphs.
                                                             (line  637)
* hamilton_path:                         Functions and Variables for graphs.
                                                             (line  649)
* hankel:                                Functions and Variables for linearalgebra.
                                                             (line  184)
* hankel_1:                              Bessel Functions.   (line   64)
* hankel_2:                              Bessel Functions.   (line  109)
* harmonic:                              Package functs.     (line  125)
* harmonic_mean:                         Functions and Variables for descriptive statistics.
                                                             (line  368)
* hav:                                   Package functs.     (line  184)
* head_angle <1>:                        Functions and Variables for draw.
                                                             (line 1100)
* head_angle:                            Functions and Variables for graphs.
                                                             (line 1645)
* head_both:                             Functions and Variables for draw.
                                                             (line 1136)
* head_length <1>:                       Functions and Variables for draw.
                                                             (line 1157)
* head_length:                           Functions and Variables for graphs.
                                                             (line 1651)
* head_type:                             Functions and Variables for draw.
                                                             (line 1181)
* heawood_graph:                         Functions and Variables for graphs.
                                                             (line  180)
* height:                                Visualization with VTK.
                                                             (line   89)
* Help:                                  Functions and Variables for Help.
                                                             (line   69)
* hermite:                               Functions and Variables for orthogonal polynomials.
                                                             (line   40)
* hessian:                               Functions and Variables for linearalgebra.
                                                             (line  190)
* hgfred:                                Functions and Variables for Special Functions.
                                                             (line  131)
* hilbert_matrix:                        Functions and Variables for linearalgebra.
                                                             (line  217)
* hilbertmap:                            Definitions for Peano maps.
                                                             (line   10)
* hipow:                                 Functions and Variables for Polynomials.
                                                             (line  666)
* histogram:                             Functions and Variables for statistical graphs.
                                                             (line  213)
* histogram_description:                 Functions and Variables for statistical graphs.
                                                             (line  275)
* hodge:                                 Functions and Variables for itensor.
                                                             (line 1501)
* horner:                                Functions for numerical solution of equations.
                                                             (line    9)
* hypergeometric:                        Hypergeometric Functions.
                                                             (line   27)
* hypergeometric_representation:         Error Function.     (line   64)
* hypergeometric_simp:                   Functions and Variables for Special Functions.
                                                             (line   99)
* i:                                     Functions and Variables for Constants.
                                                             (line   13)
* ibase:                                 Functions and Variables for Display.
                                                             (line  293)
* ic1:                                   Functions and Variables for Differential Equations.
                                                             (line   71)
* ic2:                                   Functions and Variables for Differential Equations.
                                                             (line   81)
* ic_convert:                            Functions and Variables for itensor.
                                                             (line 1595)
* icc1:                                  Functions and Variables for itensor.
                                                             (line 1144)
* icc2:                                  Functions and Variables for itensor.
                                                             (line 1159)
* ichr1:                                 Functions and Variables for itensor.
                                                             (line  920)
* ichr2:                                 Functions and Variables for itensor.
                                                             (line  929)
* icosahedron_graph:                     Functions and Variables for graphs.
                                                             (line  184)
* icosidodecahedron_graph:               Functions and Variables for graphs.
                                                             (line  188)
* icounter:                              Functions and Variables for itensor.
                                                             (line  357)
* icurvature:                            Functions and Variables for itensor.
                                                             (line  937)
* ident:                                 Functions and Variables for Matrices and Linear Algebra.
                                                             (line  698)
* identfor:                              Functions and Variables for linearalgebra.
                                                             (line  224)
* identity:                              Functions and Variables for Sets.
                                                             (line  416)
* idiff:                                 Functions and Variables for itensor.
                                                             (line  643)
* idim:                                  Functions and Variables for itensor.
                                                             (line  914)
* idummy:                                Functions and Variables for itensor.
                                                             (line  344)
* idummyx:                               Functions and Variables for itensor.
                                                             (line  351)
* ieqn:                                  Functions and Variables for Equations.
                                                             (line  412)
* ieqnprint:                             Functions and Variables for Equations.
                                                             (line  443)
* if:                                    Functions and Variables for Program Flow.
                                                             (line  391)
* ifactors:                              Functions and Variables for Number Theory.
                                                             (line  298)
* ifb:                                   Functions and Variables for itensor.
                                                             (line 1116)
* ifc1:                                  Functions and Variables for itensor.
                                                             (line 1176)
* ifc2:                                  Functions and Variables for itensor.
                                                             (line 1189)
* ifg:                                   Functions and Variables for itensor.
                                                             (line 1213)
* ifgi:                                  Functions and Variables for itensor.
                                                             (line 1218)
* ifr:                                   Functions and Variables for itensor.
                                                             (line 1202)
* iframe_bracket_form:                   Functions and Variables for itensor.
                                                             (line 1223)
* iframes:                               Functions and Variables for itensor.
                                                             (line 1110)
* ifri:                                  Functions and Variables for itensor.
                                                             (line 1207)
* ifs:                                   Graphical analysis of discrete dynamical systems.
                                                             (line   67)
* igcdex:                                Functions and Variables for Number Theory.
                                                             (line  324)
* igeodesic_coords:                      Functions and Variables for itensor.
                                                             (line 1001)
* igeowedge_flag:                        Functions and Variables for itensor.
                                                             (line 1539)
* ikt1:                                  Functions and Variables for itensor.
                                                             (line 1276)
* ikt2:                                  Functions and Variables for itensor.
                                                             (line 1290)
* ilt:                                   Functions and Variables for Integration.
                                                             (line  127)
* image:                                 Functions and Variables for draw.
                                                             (line 3089)
* imaginary:                             Functions and Variables for Properties.
                                                             (line  542)
* Imaginary unit:                        Functions and Variables for Constants.
                                                             (line   13)
* imagpart:                              Functions for Complex Numbers.
                                                             (line  161)
* imetric:                               Functions and Variables for itensor.
                                                             (line  905)
* implicit:                              Functions and Variables for draw.
                                                             (line 3184)
* implicit_derivative:                   Functions and Variables for impdiff.
                                                             (line    8)
* implicit_plot:                         Functions and Variables for Plotting.
                                                             (line   92)
* in:                                    Functions and Variables for Program Flow.
                                                             (line   56)
* in_neighbors:                          Functions and Variables for graphs.
                                                             (line  673)
* inchar:                                Functions and Variables for Command Line.
                                                             (line  227)
* increasing:                            Functions and Variables for Properties.
                                                             (line  237)
* ind:                                   Functions and Variables for Constants.
                                                             (line   26)
* Indeterminate:                         Functions and Variables for Constants.
                                                             (line   26)
* indexed_tensor:                        Functions and Variables for itensor.
                                                             (line  198)
* indices:                               Functions and Variables for itensor.
                                                             (line   56)
* induced_subgraph:                      Functions and Variables for graphs.
                                                             (line  192)
* inf:                                   Functions and Variables for Constants.
                                                             (line   37)
* inference_result:                      Functions and Variables for inference_result.
                                                             (line    7)
* inferencep:                            Functions and Variables for inference_result.
                                                             (line   49)
* infeval:                               Functions and Variables for Evaluation.
                                                             (line  610)
* infinity:                              Functions and Variables for Constants.
                                                             (line   41)
* infix:                                 User defined operators.
                                                             (line   10)
* inflag:                                Functions and Variables for Expressions.
                                                             (line  354)
* info_display:                          Functions and Variables for alt-display.
                                                             (line   45)
* infolists:                             Functions and Variables for Command Line.
                                                             (line  252)
* init_atensor:                          Functions and Variables for atensor.
                                                             (line    9)
* init_ctensor:                          Functions and Variables for ctensor.
                                                             (line  155)
* inm:                                   Functions and Variables for itensor.
                                                             (line 1237)
* inmc1:                                 Functions and Variables for itensor.
                                                             (line 1248)
* inmc2:                                 Functions and Variables for itensor.
                                                             (line 1261)
* innerproduct:                          Functions and Variables for Matrices and Linear Algebra.
                                                             (line  702)
* inpart:                                Functions and Variables for Expressions.
                                                             (line  372)
* inprod:                                Functions and Variables for Matrices and Linear Algebra.
                                                             (line  703)
* Input terminator (with display):       Functions and Variables for Command Line.
                                                             (line  217)
* Input terminator (without display):    Functions and Variables for Command Line.
                                                             (line  203)
* inrt:                                  Functions and Variables for Number Theory.
                                                             (line  345)
* intanalysis:                           Functions and Variables for Integration.
                                                             (line  171)
* integer:                               Functions and Variables for Properties.
                                                             (line  371)
* integer_partitions:                    Functions and Variables for Sets.
                                                             (line  429)
* integerp:                              Functions and Variables for Numbers.
                                                             (line  119)
* integervalued:                         Functions and Variables for Properties.
                                                             (line  388)
* integrate:                             Functions and Variables for Integration.
                                                             (line  212)
* integrate_use_rootsof:                 Functions and Variables for Integration.
                                                             (line  448)
* integration_constant:                  Functions and Variables for Integration.
                                                             (line  385)
* integration_constant_counter:          Functions and Variables for Integration.
                                                             (line  411)
* interpolate_color:                     Functions and Variables for draw.
                                                             (line 1206)
* intersect:                             Functions and Variables for Sets.
                                                             (line  473)
* intersection:                          Functions and Variables for Sets.
                                                             (line  477)
* intervalp:                             Functions and Variables for orthogonal polynomials.
                                                             (line   46)
* intfaclim:                             Functions and Variables for Polynomials.
                                                             (line  690)
* intopois:                              Functions and Variables for Poisson series.
                                                             (line    7)
* intosum:                               Functions and Variables for Sums and Products.
                                                             (line   36)
* inv_mod:                               Functions and Variables for Number Theory.
                                                             (line  353)
* invariant1:                            Functions and Variables for ctensor.
                                                             (line  813)
* invariant2:                            Functions and Variables for ctensor.
                                                             (line  819)
* inverse_fft:                           Functions and Variables for fast Fourier transform.
                                                             (line   45)
* inverse_jacobi_cd:                     Functions and Variables for Elliptic Functions.
                                                             (line   87)
* inverse_jacobi_cn:                     Functions and Variables for Elliptic Functions.
                                                             (line   59)
* inverse_jacobi_cs:                     Functions and Variables for Elliptic Functions.
                                                             (line   83)
* inverse_jacobi_dc:                     Functions and Variables for Elliptic Functions.
                                                             (line   99)
* inverse_jacobi_dn:                     Functions and Variables for Elliptic Functions.
                                                             (line   63)
* inverse_jacobi_ds:                     Functions and Variables for Elliptic Functions.
                                                             (line   95)
* inverse_jacobi_nc:                     Functions and Variables for Elliptic Functions.
                                                             (line   79)
* inverse_jacobi_nd:                     Functions and Variables for Elliptic Functions.
                                                             (line   91)
* inverse_jacobi_ns:                     Functions and Variables for Elliptic Functions.
                                                             (line   67)
* inverse_jacobi_sc:                     Functions and Variables for Elliptic Functions.
                                                             (line   71)
* inverse_jacobi_sd:                     Functions and Variables for Elliptic Functions.
                                                             (line   75)
* inverse_jacobi_sn:                     Functions and Variables for Elliptic Functions.
                                                             (line   55)
* inverse_real_fft:                      Functions and Variables for fast Fourier transform.
                                                             (line  240)
* invert:                                Functions and Variables for Matrices and Linear Algebra.
                                                             (line  723)
* invert_by_adjoint:                     Functions and Variables for Matrices and Linear Algebra.
                                                             (line  715)
* invert_by_lu:                          Functions and Variables for linearalgebra.
                                                             (line  238)
* ip_grid:                               Functions and Variables for draw.
                                                             (line 1276)
* ip_grid_in:                            Functions and Variables for draw.
                                                             (line 1284)
* irr:                                   Functions and Variables for finance.
                                                             (line  227)
* irrational:                            Functions and Variables for Properties.
                                                             (line  534)
* is:                                    Functions and Variables for Facts.
                                                             (line  300)
* is_biconnected:                        Functions and Variables for graphs.
                                                             (line  686)
* is_bipartite:                          Functions and Variables for graphs.
                                                             (line  697)
* is_connected:                          Functions and Variables for graphs.
                                                             (line  709)
* is_digraph:                            Functions and Variables for graphs.
                                                             (line  719)
* is_edge_in_graph:                      Functions and Variables for graphs.
                                                             (line  730)
* is_graph:                              Functions and Variables for graphs.
                                                             (line  747)
* is_graph_or_digraph:                   Functions and Variables for graphs.
                                                             (line  758)
* is_isomorphic:                         Functions and Variables for graphs.
                                                             (line  770)
* is_planar:                             Functions and Variables for graphs.
                                                             (line  783)
* is_sconnected:                         Functions and Variables for graphs.
                                                             (line  799)
* is_tree:                               Functions and Variables for graphs.
                                                             (line  824)
* is_vertex_in_graph:                    Functions and Variables for graphs.
                                                             (line  811)
* ishow:                                 Functions and Variables for itensor.
                                                             (line   48)
* isolate:                               Functions and Variables for Expressions.
                                                             (line  400)
* isolate_wrt_times:                     Functions and Variables for Expressions.
                                                             (line  419)
* isomorphism:                           Functions and Variables for graphs.
                                                             (line  661)
* isqrt:                                 Functions and Variables for Number Theory.
                                                             (line  365)
* isreal_p:                              Functions and Variables for to_poly_solve.
                                                             (line  505)
* items_inference:                       Functions and Variables for inference_result.
                                                             (line   54)
* iterations:                            Plotting Options.   (line  116)
* itr:                                   Functions and Variables for itensor.
                                                             (line 1302)
* jacobi:                                Functions and Variables for Number Theory.
                                                             (line  370)
* jacobi_cd:                             Functions and Variables for Elliptic Functions.
                                                             (line   39)
* jacobi_cn:                             Functions and Variables for Elliptic Functions.
                                                             (line   11)
* jacobi_cs:                             Functions and Variables for Elliptic Functions.
                                                             (line   35)
* jacobi_dc:                             Functions and Variables for Elliptic Functions.
                                                             (line   51)
* jacobi_dn:                             Functions and Variables for Elliptic Functions.
                                                             (line   15)
* jacobi_ds:                             Functions and Variables for Elliptic Functions.
                                                             (line   47)
* jacobi_nc:                             Functions and Variables for Elliptic Functions.
                                                             (line   31)
* jacobi_nd:                             Functions and Variables for Elliptic Functions.
                                                             (line   43)
* jacobi_ns:                             Functions and Variables for Elliptic Functions.
                                                             (line   19)
* jacobi_p:                              Functions and Variables for orthogonal polynomials.
                                                             (line   51)
* jacobi_sc:                             Functions and Variables for Elliptic Functions.
                                                             (line   23)
* jacobi_sd:                             Functions and Variables for Elliptic Functions.
                                                             (line   27)
* jacobi_sn:                             Functions and Variables for Elliptic Functions.
                                                             (line    7)
* jacobian:                              Functions and Variables for linearalgebra.
                                                             (line  243)
* JF:                                    Functions and Variables for diag.
                                                             (line   42)
* join:                                  Functions and Variables for Lists.
                                                             (line  297)
* jordan:                                Functions and Variables for diag.
                                                             (line   66)
* julia:                                 Functions and Variables for Plotting.
                                                             (line  113)
* julia_parameter:                       Definitions for complex fractals.
                                                             (line   41)
* julia_set:                             Definitions for complex fractals.
                                                             (line   23)
* julia_sin:                             Definitions for complex fractals.
                                                             (line   49)
* kdels:                                 Functions and Variables for itensor.
                                                             (line  381)
* kdelta:                                Functions and Variables for itensor.
                                                             (line  365)
* keepfloat:                             Functions and Variables for Polynomials.
                                                             (line  707)
* key:                                   Functions and Variables for draw.
                                                             (line 1293)
* key_pos:                               Functions and Variables for draw.
                                                             (line 1316)
* kill:                                  Functions and Variables for Command Line.
                                                             (line  318)
* killcontext:                           Functions and Variables for Facts.
                                                             (line  353)
* kinvariant:                            Functions and Variables for ctensor.
                                                             (line 1238)
* kostka:                                Functions and Variables for Symmetries.
                                                             (line  472)
* kron_delta:                            Functions and Variables for Sets.
                                                             (line  503)
* kronecker_product:                     Functions and Variables for linearalgebra.
                                                             (line  266)
* kt:                                    Functions and Variables for ctensor.
                                                             (line 1266)
* kummer_m:                              Functions and Variables for contrib_ode.
                                                             (line   98)
* kummer_u:                              Functions and Variables for contrib_ode.
                                                             (line  109)
* kurtosis:                              Functions and Variables for descriptive statistics.
                                                             (line  422)
* kurtosis_bernoulli:                    Functions and Variables for discrete distributions.
                                                             (line  333)
* kurtosis_beta:                         Functions and Variables for continuous distributions.
                                                             (line  944)
* kurtosis_binomial:                     Functions and Variables for discrete distributions.
                                                             (line  156)
* kurtosis_chi2:                         Functions and Variables for continuous distributions.
                                                             (line  407)
* kurtosis_continuous_uniform:           Functions and Variables for continuous distributions.
                                                             (line 1006)
* kurtosis_discrete_uniform:             Functions and Variables for discrete distributions.
                                                             (line  466)
* kurtosis_exp:                          Functions and Variables for continuous distributions.
                                                             (line  718)
* kurtosis_f:                            Functions and Variables for continuous distributions.
                                                             (line  561)
* kurtosis_gamma:                        Functions and Variables for continuous distributions.
                                                             (line  871)
* kurtosis_general_finite_discrete:      Functions and Variables for discrete distributions.
                                                             (line   82)
* kurtosis_geometric:                    Functions and Variables for discrete distributions.
                                                             (line  405)
* kurtosis_gumbel:                       Functions and Variables for continuous distributions.
                                                             (line 1527)
* kurtosis_hypergeometric:               Functions and Variables for discrete distributions.
                                                             (line  541)
* kurtosis_laplace:                      Functions and Variables for continuous distributions.
                                                             (line 1425)
* kurtosis_logistic:                     Functions and Variables for continuous distributions.
                                                             (line 1066)
* kurtosis_lognormal:                    Functions and Variables for continuous distributions.
                                                             (line  805)
* kurtosis_negative_binomial:            Functions and Variables for discrete distributions.
                                                             (line  614)
* kurtosis_noncentral_chi2:              Functions and Variables for continuous distributions.
                                                             (line  486)
* kurtosis_noncentral_student_t:         Functions and Variables for continuous distributions.
                                                             (line  253)
* kurtosis_normal:                       Functions and Variables for continuous distributions.
                                                             (line   68)
* kurtosis_pareto:                       Functions and Variables for continuous distributions.
                                                             (line 1124)
* kurtosis_poisson:                      Functions and Variables for discrete distributions.
                                                             (line  221)
* kurtosis_rayleigh:                     Functions and Variables for continuous distributions.
                                                             (line 1348)
* kurtosis_student_t:                    Functions and Variables for continuous distributions.
                                                             (line  143)
* kurtosis_weibull:                      Functions and Variables for continuous distributions.
                                                             (line 1182)
* label <1>:                             Plotting Options.   (line  122)
* label:                                 Functions and Variables for draw.
                                                             (line 3235)
* label_alignment <1>:                   Functions and Variables for draw.
                                                             (line 1347)
* label_alignment:                       Functions and Variables for graphs.
                                                             (line 1535)
* label_orientation:                     Functions and Variables for draw.
                                                             (line 1373)
* labels:                                Functions and Variables for Command Line.
                                                             (line  373)
* lagrange:                              Functions and Variables for interpol.
                                                             (line    9)
* laguerre:                              Functions and Variables for orthogonal polynomials.
                                                             (line   61)
* lambda:                                Functions and Variables for Function Definition.
                                                             (line  680)
* lambert_w:                             Functions and Variables for Special Functions.
                                                             (line  180)
* laplace:                               Functions and Variables for Differentiation.
                                                             (line  609)
* laplacian_matrix:                      Functions and Variables for graphs.
                                                             (line  835)
* lassociative:                          Functions and Variables for Simplification.
                                                             (line  381)
* last:                                  Functions and Variables for Lists.
                                                             (line  320)
* lbfgs:                                 Functions and Variables for lbfgs.
                                                             (line    9)
* lbfgs_ncorrections:                    Functions and Variables for lbfgs.
                                                             (line  292)
* lbfgs_nfeval_max:                      Functions and Variables for lbfgs.
                                                             (line  283)
* lc2kdt:                                Functions and Variables for itensor.
                                                             (line  409)
* lc_l:                                  Functions and Variables for itensor.
                                                             (line  481)
* lc_u:                                  Functions and Variables for itensor.
                                                             (line  504)
* lcm:                                   Functions and Variables for Number Theory.
                                                             (line  378)
* ldefint:                               Functions and Variables for Integration.
                                                             (line  499)
* ldisp:                                 Functions and Variables for Display.
                                                             (line  353)
* ldisplay:                              Functions and Variables for Display.
                                                             (line  384)
* leftjust:                              Functions and Variables for Display.
                                                             (line  418)
* legend:                                Plotting Options.   (line  129)
* legendre_p:                            Functions and Variables for orthogonal polynomials.
                                                             (line   68)
* legendre_q:                            Functions and Variables for orthogonal polynomials.
                                                             (line   75)
* leinstein:                             Functions and Variables for ctensor.
                                                             (line  249)
* length:                                Functions and Variables for Lists.
                                                             (line  324)
* Less than:                             Relational operators.
                                                             (line    6)
* Less than or equal:                    Relational operators.
                                                             (line    6)
* let:                                   Functions and Variables for Rules and Patterns.
                                                             (line  230)
* let_rule_packages:                     Functions and Variables for Rules and Patterns.
                                                             (line  366)
* letrat:                                Functions and Variables for Rules and Patterns.
                                                             (line  309)
* letrules:                              Functions and Variables for Rules and Patterns.
                                                             (line  336)
* letsimp:                               Functions and Variables for Rules and Patterns.
                                                             (line  352)
* levi_civita:                           Functions and Variables for itensor.
                                                             (line  402)
* lfg:                                   Functions and Variables for ctensor.
                                                             (line 1185)
* lfreeof:                               Functions and Variables for Expressions.
                                                             (line  491)
* lg:                                    Functions and Variables for ctensor.
                                                             (line 1221)
* lgtreillis:                            Functions and Variables for Symmetries.
                                                             (line  480)
* lhospitallim:                          Functions and Variables for Limits.
                                                             (line    7)
* lhs:                                   Functions and Variables for Equations.
                                                             (line  461)
* li:                                    Root Exponential and Logarithmic Functions.
                                                             (line  116)
* liediff:                               Functions and Variables for itensor.
                                                             (line  658)
* limit:                                 Functions and Variables for Limits.
                                                             (line   18)
* limsubst:                              Functions and Variables for Limits.
                                                             (line   60)
* Lindstedt:                             Functions and Variables for lindstedt.
                                                             (line    7)
* line_graph:                            Functions and Variables for graphs.
                                                             (line  211)
* line_type:                             Functions and Variables for draw.
                                                             (line 1399)
* line_width:                            Functions and Variables for draw.
                                                             (line 1426)
* linear <1>:                            Package functs.     (line   50)
* linear:                                Functions and Variables for Simplification.
                                                             (line  387)
* linear_program:                        Functions and Variables for simplex.
                                                             (line   15)
* linear_regression:                     Functions and Variables for stats.
                                                             (line  836)
* linear_solver:                         Functions and Variables for zeilberger.
                                                             (line  110)
* linearinterpol:                        Functions and Variables for interpol.
                                                             (line  115)
* linechar:                              Functions and Variables for Command Line.
                                                             (line  402)
* linel:                                 Functions and Variables for Display.
                                                             (line  437)
* linenum:                               Functions and Variables for Command Line.
                                                             (line  421)
* linewidth:                             Visualization with VTK.
                                                             (line  248)
* linsolve:                              Functions and Variables for Equations.
                                                             (line  503)
* linsolve_params:                       Functions and Variables for Equations.
                                                             (line  580)
* linsolvewarn:                          Functions and Variables for Equations.
                                                             (line  573)
* lispdisp:                              Functions and Variables for Display.
                                                             (line  448)
* List delimiters:                       Functions and Variables for Lists.
                                                             (line    6)
* list_correlations:                     Functions and Variables for descriptive statistics.
                                                             (line  680)
* list_matrix_entries:                   Functions and Variables for Matrices and Linear Algebra.
                                                             (line  749)
* list_nc_monomials:                     Functions and Variables for Affine.
                                                             (line  137)
* listarith:                             Functions and Variables for Lists.
                                                             (line  342)
* listarray:                             Functions and Variables for Arrays.
                                                             (line  274)
* listconstvars:                         Functions and Variables for Expressions.
                                                             (line  445)
* listdummyvars:                         Functions and Variables for Expressions.
                                                             (line  456)
* listify:                               Functions and Variables for Sets.
                                                             (line  526)
* listoftens:                            Functions and Variables for itensor.
                                                             (line   33)
* listofvars:                            Functions and Variables for Expressions.
                                                             (line  476)
* listp <1>:                             Functions and Variables for Lists.
                                                             (line  352)
* listp:                                 Functions and Variables for linearalgebra.
                                                             (line  272)
* lmax:                                  Functions for Numbers.
                                                             (line  241)
* lmin:                                  Functions for Numbers.
                                                             (line  247)
* lmxchar:                               Functions and Variables for Matrices and Linear Algebra.
                                                             (line  758)
* load:                                  Functions and Variables for File Input and Output.
                                                             (line  231)
* load_pathname:                         Functions and Variables for File Input and Output.
                                                             (line  263)
* loadfile:                              Functions and Variables for File Input and Output.
                                                             (line  289)
* loadprint:                             Functions and Variables for File Input and Output.
                                                             (line  299)
* local:                                 Functions and Variables for Function Definition.
                                                             (line  808)
* locate_matrix_entry:                   Functions and Variables for linearalgebra.
                                                             (line  280)
* log:                                   Root Exponential and Logarithmic Functions.
                                                             (line  175)
* log_gamma:                             Gamma and factorial Functions.
                                                             (line  117)
* logabs:                                Root Exponential and Logarithmic Functions.
                                                             (line  211)
* logarc:                                Root Exponential and Logarithmic Functions.
                                                             (line  223)
* logcb:                                 Functions and Variables for draw.
                                                             (line 1450)
* logconcoeffp:                          Root Exponential and Logarithmic Functions.
                                                             (line  232)
* logcontract:                           Root Exponential and Logarithmic Functions.
                                                             (line  243)
* logexpand:                             Root Exponential and Logarithmic Functions.
                                                             (line  265)
* Logical conjunction <1>:               Functions and Variables for to_poly_solve.
                                                             (line   16)
* Logical conjunction:                   Logical operators.  (line    7)
* Logical disjunction <1>:               Logical operators.  (line   43)
* Logical disjunction:                   Functions and Variables for to_poly_solve.
                                                             (line  134)
* Logical negation:                      Logical operators.  (line   30)
* lognegint:                             Root Exponential and Logarithmic Functions.
                                                             (line  276)
* logsimp:                               Root Exponential and Logarithmic Functions.
                                                             (line  283)
* logx <1>:                              Functions and Variables for draw.
                                                             (line 1476)
* logx:                                  Plotting Options.   (line  138)
* logx_secondary:                        Functions and Variables for draw.
                                                             (line 1495)
* logy <1>:                              Plotting Options.   (line  143)
* logy:                                  Functions and Variables for draw.
                                                             (line 1524)
* logy_secondary:                        Functions and Variables for draw.
                                                             (line 1542)
* logz:                                  Functions and Variables for draw.
                                                             (line 1570)
* lopow:                                 Functions and Variables for Polynomials.
                                                             (line  735)
* lorentz_gauge:                         Functions and Variables for itensor.
                                                             (line  995)
* lowercasep:                            Characters.         (line  199)
* lpart:                                 Functions and Variables for Expressions.
                                                             (line  505)
* lratsubst:                             Functions and Variables for Polynomials.
                                                             (line  743)
* lreduce:                               Functions and Variables for Sets.
                                                             (line  542)
* lriem:                                 Functions and Variables for ctensor.
                                                             (line 1205)
* lriemann:                              Functions and Variables for ctensor.
                                                             (line  283)
* lsquares_estimates:                    Functions and Variables for lsquares.
                                                             (line   10)
* lsquares_estimates_approximate:        Functions and Variables for lsquares.
                                                             (line  190)
* lsquares_estimates_exact:              Functions and Variables for lsquares.
                                                             (line  140)
* lsquares_mse:                          Functions and Variables for lsquares.
                                                             (line  254)
* lsquares_residual_mse:                 Functions and Variables for lsquares.
                                                             (line  406)
* lsquares_residuals:                    Functions and Variables for lsquares.
                                                             (line  356)
* lsum:                                  Functions and Variables for Sums and Products.
                                                             (line   16)
* ltreillis:                             Functions and Variables for Symmetries.
                                                             (line  488)
* lu_backsub:                            Functions and Variables for linearalgebra.
                                                             (line  305)
* lu_factor:                             Functions and Variables for linearalgebra.
                                                             (line  310)
* lucas:                                 Functions and Variables for Number Theory.
                                                             (line  385)
* m1pbranch:                             Functions and Variables for Numbers.
                                                             (line  148)
* Macro function definition operator:    Assignment operators.
                                                             (line  116)
* macroexpand:                           Macros.             (line  102)
* macroexpand1:                          Macros.             (line  136)
* macroexpansion:                        Functions and Variables for Function Definition.
                                                             (line  842)
* macros:                                Macros.             (line  168)
* mainvar:                               Functions and Variables for Expressions.
                                                             (line  511)
* make_array:                            Functions and Variables for Arrays.
                                                             (line  365)
* make_graph:                            Functions and Variables for graphs.
                                                             (line  217)
* make_level_picture:                    Functions and Variables for pictures.
                                                             (line   14)
* make_poly_continent:                   Functions and Variables for worldmap.
                                                             (line   41)
* make_poly_country:                     Functions and Variables for worldmap.
                                                             (line   58)
* make_polygon:                          Functions and Variables for worldmap.
                                                             (line   71)
* make_random_state:                     Random Numbers.     (line   11)
* make_rgb_picture:                      Functions and Variables for pictures.
                                                             (line   45)
* make_string_input_stream:              Input and Output.   (line   80)
* make_string_output_stream:             Input and Output.   (line   94)
* make_transform:                        Functions and Variables for Plotting.
                                                             (line  146)
* makebox:                               Functions and Variables for itensor.
                                                             (line  791)
* makefact:                              Gamma and factorial Functions.
                                                             (line  770)
* makegamma:                             Gamma and factorial Functions.
                                                             (line  213)
* makelist:                              Functions and Variables for Lists.
                                                             (line  362)
* makeOrders:                            Functions and Variables for makeOrders.
                                                             (line    7)
* makeset:                               Functions and Variables for Sets.
                                                             (line  581)
* mandelbrot:                            Functions and Variables for Plotting.
                                                             (line  159)
* mandelbrot_set:                        Definitions for complex fractals.
                                                             (line    7)
* manual_demo:                           Functions and Variables for Help.
                                                             (line  171)
* map:                                   Functions and Variables for Program Flow.
                                                             (line  446)
* mapatom:                               Functions and Variables for Program Flow.
                                                             (line  481)
* maperror:                              Functions and Variables for Program Flow.
                                                             (line  487)
* maplist:                               Functions and Variables for Program Flow.
                                                             (line  515)
* mapprint:                              Functions and Variables for Program Flow.
                                                             (line  504)
* mat_cond:                              Functions and Variables for linearalgebra.
                                                             (line  429)
* mat_fullunblocker:                     Functions and Variables for linearalgebra.
                                                             (line  464)
* mat_function:                          Functions and Variables for diag.
                                                             (line  211)
* mat_norm:                              Functions and Variables for linearalgebra.
                                                             (line  442)
* mat_trace:                             Functions and Variables for linearalgebra.
                                                             (line  469)
* mat_unblocker:                         Functions and Variables for linearalgebra.
                                                             (line  475)
* matchdeclare:                          Functions and Variables for Rules and Patterns.
                                                             (line  373)
* matchfix:                              User defined operators.
                                                             (line  107)
* mathml_display:                        Functions and Variables for alt-display.
                                                             (line   59)
* matrix:                                Functions and Variables for Matrices and Linear Algebra.
                                                             (line  775)
* matrix_element_add:                    Functions and Variables for Matrices and Linear Algebra.
                                                             (line  945)
* matrix_element_mult:                   Functions and Variables for Matrices and Linear Algebra.
                                                             (line  977)
* matrix_element_transpose:              Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1019)
* matrix_size:                           Functions and Variables for linearalgebra.
                                                             (line  459)
* matrixexp:                             Functions and Variables for Matrices and Linear Algebra.
                                                             (line  926)
* matrixmap:                             Functions and Variables for Matrices and Linear Algebra.
                                                             (line  935)
* matrixp <1>:                           Functions and Variables for Matrices and Linear Algebra.
                                                             (line  941)
* matrixp:                               Functions and Variables for linearalgebra.
                                                             (line  450)
* mattrace:                              Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1069)
* max:                                   Functions for Numbers.
                                                             (line  253)
* max_clique:                            Functions and Variables for graphs.
                                                             (line  852)
* max_degree:                            Functions and Variables for graphs.
                                                             (line  862)
* max_flow:                              Functions and Variables for graphs.
                                                             (line  875)
* max_independent_set:                   Functions and Variables for graphs.
                                                             (line  906)
* max_matching:                          Functions and Variables for graphs.
                                                             (line  917)
* MAX_ORD:                               Functions and Variables for zeilberger.
                                                             (line   96)
* maxapplydepth:                         Functions and Variables for Rules and Patterns.
                                                             (line  531)
* maxapplyheight:                        Functions and Variables for Rules and Patterns.
                                                             (line  538)
* maxima_tempdir:                        Functions and Variables for Runtime Environment.
                                                             (line    7)
* maxima_userdir:                        Functions and Variables for Runtime Environment.
                                                             (line   19)
* maximize_lp:                           Functions and Variables for simplex.
                                                             (line   42)
* maxnegex:                              Functions and Variables for Simplification.
                                                             (line  431)
* maxposex:                              Functions and Variables for Simplification.
                                                             (line  438)
* maxpsifracdenom:                       Gamma and factorial Functions.
                                                             (line  762)
* maxpsifracnum:                         Gamma and factorial Functions.
                                                             (line  754)
* maxpsinegint:                          Gamma and factorial Functions.
                                                             (line  745)
* maxpsiposint:                          Gamma and factorial Functions.
                                                             (line  738)
* maxtayorder:                           Functions and Variables for Series.
                                                             (line   72)
* maybe:                                 Functions and Variables for Facts.
                                                             (line  371)
* md5sum:                                Octets and Utilities for Cryptography.
                                                             (line   86)
* mean:                                  Functions and Variables for descriptive statistics.
                                                             (line    9)
* mean_bernoulli:                        Functions and Variables for discrete distributions.
                                                             (line  270)
* mean_beta:                             Functions and Variables for continuous distributions.
                                                             (line  922)
* mean_binomial:                         Functions and Variables for discrete distributions.
                                                             (line  132)
* mean_chi2:                             Functions and Variables for continuous distributions.
                                                             (line  335)
* mean_continuous_uniform:               Functions and Variables for continuous distributions.
                                                             (line  982)
* mean_deviation:                        Functions and Variables for descriptive statistics.
                                                             (line  312)
* mean_discrete_uniform:                 Functions and Variables for discrete distributions.
                                                             (line  442)
* mean_exp:                              Functions and Variables for continuous distributions.
                                                             (line  640)
* mean_f:                                Functions and Variables for continuous distributions.
                                                             (line  539)
* mean_gamma:                            Functions and Variables for continuous distributions.
                                                             (line  849)
* mean_general_finite_discrete:          Functions and Variables for discrete distributions.
                                                             (line   54)
* mean_geometric:                        Functions and Variables for discrete distributions.
                                                             (line  383)
* mean_gumbel:                           Functions and Variables for continuous distributions.
                                                             (line 1491)
* mean_hypergeometric:                   Functions and Variables for discrete distributions.
                                                             (line  513)
* mean_laplace:                          Functions and Variables for continuous distributions.
                                                             (line 1403)
* mean_logistic:                         Functions and Variables for continuous distributions.
                                                             (line 1044)
* mean_lognormal:                        Functions and Variables for continuous distributions.
                                                             (line  783)
* mean_negative_binomial:                Functions and Variables for discrete distributions.
                                                             (line  590)
* mean_noncentral_chi2:                  Functions and Variables for continuous distributions.
                                                             (line  464)
* mean_noncentral_student_t:             Functions and Variables for continuous distributions.
                                                             (line  215)
* mean_normal:                           Functions and Variables for continuous distributions.
                                                             (line   44)
* mean_pareto:                           Functions and Variables for continuous distributions.
                                                             (line 1102)
* mean_poisson:                          Functions and Variables for discrete distributions.
                                                             (line  199)
* mean_rayleigh:                         Functions and Variables for continuous distributions.
                                                             (line 1260)
* mean_student_t:                        Functions and Variables for continuous distributions.
                                                             (line  115)
* mean_weibull:                          Functions and Variables for continuous distributions.
                                                             (line 1160)
* median:                                Functions and Variables for descriptive statistics.
                                                             (line  268)
* median_deviation:                      Functions and Variables for descriptive statistics.
                                                             (line  340)
* member:                                Functions and Variables for Lists.
                                                             (line  399)
* mesh:                                  Functions and Variables for draw.
                                                             (line 3275)
* mesh_lines_color:                      Plotting Options.   (line  148)
* method:                                Functions and Variables for contrib_ode.
                                                             (line   55)
* metricexpandall:                       Functions and Variables for Units.
                                                             (line  396)
* mgf1_sha1:                             Octets and Utilities for Cryptography.
                                                             (line  115)
* min:                                   Functions for Numbers.
                                                             (line  265)
* min_degree:                            Functions and Variables for graphs.
                                                             (line  929)
* min_edge_cut:                          Functions and Variables for graphs.
                                                             (line  942)
* min_vertex_cover:                      Functions and Variables for graphs.
                                                             (line  948)
* min_vertex_cut:                        Functions and Variables for graphs.
                                                             (line  952)
* minf:                                  Functions and Variables for Constants.
                                                             (line   45)
* minfactorial:                          Combinatorial Functions.
                                                             (line  181)
* minimalPoly:                           Functions and Variables for diag.
                                                             (line  149)
* minimize_lp:                           Functions and Variables for simplex.
                                                             (line   50)
* minimum_spanning_tree:                 Functions and Variables for graphs.
                                                             (line  958)
* minor:                                 Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1079)
* minpack_lsquares:                      Functions and Variables for minpack.
                                                             (line    8)
* minpack_solve:                         Functions and Variables for minpack.
                                                             (line   73)
* Minus infinity:                        Functions and Variables for Constants.
                                                             (line   45)
* mkdir:                                 Directory operations.
                                                             (line   10)
* mnewton:                               Functions and Variables for mnewton.
                                                             (line   25)
* mod:                                   Functions and Variables for Number Theory.
                                                             (line  405)
* mod_big_prime:                         Functions and Variables for zeilberger.
                                                             (line  164)
* mod_test:                              Functions and Variables for zeilberger.
                                                             (line  143)
* mod_threshold:                         Functions and Variables for zeilberger.
                                                             (line  171)
* mode_check_errorp:                     Functions and Variables for Function Definition.
                                                             (line  987)
* mode_check_warnp:                      Functions and Variables for Function Definition.
                                                             (line  993)
* mode_checkp:                           Functions and Variables for Function Definition.
                                                             (line  980)
* mode_declare:                          Functions and Variables for Function Definition.
                                                             (line  999)
* mode_identity:                         Functions and Variables for Function Definition.
                                                             (line 1043)
* ModeMatrix:                            Functions and Variables for diag.
                                                             (line  172)
* modular_linear_solver:                 Functions and Variables for zeilberger.
                                                             (line  150)
* modulus:                               Functions and Variables for Polynomials.
                                                             (line  773)
* moebius:                               Functions and Variables for Sets.
                                                             (line  615)
* mon2schur:                             Functions and Variables for Symmetries.
                                                             (line   67)
* mono:                                  Functions and Variables for Affine.
                                                             (line  110)
* monomial_dimensions:                   Functions and Variables for Affine.
                                                             (line  118)
* multi_display_for_texinfo:             Functions and Variables for alt-display.
                                                             (line   79)
* multi_elem:                            Functions and Variables for Symmetries.
                                                             (line   95)
* multi_orbit:                           Functions and Variables for Symmetries.
                                                             (line  375)
* multi_pui:                             Functions and Variables for Symmetries.
                                                             (line  112)
* multibernstein_poly:                   Functions and Variables for Bernstein.
                                                             (line   67)
* multinomial:                           Functions and Variables for Symmetries.
                                                             (line  892)
* multinomial_coeff:                     Functions and Variables for Sets.
                                                             (line  650)
* Multiplication:                        Arithmetic operators.
                                                             (line    6)
* multiplicative:                        Functions and Variables for Simplification.
                                                             (line  445)
* multiplicities:                        Functions and Variables for Equations.
                                                             (line  590)
* multiplot_mode:                        Functions and Variables for draw.
                                                             (line  145)
* multsym:                               Functions and Variables for Symmetries.
                                                             (line  389)
* multthru:                              Functions and Variables for Simplification.
                                                             (line  495)
* mycielski_graph:                       Functions and Variables for graphs.
                                                             (line  247)
* myoptions:                             Functions and Variables for Command Line.
                                                             (line  426)
* N'th previous output:                  Functions and Variables for Command Line.
                                                             (line  152)
* nary <1>:                              Functions and Variables for Simplification.
                                                             (line  540)
* nary:                                  User defined operators.
                                                             (line  212)
* natural_unit:                          Functions and Variables for ezunits.
                                                             (line  707)
* nc_degree:                             Functions and Variables for Affine.
                                                             (line   69)
* ncexpt:                                Functions and Variables for Display.
                                                             (line  162)
* ncharpoly:                             Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1084)
* Negative infinity:                     Functions and Variables for Constants.
                                                             (line   45)
* negative_picture:                      Functions and Variables for pictures.
                                                             (line   74)
* negdistrib:                            Functions and Variables for Simplification.
                                                             (line  559)
* negsumdispflag:                        Functions and Variables for Display.
                                                             (line  466)
* neighbors:                             Functions and Variables for graphs.
                                                             (line  968)
* new:                                   Functions and Variables for Structures.
                                                             (line   53)
* new_graph:                             Functions and Variables for graphs.
                                                             (line  251)
* new_variable:                          Functions and Variables for to_poly_solve.
                                                             (line  543)
* newcontext:                            Functions and Variables for Facts.
                                                             (line  397)
* newdet:                                Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1101)
* newline <1>:                           Input and Output.   (line  116)
* newline:                               Characters.         (line  205)
* newton:                                Functions for numerical solution of equations.
                                                             (line  124)
* newtonepsilon:                         Functions and Variables for mnewton.
                                                             (line    7)
* newtonmaxiter:                         Functions and Variables for mnewton.
                                                             (line   16)
* next_prime:                            Functions and Variables for Number Theory.
                                                             (line  433)
* nextlayerfactor:                       Package facexp.     (line   65)
* nicedummies:                           Functions and Variables for to_poly_solve.
                                                             (line  588)
* niceindices:                           Functions and Variables for Series.
                                                             (line   80)
* niceindicespref:                       Functions and Variables for Series.
                                                             (line  115)
* ninth:                                 Functions and Variables for Lists.
                                                             (line  435)
* nm:                                    Functions and Variables for ctensor.
                                                             (line 1270)
* nmc:                                   Functions and Variables for ctensor.
                                                             (line 1274)
* noeval:                                Functions and Variables for Evaluation.
                                                             (line  618)
* nofix:                                 User defined operators.
                                                             (line  226)
* nolabels:                              Functions and Variables for Command Line.
                                                             (line  433)
* nonarray:                              Functions and Variables for Properties.
                                                             (line  406)
* noncentral_moment:                     Functions and Variables for descriptive statistics.
                                                             (line  124)
* Noncommutative exponentiation:         Arithmetic operators.
                                                             (line  190)
* Noncommutative multiplication:         Arithmetic operators.
                                                             (line  209)
* nonegative_lp:                         Functions and Variables for simplex.
                                                             (line   91)
* noninteger:                            Functions and Variables for Properties.
                                                             (line  372)
* nonmetricity:                          Functions and Variables for ctensor.
                                                             (line  671)
* nonnegintegerp:                        Functions and Variables for Numbers.
                                                             (line  167)
* nonscalar:                             Functions and Variables for Properties.
                                                             (line  427)
* nonscalarp:                            Functions and Variables for Properties.
                                                             (line  434)
* nonzeroandfreeof:                      Package functs.     (line   43)
* not:                                   Logical operators.  (line   30)
* Not equal (syntactic inequality):      Operators for Equations.
                                                             (line    7)
* notequal:                              Functions and Variables for Predicates.
                                                             (line  156)
* noun:                                  Functions and Variables for Expressions.
                                                             (line  524)
* noundisp:                              Functions and Variables for Expressions.
                                                             (line  543)
* nounify:                               Functions and Variables for Expressions.
                                                             (line  550)
* nouns:                                 Functions and Variables for Evaluation.
                                                             (line  624)
* np:                                    Functions and Variables for ctensor.
                                                             (line 1242)
* npi:                                   Functions and Variables for ctensor.
                                                             (line 1246)
* nptetrad:                              Functions and Variables for ctensor.
                                                             (line  492)
* npv:                                   Functions and Variables for finance.
                                                             (line  216)
* nroots:                                Functions and Variables for Equations.
                                                             (line  597)
* nterms:                                Functions and Variables for Expressions.
                                                             (line  560)
* ntermst:                               Functions and Variables for ctensor.
                                                             (line  851)
* nthroot:                               Functions and Variables for Equations.
                                                             (line  609)
* nticks <1>:                            Functions and Variables for draw.
                                                             (line 1587)
* nticks:                                Plotting Options.   (line  158)
* ntrig:                                 Functions and Variables for Trigonometric.
                                                             (line  223)
* nullity:                               Functions and Variables for linearalgebra.
                                                             (line  516)
* nullspace:                             Functions and Variables for linearalgebra.
                                                             (line  509)
* num:                                   Functions and Variables for Polynomials.
                                                             (line  817)
* num_distinct_partitions:               Functions and Variables for Sets.
                                                             (line  684)
* num_partitions:                        Functions and Variables for Sets.
                                                             (line  707)
* number_to_octets:                      Octets and Utilities for Cryptography.
                                                             (line  137)
* numbered_boundaries:                   Functions and Variables for worldmap.
                                                             (line   24)
* numberp:                               Functions and Variables for Numbers.
                                                             (line  171)
* numer:                                 Functions and Variables for Numbers.
                                                             (line  199)
* numer_pbranch:                         Functions and Variables for Numbers.
                                                             (line  218)
* numerval:                              Functions and Variables for Numbers.
                                                             (line  246)
* numfactor:                             Gamma and factorial Functions.
                                                             (line  777)
* nusum:                                 Functions and Variables for Series.
                                                             (line  145)
* nzeta:                                 Functions and Variables for Special Functions.
                                                             (line  196)
* nzetai:                                Functions and Variables for Special Functions.
                                                             (line  205)
* nzetar:                                Functions and Variables for Special Functions.
                                                             (line  201)
* obase:                                 Functions and Variables for Display.
                                                             (line  476)
* octets_to_number:                      Octets and Utilities for Cryptography.
                                                             (line  151)
* octets_to_oid:                         Octets and Utilities for Cryptography.
                                                             (line  158)
* octets_to_string:                      Octets and Utilities for Cryptography.
                                                             (line  172)
* odd:                                   Functions and Variables for Properties.
                                                             (line  257)
* odd_girth:                             Functions and Variables for graphs.
                                                             (line  978)
* oddfun:                                Functions and Variables for Simplification.
                                                             (line  203)
* oddp:                                  Functions and Variables for Numbers.
                                                             (line  256)
* ode2:                                  Functions and Variables for Differential Equations.
                                                             (line   94)
* ode_check:                             Functions and Variables for contrib_ode.
                                                             (line   29)
* odelin:                                Functions and Variables for contrib_ode.
                                                             (line   12)
* oid_to_octets:                         Octets and Utilities for Cryptography.
                                                             (line  216)
* op:                                    Functions and Variables for Expressions.
                                                             (line  568)
* opacity:                               Visualization with VTK.
                                                             (line  255)
* opena:                                 Input and Output.   (line  124)
* opena_binary:                          Functions and Variables for binary input and output.
                                                             (line   28)
* openr:                                 Input and Output.   (line  132)
* openr_binary:                          Functions and Variables for binary input and output.
                                                             (line   18)
* openw:                                 Input and Output.   (line  140)
* openw_binary:                          Functions and Variables for binary input and output.
                                                             (line   23)
* operatorp:                             Functions and Variables for Expressions.
                                                             (line  618)
* opproperties:                          Functions and Variables for Simplification.
                                                             (line  581)
* opsubst <1>:                           Functions and Variables for Expressions.
                                                             (line  626)
* opsubst:                               Functions and Variables for opsubst.
                                                             (line   10)
* optimize:                              Functions and Variables for Expressions.
                                                             (line  650)
* optimprefix:                           Functions and Variables for Expressions.
                                                             (line  658)
* optionset:                             Functions and Variables for Command Line.
                                                             (line  452)
* or:                                    Logical operators.  (line   43)
* orbit:                                 Functions and Variables for Symmetries.
                                                             (line  410)
* orbits:                                Graphical analysis of discrete dynamical systems.
                                                             (line   97)
* ordergreat:                            Functions and Variables for Expressions.
                                                             (line  665)
* ordergreatp:                           Functions and Variables for Expressions.
                                                             (line  683)
* orderless:                             Functions and Variables for Expressions.
                                                             (line  666)
* orderlessp:                            Functions and Variables for Expressions.
                                                             (line  684)
* orientation:                           Visualization with VTK.
                                                             (line  263)
* origin:                                Visualization with VTK.
                                                             (line  272)
* orthogonal_complement:                 Functions and Variables for linearalgebra.
                                                             (line  520)
* orthopoly_recur:                       Functions and Variables for orthogonal polynomials.
                                                             (line   81)
* orthopoly_returns_intervals:           Functions and Variables for orthogonal polynomials.
                                                             (line  110)
* orthopoly_weight:                      Functions and Variables for orthogonal polynomials.
                                                             (line  120)
* out_neighbors:                         Functions and Variables for graphs.
                                                             (line  990)
* outative:                              Functions and Variables for Simplification.
                                                             (line  592)
* outchar:                               Functions and Variables for Command Line.
                                                             (line  470)
* outermap:                              Functions and Variables for Program Flow.
                                                             (line  629)
* outofpois:                             Functions and Variables for Poisson series.
                                                             (line   11)
* packagefile:                           Functions and Variables for Miscellaneous Options.
                                                             (line   58)
* pade:                                  Functions and Variables for Series.
                                                             (line  196)
* palette <1>:                           Functions and Variables for draw.
                                                             (line 1610)
* palette:                               Plotting Options.   (line  169)
* parabolic_cylinder_d:                  Parabolic Cylinder Functions.
                                                             (line   13)
* parametric:                            Functions and Variables for draw.
                                                             (line 3324)
* parametric_surface:                    Functions and Variables for draw.
                                                             (line 3364)
* parg:                                  Functions and Variables for to_poly_solve.
                                                             (line  608)
* parGosper:                             Functions and Variables for zeilberger.
                                                             (line   62)
* parse_string:                          String Processing.  (line   45)
* parse_timedate:                        Functions and Variables for Runtime Environment.
                                                             (line  150)
* part:                                  Functions and Variables for Expressions.
                                                             (line  767)
* part2cont:                             Functions and Variables for Symmetries.
                                                             (line  261)
* partfrac:                              Functions and Variables for Number Theory.
                                                             (line  440)
* partition:                             Functions and Variables for Expressions.
                                                             (line  804)
* partition_set:                         Functions and Variables for Sets.
                                                             (line  730)
* partpol:                               Functions and Variables for Symmetries.
                                                             (line  271)
* partswitch:                            Functions and Variables for Expressions.
                                                             (line  820)
* path_digraph:                          Functions and Variables for graphs.
                                                             (line  255)
* path_graph:                            Functions and Variables for graphs.
                                                             (line  259)
* pathname_directory:                    Functions and Variables for File Input and Output.
                                                             (line  328)
* pathname_name:                         Functions and Variables for File Input and Output.
                                                             (line  329)
* pathname_type:                         Functions and Variables for File Input and Output.
                                                             (line  330)
* pdf_bernoulli:                         Functions and Variables for discrete distributions.
                                                             (line  241)
* pdf_beta:                              Functions and Variables for continuous distributions.
                                                             (line  896)
* pdf_binomial:                          Functions and Variables for discrete distributions.
                                                             (line  104)
* pdf_cauchy:                            Functions and Variables for continuous distributions.
                                                             (line 1442)
* pdf_chi2:                              Functions and Variables for continuous distributions.
                                                             (line  281)
* pdf_continuous_uniform:                Functions and Variables for continuous distributions.
                                                             (line  963)
* pdf_discrete_uniform:                  Functions and Variables for discrete distributions.
                                                             (line  422)
* pdf_exp:                               Functions and Variables for continuous distributions.
                                                             (line  583)
* pdf_f:                                 Functions and Variables for continuous distributions.
                                                             (line  502)
* pdf_file:                              Plotting Options.   (line  231)
* pdf_gamma:                             Functions and Variables for continuous distributions.
                                                             (line  823)
* pdf_general_finite_discrete:           Functions and Variables for discrete distributions.
                                                             (line    7)
* pdf_geometric:                         Functions and Variables for discrete distributions.
                                                             (line  364)
* pdf_gumbel:                            Functions and Variables for continuous distributions.
                                                             (line 1472)
* pdf_hypergeometric:                    Functions and Variables for discrete distributions.
                                                             (line  485)
* pdf_laplace:                           Functions and Variables for continuous distributions.
                                                             (line 1384)
* pdf_logistic:                          Functions and Variables for continuous distributions.
                                                             (line 1025)
* pdf_lognormal:                         Functions and Variables for continuous distributions.
                                                             (line  747)
* pdf_negative_binomial:                 Functions and Variables for discrete distributions.
                                                             (line  562)
* pdf_noncentral_chi2:                   Functions and Variables for continuous distributions.
                                                             (line  439)
* pdf_noncentral_student_t:              Functions and Variables for continuous distributions.
                                                             (line  169)
* pdf_normal:                            Functions and Variables for continuous distributions.
                                                             (line    7)
* pdf_pareto:                            Functions and Variables for continuous distributions.
                                                             (line 1083)
* pdf_poisson:                           Functions and Variables for discrete distributions.
                                                             (line  175)
* pdf_rank_sum:                          Functions and Variables for special distributions.
                                                             (line   23)
* pdf_rayleigh:                          Functions and Variables for continuous distributions.
                                                             (line 1199)
* pdf_signed_rank:                       Functions and Variables for special distributions.
                                                             (line    7)
* pdf_student_t:                         Functions and Variables for continuous distributions.
                                                             (line   87)
* pdf_weibull:                           Functions and Variables for continuous distributions.
                                                             (line 1141)
* pearson_skewness:                      Functions and Variables for descriptive statistics.
                                                             (line  474)
* permanent:                             Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1107)
* permut:                                Functions and Variables for Symmetries.
                                                             (line  899)
* permutation:                           Package functs.     (line  197)
* permutations:                          Functions and Variables for Sets.
                                                             (line  751)
* petersen_graph:                        Functions and Variables for graphs.
                                                             (line  265)
* petrov:                                Functions and Variables for ctensor.
                                                             (line  538)
* pfeformat:                             Functions and Variables for Display.
                                                             (line  511)
* phi:                                   Functions and Variables for Constants.
                                                             (line   49)
* phiresolution:                         Visualization with VTK.
                                                             (line  280)
* pi:                                    Functions and Variables for Constants.
                                                             (line  104)
* pickapart:                             Functions and Variables for Expressions.
                                                             (line  828)
* picture_equalp:                        Functions and Variables for pictures.
                                                             (line   78)
* picturep:                              Functions and Variables for pictures.
                                                             (line   82)
* piece:                                 Functions and Variables for Expressions.
                                                             (line  913)
* piechart:                              Functions and Variables for statistical graphs.
                                                             (line  302)
* piechart_description:                  Functions and Variables for statistical graphs.
                                                             (line  341)
* pivot_count_sx:                        Functions and Variables for simplex.
                                                             (line  107)
* pivot_max_sx:                          Functions and Variables for simplex.
                                                             (line  112)
* planar_embedding:                      Functions and Variables for graphs.
                                                             (line 1003)
* playback:                              Functions and Variables for Command Line.
                                                             (line  503)
* plog:                                  Root Exponential and Logarithmic Functions.
                                                             (line  290)
* plot2d:                                Functions and Variables for Plotting.
                                                             (line  201)
* plot3d:                                Functions and Variables for Plotting.
                                                             (line  340)
* plot_format:                           Plotting Options.   (line  197)
* plot_options:                          Functions and Variables for Plotting.
                                                             (line  436)
* plot_realpart:                         Plotting Options.   (line  207)
* plotdf:                                Functions for numerical solution of differential equations.
                                                             (line   11)
* ploteq:                                Functions for numerical solution of differential equations.
                                                             (line  187)
* plsquares:                             Functions and Variables for lsquares.
                                                             (line  459)
* png_file:                              Plotting Options.   (line  245)
* pochhammer:                            Functions and Variables for orthogonal polynomials.
                                                             (line  138)
* pochhammer_max_index:                  Functions and Variables for orthogonal polynomials.
                                                             (line  170)
* point_size:                            Functions and Variables for draw.
                                                             (line 1686)
* point_type <1>:                        Functions and Variables for draw.
                                                             (line 1708)
* point_type:                            Plotting Options.   (line  221)
* points <1>:                            Functions and Variables for draw.
                                                             (line 3404)
* points:                                Visualization with VTK.
                                                             (line  290)
* points_joined:                         Functions and Variables for draw.
                                                             (line 1751)
* pointsize:                             Visualization with VTK.
                                                             (line  297)
* poisdiff:                              Functions and Variables for Poisson series.
                                                             (line   19)
* poisexpt:                              Functions and Variables for Poisson series.
                                                             (line   24)
* poisint:                               Functions and Variables for Poisson series.
                                                             (line   29)
* poislim:                               Functions and Variables for Poisson series.
                                                             (line   35)
* poismap:                               Functions and Variables for Poisson series.
                                                             (line   44)
* poisplus:                              Functions and Variables for Poisson series.
                                                             (line   51)
* poissimp:                              Functions and Variables for Poisson series.
                                                             (line   55)
* poisson:                               Functions and Variables for Poisson series.
                                                             (line   60)
* poissubst:                             Functions and Variables for Poisson series.
                                                             (line   65)
* poistimes:                             Functions and Variables for Poisson series.
                                                             (line   85)
* poistrim:                              Functions and Variables for Poisson series.
                                                             (line   89)
* polar:                                 Functions and Variables for draw.
                                                             (line 3554)
* polar_to_xy:                           Functions and Variables for Plotting.
                                                             (line  190)
* polarform:                             Functions for Complex Numbers.
                                                             (line  180)
* polartorect:                           Functions and Variables for fast Fourier transform.
                                                             (line    7)
* poly_add:                              Functions and Variables for grobner.
                                                             (line   95)
* poly_buchberger:                       Functions and Variables for grobner.
                                                             (line  215)
* poly_buchberger_criterion:             Functions and Variables for grobner.
                                                             (line  208)
* poly_coefficient_ring:                 Functions and Variables for grobner.
                                                             (line   18)
* poly_colon_ideal:                      Functions and Variables for grobner.
                                                             (line  274)
* poly_content:                          Functions and Variables for grobner.
                                                             (line  177)
* poly_depends_p:                        Functions and Variables for grobner.
                                                             (line  263)
* poly_elimination_ideal:                Functions and Variables for grobner.
                                                             (line  268)
* poly_elimination_order:                Functions and Variables for grobner.
                                                             (line   41)
* poly_exact_divide:                     Functions and Variables for grobner.
                                                             (line  197)
* poly_expand:                           Functions and Variables for grobner.
                                                             (line  140)
* poly_expt:                             Functions and Variables for grobner.
                                                             (line  169)
* poly_gcd:                              Functions and Variables for grobner.
                                                             (line  291)
* poly_grobner:                          Functions and Variables for grobner.
                                                             (line  253)
* poly_grobner_algorithm:                Functions and Variables for grobner.
                                                             (line   66)
* poly_grobner_debug:                    Functions and Variables for grobner.
                                                             (line   60)
* poly_grobner_equal:                    Functions and Variables for grobner.
                                                             (line  309)
* poly_grobner_member:                   Functions and Variables for grobner.
                                                             (line  330)
* poly_grobner_subsetp:                  Functions and Variables for grobner.
                                                             (line  323)
* poly_ideal_intersection:               Functions and Variables for grobner.
                                                             (line  283)
* poly_ideal_polysaturation:             Functions and Variables for grobner.
                                                             (line  374)
* poly_ideal_polysaturation1:            Functions and Variables for grobner.
                                                             (line  362)
* poly_ideal_saturation:                 Functions and Variables for grobner.
                                                             (line  351)
* poly_ideal_saturation1:                Functions and Variables for grobner.
                                                             (line  340)
* poly_lcm:                              Functions and Variables for grobner.
                                                             (line  287)
* poly_minimization:                     Functions and Variables for grobner.
                                                             (line  240)
* poly_monomial_order:                   Functions and Variables for grobner.
                                                             (line   10)
* poly_multiply:                         Functions and Variables for grobner.
                                                             (line  111)
* poly_normal_form:                      Functions and Variables for grobner.
                                                             (line  203)
* poly_normalize:                        Functions and Variables for grobner.
                                                             (line  131)
* poly_normalize_list:                   Functions and Variables for grobner.
                                                             (line  247)
* poly_polysaturation_extension:         Functions and Variables for grobner.
                                                             (line  388)
* poly_primary_elimination_order:        Functions and Variables for grobner.
                                                             (line   27)
* poly_primitive_part:                   Functions and Variables for grobner.
                                                             (line  123)
* poly_pseudo_divide:                    Functions and Variables for grobner.
                                                             (line  184)
* poly_reduced_grobner:                  Functions and Variables for grobner.
                                                             (line  258)
* poly_reduction:                        Functions and Variables for grobner.
                                                             (line  234)
* poly_return_term_list:                 Functions and Variables for grobner.
                                                             (line   52)
* poly_s_polynomial:                     Functions and Variables for grobner.
                                                             (line  118)
* poly_saturation_extension:             Functions and Variables for grobner.
                                                             (line  383)
* poly_secondary_elimination_order:      Functions and Variables for grobner.
                                                             (line   34)
* poly_subtract:                         Functions and Variables for grobner.
                                                             (line  103)
* poly_top_reduction_only:               Functions and Variables for grobner.
                                                             (line   79)
* polydecomp:                            Functions and Variables for Polynomials.
                                                             (line  840)
* polyfactor:                            Functions and Variables for Equations.
                                                             (line  617)
* polygon:                               Functions and Variables for draw.
                                                             (line 3581)
* polymod:                               Functions and Variables for Polynomials.
                                                             (line  892)
* polynome2ele:                          Functions and Variables for Symmetries.
                                                             (line  544)
* polynomialp:                           Functions and Variables for linearalgebra.
                                                             (line  530)
* polytocompanion:                       Functions and Variables for linearalgebra.
                                                             (line  566)
* pop:                                   Functions and Variables for Lists.
                                                             (line  440)
* posfun:                                Functions and Variables for Properties.
                                                             (line  441)
* position:                              Visualization with VTK.
                                                             (line  304)
* postfix:                               User defined operators.
                                                             (line  240)
* potential:                             Functions and Variables for Integration.
                                                             (line  513)
* power_mod:                             Functions and Variables for Number Theory.
                                                             (line  465)
* powerdisp:                             Functions and Variables for Display.
                                                             (line  536)
* powerseries:                           Functions and Variables for Series.
                                                             (line  259)
* powerset:                              Functions and Variables for Sets.
                                                             (line  772)
* pred:                                  Functions and Variables for Evaluation.
                                                             (line  631)
* prederror:                             Functions and Variables for Program Flow.
                                                             (line  526)
* prefix:                                User defined operators.
                                                             (line  252)
* prev_prime:                            Functions and Variables for Number Theory.
                                                             (line  510)
* Previous input:                        Functions and Variables for Command Line.
                                                             (line   47)
* Previous output:                       Functions and Variables for Command Line.
                                                             (line   92)
* Previous result in compound expression: Functions and Variables for Command Line.
                                                             (line  106)
* primep:                                Functions and Variables for Number Theory.
                                                             (line  480)
* primep_number_of_tests:                Functions and Variables for Number Theory.
                                                             (line  497)
* primes:                                Functions and Variables for Number Theory.
                                                             (line  503)
* principal_components:                  Functions and Variables for descriptive statistics.
                                                             (line  750)
* print:                                 Functions and Variables for Display.
                                                             (line  561)
* print_graph:                           Functions and Variables for graphs.
                                                             (line 1019)
* printf:                                Input and Output.   (line  151)
* printfile:                             Functions and Variables for File Input and Output.
                                                             (line  343)
* printpois:                             Functions and Variables for Poisson series.
                                                             (line   98)
* printprops:                            Functions and Variables for Properties.
                                                             (line  451)
* prodrac:                               Functions and Variables for Symmetries.
                                                             (line  557)
* product:                               Functions and Variables for Sums and Products.
                                                             (line   58)
* product_use_gamma:                     Functions and Variables for solve_rec.
                                                             (line  175)
* program:                               Functions and Variables for graphs.
                                                             (line 1673)
* programmode:                           Functions and Variables for Equations.
                                                             (line  628)
* prompt:                                Functions and Variables for Command Line.
                                                             (line  546)
* properties:                            Functions and Variables for Properties.
                                                             (line  460)
* proportional_axes:                     Functions and Variables for draw.
                                                             (line 1783)
* props:                                 Functions and Variables for Properties.
                                                             (line  465)
* propvars:                              Functions and Variables for Properties.
                                                             (line  474)
* ps_file:                               Plotting Options.   (line  258)
* psexpand:                              Functions and Variables for Series.
                                                             (line  304)
* psi <1>:                               Gamma and factorial Functions.
                                                             (line  719)
* psi:                                   Functions and Variables for ctensor.
                                                             (line  515)
* psubst:                                Functions and Variables for Expressions.
                                                             (line  921)
* ptriangularize:                        Functions and Variables for linearalgebra.
                                                             (line  574)
* pui:                                   Functions and Variables for Symmetries.
                                                             (line  124)
* pui2comp:                              Functions and Variables for Symmetries.
                                                             (line  151)
* pui2ele:                               Functions and Variables for Symmetries.
                                                             (line  178)
* pui2polynome:                          Functions and Variables for Symmetries.
                                                             (line  565)
* pui_direct:                            Functions and Variables for Symmetries.
                                                             (line  425)
* puireduc:                              Functions and Variables for Symmetries.
                                                             (line  188)
* push:                                  Functions and Variables for Lists.
                                                             (line  447)
* put:                                   Functions and Variables for Properties.
                                                             (line  480)
* pv:                                    Functions and Variables for finance.
                                                             (line   30)
* qput:                                  Functions and Variables for Properties.
                                                             (line  507)
* qrange:                                Functions and Variables for descriptive statistics.
                                                             (line  292)
* qty:                                   Functions and Variables for ezunits.
                                                             (line  363)
* quad_control:                          Functions and Variables for QUADPACK.
                                                             (line  710)
* quad_qag:                              Functions and Variables for QUADPACK.
                                                             (line   11)
* quad_qagi:                             Functions and Variables for QUADPACK.
                                                             (line  172)
* quad_qagp:                             Functions and Variables for QUADPACK.
                                                             (line  629)
* quad_qags:                             Functions and Variables for QUADPACK.
                                                             (line   94)
* quad_qawc:                             Functions and Variables for QUADPACK.
                                                             (line  259)
* quad_qawf:                             Functions and Variables for QUADPACK.
                                                             (line  352)
* quad_qawo:                             Functions and Variables for QUADPACK.
                                                             (line  441)
* quad_qaws:                             Functions and Variables for QUADPACK.
                                                             (line  534)
* quadrilateral:                         Functions and Variables for draw.
                                                             (line 3606)
* quantile:                              Functions and Variables for descriptive statistics.
                                                             (line  246)
* quantile_bernoulli:                    Functions and Variables for discrete distributions.
                                                             (line  263)
* quantile_beta:                         Functions and Variables for continuous distributions.
                                                             (line  915)
* quantile_binomial:                     Functions and Variables for discrete distributions.
                                                             (line  125)
* quantile_cauchy:                       Functions and Variables for continuous distributions.
                                                             (line 1454)
* quantile_chi2:                         Functions and Variables for continuous distributions.
                                                             (line  316)
* quantile_continuous_uniform:           Functions and Variables for continuous distributions.
                                                             (line  975)
* quantile_discrete_uniform:             Functions and Variables for discrete distributions.
                                                             (line  434)
* quantile_exp:                          Functions and Variables for continuous distributions.
                                                             (line  621)
* quantile_f:                            Functions and Variables for continuous distributions.
                                                             (line  521)
* quantile_gamma:                        Functions and Variables for continuous distributions.
                                                             (line  842)
* quantile_general_finite_discrete:      Functions and Variables for discrete distributions.
                                                             (line   47)
* quantile_geometric:                    Functions and Variables for discrete distributions.
                                                             (line  376)
* quantile_gumbel:                       Functions and Variables for continuous distributions.
                                                             (line 1484)
* quantile_hypergeometric:               Functions and Variables for discrete distributions.
                                                             (line  505)
* quantile_laplace:                      Functions and Variables for continuous distributions.
                                                             (line 1396)
* quantile_logistic:                     Functions and Variables for continuous distributions.
                                                             (line 1037)
* quantile_lognormal:                    Functions and Variables for continuous distributions.
                                                             (line  769)
* quantile_negative_binomial:            Functions and Variables for discrete distributions.
                                                             (line  582)
* quantile_noncentral_chi2:              Functions and Variables for continuous distributions.
                                                             (line  453)
* quantile_noncentral_student_t:         Functions and Variables for continuous distributions.
                                                             (line  207)
* quantile_normal:                       Functions and Variables for continuous distributions.
                                                             (line   29)
* quantile_pareto:                       Functions and Variables for continuous distributions.
                                                             (line 1095)
* quantile_poisson:                      Functions and Variables for discrete distributions.
                                                             (line  192)
* quantile_rayleigh:                     Functions and Variables for continuous distributions.
                                                             (line 1239)
* quantile_student_t:                    Functions and Variables for continuous distributions.
                                                             (line  108)
* quantile_weibull:                      Functions and Variables for continuous distributions.
                                                             (line 1153)
* quartile_skewness:                     Functions and Variables for descriptive statistics.
                                                             (line  498)
* quit:                                  Functions and Variables for Command Line.
                                                             (line  553)
* qunit:                                 Functions and Variables for Number Theory.
                                                             (line  517)
* Quote operator:                        Functions and Variables for Evaluation.
                                                             (line    7)
* Quote-quote operator:                  Functions and Variables for Evaluation.
                                                             (line  133)
* quotient:                              Functions and Variables for Polynomials.
                                                             (line  905)
* racah_v:                               Functions and Variables for clebsch_gordan.
                                                             (line   11)
* racah_w:                               Functions and Variables for clebsch_gordan.
                                                             (line   16)
* radcan:                                Functions and Variables for Simplification.
                                                             (line  624)
* radexpand:                             Functions and Variables for Simplification.
                                                             (line  653)
* radius <1>:                            Visualization with VTK.
                                                             (line  311)
* radius:                                Functions and Variables for graphs.
                                                             (line 1046)
* radsubstflag:                          Functions and Variables for Polynomials.
                                                             (line 1278)
* random:                                Random Numbers.     (line   34)
* random_bernoulli:                      Functions and Variables for discrete distributions.
                                                             (line  352)
* random_beta:                           Functions and Variables for continuous distributions.
                                                             (line  951)
* random_binomial:                       Functions and Variables for discrete distributions.
                                                             (line  163)
* random_bipartite_graph:                Functions and Variables for graphs.
                                                             (line  270)
* random_cauchy:                         Functions and Variables for continuous distributions.
                                                             (line 1462)
* random_chi2:                           Functions and Variables for continuous distributions.
                                                             (line  428)
* random_continuous_uniform:             Functions and Variables for continuous distributions.
                                                             (line 1013)
* random_digraph:                        Functions and Variables for graphs.
                                                             (line  275)
* random_discrete_uniform:               Functions and Variables for discrete distributions.
                                                             (line  473)
* random_exp:                            Functions and Variables for continuous distributions.
                                                             (line  737)
* random_f:                              Functions and Variables for continuous distributions.
                                                             (line  568)
* random_gamma:                          Functions and Variables for continuous distributions.
                                                             (line  878)
* random_general_finite_discrete:        Functions and Variables for discrete distributions.
                                                             (line   90)
* random_geometric:                      Functions and Variables for discrete distributions.
                                                             (line  412)
* random_graph:                          Functions and Variables for graphs.
                                                             (line  287)
* random_graph1:                         Functions and Variables for graphs.
                                                             (line  292)
* random_gumbel:                         Functions and Variables for continuous distributions.
                                                             (line 1534)
* random_hypergeometric:                 Functions and Variables for discrete distributions.
                                                             (line  549)
* random_laplace:                        Functions and Variables for continuous distributions.
                                                             (line 1432)
* random_logistic:                       Functions and Variables for continuous distributions.
                                                             (line 1073)
* random_lognormal:                      Functions and Variables for continuous distributions.
                                                             (line  812)
* random_negative_binomial:              Functions and Variables for discrete distributions.
                                                             (line  621)
* random_network:                        Functions and Variables for graphs.
                                                             (line  296)
* random_noncentral_chi2:                Functions and Variables for continuous distributions.
                                                             (line  493)
* random_noncentral_student_t:           Functions and Variables for continuous distributions.
                                                             (line  261)
* random_normal:                         Functions and Variables for continuous distributions.
                                                             (line   75)
* random_pareto:                         Functions and Variables for continuous distributions.
                                                             (line 1131)
* random_permutation:                    Functions and Variables for Sets.
                                                             (line  800)
* random_poisson:                        Functions and Variables for discrete distributions.
                                                             (line  228)
* random_rayleigh:                       Functions and Variables for continuous distributions.
                                                             (line 1374)
* random_regular_graph:                  Functions and Variables for graphs.
                                                             (line  282)
* random_student_t:                      Functions and Variables for continuous distributions.
                                                             (line  150)
* random_tournament:                     Functions and Variables for graphs.
                                                             (line  310)
* random_tree:                           Functions and Variables for graphs.
                                                             (line  314)
* random_weibull:                        Functions and Variables for continuous distributions.
                                                             (line 1189)
* range:                                 Functions and Variables for descriptive statistics.
                                                             (line  230)
* rank <1>:                              Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1115)
* rank:                                  Functions and Variables for linearalgebra.
                                                             (line  595)
* rassociative:                          Functions and Variables for Simplification.
                                                             (line  675)
* rat:                                   Functions and Variables for Polynomials.
                                                             (line  915)
* ratalgdenom:                           Functions and Variables for Polynomials.
                                                             (line  967)
* ratchristof:                           Functions and Variables for ctensor.
                                                             (line 1156)
* ratcoef:                               Functions and Variables for Polynomials.
                                                             (line  978)
* ratdenom:                              Functions and Variables for Polynomials.
                                                             (line 1005)
* ratdenomdivide:                        Functions and Variables for Polynomials.
                                                             (line 1019)
* ratdiff:                               Functions and Variables for Polynomials.
                                                             (line 1064)
* ratdisrep:                             Functions and Variables for Polynomials.
                                                             (line 1107)
* rateinstein:                           Functions and Variables for ctensor.
                                                             (line 1160)
* ratepsilon:                            Functions and Variables for Numbers.
                                                             (line  264)
* ratexpand:                             Functions and Variables for Polynomials.
                                                             (line 1119)
* ratfac:                                Functions and Variables for Polynomials.
                                                             (line 1168)
* ratinterpol:                           Functions and Variables for interpol.
                                                             (line  289)
* rational <1>:                          Functions and Variables for Properties.
                                                             (line  533)
* rational:                              Package functs.     (line   34)
* rationalize:                           Functions and Variables for Numbers.
                                                             (line  272)
* ratmx:                                 Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1123)
* ratnumer:                              Functions and Variables for Polynomials.
                                                             (line 1191)
* ratnump:                               Functions and Variables for Numbers.
                                                             (line  304)
* ratp:                                  Functions and Variables for Polynomials.
                                                             (line 1205)
* ratp_coeffs:                           Functions and Variables for ratpow.
                                                             (line   45)
* ratp_dense_coeffs:                     Functions and Variables for ratpow.
                                                             (line   53)
* ratp_hipow:                            Functions and Variables for ratpow.
                                                             (line    7)
* ratp_lopow:                            Functions and Variables for ratpow.
                                                             (line   17)
* ratprint:                              Functions and Variables for Polynomials.
                                                             (line 1213)
* ratriemann:                            Functions and Variables for ctensor.
                                                             (line 1168)
* ratsimp:                               Functions and Variables for Polynomials.
                                                             (line 1221)
* ratsimpexpons:                         Functions and Variables for Polynomials.
                                                             (line 1271)
* ratsubst:                              Functions and Variables for Polynomials.
                                                             (line 1285)
* ratvars:                               Functions and Variables for Polynomials.
                                                             (line 1325)
* ratvarswitch:                          Functions and Variables for Polynomials.
                                                             (line 1344)
* ratweight:                             Functions and Variables for Polynomials.
                                                             (line 1398)
* ratweights:                            Functions and Variables for Polynomials.
                                                             (line 1426)
* ratweyl:                               Functions and Variables for ctensor.
                                                             (line 1177)
* ratwtlvl:                              Functions and Variables for Polynomials.
                                                             (line 1436)
* read:                                  Functions and Variables for Command Line.
                                                             (line  563)
* read_array:                            Functions and Variables for plain-text input and output.
                                                             (line   38)
* read_binary_array:                     Functions and Variables for binary input and output.
                                                             (line   44)
* read_binary_list:                      Functions and Variables for binary input and output.
                                                             (line   58)
* read_binary_matrix:                    Functions and Variables for binary input and output.
                                                             (line   33)
* read_hashed_array:                     Functions and Variables for plain-text input and output.
                                                             (line   53)
* read_list:                             Functions and Variables for plain-text input and output.
                                                             (line   87)
* read_matrix:                           Functions and Variables for plain-text input and output.
                                                             (line   11)
* read_nested_list:                      Functions and Variables for plain-text input and output.
                                                             (line   70)
* read_xpm:                              Functions and Variables for pictures.
                                                             (line   87)
* readbyte:                              Input and Output.   (line  264)
* readchar:                              Input and Output.   (line  286)
* readline:                              Input and Output.   (line  293)
* readonly:                              Functions and Variables for Command Line.
                                                             (line  581)
* real:                                  Functions and Variables for Properties.
                                                             (line  541)
* Real infinity:                         Functions and Variables for Constants.
                                                             (line   37)
* real_fft:                              Functions and Variables for fast Fourier transform.
                                                             (line  223)
* real_imagpart_to_conjugate:            Functions and Variables for to_poly_solve.
                                                             (line  651)
* realonly:                              Functions and Variables for Equations.
                                                             (line  641)
* realpart:                              Functions for Complex Numbers.
                                                             (line  199)
* realroots:                             Functions and Variables for Equations.
                                                             (line  652)
* rearray:                               Functions and Variables for Arrays.
                                                             (line  410)
* rectangle:                             Functions and Variables for draw.
                                                             (line 3638)
* rectform:                              Functions for Complex Numbers.
                                                             (line  216)
* rectform_log_if_constant:              Functions and Variables for to_poly_solve.
                                                             (line  670)
* recttopolar:                           Functions and Variables for fast Fourier transform.
                                                             (line   25)
* rediff:                                Functions and Variables for itensor.
                                                             (line  677)
* redraw:                                Functions and Variables for graphs.
                                                             (line 1638)
* reduce_consts:                         Package rducon.     (line    7)
* reduce_order:                          Functions and Variables for solve_rec.
                                                             (line    7)
* refcheck:                              Functions and Variables for Debugging.
                                                             (line   18)
* region:                                Functions and Variables for draw.
                                                             (line 3668)
* region_boundaries:                     Functions and Variables for worldmap.
                                                             (line  127)
* region_boundaries_plus:                Functions and Variables for worldmap.
                                                             (line  142)
* rem:                                   Functions and Variables for Properties.
                                                             (line  551)
* remainder:                             Functions and Variables for Polynomials.
                                                             (line 1446)
* remarray:                              Functions and Variables for Arrays.
                                                             (line  420)
* rembox:                                Functions and Variables for Expressions.
                                                             (line  944)
* remcomps:                              Functions and Variables for itensor.
                                                             (line  295)
* remcon:                                Functions and Variables for itensor.
                                                             (line  182)
* remcoord:                              Functions and Variables for itensor.
                                                             (line  785)
* remfun:                                Functions and Variables for Fourier series.
                                                             (line   14)
* remfunction:                           Functions and Variables for Function Definition.
                                                             (line 1070)
* remlet:                                Functions and Variables for Rules and Patterns.
                                                             (line  549)
* remove:                                Functions and Variables for Properties.
                                                             (line  564)
* remove_constvalue:                     Functions and Variables for ezunits.
                                                             (line  297)
* remove_dimensions:                     Functions and Variables for ezunits.
                                                             (line  519)
* remove_edge:                           Functions and Variables for graphs.
                                                             (line 1338)
* remove_fundamental_dimensions:         Functions and Variables for ezunits.
                                                             (line  525)
* remove_fundamental_units:              Functions and Variables for ezunits.
                                                             (line  557)
* remove_plot_option:                    Functions and Variables for Plotting.
                                                             (line  443)
* remove_vertex:                         Functions and Variables for graphs.
                                                             (line 1353)
* rempart:                               Package functs.     (line    7)
* remrule:                               Functions and Variables for Rules and Patterns.
                                                             (line  571)
* remsym:                                Functions and Variables for itensor.
                                                             (line  591)
* remvalue:                              Functions and Variables for Miscellaneous Options.
                                                             (line   75)
* rename:                                Functions and Variables for itensor.
                                                             (line   81)
* rename_file:                           File operations.    (line   10)
* reset:                                 Functions and Variables for Command Line.
                                                             (line  603)
* reset_displays:                        Functions and Variables for alt-display.
                                                             (line  108)
* residue:                               Functions and Variables for Integration.
                                                             (line  525)
* resolution:                            Visualization with VTK.
                                                             (line  319)
* resolvante:                            Functions and Variables for Symmetries.
                                                             (line  594)
* resolvante_alternee1:                  Functions and Variables for Symmetries.
                                                             (line  779)
* resolvante_bipartite:                  Functions and Variables for Symmetries.
                                                             (line  789)
* resolvante_diedrale:                   Functions and Variables for Symmetries.
                                                             (line  803)
* resolvante_klein:                      Functions and Variables for Symmetries.
                                                             (line  822)
* resolvante_klein3:                     Functions and Variables for Symmetries.
                                                             (line  832)
* resolvante_produit_sym:                Functions and Variables for Symmetries.
                                                             (line  842)
* resolvante_unitaire:                   Functions and Variables for Symmetries.
                                                             (line  869)
* resolvante_vierer:                     Functions and Variables for Symmetries.
                                                             (line  879)
* rest:                                  Functions and Variables for Lists.
                                                             (line  484)
* restart:                               Visualization with VTK.
                                                             (line   96)
* resultant:                             Functions and Variables for Polynomials.
                                                             (line 1493)
* return:                                Functions and Variables for Program Flow.
                                                             (line  540)
* reveal:                                Functions and Variables for Expressions.
                                                             (line  999)
* reverse:                               Functions and Variables for Lists.
                                                             (line  507)
* revert:                                Functions and Variables for Series.
                                                             (line  318)
* revert2:                               Functions and Variables for Series.
                                                             (line  319)
* rgb2level:                             Functions and Variables for pictures.
                                                             (line   91)
* rhs:                                   Functions and Variables for Equations.
                                                             (line  697)
* ric:                                   Functions and Variables for ctensor.
                                                             (line 1213)
* ricci:                                 Functions and Variables for ctensor.
                                                             (line  214)
* riem:                                  Functions and Variables for ctensor.
                                                             (line 1196)
* riemann:                               Functions and Variables for ctensor.
                                                             (line  258)
* rinvariant:                            Functions and Variables for ctensor.
                                                             (line  302)
* risch:                                 Functions and Variables for Integration.
                                                             (line  542)
* rk:                                    Functions for numerical solution of differential equations.
                                                             (line  216)
* rmdir:                                 Directory operations.
                                                             (line   13)
* rmxchar:                               Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1143)
* rncombine:                             Functions and Variables for Miscellaneous Options.
                                                             (line   86)
* romberg:                               Functions and Variables for romberg.
                                                             (line    9)
* rombergabs:                            Functions and Variables for romberg.
                                                             (line  109)
* rombergit:                             Functions and Variables for romberg.
                                                             (line  123)
* rombergmin:                            Functions and Variables for romberg.
                                                             (line  135)
* rombergtol:                            Functions and Variables for romberg.
                                                             (line  145)
* room:                                  Functions and Variables for Runtime Environment.
                                                             (line   38)
* rootsconmode:                          Functions and Variables for Equations.
                                                             (line  739)
* rootscontract:                         Functions and Variables for Equations.
                                                             (line  746)
* rootsepsilon:                          Functions and Variables for Equations.
                                                             (line  808)
* round:                                 Functions for Numbers.
                                                             (line  277)
* row:                                   Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1138)
* rowop:                                 Functions and Variables for linearalgebra.
                                                             (line  589)
* rowswap:                               Functions and Variables for linearalgebra.
                                                             (line  606)
* rreduce:                               Functions and Variables for Sets.
                                                             (line  822)
* run_testsuite:                         Functions and Variables for Bug Detection and Reporting.
                                                             (line    7)
* run_viewer:                            Plotting Options.   (line  272)
* same_xy:                               Plotting Options.   (line  294)
* same_xyz:                              Plotting Options.   (line  300)
* save:                                  Functions and Variables for File Input and Output.
                                                             (line  362)
* savedef:                               Functions and Variables for Function Definition.
                                                             (line 1087)
* savefactors:                           Functions and Variables for Polynomials.
                                                             (line 1515)
* saving:                                Functions and Variables for finance.
                                                             (line  188)
* scalar:                                Functions and Variables for Properties.
                                                             (line  598)
* scalarmatrixp:                         Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1152)
* scalarp:                               Functions and Variables for Properties.
                                                             (line  605)
* scale:                                 Visualization with VTK.
                                                             (line  326)
* scale_lp:                              Functions and Variables for simplex.
                                                             (line  100)
* scaled_bessel_i:                       Bessel Functions.   (line  151)
* scaled_bessel_i0:                      Bessel Functions.   (line  161)
* scaled_bessel_i1:                      Bessel Functions.   (line  165)
* scalefactors:                          Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1166)
* scanmap:                               Functions and Variables for Program Flow.
                                                             (line  578)
* scatterplot:                           Functions and Variables for statistical graphs.
                                                             (line  350)
* scatterplot_description:               Functions and Variables for statistical graphs.
                                                             (line  404)
* scene:                                 Visualization with VTK.
                                                             (line   12)
* schur2comp:                            Functions and Variables for Symmetries.
                                                             (line  205)
* sconcat:                               Functions and Variables for Strings.
                                                             (line   46)
* scopy:                                 String Processing.  (line   64)
* scsimp:                                Functions and Variables for Simplification.
                                                             (line  681)
* scurvature:                            Functions and Variables for ctensor.
                                                             (line  232)
* sdowncase:                             String Processing.  (line   71)
* sec:                                   Functions and Variables for Trigonometric.
                                                             (line  230)
* sech:                                  Functions and Variables for Trigonometric.
                                                             (line  234)
* second:                                Functions and Variables for Lists.
                                                             (line  513)
* sequal:                                String Processing.  (line   76)
* sequalignore:                          String Processing.  (line   81)
* set_alt_display:                       Functions and Variables for alt-display.
                                                             (line  113)
* set_draw_defaults:                     Functions and Variables for draw.
                                                             (line  176)
* set_edge_weight:                       Functions and Variables for graphs.
                                                             (line 1055)
* set_partitions:                        Functions and Variables for Sets.
                                                             (line  942)
* set_plot_option:                       Functions and Variables for Plotting.
                                                             (line  451)
* set_prompt:                            Functions and Variables for alt-display.
                                                             (line  133)
* set_random_state:                      Random Numbers.     (line   28)
* set_tex_environment:                   Functions and Variables for TeX Output.
                                                             (line  216)
* set_tex_environment_default:           Functions and Variables for TeX Output.
                                                             (line  256)
* set_up_dot_simplifications:            Functions and Variables for Affine.
                                                             (line   44)
* set_vertex_label:                      Functions and Variables for graphs.
                                                             (line 1069)
* setcheck:                              Functions and Variables for Debugging.
                                                             (line   25)
* setcheckbreak:                         Functions and Variables for Debugging.
                                                             (line   55)
* setdifference:                         Functions and Variables for Sets.
                                                             (line  863)
* setelmx:                               Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1184)
* setequalp:                             Functions and Variables for Sets.
                                                             (line  888)
* setify:                                Functions and Variables for Sets.
                                                             (line  904)
* setp:                                  Functions and Variables for Sets.
                                                             (line  921)
* setunits:                              Functions and Variables for Units.
                                                             (line    7)
* setup_autoload:                        Functions and Variables for Miscellaneous Options.
                                                             (line  103)
* setval:                                Functions and Variables for Debugging.
                                                             (line   68)
* seventh:                               Functions and Variables for Lists.
                                                             (line  518)
* sexplode:                              String Processing.  (line   88)
* sf:                                    Functions and Variables for atensor.
                                                             (line   98)
* sha1sum:                               Octets and Utilities for Cryptography.
                                                             (line  224)
* sha256sum:                             Octets and Utilities for Cryptography.
                                                             (line  253)
* share_testsuite_files:                 Functions and Variables for Bug Detection and Reporting.
                                                             (line   73)
* shortest_path:                         Functions and Variables for graphs.
                                                             (line 1083)
* shortest_weighted_path:                Functions and Variables for graphs.
                                                             (line 1094)
* show:                                  Functions and Variables for itensor.
                                                             (line  139)
* show_edge_color:                       Functions and Variables for graphs.
                                                             (line 1614)
* show_edge_type:                        Functions and Variables for graphs.
                                                             (line 1622)
* show_edge_width:                       Functions and Variables for graphs.
                                                             (line 1618)
* show_edges:                            Functions and Variables for graphs.
                                                             (line 1609)
* show_id:                               Functions and Variables for graphs.
                                                             (line 1523)
* show_label:                            Functions and Variables for graphs.
                                                             (line 1529)
* show_vertex_color:                     Functions and Variables for graphs.
                                                             (line 1579)
* show_vertex_size:                      Functions and Variables for graphs.
                                                             (line 1575)
* show_vertex_type:                      Functions and Variables for graphs.
                                                             (line 1569)
* show_vertices:                         Functions and Variables for graphs.
                                                             (line 1563)
* show_weight:                           Functions and Variables for graphs.
                                                             (line 1542)
* showcomps:                             Functions and Variables for itensor.
                                                             (line  300)
* showratvars:                           Functions and Variables for Polynomials.
                                                             (line 1524)
* showtime:                              Functions and Variables for Command Line.
                                                             (line  614)
* sierpinskiale:                         Definitions for IFS fractals.
                                                             (line   20)
* sierpinskimap:                         Definitions for Peano maps.
                                                             (line   20)
* sign:                                  Functions and Variables for Facts.
                                                             (line  409)
* signum:                                Functions for Numbers.
                                                             (line  286)
* similaritytransform:                   Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1192)
* simp:                                  Functions and Variables for Simplification.
                                                             (line  691)
* simp_inequality:                       Functions and Variables for to_poly_solve.
                                                             (line  694)
* simplified_output:                     Functions and Variables for zeilberger.
                                                             (line  103)
* simplify_products:                     Functions and Variables for solve_rec.
                                                             (line   55)
* simplify_sum:                          Functions and Variables for solve_rec.
                                                             (line   64)
* simplode:                              String Processing.  (line   94)
* simpmetderiv:                          Functions and Variables for itensor.
                                                             (line  820)
* simpproduct:                           Functions and Variables for Sums and Products.
                                                             (line   48)
* simpsum:                               Functions and Variables for Sums and Products.
                                                             (line  117)
* simtran:                               Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1193)
* sin:                                   Functions and Variables for Trigonometric.
                                                             (line  238)
* sinh:                                  Functions and Variables for Trigonometric.
                                                             (line  242)
* sinnpiflag:                            Functions and Variables for Fourier series.
                                                             (line   60)
* sinsert:                               String Processing.  (line  109)
* sinvertcase:                           String Processing.  (line  126)
* sixth:                                 Functions and Variables for Lists.
                                                             (line  523)
* skewness:                              Functions and Variables for descriptive statistics.
                                                             (line  448)
* skewness_bernoulli:                    Functions and Variables for discrete distributions.
                                                             (line  315)
* skewness_beta:                         Functions and Variables for continuous distributions.
                                                             (line  938)
* skewness_binomial:                     Functions and Variables for discrete distributions.
                                                             (line  150)
* skewness_chi2:                         Functions and Variables for continuous distributions.
                                                             (line  387)
* skewness_continuous_uniform:           Functions and Variables for continuous distributions.
                                                             (line 1000)
* skewness_discrete_uniform:             Functions and Variables for discrete distributions.
                                                             (line  460)
* skewness_exp:                          Functions and Variables for continuous distributions.
                                                             (line  700)
* skewness_f:                            Functions and Variables for continuous distributions.
                                                             (line  555)
* skewness_gamma:                        Functions and Variables for continuous distributions.
                                                             (line  865)
* skewness_general_finite_discrete:      Functions and Variables for discrete distributions.
                                                             (line   75)
* skewness_geometric:                    Functions and Variables for discrete distributions.
                                                             (line  399)
* skewness_gumbel:                       Functions and Variables for continuous distributions.
                                                             (line 1512)
* skewness_hypergeometric:               Functions and Variables for discrete distributions.
                                                             (line  534)
* skewness_laplace:                      Functions and Variables for continuous distributions.
                                                             (line 1419)
* skewness_logistic:                     Functions and Variables for continuous distributions.
                                                             (line 1060)
* skewness_lognormal:                    Functions and Variables for continuous distributions.
                                                             (line  799)
* skewness_negative_binomial:            Functions and Variables for discrete distributions.
                                                             (line  608)
* skewness_noncentral_chi2:              Functions and Variables for continuous distributions.
                                                             (line  480)
* skewness_noncentral_student_t:         Functions and Variables for continuous distributions.
                                                             (line  246)
* skewness_normal:                       Functions and Variables for continuous distributions.
                                                             (line   62)
* skewness_pareto:                       Functions and Variables for continuous distributions.
                                                             (line 1118)
* skewness_poisson:                      Functions and Variables for discrete distributions.
                                                             (line  215)
* skewness_rayleigh:                     Functions and Variables for continuous distributions.
                                                             (line 1323)
* skewness_student_t:                    Functions and Variables for continuous distributions.
                                                             (line  137)
* skewness_weibull:                      Functions and Variables for continuous distributions.
                                                             (line 1176)
* slength:                               String Processing.  (line  137)
* smake:                                 String Processing.  (line  141)
* small_rhombicosidodecahedron_graph:    Functions and Variables for graphs.
                                                             (line  318)
* small_rhombicuboctahedron_graph:       Functions and Variables for graphs.
                                                             (line  322)
* smax:                                  Functions and Variables for descriptive statistics.
                                                             (line  212)
* smin:                                  Functions and Variables for descriptive statistics.
                                                             (line  194)
* smismatch:                             String Processing.  (line  152)
* snowmap:                               Definitions for Koch snowflakes.
                                                             (line    7)
* snub_cube_graph:                       Functions and Variables for graphs.
                                                             (line  326)
* snub_dodecahedron_graph:               Functions and Variables for graphs.
                                                             (line  330)
* solve:                                 Functions and Variables for Equations.
                                                             (line  818)
* solve_rec:                             Functions and Variables for solve_rec.
                                                             (line   87)
* solve_rec_rat:                         Functions and Variables for solve_rec.
                                                             (line  152)
* solvedecomposes:                       Functions and Variables for Equations.
                                                             (line  975)
* solveexplicit:                         Functions and Variables for Equations.
                                                             (line  982)
* solvefactors:                          Functions and Variables for Equations.
                                                             (line  990)
* solvenullwarn:                         Functions and Variables for Equations.
                                                             (line  998)
* solveradcan:                           Functions and Variables for Equations.
                                                             (line 1007)
* solvetrigwarn:                         Functions and Variables for Equations.
                                                             (line 1015)
* some:                                  Functions and Variables for Sets.
                                                             (line  995)
* somrac:                                Functions and Variables for Symmetries.
                                                             (line  583)
* sort:                                  Functions and Variables for Lists.
                                                             (line  530)
* space:                                 Characters.         (line  209)
* sparse:                                Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1218)
* sparse6_decode:                        Functions and Variables for graphs.
                                                             (line 1388)
* sparse6_encode:                        Functions and Variables for graphs.
                                                             (line 1393)
* sparse6_export:                        Functions and Variables for graphs.
                                                             (line 1398)
* sparse6_import:                        Functions and Variables for graphs.
                                                             (line 1403)
* specint:                               Functions and Variables for Special Functions.
                                                             (line    7)
* sphere:                                Visualization with VTK.
                                                             (line  173)
* spherical:                             Functions and Variables for draw.
                                                             (line 3689)
* spherical_bessel_j:                    Functions and Variables for orthogonal polynomials.
                                                             (line  187)
* spherical_bessel_y:                    Functions and Variables for orthogonal polynomials.
                                                             (line  194)
* spherical_hankel1:                     Functions and Variables for orthogonal polynomials.
                                                             (line  201)
* spherical_hankel2:                     Functions and Variables for orthogonal polynomials.
                                                             (line  207)
* spherical_harmonic:                    Functions and Variables for orthogonal polynomials.
                                                             (line  213)
* spherical_to_xyz:                      Functions and Variables for Plotting.
                                                             (line  480)
* splice:                                Macros.             (line  179)
* split:                                 String Processing.  (line  167)
* sposition:                             String Processing.  (line  184)
* spring_embedding_depth:                Functions and Variables for graphs.
                                                             (line 1657)
* sprint:                                Input and Output.   (line  299)
* sqfr:                                  Functions and Variables for Polynomials.
                                                             (line 1531)
* sqrt:                                  Root Exponential and Logarithmic Functions.
                                                             (line  295)
* sqrtdenest:                            Package sqdnst.     (line    7)
* sqrtdispflag:                          Functions and Variables for Display.
                                                             (line  597)
* sremove:                               String Processing.  (line  194)
* sremovefirst:                          String Processing.  (line  213)
* sreverse:                              String Processing.  (line  218)
* ssearch:                               String Processing.  (line  227)
* ssort:                                 String Processing.  (line  242)
* sstatus:                               Functions and Variables for Runtime Environment.
                                                             (line   50)
* ssubst:                                String Processing.  (line  262)
* ssubstfirst:                           String Processing.  (line  282)
* staircase:                             Graphical analysis of discrete dynamical systems.
                                                             (line  126)
* standardize:                           Functions and Variables for data manipulation.
                                                             (line  124)
* standardize_inverse_trig:              Functions and Variables for to_poly_solve.
                                                             (line  718)
* stardisp:                              Functions and Variables for Display.
                                                             (line  604)
* starplot:                              Functions and Variables for statistical graphs.
                                                             (line  411)
* starplot_description:                  Functions and Variables for statistical graphs.
                                                             (line  471)
* startphi:                              Visualization with VTK.
                                                             (line  337)
* starttheta:                            Visualization with VTK.
                                                             (line  349)
* stats_numer:                           Functions and Variables for stats.
                                                             (line    7)
* status:                                Functions and Variables for Runtime Environment.
                                                             (line   63)
* std:                                   Functions and Variables for descriptive statistics.
                                                             (line   84)
* std1:                                  Functions and Variables for descriptive statistics.
                                                             (line  104)
* std_bernoulli:                         Functions and Variables for discrete distributions.
                                                             (line  299)
* std_beta:                              Functions and Variables for continuous distributions.
                                                             (line  932)
* std_binomial:                          Functions and Variables for discrete distributions.
                                                             (line  144)
* std_chi2:                              Functions and Variables for continuous distributions.
                                                             (line  369)
* std_continuous_uniform:                Functions and Variables for continuous distributions.
                                                             (line  994)
* std_discrete_uniform:                  Functions and Variables for discrete distributions.
                                                             (line  454)
* std_exp:                               Functions and Variables for continuous distributions.
                                                             (line  680)
* std_f:                                 Functions and Variables for continuous distributions.
                                                             (line  549)
* std_gamma:                             Functions and Variables for continuous distributions.
                                                             (line  859)
* std_general_finite_discrete:           Functions and Variables for discrete distributions.
                                                             (line   68)
* std_geometric:                         Functions and Variables for discrete distributions.
                                                             (line  393)
* std_gumbel:                            Functions and Variables for continuous distributions.
                                                             (line 1506)
* std_hypergeometric:                    Functions and Variables for discrete distributions.
                                                             (line  527)
* std_laplace:                           Functions and Variables for continuous distributions.
                                                             (line 1413)
* std_logistic:                          Functions and Variables for continuous distributions.
                                                             (line 1054)
* std_lognormal:                         Functions and Variables for continuous distributions.
                                                             (line  793)
* std_negative_binomial:                 Functions and Variables for discrete distributions.
                                                             (line  602)
* std_noncentral_chi2:                   Functions and Variables for continuous distributions.
                                                             (line  474)
* std_noncentral_student_t:              Functions and Variables for continuous distributions.
                                                             (line  239)
* std_normal:                            Functions and Variables for continuous distributions.
                                                             (line   56)
* std_pareto:                            Functions and Variables for continuous distributions.
                                                             (line 1112)
* std_poisson:                           Functions and Variables for discrete distributions.
                                                             (line  209)
* std_rayleigh:                          Functions and Variables for continuous distributions.
                                                             (line 1301)
* std_student_t:                         Functions and Variables for continuous distributions.
                                                             (line  131)
* std_weibull:                           Functions and Variables for continuous distributions.
                                                             (line 1170)
* stemplot:                              Functions and Variables for statistical graphs.
                                                             (line  478)
* stirling:                              Functions and Variables for stirling.
                                                             (line    9)
* stirling1:                             Functions and Variables for Sets.
                                                             (line 1065)
* stirling2:                             Functions and Variables for Sets.
                                                             (line 1106)
* strim:                                 String Processing.  (line  287)
* striml:                                String Processing.  (line  300)
* strimr:                                String Processing.  (line  304)
* string:                                Functions and Variables for Strings.
                                                             (line   54)
* string_to_octets:                      Octets and Utilities for Cryptography.
                                                             (line  274)
* stringdisp:                            Functions and Variables for Strings.
                                                             (line   62)
* stringout:                             Functions and Variables for File Input and Output.
                                                             (line  418)
* stringp:                               String Processing.  (line  308)
* strong_components:                     Functions and Variables for graphs.
                                                             (line 1111)
* structures:                            Functions and Variables for Structures.
                                                             (line    7)
* struve_h:                              Struve Functions.   (line   10)
* struve_l:                              Struve Functions.   (line   14)
* style:                                 Plotting Options.   (line  307)
* sublis:                                Functions and Variables for Expressions.
                                                             (line 1062)
* sublis_apply_lambda:                   Functions and Variables for Expressions.
                                                             (line 1078)
* sublist:                               Functions and Variables for Lists.
                                                             (line  662)
* sublist_indices:                       Functions and Variables for Lists.
                                                             (line  674)
* submatrix:                             Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1229)
* subnumsimp:                            Functions and Variables for Expressions.
                                                             (line 1086)
* subsample:                             Functions and Variables for data manipulation.
                                                             (line  134)
* Subscript operator:                    Functions and Variables for Lists.
                                                             (line    6)
* subset:                                Functions and Variables for Sets.
                                                             (line 1151)
* subsetp:                               Functions and Variables for Sets.
                                                             (line 1170)
* subst:                                 Functions and Variables for Expressions.
                                                             (line 1105)
* subst_parallel:                        Functions and Variables for to_poly_solve.
                                                             (line  730)
* substinpart:                           Functions and Variables for Expressions.
                                                             (line 1163)
* substpart:                             Functions and Variables for Expressions.
                                                             (line 1219)
* substring:                             String Processing.  (line  314)
* Subtraction:                           Arithmetic operators.
                                                             (line    6)
* subvar:                                Functions and Variables for Arrays.
                                                             (line  436)
* subvarp:                               Functions and Variables for Arrays.
                                                             (line  461)
* sum:                                   Functions and Variables for Sums and Products.
                                                             (line  127)
* sumcontract:                           Functions and Variables for Sums and Products.
                                                             (line  228)
* sumexpand:                             Functions and Variables for Sums and Products.
                                                             (line  241)
* summand_to_rec:                        Functions and Variables for solve_rec.
                                                             (line  186)
* sumsplitfact:                          Combinatorial Functions.
                                                             (line  196)
* supcase:                               String Processing.  (line  332)
* supcontext:                            Functions and Variables for Facts.
                                                             (line  421)
* surface:                               Visualization with VTK.
                                                             (line  361)
* surface_hide:                          Functions and Variables for draw.
                                                             (line 1823)
* svg_file:                              Plotting Options.   (line  341)
* symbolp:                               Functions and Variables for Expressions.
                                                             (line 1247)
* symmdifference:                        Functions and Variables for Sets.
                                                             (line 1183)
* symmetric:                             Functions and Variables for Simplification.
                                                             (line  730)
* symmetricp:                            Functions and Variables for ctensor.
                                                             (line  842)
* system:                                Functions and Variables for Runtime Environment.
                                                             (line   86)
* t:                                     Plotting Options.   (line  354)
* tab:                                   Characters.         (line  213)
* take_channel:                          Functions and Variables for pictures.
                                                             (line   96)
* take_inference:                        Functions and Variables for inference_result.
                                                             (line   77)
* tan:                                   Functions and Variables for Trigonometric.
                                                             (line  246)
* tanh:                                  Functions and Variables for Trigonometric.
                                                             (line  250)
* taylor:                                Functions and Variables for Series.
                                                             (line  367)
* taylor_logexpand:                      Functions and Variables for Series.
                                                             (line  556)
* taylor_order_coefficients:             Functions and Variables for Series.
                                                             (line  573)
* taylor_simplifier:                     Functions and Variables for Series.
                                                             (line  583)
* taylor_truncate_polynomials:           Functions and Variables for Series.
                                                             (line  588)
* taylordepth:                           Functions and Variables for Series.
                                                             (line  519)
* taylorinfo:                            Functions and Variables for Series.
                                                             (line  527)
* taylorp:                               Functions and Variables for Series.
                                                             (line  552)
* taytorat:                              Functions and Variables for Series.
                                                             (line  598)
* tcl_output:                            Functions and Variables for Miscellaneous Options.
                                                             (line  139)
* tcontract:                             Functions and Variables for Symmetries.
                                                             (line  279)
* tellrat:                               Functions and Variables for Polynomials.
                                                             (line 1550)
* tellsimp:                              Functions and Variables for Rules and Patterns.
                                                             (line  616)
* tellsimpafter:                         Functions and Variables for Rules and Patterns.
                                                             (line  674)
* tensorkill:                            Functions and Variables for ctensor.
                                                             (line 1279)
* tentex:                                Functions and Variables for itensor.
                                                             (line 1559)
* tenth:                                 Functions and Variables for Lists.
                                                             (line  711)
* terminal <1>:                          Functions and Variables for graphs.
                                                             (line 1664)
* terminal:                              Functions and Variables for draw.
                                                             (line 1841)
* test_mean:                             Functions and Variables for stats.
                                                             (line   17)
* test_means_difference:                 Functions and Variables for stats.
                                                             (line  128)
* test_normality:                        Functions and Variables for stats.
                                                             (line  800)
* test_proportion:                       Functions and Variables for stats.
                                                             (line  393)
* test_proportions_difference:           Functions and Variables for stats.
                                                             (line  495)
* test_rank_sum:                         Functions and Variables for stats.
                                                             (line  728)
* test_sign:                             Functions and Variables for stats.
                                                             (line  588)
* test_signed_rank:                      Functions and Variables for stats.
                                                             (line  645)
* test_variance:                         Functions and Variables for stats.
                                                             (line  245)
* test_variance_ratio:                   Functions and Variables for stats.
                                                             (line  319)
* testsuite_files:                       Functions and Variables for Bug Detection and Reporting.
                                                             (line   57)
* tex:                                   Functions and Variables for TeX Output.
                                                             (line   17)
* tex1:                                  Functions and Variables for TeX Output.
                                                             (line   71)
* tex_display:                           Functions and Variables for alt-display.
                                                             (line   70)
* texput:                                Functions and Variables for TeX Output.
                                                             (line   86)
* thetaresolution:                       Visualization with VTK.
                                                             (line  368)
* third:                                 Functions and Variables for Lists.
                                                             (line  716)
* throw:                                 Functions and Variables for Program Flow.
                                                             (line  618)
* time:                                  Functions and Variables for Runtime Environment.
                                                             (line  106)
* timedate:                              Functions and Variables for Runtime Environment.
                                                             (line  119)
* timer:                                 Functions and Variables for Debugging.
                                                             (line   78)
* timer_devalue:                         Functions and Variables for Debugging.
                                                             (line  119)
* timer_info:                            Functions and Variables for Debugging.
                                                             (line  132)
* title <1>:                             Plotting Options.   (line  358)
* title:                                 Functions and Variables for draw.
                                                             (line 1919)
* tldefint:                              Functions and Variables for Integration.
                                                             (line  565)
* tlimit:                                Functions and Variables for Limits.
                                                             (line   71)
* tlimswitch:                            Functions and Variables for Limits.
                                                             (line   76)
* to_lisp:                               Functions and Variables for Command Line.
                                                             (line  626)
* to_poly:                               Functions and Variables for to_poly_solve.
                                                             (line  785)
* to_poly_solve:                         Functions and Variables for to_poly_solve.
                                                             (line  844)
* todd_coxeter:                          Functions and Variables for Groups.
                                                             (line    9)
* toeplitz:                              Functions and Variables for linearalgebra.
                                                             (line  613)
* tokens:                                String Processing.  (line  346)
* topological_sort:                      Functions and Variables for graphs.
                                                             (line 1123)
* totaldisrep:                           Functions and Variables for Polynomials.
                                                             (line 1603)
* totalfourier:                          Functions and Variables for Fourier series.
                                                             (line   88)
* totient:                               Functions and Variables for Number Theory.
                                                             (line  529)
* tpartpol:                              Functions and Variables for Symmetries.
                                                             (line  285)
* tr:                                    Functions and Variables for ctensor.
                                                             (line 1261)
* tr_array_as_ref:                       Functions and Variables for Function Definition.
                                                             (line 1232)
* tr_bound_function_applyp:              Functions and Variables for Function Definition.
                                                             (line 1244)
* tr_file_tty_messagesp:                 Functions and Variables for Function Definition.
                                                             (line 1256)
* tr_float_can_branch_complex:           Functions and Variables for Function Definition.
                                                             (line 1266)
* tr_function_call_default:              Functions and Variables for Function Definition.
                                                             (line 1281)
* tr_numer:                              Functions and Variables for Function Definition.
                                                             (line 1296)
* tr_optimize_max_loop:                  Functions and Variables for Function Definition.
                                                             (line 1303)
* tr_semicompile:                        Functions and Variables for Function Definition.
                                                             (line 1312)
* tr_state_vars:                         Functions and Variables for Function Definition.
                                                             (line 1320)
* tr_warn_bad_function_calls:            Functions and Variables for Function Definition.
                                                             (line 1338)
* tr_warn_fexpr:                         Functions and Variables for Function Definition.
                                                             (line 1346)
* tr_warn_meval:                         Functions and Variables for Function Definition.
                                                             (line 1354)
* tr_warn_mode:                          Functions and Variables for Function Definition.
                                                             (line 1361)
* tr_warn_undeclared:                    Functions and Variables for Function Definition.
                                                             (line 1368)
* tr_warn_undefined_variable:            Functions and Variables for Function Definition.
                                                             (line 1375)
* tr_warnings_get:                       Functions and Variables for Function Definition.
                                                             (line 1333)
* trace:                                 Functions and Variables for Debugging.
                                                             (line  153)
* trace_options:                         Functions and Variables for Debugging.
                                                             (line  180)
* tracematrix:                           Package functs.     (line   28)
* track:                                 Visualization with VTK.
                                                             (line  378)
* transcompile:                          Functions and Variables for Function Definition.
                                                             (line 1099)
* transform:                             Functions and Variables for draw.
                                                             (line 1935)
* transform_sample:                      Functions and Variables for data manipulation.
                                                             (line  247)
* transform_xy:                          Plotting Options.   (line  362)
* translate:                             Functions and Variables for Function Definition.
                                                             (line 1112)
* translate_fast_arrays:                 Functions and Variables for Arrays.
                                                             (line  483)
* translate_file:                        Functions and Variables for Function Definition.
                                                             (line 1167)
* transparent:                           Functions and Variables for draw.
                                                             (line 1975)
* transpose:                             Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1234)
* transrun:                              Functions and Variables for Function Definition.
                                                             (line 1224)
* tree_reduce:                           Functions and Variables for Sets.
                                                             (line 1213)
* treefale:                              Definitions for IFS fractals.
                                                             (line   32)
* treillis:                              Functions and Variables for Symmetries.
                                                             (line  497)
* treinat:                               Functions and Variables for Symmetries.
                                                             (line  506)
* triangle:                              Functions and Variables for draw.
                                                             (line 3710)
* triangularize:                         Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1247)
* trigexpand:                            Functions and Variables for Trigonometric.
                                                             (line  254)
* trigexpandplus:                        Functions and Variables for Trigonometric.
                                                             (line  291)
* trigexpandtimes:                       Functions and Variables for Trigonometric.
                                                             (line  300)
* triginverses:                          Functions and Variables for Trigonometric.
                                                             (line  309)
* trigrat:                               Functions and Variables for Trigonometric.
                                                             (line  360)
* trigreduce:                            Functions and Variables for Trigonometric.
                                                             (line  327)
* trigsign:                              Functions and Variables for Trigonometric.
                                                             (line  341)
* trigsimp:                              Functions and Variables for Trigonometric.
                                                             (line  349)
* trivial_solutions:                     Functions and Variables for zeilberger.
                                                             (line  132)
* true:                                  Functions and Variables for Constants.
                                                             (line  110)
* trunc:                                 Functions and Variables for Series.
                                                             (line  604)
* truncate:                              Functions for Numbers.
                                                             (line  303)
* truncated_cube_graph:                  Functions and Variables for graphs.
                                                             (line  334)
* truncated_dodecahedron_graph:          Functions and Variables for graphs.
                                                             (line  338)
* truncated_icosahedron_graph:           Functions and Variables for graphs.
                                                             (line  342)
* truncated_tetrahedron_graph:           Functions and Variables for graphs.
                                                             (line  346)
* tstep:                                 Visualization with VTK.
                                                             (line  104)
* ttyoff:                                Functions and Variables for Display.
                                                             (line  611)
* tube:                                  Functions and Variables for draw.
                                                             (line 3741)
* tutte_graph:                           Functions and Variables for graphs.
                                                             (line  350)
* ueivects:                              Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1271)
* ufg:                                   Functions and Variables for ctensor.
                                                             (line 1191)
* uforget:                               Functions and Variables for Units.
                                                             (line  115)
* ug:                                    Functions and Variables for ctensor.
                                                             (line 1226)
* ultraspherical:                        Functions and Variables for orthogonal polynomials.
                                                             (line  227)
* und:                                   Functions and Variables for Constants.
                                                             (line  115)
* Undefined:                             Functions and Variables for Constants.
                                                             (line  115)
* underlying_graph:                      Functions and Variables for graphs.
                                                             (line  354)
* undiff:                                Functions and Variables for itensor.
                                                             (line  682)
* unicode:                               Characters.         (line  217)
* unicode_to_utf8:                       Characters.         (line  264)
* union:                                 Functions and Variables for Sets.
                                                             (line 1247)
* unique:                                Functions and Variables for Lists.
                                                             (line  698)
* unit_step:                             Functions and Variables for orthogonal polynomials.
                                                             (line  219)
* unit_vectors:                          Functions and Variables for draw.
                                                             (line 1993)
* uniteigenvectors:                      Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1270)
* unitp:                                 Functions and Variables for ezunits.
                                                             (line  411)
* units:                                 Functions and Variables for ezunits.
                                                             (line  302)
* unitvector:                            Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1299)
* unknown:                               Functions and Variables for Predicates.
                                                             (line  183)
* unless:                                Functions and Variables for Program Flow.
                                                             (line  625)
* unorder:                               Functions and Variables for Expressions.
                                                             (line 1255)
* unsum:                                 Functions and Variables for Series.
                                                             (line  621)
* untellrat:                             Functions and Variables for Polynomials.
                                                             (line 1614)
* untimer:                               Functions and Variables for Debugging.
                                                             (line  105)
* untrace:                               Functions and Variables for Debugging.
                                                             (line  239)
* uppercasep:                            Characters.         (line  279)
* uric:                                  Functions and Variables for ctensor.
                                                             (line 1217)
* uricci:                                Functions and Variables for ctensor.
                                                             (line  221)
* uriem:                                 Functions and Variables for ctensor.
                                                             (line 1209)
* uriemann:                              Functions and Variables for ctensor.
                                                             (line  296)
* us_ascii_only:                         Characters.         (line  285)
* use_fast_arrays:                       Functions and Variables for Arrays.
                                                             (line  466)
* user_preamble:                         Functions and Variables for draw.
                                                             (line 2014)
* usersetunits:                          Functions and Variables for Units.
                                                             (line  216)
* utf8_to_unicode:                       Characters.         (line  305)
* uvect:                                 Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1300)
* values:                                Functions and Variables for Command Line.
                                                             (line  655)
* vandermonde_matrix:                    Functions and Variables for linearalgebra.
                                                             (line  631)
* var:                                   Functions and Variables for descriptive statistics.
                                                             (line   36)
* var1:                                  Functions and Variables for descriptive statistics.
                                                             (line   58)
* var_bernoulli:                         Functions and Variables for discrete distributions.
                                                             (line  284)
* var_beta:                              Functions and Variables for continuous distributions.
                                                             (line  927)
* var_binomial:                          Functions and Variables for discrete distributions.
                                                             (line  138)
* var_chi2:                              Functions and Variables for continuous distributions.
                                                             (line  352)
* var_continuous_uniform:                Functions and Variables for continuous distributions.
                                                             (line  988)
* var_discrete_uniform:                  Functions and Variables for discrete distributions.
                                                             (line  448)
* var_exp:                               Functions and Variables for continuous distributions.
                                                             (line  659)
* var_f:                                 Functions and Variables for continuous distributions.
                                                             (line  544)
* var_gamma:                             Functions and Variables for continuous distributions.
                                                             (line  854)
* var_general_finite_discrete:           Functions and Variables for discrete distributions.
                                                             (line   61)
* var_geometric:                         Functions and Variables for discrete distributions.
                                                             (line  388)
* var_gumbel:                            Functions and Variables for continuous distributions.
                                                             (line 1501)
* var_hypergeometric:                    Functions and Variables for discrete distributions.
                                                             (line  520)
* var_laplace:                           Functions and Variables for continuous distributions.
                                                             (line 1408)
* var_logistic:                          Functions and Variables for continuous distributions.
                                                             (line 1049)
* var_lognormal:                         Functions and Variables for continuous distributions.
                                                             (line  788)
* var_negative_binomial:                 Functions and Variables for discrete distributions.
                                                             (line  596)
* var_noncentral_chi2:                   Functions and Variables for continuous distributions.
                                                             (line  469)
* var_noncentral_student_t:              Functions and Variables for continuous distributions.
                                                             (line  232)
* var_normal:                            Functions and Variables for continuous distributions.
                                                             (line   50)
* var_pareto:                            Functions and Variables for continuous distributions.
                                                             (line 1107)
* var_poisson:                           Functions and Variables for discrete distributions.
                                                             (line  204)
* var_rayleigh:                          Functions and Variables for continuous distributions.
                                                             (line 1279)
* var_student_t:                         Functions and Variables for continuous distributions.
                                                             (line  121)
* var_weibull:                           Functions and Variables for continuous distributions.
                                                             (line 1165)
* vect_cross:                            Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1354)
* vector:                                Functions and Variables for draw.
                                                             (line 3767)
* vectorpotential:                       Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1309)
* vectorsimp:                            Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1316)
* verbify:                               Functions and Variables for Expressions.
                                                             (line 1291)
* verbose:                               Functions and Variables for Series.
                                                             (line  651)
* vers:                                  Package functs.     (line  166)
* vertex_color:                          Functions and Variables for graphs.
                                                             (line 1559)
* vertex_coloring:                       Functions and Variables for graphs.
                                                             (line 1591)
* vertex_connectivity:                   Functions and Variables for graphs.
                                                             (line 1140)
* vertex_degree:                         Functions and Variables for graphs.
                                                             (line 1146)
* vertex_distance:                       Functions and Variables for graphs.
                                                             (line 1150)
* vertex_eccentricity:                   Functions and Variables for graphs.
                                                             (line 1163)
* vertex_in_degree:                      Functions and Variables for graphs.
                                                             (line 1173)
* vertex_out_degree:                     Functions and Variables for graphs.
                                                             (line 1193)
* vertex_partition:                      Functions and Variables for graphs.
                                                             (line 1583)
* vertex_size:                           Functions and Variables for graphs.
                                                             (line 1555)
* vertex_type:                           Functions and Variables for graphs.
                                                             (line 1548)
* vertices:                              Functions and Variables for graphs.
                                                             (line 1206)
* vertices_to_cycle:                     Functions and Variables for graphs.
                                                             (line 1692)
* vertices_to_path:                      Functions and Variables for graphs.
                                                             (line 1687)
* view:                                  Functions and Variables for draw.
                                                             (line 2049)
* warnings:                              Functions and Variables for zeilberger.
                                                             (line  117)
* Wedge product:                         Functions and Variables for itensor.
                                                             (line 1405)
* weyl:                                  Functions and Variables for ctensor.
                                                             (line  312)
* wheel_graph:                           Functions and Variables for graphs.
                                                             (line  358)
* while:                                 Functions and Variables for Program Flow.
                                                             (line  624)
* width:                                 Visualization with VTK.
                                                             (line  111)
* wiener_index:                          Functions and Variables for graphs.
                                                             (line 1229)
* wigner_3j:                             Functions and Variables for clebsch_gordan.
                                                             (line   21)
* wigner_6j:                             Functions and Variables for clebsch_gordan.
                                                             (line   26)
* wigner_9j:                             Functions and Variables for clebsch_gordan.
                                                             (line   31)
* windowname:                            Visualization with VTK.
                                                             (line  118)
* windowtitle:                           Visualization with VTK.
                                                             (line  126)
* wired_surface:                         Functions and Variables for draw.
                                                             (line 2075)
* wireframe:                             Visualization with VTK.
                                                             (line  424)
* with_stdout:                           Functions and Variables for File Input and Output.
                                                             (line  462)
* write_binary_data:                     Functions and Variables for binary input and output.
                                                             (line   71)
* write_data:                            Functions and Variables for plain-text input and output.
                                                             (line  103)
* writebyte:                             Input and Output.   (line  319)
* writefile:                             Functions and Variables for File Input and Output.
                                                             (line  490)
* wronskian:                             Package functs.     (line   16)
* x:                                     Plotting Options.   (line  370)
* x_voxel:                               Functions and Variables for draw.
                                                             (line 2093)
* xaxis:                                 Functions and Variables for draw.
                                                             (line 2101)
* xaxis_color:                           Functions and Variables for draw.
                                                             (line 2119)
* xaxis_secondary:                       Functions and Variables for draw.
                                                             (line 2137)
* xaxis_type:                            Functions and Variables for draw.
                                                             (line 2164)
* xaxis_width:                           Functions and Variables for draw.
                                                             (line 2182)
* xlabel <1>:                            Plotting Options.   (line  379)
* xlabel:                                Functions and Variables for draw.
                                                             (line 2200)
* xlabel_secondary:                      Functions and Variables for draw.
                                                             (line 2219)
* xlength:                               Visualization with VTK.
                                                             (line  403)
* xrange:                                Functions and Variables for draw.
                                                             (line 2242)
* xrange_secondary:                      Functions and Variables for draw.
                                                             (line 2262)
* xreduce:                               Functions and Variables for Sets.
                                                             (line 1276)
* xthru:                                 Functions and Variables for Simplification.
                                                             (line  738)
* xtics <1>:                             Plotting Options.   (line  389)
* xtics:                                 Functions and Variables for draw.
                                                             (line 2277)
* xtics_axis:                            Functions and Variables for draw.
                                                             (line 2333)
* xtics_rotate:                          Functions and Variables for draw.
                                                             (line 2344)
* xtics_rotate_secondary:                Functions and Variables for draw.
                                                             (line 2354)
* xtics_secondary:                       Functions and Variables for draw.
                                                             (line 2364)
* xtics_secondary_axis:                  Functions and Variables for draw.
                                                             (line 2373)
* xu_grid:                               Functions and Variables for draw.
                                                             (line 2384)
* xy_file:                               Functions and Variables for draw.
                                                             (line 2403)
* xy_scale:                              Plotting Options.   (line  398)
* xyplane:                               Functions and Variables for draw.
                                                             (line 2414)
* y:                                     Plotting Options.   (line  404)
* y_voxel:                               Functions and Variables for draw.
                                                             (line 2431)
* yaxis:                                 Functions and Variables for draw.
                                                             (line 2439)
* yaxis_color:                           Functions and Variables for draw.
                                                             (line 2456)
* yaxis_secondary:                       Functions and Variables for draw.
                                                             (line 2474)
* yaxis_type:                            Functions and Variables for draw.
                                                             (line 2497)
* yaxis_width:                           Functions and Variables for draw.
                                                             (line 2515)
* ylabel <1>:                            Plotting Options.   (line  411)
* ylabel:                                Functions and Variables for draw.
                                                             (line 2533)
* ylabel_secondary:                      Functions and Variables for draw.
                                                             (line 2552)
* ylength:                               Visualization with VTK.
                                                             (line  410)
* yrange:                                Functions and Variables for draw.
                                                             (line 2579)
* yrange_secondary:                      Functions and Variables for draw.
                                                             (line 2600)
* ytics <1>:                             Functions and Variables for draw.
                                                             (line 2626)
* ytics:                                 Plotting Options.   (line  420)
* ytics_axis:                            Functions and Variables for draw.
                                                             (line 2635)
* ytics_rotate:                          Functions and Variables for draw.
                                                             (line 2646)
* ytics_rotate_secondary:                Functions and Variables for draw.
                                                             (line 2656)
* ytics_secondary:                       Functions and Variables for draw.
                                                             (line 2666)
* ytics_secondary_axis:                  Functions and Variables for draw.
                                                             (line 2675)
* yv_grid:                               Functions and Variables for draw.
                                                             (line 2686)
* yx_ratio:                              Plotting Options.   (line  429)
* z:                                     Plotting Options.   (line  434)
* z_voxel:                               Functions and Variables for draw.
                                                             (line 2706)
* zaxis:                                 Functions and Variables for draw.
                                                             (line 2714)
* zaxis_color:                           Functions and Variables for draw.
                                                             (line 2733)
* zaxis_type:                            Functions and Variables for draw.
                                                             (line 2753)
* zaxis_width:                           Functions and Variables for draw.
                                                             (line 2772)
* Zeilberger:                            Functions and Variables for zeilberger.
                                                             (line   73)
* zeroa:                                 Functions and Variables for Constants.
                                                             (line  126)
* zerob:                                 Functions and Variables for Constants.
                                                             (line  143)
* zerobern:                              Functions and Variables for Number Theory.
                                                             (line  534)
* zeroequiv:                             Functions and Variables for Predicates.
                                                             (line  188)
* zerofor:                               Functions and Variables for linearalgebra.
                                                             (line  638)
* zeromatrix:                            Functions and Variables for Matrices and Linear Algebra.
                                                             (line 1362)
* zeromatrixp:                           Functions and Variables for linearalgebra.
                                                             (line  651)
* zeta:                                  Functions and Variables for Number Theory.
                                                             (line  542)
* zeta%pi:                               Functions and Variables for Number Theory.
                                                             (line  575)
* zgeev:                                 Functions and Variables for lapack.
                                                             (line  412)
* zheev:                                 Functions and Variables for lapack.
                                                             (line  418)
* zlabel <1>:                            Plotting Options.   (line  439)
* zlabel:                                Functions and Variables for draw.
                                                             (line 2791)
* zlabel_rotate:                         Functions and Variables for draw.
                                                             (line 2810)
* zlange:                                Functions and Variables for lapack.
                                                             (line  280)
* zlength:                               Visualization with VTK.
                                                             (line  417)
* zmin:                                  Plotting Options.   (line  447)
* zn_add_table:                          Functions and Variables for Number Theory.
                                                             (line  595)
* zn_carmichael_lambda:                  Functions and Variables for Number Theory.
                                                             (line  676)
* zn_characteristic_factors:             Functions and Variables for Number Theory.
                                                             (line  601)
* zn_determinant:                        Functions and Variables for Number Theory.
                                                             (line  683)
* zn_factor_generators:                  Functions and Variables for Number Theory.
                                                             (line  711)
* zn_invert_by_lu:                       Functions and Variables for Number Theory.
                                                             (line  718)
* zn_log:                                Functions and Variables for Number Theory.
                                                             (line  746)
* zn_mult_table:                         Functions and Variables for Number Theory.
                                                             (line  804)
* zn_nth_root:                           Functions and Variables for Number Theory.
                                                             (line  911)
* zn_order:                              Functions and Variables for Number Theory.
                                                             (line 1019)
* zn_power_table:                        Functions and Variables for Number Theory.
                                                             (line 1070)
* zn_primroot:                           Functions and Variables for Number Theory.
                                                             (line 1160)
* zn_primroot_limit:                     Functions and Variables for Number Theory.
                                                             (line 1216)
* zn_primroot_p:                         Functions and Variables for Number Theory.
                                                             (line 1227)
* zn_primroot_pretest:                   Functions and Variables for Number Theory.
                                                             (line 1267)
* zn_primroot_verbose:                   Functions and Variables for Number Theory.
                                                             (line 1280)
* zrange:                                Functions and Variables for draw.
                                                             (line 2831)
* ztics:                                 Functions and Variables for draw.
                                                             (line 2853)
* ztics_axis:                            Functions and Variables for draw.
                                                             (line 2862)
* ztics_rotate:                          Functions and Variables for draw.
                                                             (line 2873)
* |:                                     Functions and Variables for itensor.
                                                             (line 1439)
* ~:                                     Functions and Variables for itensor.
                                                             (line 1405)


