Data Type
IntegerDefault Value
26Description
This parameter determines when FMS prints a warning message about pivots close to zero during the factoring process.
During matrix factoring the diagonal terms (pivots) must be inverted. If their value is zero or close to zero, their inverse may be an unreasonable large number (or infinity). This parameter controls when FMS warns about this condition with a printed warning message.
The actual calculation performed by FMS to factor the diagonals is given by
D = A - S P = 1/Dwhere
- A is the original matrix diagonal,
- S is the dot product of the ith row of [AL] and the ith column of [AU] and
- P is the pivot reciprocal for the diagonal that is being computed.
If the value of S is close to A, the calculation of P will be in error. To see how this error occurs it is useful to examine this calculation from a machine's point of view. The values of D and S are stored as floating point numbers. For most machines today, that means 64 bits in IEEE format. Within these 64 bits, 11 are used to represent the exponent and 53 for the mantissa. In general, this provides about 15 decimal digits of accuracy.
When two numbers are close in value, their exponents and leading mantissa bits will be identical. If these numbers are subtracted, the result will have the same exponent but the leading mantissa bits which were identical will be set to zero. The machine then normalize the result by shifting the remaining nonzero mantissa bits to the left, inserting zero's in their place and appropriately adjusting the exponent. As you can expect, the number of zero's inserted into the mantissa during this process provides a measure of how much precision is lost.
FMS monitors this process and provides a way for you to be notified if the lost precision exceeds an unacceptable level. The default value of NBITSP=26 will provide a warning for each diagonal pivot that has lost 26 bits of precision (had 26 zero's inserted during the subtraction operation). If you get too many warning messages you could try setting the value of NBITSP to a larger number. If you want to monitor the process more closely, decrease the value of NBITSP.
CAUTION: If you decrease NBITSP to a value close to zero, you may get a warning message for each diagonal.