http://www.cern.ch/CommonImages/Banners/CERNHeadE.gif
The LHC Computing Grid Project - LCG
MINUIT - Release
CVS

14 June 2004: NEW HEAD: Minuit-1_4_0_pre2c!

Release

MINUIT is regularly released with a new release of SEAL. The development version of MINUIT is based on the SCRAM build system. Thanks to Paul Kunz from SLAC, who provided valuable scripts for a SCRAM independent MINUIT, it is also possible to create a tar.gz of MINUIT. How to run the code using SCRAM or autoconf, is described below.
!!! IF YOU FIND ANY PROBLEMS IN FOLLOWING THE STEPS DESCRIBED BELOW, PLEASE DO NOT HESITATE TO SEND AN EMAIL TO Fred James OR Matthias Winkler !!!
MINUIT (the current version is 1_3_2) is developed and tested using standard CERN Linux computing facilities setup (lxplus.cern.ch: RedHat Linux 7.3, gcc-3.2). There should not be problems using more recent versions of Linux and gcc.
Minuit-HEAD contains new functionalities which will become part of the next release of SEAL. However, although this version is closer to the current developments, the new features are less tested than they should be for a real release. If such problems are encountered, it will be very helpful when communicating them to the developers.
up

SCRAM

Please refer to the SCRAM section of the Tutorial in order to check out the code and compile it with SCRAM.
up

autoconf/make

For each release of MINUIT there will be a tar.gz available which contains the code and can be run using the autoconf tools. Please refer to the autoconf/make section of the Tutorial in order to check out the code and compile it with make.
up

Minuit-0.3.0

The main purpose of this release was the creation of a fully controlled simulation environment for systematic testing studies and to make Minuit independent of external packages. For the minimization, one has to directly use the engines.
up

Minuit-1.0.0

For Minuit-1.0.0 new features have been added:
  • API class for the user parameters: MnUserParameters. It is now possible to fix and release parameters. Limited parameters are not yet supported.
  • API classes for Migrad and Minos: MnMigrad, MnMinos.
  • The interface of FCNBase was reduced to the essential minimum.
  • Two examples added in Minuit/tests/MnSim to demonstrate the usage of the new functionality: MigradGaussSim.cpp, MinosGaussSim.cpp
up

Minuit-1.1.0

New in this version is the Minuit Tutorial with one tutorial function ("Quadratic function in four parameters") implemented (Minuit/tests/MnTutorial). This function was used to verify the number of function calls and the correct calculation of the Expected Distance to Minimum (EDM) value. Other new features are:
  • configurable EDM and maximum number of iteration cycles as stopping criteria (see example in Minuit/tests/MnTutorial)
  • tutorial function CppUnit-fied and Oval-ized to test correct outcome of covariance matrix and the number of function calls
  • added "light-weight" constructor to MnMigrad to make construction possible from two std::vector for parameters and initial errors
up

Minuit-1.2.0

The current version 1.2.0 contains the additional functionalities:
  • Limited parameters are now available (see example in Minuit/tests/MnSim/MigradGaussSim.C).
  • Extend the FunctionMinimum interface: returns MnUserParameters (transform the internal state representation into the user-defined external parameters).
  • Define "ostream& operator<<" for MnUserParameters for easy print-out (printed by default when the FunctionMinimum is printed).
  • accessing the result of the minimization (parameters, errors) should be now more obvious and easier (than going via the internal state and accessing the state-vector and the covariance matrix).
up

Minuit-1.3.0

The following changes have been done w.r. to 1.2.0:
  • improved line search and small change in the update of the covariance matrix
  • added Minuit/tests/MnTutorial with two additional tests to the distribution
  • modified VariableMetricMinimizer interface to allow for user gradient and initial covariance matrix (not possible via MnMigrad yet, however); see example in Minuit/tests/MnTutorial/Quad1FMain.cpp
  • Paul Kunz added Doxygen support in Minuit/doc
  • minor redesign and clean-up:
    • remove unused files and unnecessary base classes
    • change in class names: VM* becomes VariableMetric*, e.g. VMFunctionMinimizer is now VariableMetricMinimizer
    • changed name of FunctionDerivative to GradientCalculator
    • MnMigrad now keeps the minimum as data member, user gets a const ref to it
