It is recommended for most applications to use 64-bit floating point
precision, or the nearest equivalent on any particular machine.
This means that the standard Minuit installed on Vax, IBM
and Unix workstations will normally be the DOUBLE PRECISION
version,
while on CDC and Cray it will be SINGLE PRECISION
.
The arguments of the
user's FCN must of course correspond in type to the declarations
compiled into the Minuit version being used.
The same is true of course for all floating-point arguments
to any Minuit routines called directly by the user in
Fortran-callable mode.
Furthermore, Minuit detects at execution time the precision
with which it was compiled, and expects that the calculations inside
FCN will be performed approximately to the same accuracy.
(This accuracy is called EPSMAC
and is printed in the header produced
by Minuit when it begins execution.)
If the user fools Minuit by using a double precision version but
making internal FCN or FUTIL
computations in single precision, Minuit will
interpret roundoff noise as significant and will usually either fail
to find a minimum, or give incorrect values for the parameter errors.
It is therefore recommended, when using
double precision (REAL*8
) Minuit, to make sure all computations
in FCN and FUTIL (if used), as well as all subroutines called
by FCN and FUTIL, are REAL*8
,
by including the appropriate IMPLICIT
declarations in FCN
and all user subroutines called by FCN.
If for some reason the computations cannot be done to a precision
comparable with that expected by Minuit, the user must inform Minuit
of this situation with the [SET EPSmachine]SET EPS command.
Although 64-bit precision is recommended in general, the new Minuit is so careful to use all available precision that in many cases, 32 bits will in fact be enough. It is therefore possible now to envisage in some situations (for example on microcomputers or when memory is severely limited, or if 64-bit arithmetic is very slow) the use of Minuit with 32- or 36-bit precision. With reduced precision, the user may find that certain features sensitive to first and second differences (HESse, MINOs, MNContour) do not work properly, in which case the calculations must be performed in higher precision.