Configuration parameters Configuration parameters affect how the calculator performs certain operations, and affects all future calculations. These parameters affect the accuracy of calculations, the displayed format of results, and which algorithms are used for calculations. The parameters are read or set using the "config" built-in function. The following parameters can be specified: "trace" turns tracing on or off (for debugging). "display" sets number of digits in prints. "epsilon" sets error value for transcendentals. "maxprint" sets maximum number of elements printed. "mode" sets printout mode. "mul2" sets size for alternative multiply. "sq2" sets size for alternative squaring. "pow2" sets size for alternate powering. "redc2" sets size for alternate REDC. The use of the trace flag is for debugging, and its meaning may change in the future. A value of 1 causes the calculator to print its internal opcodes as it executes functions. A value of zero disables tracing again. Display specifies how many digits after the decimal point should be printed when printing real or exponential numbers. The initial display value is 20. This parameter does not affect the accuracy of a calculation, since it only has meaning when printing results. Epsilon specifies the required precision of calculations by setting the maximum allowed error for transcendental functions. The error is an absolute error value for many functions, but for some functions it is a relative error. The initial value is 1e-20. Functions which require an epsilon value accept an optional argument which overrides this default epsilon value for that single call. The built-in function "epsilon" also can be used to read or set this value, and is provided for ease of use. Mode specifies how numbers should be printed. Mode is a string value indicating the printout method. The initial mode is "real". Possible modes are: "frac" decimal fractions "int" decimal integer "real" decimal floating point "exp" decimal exponential "hex" hex fractions "oct" octal fractions "bin" binary fractions Maxprint specifies the maximum number of elements to be displayed when a matrix or list is printed. The initial value is 16 elements. Mul2 and sq2 specify the sizes of numbers at which calc switches from its first to its second algorithm for multiplying and squaring. The first algorithm is the usual method of cross multiplying, which runs in a time of O(N^2). The second method is a recursive and complicated method which runs in a time of O(N^1.585). The argument for these parameters is the number of binary words at which the second algorithm begins to be used. The minimum value is 2, and the maximum value is very large. If 2 is used, then the recursive algorithm is used all the way down to single digits, which becomes slow since the recursion overhead is high. If a number such as 1000000 is used, then the recursive algorithm is never used, causing calculations for large numbers to slow down. For a typical example on a 386, the two algorithms are about equal in speed for a value of 20, which is about 100 decimal digits. A value of zero resets the parameter back to its default value. Usually there is no need to change these parameters. Pow2 specifies the sizes of numbers at which calc switches from its first to its second algorithm for calculating powers modulo another number. The first algorithm for calculating modular powers is by repeated squaring and multiplying and dividing by the modulus. The second method uses the REDC algorithm given by Peter Montgomery which avoids divisions. The argument for pow2 is the size of the modulus at which the second algorithm begins to be used. Redc2 specifies the sizes of numbers at which calc switches from its first to its second algorithm when using the REDC algorithm. The first algorithm performs a multiply and a modular reduction together in one loop which runs in O(N^2). The second algorithm does the REDC calculation using three multiplies, and runs in O(N^1.585). The argument for redc2 is the size of the modulus at which the second algorithm begins to be used. Examples of setting some parameters are: config("mode", "exp"); exponential output config("display", 50); 50 digits of output epsilon(epsilon() / 8); 3 bits more accuracy