up

Minuit-1.3.2

changes:
  • interface change in MnLineSearch (return ParabolaPoint)
  • fix bug in MnLineSearch (update of points)
  • improve (add LineSearch) and fix bug (g2 calculation) in MnSeedGenerator
  • return data members by const ref instead of by value when reasonable
  • fix bug in matrix inversion
  • reduce output
  • fix bug when FunctionMinimum is invalid

Minuit-HEAD (Minuit-1_4_0_pre2c)

Preparation for SEAL_1.4.0 release:
  • general clean-up of interfaces, user interfaces (API) included:
    • user parameter numbers (index) are determined by Minuit, user may ask via parameter name (name <-> index) for the index
    • user interaction either via name or index or parameter
    • adding MnUserParameterState class, containing the MnUserParameters and MnUserCovariance; full user-interaction with parameters; serves as input to minimizer (Migrad etc) and as output of minimization result in user-representable format;
    • parameter interaction also via MnMigrad enabled, in case of subsequent minimization steps
    • low-level (minimal required) interface fully supported
    • adding global correlation coefficients
    • adding MnStrategy for low, medium and high quality minimization
  • add user-callable API to MnHesse
  • MnContours prototype (see example in tests/MnSim/ContoursGaussSim)
  • a new allocator (StackAllocator) which speeds up the whole thing by at least 3x. Unfortunately it is probable that the whole thing is no longer thread-save, so I will need to take it out for the release. But work continues....
added 31 March 2004:
  • added MnStrategy for minimization quality level (0, 1, 2 default values for low, medium and high quality), with the option to adjust individual settings such as iteration cycles etc.
  • added internal reference counting (transparent for the user)
  • coherent treatment of input: parameters (always necessary), covariance (optional), analytical gradient (optional) or combinations of these three
  • making it thread save by putting standard malloc/free instead of faster StackAllocator; stack allocation is optional, one needs to uncomment one line in StackAllocator.h; difference in performance is close to zero for heavy computational functions (1.05 for DsDq example) and maximum of 1.75 for simplest possible function (y=x2) (heap-alloc/stack-alloc);
  • fix Minos (Contours) in case of 1 (2) free parameters function
21 April 2004 (Minuit-1_4_0_pre1):
  • added prototypes for Simplex and Scan
  • replace remaining BLAS/LAPACK Fortran routines with Minuit-own cpp file
14 May 2004 (Minuit-1_4_0_pre2a):
  • fix bugs in MnHesse, AB*
  • add single sided limits (by Lorenzo)
  • improve Minos, Contours, FunctionCross
14 June 2004 (Minuit-1_4_0_pre2c):
  • important change in the minimizer interface: user specifies tolerance on function value (default 0.1) now instead of precision of EDM value (was default 1.e-5) in minimizers; required EDM value is determined by Minuit
  • finalize Simplex + Scan, add MnMinimize minimizer
  • refactoring of design (common transparent functionality of Migrad/Simplex/Scan/Minimize)
  • add ostream<< for MinosErrors and ContoursErrors
  • put all ostream<< operator definitions and declarations in MnPrint.h and remove the others
  • in tests/MnSim: create DemoGaussSim for demonstration and remove Simple-, Migrad-, Minos- and ContoursGaussSim
  • rename mnplot and mneigen to mntplot and mnteigen
  • GenTimer+PentiumTimer moved to MnTimer
Next plans: add debugging and verbosity; look into Fumili and eventually linear constraints;
up
Minuit-0.3.0.tar.gz
Minuit-1.0.0.tar.gz
Minuit-1.0.0p1.tar.gz
Minuit-1.0.0p2.tar.gz
Minuit-1.1.0.tar.gz
Minuit-1.2.0.tar.gz
Minuit-1.3.0.tar.gz
Minuit-1.3.2.tar.gz
Minuit-1_4_0_pre1.tar.gz
Minuit-1_4_0_pre2a.tar.gz
Minuit-1_4_0_pre2c.tar.gz