The Gaudi Framework  v29r0 (ff2e7097)
! =============================================================================
! Package     : GaudiGSL
! Responsible : Vanya Belyaev Ivan.Belyaev@itep.ru
! Commit Id   : $Format:%H$
! =============================================================================

================================ Gaudi v28r3 =================================

! 2017-07-26 - Gerhard Raven (commit e6fc7ad5)

 - Merge branch 'allow-adl-lookup-of-toString' into 'master'

   allow ADL of `toString` in Property

   See merge request !372

! 2017-07-20 - Gerhard Raven (commit 6884e49a)

 - Merge branch 'modernize-gaudigsl' into 'master'

   Modernize GaudiGSL

   See merge request !335

================================ Gaudi v28r2 =================================


================================ Gaudi v28r1 =================================

! 2016-12-14 - Attila Krasznahorkay (commit a42ff2a)

 - CMake configuration changes to build Gaudi with optional externals missing

   In the last days I experimented a bit with teaching Gaudi how to build when
   only ROOT, Boost and TBB are available to it. This is the result. As far as I
   can tell the code builds in the same way as the current master branch when
   all possible externals are available. (All the ones available in a full ATLAS
   offline build at least.) And I'm also able to build the project in these
   modes:
     * On Ubuntu 16.04 with the system provided Boost and TBB versions, against
   a privately built ROOT 6 version.
     * On macOS Sierra against privately built Boost, ROOT and TBB versions.
   Both when building the project completely on its own, and when building it
   against an ATLAS externals project.
    Some notes:
     * The code uses C++14 expressions in quite a few places by now. So I raised
   the default C++ standard to C++14. This is the default in ATLAS builds since
   a while, I only saw this as an issue when building Gaudi "on its own" with a
   very minimal configuration command.
     * While the code advertises that it still has support for ROOT 5, it's not
   able to build against it since a wile. Since the updates I put in for TLS
   variables on macOS. (The macros used there are ROOT 6 only.) And this update
   makes things even worse. As the code now relies on not providing the
   definition of some classes to the dictionary generator in GaudiPython that
   are not available. (Because AIDA or XercesC is missing.) While ROOT 6 handles
   this with just a build warning, ROOT 5's genreflex treats this with an ERROR
   message. That I was unable to get rid of.
    So, extended testing is clearly necessary, the configuration code could
   definitely be fine tuned as I probably turned off the build of more source
   files than absolutely necessary, but I think we should move ahead with such a
   configuration organisation.
    See merge request !241

================================ Gaudi v28r0 =================================

! 2016-11-08 - Marco Clemencic (commit ec96c27)

 - cleaning up last minute glitches

   - fixed warnings from clang
   - fixed issues with ROOT 6.08
   - minor polishing
   - minor fixes to tests
   - fixed GAUDI-1221
    See merge request !230

! 2016-10-27 - Gerhard Raven, Marco Clemencic (commit b111898)

 - modernization of Property

   This is a major rewrite of the system of `Property` classes. Started as  the
   implementation of GAUDI-1214, it continued as a review of
   `IProperty` and `PropertyMgr`, to end up in a complete rewrite
   (and optimization) of `PropertyWithValue`.

   * Fixes GAUDI-1214
    - added missing `declareProperty` signature
    - added `PropertyHolder` (an updated `PropertyMgr`)
    - adapted all properties in Gaudi
   * improved use of `PropertyHolder`
    - use inheritance instead of composition
    - removed ~200 (duplicated) lines of code in GaudiKernel
   * optimization of Property (fixes GAUDI-1229)
    - use templates and automatic code generation to handle efficiently
      both value and reference properties
      - avoid creation of values on the heap (see GAUDI-1229)
      - removed the *owned* boolean flag
      - improved usability of properties (e.g. begin/end wrappers for
        C++11 loops, increment/decrement operators...)
      - deprecated use of C arrays as properties
    - merged features of `PropertyWithVerifier`, `SimpleProperty` and
      `SimplePropertyRef` into `PropertyWithValue`
    - deduplication of name and doc strings via

   [`boost::string_ref`](http://www.boost.org/doc/libs/1_61_0/libs/utility/doc/html/string_ref.html)

      and a static storage  (see GAUDI-1229)
   * Fixes GAUDI-1205
   * add deprecation warnings in service accessors of `Algorithm` (@graven)
   * renamed `Property` base class to `Gaudi::Details::PropertyBase` and
   `PropertyWithValue` to `Gaudi::Property`
    - added backward compatibility type aliases (but not compatible with
      forward declarations of `class Property`, which should be replaced
      by `#include "GaudiKernel/PropertyFwd.h"`)
   * added macro `GAUDI_PROPERTY_v2` to allow easy implementation of
    backward compatible changes in derived projects (e.g. when user code
    relied on `DoubleProperty` having a verifier)
   * Fixes GAUDI-1268
    The changes are as backward compatible as much as possible (except if you
   explicitly inherit from `SimpleProperty`, or you forward declared
   `class Property`, which now are typedefs), but must be validated in the
   experiment frameworks.
    See merge request !182

! 2016-10-24 - Attila Krasznahorkay (commit ac4dbc7)

 - Changes to build on MacOS X 10.11

   See merge request !200


! 2016-10-24 - Marco Clemencic (commit a8d6605)

 - hidden/fixed "missing override" warnings exposed after !192

   - warnings from external headers are hidden declaring the include directories
   as `-system`
   - warnings from a couple of new files have been fixed
   - warnings in `HistogramSvc` are hidden because unavoidable (see f83c3d8e)
   - warnings related to CLHEP-136 have been hidden with a special trick (see
   0a238135)
    See merge request !205

! 2016-10-12 - Marco Clemencic (commit b5e05a1)

 - improved handling of package version in CMake configuration

   use project version if a package version is not provided
    See GAUDI-1215.
    See merge request !175

! 2016-10-01 - Marco Clemencic (commit 99b1001)

 - enable missing override warnings (gcc >= 5.1)

   Fixes GAUDI-1241
    See merge request !192

! 2016-08-19 - Marco Clemencic (commit f3050c3)

 - Fix compile time warnings

   fixed/hidden all warnings in GCC builds
    See merge request !189

! 2016-07-25 - Marco Clemencic (commit e3d4b07)

 - remove CMT configuration and related files

   * removed CMT configuration files
   * adapted scripts not to use CMT
    Fixes GAUDI-1216 Fixes GAUDI-979
    See merge request !186

! 2016-06-15 - Marco Clemencic (commit 7ef9a38)

 - flag m_ws as transient in GaudiGSLMath dictionary

   Fixes GAUDI-1210
    See merge request !179

! 2016-05-18 - Sami Kama (commit 9eeef96)

 - allow build of Gaudi without LCG and fix ThreadPoolSvc

   Allow building of Gaudi with local externals.
    It also contains a fix to an issue introduced with merge request !160
   (GAUDI-1212).
    Fixes GAUDI-1211, GAUDI-1212.
    See merge request !166

=============================== GaudiGSL v9r2 ================================

! 2016-03-10 - commit 4a18175

 - removed uses of templates implements[1-4], extends[1-4] and
   extend_interfaces[1-4]

   Since merge request !22 they are unnecessary.
    See merge request !133

! 2016-02-11 - commit fcf9b05

 - Fix for failing test GaudiGSL.InterpTest (on latest GSL)

   This test confuses interpolation and extrapolation. These have
 historically
   been the same in GSL, but haven't been for a while now. If
 you want to
   extrapolate, you have to tell GSL to do so explicitly.
    The test is modified to solely do interpolation.
    See merge request !107

! 2016-02-11 - commit b0618f7

 - Improve CommonMessaging

   Implementation of GAUDI-1146: Improve CommonMessaging and use it in more
   places.

   See merge request !76

   Conflicts:
   GaudiExamples/tests/qmtest/refs/AlgTools2.ref
   GaudiExamples/tests/qmtest/refs/MultiInput/Read.ref
   GaudiExamples/tests/qmtest/refs/conditional_output/write.ref
   GaudiKernel/GaudiKernel/AlgTool.h
   GaudiKernel/GaudiKernel/Algorithm.h
   GaudiKernel/GaudiKernel/Service.h
   GaudiKernel/src/Lib/AlgTool.cpp
   GaudiKernel/src/Lib/Algorithm.cpp

=============================== GaudiGSL v9r1 ================================

! 2016-01-21 - commit 10300ee

 - Revert "remove unused GSL components"

   This reverts commit 4244357375685702d7d6322f9990bf539b6375a1.
 Fixes
   GAUDI-1167.
 See merge request !98
    Conflicts:

   GaudiExamples/src/GSLTools/EqSolverIAlg.h
   GaudiExamples/src/GSLTools/EqSolverPAlg.h
   GaudiExamples/src/GSLTools/FuncMinimumGenAlg.h
   GaudiExamples/src/GSLTools/FuncMinimumIAlg.h
   GaudiExamples/src/GSLTools/FuncMinimumPAlg.h
   GaudiGSL/GaudiGSL/GaudiGSL.h
   GaudiGSL/GaudiGSL/GslError.h
   GaudiGSL/GaudiGSL/GslErrorHandlers.h
   GaudiGSL/GaudiGSL/IFuncMinimum.h
   GaudiGSL/GaudiGSL/IGslErrorHandler.h
   GaudiGSL/GaudiGSL/IGslSvc.h
   GaudiGSL/src/Components/EqSolver.cpp
   GaudiGSL/src/Components/EqSolver.h
   GaudiGSL/src/Components/FuncMinimum.cpp
   GaudiGSL/src/Components/FuncMinimum.h
   GaudiGSL/src/Components/GslErrorCount.cpp
   GaudiGSL/src/Components/GslErrorCount.h
   GaudiGSL/src/Components/GslErrorException.cpp
   GaudiGSL/src/Components/GslErrorException.h
   GaudiGSL/src/Components/GslErrorPrint.cpp
   GaudiGSL/src/Components/GslErrorPrint.h
   GaudiGSL/src/Components/GslSvc.cpp
   GaudiGSL/src/Components/GslSvc.h
   GaudiGSL/src/Lib/GaudiGSL.cpp
   GaudiGSL/src/Lib/GslErrorHandlers.cpp


! 2015-11-02 - commit 57f356c

 - Merge branch 'hive' into 'master'

   Fixes GAUDI-978.

   See merge request !65


! 2015-10-26 - commit de80db5

 - More modernization changes

   Fix (almost) all warnings from clang 3.7, and use clang-modernize to further
   modernize the code.

   Fixes GAUDI-1118.

   See merge request !49


! 2015-10-21 - commit fecec81

 - removed duplicated dictionary selections

   Fixes GAUDI-1115.

   See merge request !56

=============================== GaudiGSL v9r0 ================================

! 2015-09-25 - commit 35dd00c

 - Merge branch 'dev-smartif-use' into 'master'

   Provide (and use) C++11 smart pointer 'look and feel' for SmartIF

   The aim of this branch is to confine, for everything that inherits from
   IInterface, the calls to addRef(), release() and queryInterface() to the
   SmartIF implementation. Exceptions are a few places where interfaces
   (currently) return bare pointers (instead of SmartIF...) and where one thus
   has to addRef() explicitly to avoid returning a dangling pointer. This can be
   avoided by changing the relevant interface to return a SmartIF instead of a
   bare pointer.

   In addition, make SmartIF 'look and feel' like a smart pointer.

   - use explict bool conversion instead of .isValid()
   - add SmartIF::as<IFace>(), to return a SmartIF<IFace> to an alternate
      interface -- which (together with move) encourages the use of auto
   - add ISvcLocator::as<IFace>(), to return a SmartIF<IFace> to the current
   ISvcLocator.
   - add ServiceManager::service<IFace>() which return SmartIF<IFace> which
   encourages
      the use of auto

   And add a few other C++11 modernizations (eg. prefer STL over raw loop)

   Fixes GAUDI-1094

   See merge request !24


! 2015-09-11 - commit c062cbe

 - C++11 modernization changes

   Some trivial - and some not so trivial! - changes which take advantage of
   C++11...

   See merge request !7

=============================== GaudiGSL v8r4 ================================
! 2014-11-18 - Marco Clemencic
 - Cleaned up link statement in the CMake configuration.

=============================== GaudiGSL v8r3 ================================
! 2014-07-11 - Marco Clemencic
 - Removed references to the obsolete IFactory.

=============================== GaudiGSL v8r2 ================================
! 2014-05-26 - Marco Clemencic
 - Removed duplicated dictionary entries (already in RELAX).

! 2014-04-25 - Marco Clemencic
 - Removed duplicated dictionary entries (already in RELAX).

=============================== GaudiGSL v8r1 ================================
! 2014-03-18 - Ben Couturier
 - Fixed bug #104127: remove hwaf configuration.

=============================== GaudiGSL v8r0 ================================
! 2014-01-27 - Marco Clemencic
 - Fixed long standing issue with InterpTest test, actually due to a bug in the
   copy constructor of SplineBase.

! 2013-12-11 - Sebastien Binet
 - Added hwaf configuration files.

! 2013-07-19 - Marco Clemencic
 - Clean up in the use of the new PluginService.

! 2013-07-18 - Marco Clemencic
 - Removed use of obsolete AlgFactory.h, SvcFactory.h, ToolFactory.h,
   AudFactory.h and CnvFactory.h.

! 2013-07-17 - Marco Clemencic
 - Removed factories forward declarations.

=============================== GaudiGSL v7r12 ===============================
! 2012-11-06 - Marco Clemencic
 - Renamed the source file of a test.

=============================== GaudiGSL v7r11 ===============================
! 2012-06-08 - Marco Clemencic
 - Added CMake configuration files.

=============================== GaudiGSL v7r10 ===============================
! 2011-03-23 - Marco Clemencic
 - Fixed VC9 warnings.
   - Replaced C-style string manipulation and formatting with C++ (and Boost)
     implementations.
   - Disabled some warnings.

! 2011-02-28 - Marco Clemencic
 - Excluded few classes that are causing troubles on Windows.
   (see ROOT bug #78837)

=============================== GaudiGSL v7r9 ================================
! 2011-02-13 - Marco Clemencic
 - Exclude few classes from the dictionary because they are typedefs to
   vector<double> and cause problems (duplicated dictionaries warnings).

! 2011-02-08 - Charles Leggett
 - Fixed bug #77948: GaudiGSL/requirements calls for lcg_dictionary
   replace lcg_dictionary pattern with reflex_dictionary

=============================== GaudiGSL v7r8 ================================
! 2011-01-17 - Brett Viren, Marco Clemencic
 - Fixed bug #75996: Support for CLHEP 2.0
   Added a "using namespace CLHEP".

! 2011-01-11 - Marco Clemencic
 - Fixed some ICC remarks.

! 2010-11-25 - Marco Clemencic
 - Fixed Coverity detected defect
   http://lhcb-coverity.cern.ch:8080/sourcebrowser.htm?projectId=10001#mergedDefectId=10027

=============================== GaudiGSL v7r7 ================================
! 2010-08-24 - Marco Clemencic
 - Fixed a linkage problem with ICC.

============================== GaudiGSL v7r6 =================================
! 2010-04-23 - Marco Clemencic
 - Minor fix to compile with gcc 4.5.0

! 2010-04-20 - Marco Clemencic
 - Removed ICC warnings and remarks.

=============================== GaudiGSL v7r5 ================================
! 2010-01-29 - Marco Clemencic
 - Fixed icc remark #1599: declaration hides variable

! 2010-01-28 - Marco Clemencic
 - Fixed icc remark #424: extra ";" ignored
 - Fixed icc remark #111: statement is unreachable

=============================== GaudiGSL v7r4 ================================
! 2010-01-15 - Marco Clemencic
 - Fixed compilation on icc 11.
   - cmt/requirements:
     removed "--as-needed" and "--no-as-needed", they do not work when linking
     executables (only for icc).
   The test gaudiexamples.gsltools fails because of
     symbol lookup error: libgsl.so.0: undefined symbol: cblas_dnrm2
   probably we need some tuning of the link options.

================ GaudiGSL v7r3 ====================================
! 2009-07-30 - Marco Clemencic
 - Fixed some doxygen warnings.

! 2009-07-20 - Marco Clemencic
 - Added '-no_static' to the declaration of the libraries (implemented since CMT
   v1r20p20081118).

================ GaudiGSL v7r2 ====================================
! 2009-07-08 - Marco Clemencic
 - Removed the usage of extend_interfaces1.

================ GaudiGSL v7r1 ====================================
! 2009-06-15 - Hubert Degaudenzi
 - use the new LCG tag convention.

! 2009-06-10 - Marco Clemencic
 - Removed _dll.cpp and _load.cpp files (not needed anymore).

================ GaudiGSL v7r0 ====================================
! 2009-04-07 - Marco Clemencic
 - Moved back the namespace MSG to the global namespace.

! 2009-04-06 - Marco Clemencic
 - Renamed back the namespace Msg to MSG and moved it into the namespace Gaudi.

! 2009-03-13 - Marco Clemencic
 - Task #9061: Introduction of component managers
   - Adapted to use the changes in the ISvcLocator, ISvcManager and IAlgManager
     interfaces.

! 2009-02-19 - Marco Clemencic
 - Patch #2790: Rename the namespace MSG to Msg

! 2009-01-30 - Marco Clemencic
 - Replaced all the occurrences of endreq with endmsg.

! 2009-01-29 - Marco Clemencic
 - Symbol visibility
   - Decorated all the classes and functions that needs to be exported (see
     GaudiKernel release.notes).

! 2009-01-22 - Marco Clemencic
 - Adapted to the new IInterface functionalities (see GaudiKernel release.notes)
 - Removed the IID_* constants.

================ GaudiGSL v6r10 ====================================
! 2008-10-27 - Marco Clemencic
 - Fixed warnings reported by gcc 4.3:
   - type qualifiers ignored on function return type

================ GaudiGSL v6r9 ====================================
! 2008-02-25 - Hubert Degaudenzi & Marco Clemencic
 - Fixed a linkage problem with libgsl.so and libgslcblas.so.

================ GaudiGSL v6r8 ====================================
! 2007-11-20 - Marco Clemencic
 - Fixed few compilation warnings on win32.

================ GaudiGSL v6r7 ====================================
! 2007-05-24 - Hubert Degaudenzi
 - Comments clean-up.

================ GaudiGSL v6r6 =======================================
================ GaudiGSL v6r5 =======================================
! 2006-11-30 - Pere Mato
  Adpated package to the new PluginSvc
  - Removed protected from constructor/destructors and fiendship of
    Factory class

================ GaudiGSL v6r4 =======================================
! 2006-01-10 - Hubert Degaudenzi
 - use of the DECLARE_XXX_FACTORY macros. replacement of the
   corresponding code.

================ GaudiGSL v6r3 =======================================
! 2005-11-25 - Pere Mato
 - requirements: adapted to use generate reflex dictionary

================ GaudiGSL v6r2 =======================================
! 200501-10 - Pere Mato
 - requirements: adapted to use CLHEP 1.9.x.x (with namespace CLHEP) and GSL 1.5

================ GaudiGSL v6r1 =======================================
! 2004-07-06 - Pere Mato
 - requirements: adapted to use new LCGCMT interface packages

================ GaudiGSL v6r0 =======================================
! 2004-03-06 - Vanya BELYAEV

New files:
============
  GaudiMath/Adapters.h
  GaudiMath/FunAdapters.h
  GaudiMath/GSLFunAdapters.h
  GaudiMath/Interpolation.h
  GaudiMath/Splines.h

  src/Lib/Adapters.cpp
  src/Lib/GSLFunAdapters.cpp
  src/Lib/Splines.cpp
  src/Tests/GSLAdaptersTest.cpp
  src/Tests/Interp.cpp

	dict/GaudiGSLMath.h
	dict/GaudiGSLMath.xml

Modified files:
===============
  GaudiMath/GaudiMath.h
  cmt/requirements
  doc/release.notes
  src/Components/EqSolver.cpp
  src/Components/FuncMinimum.cpp
  src/Lib/Adapter.cpp
  src/Tests/2DoubleFuncTest.cpp
  src/Tests/3DoubleFuncTest.cpp
  src/Tests/PFuncTest.cpp

removed file :
==============
   GaudiMath/Adapter.h

                   ===============================================
                            Modifcations in details:
                   ===============================================

 - src/Component/FuncMininum.cpp
       fix a compiler warning
 - src/Component/EqSolver.cpp
       fix a compiler warning

 - GaudiMath/GSLFunAdapters.h
    - new file with adapters to "typical" GSL fucntions

 - improvemend with different adapters

 - GaudiMath/GaudiMath.h
       add NumericalDefiniteIntegral into namespace GaudiMath with name
       DefIntegral
  - GaudiMath/Interpolation.h
       new file with definition of Interpolation types
       available interpolation types:
          - Linear
          - Polynomial
          - Cubic spline with natural  boundary conditions
          - Cubic spline with periodic boudary conditions
          - Akima spline with natural  boundary conditions
          - Akima spline with periodic boundary conditions
  - GaudiMath/Splines.h
      new classes
     SplineBase - more or less effective (but not inlined)
                  definition of spline function
     GSLSpline       - "GenericFunction" (Genfun) which performs spline
                       interpolation using SplineBase object
     GSLSplineDeriv  - "GenericFunction" (Genfun) which corresponds to
                       the first  derivative of spline function
     GSLSplineDeriv2 - "GenericFunction" (Genfun) which corresponds to
                       the second derivative of spline function
     GSLSplineInteg  - "GenericFunction" (Genfun) which corresponds to
                       the integral of spline function

    All these objects are imported into gamespace GaudiMath under the names
     GaudiMath::SimpleSpline
     GaudiMath::Spline
     GaudiMath::SplineDeriv
     GaudiMath::SplineDeriv2
     GaudiMath::SplineInteg

    All objects have few constructors:
     1)  "a'la Matt"
     FUN ( const std::vector<double>&           x    ,
           const std::vector<double>&           y    ,
           const GaudiMath::Interpolation::Type type ) ;
     2) constructor from pairs (x,y(x))
     FUN ( const std::vector<std::pair<double,double> >& data ,
           const GaudiMath::Interpolation::Type          type ) ;
     3) templated constructor in STL spirit
        from 2 sequences
     template <class DATAX,class DATAY>
     FUN ( DATAX  xbegin                            ,
           DATAX  xend                              ,
           DATAY  ybegin                            ,
           const GaudMath::Interpolation::Type type ) ;
     3) templated constructor in STL spirit
        from sequence of (x,y(x)) pairs
      template <class DATA>
     FUN ( DATA  begin                            ,
           DATA  end                              ,
           const GaudMath::Interpolation::Type type ) ;

        This constructor is well suited to be used in conjuncion
        with class TabulatedPropery:

        // tabulated property
        const TabulatedProperty* prop = ... ;
        // create the interpolation function
        const GaudiMath::Function& fun =
               GaudiMath::Spline( prop->table().begin() ,
                                  prop->table().end  () ,
                                  GaudiMath::Interpolation::Akima ) ;
         // use the constructed interpolation function
         double value = fun( -1.0 ) ;

================ GaudiGSL v5r1 =======================================
! 2004-02-03 - Vanya Belyaev
 - serious bug in GaudiGSL code for numerical integration

================ GaudiGSL v5r0 =======================================
! 2003-08-18 - Kirill Miklyaev
 - new solving nonlinear system with n equations in n unknowns is added
  GaudiGSL/IEqSolver.h                   the abstract interface
  src/Components/EqSolver.h, .cpp        the concrete implementation of solving tool
 - class Adapter is added
  GaudiMath/Adapter.h                    convert function types "point to function"
  src/Lib/Adapter.cpp                    and "IFunction" to "GenFunction"

================ GaudiGSL v4r0 =======================================
! 2003-05-12 - Kirill Miklyaev
 - minimization tool is changed
 - the abstract interface is updated
 - error handling is added
	GaudiGSL/IFuncMinimum.h     the abstact interface is changed
	src/FuncMinimum.h, .cpp     the concrete implementation
                              of minimization tool are changed
 ================ GaudiGSL v3r0 =======================================
! 2003-01-22 - Kirill Miklyaev
 - minimization tool is changed
 - all static variables and static methods are removed
  scr/FuncMinimum.h,.cpp      the concrete implementation
                              of minimization tool are changed

================ GaudiGSL v2r0 =======================================
! 2002-09-27 - Ivan Belyaev & Kirill Miklyaev
 - new minimization tool is added
  GaudiGSL/IFuncMinimum.h     the abstract interface
  src/FuncMinimum.h,.cpp      the concrete implementation
                              of minimization tool

  Example of the configuration of minimization tool:

// choice of underlying minimization algorithms:
//  (1) conjugate_fr  ( default )
//  (2) conjugate_pr
//  (3) vector_bfgs
//  (4) steepest_descendent
ToolSvc.FuncMinimum.Algorithm = "conjugate_fr" ;  /// default value

/// declare maximum of iteration
ToolSvc.FuncMinimum.Iteration = 1000           ; // default value is 200

/// declare the absolute tolerance for the Euclidean norm of the gradient
ToolSvc.FuncMinimum.Gradient  = 1e-10          ; // defualt value

!==========================GaudiGSL v1r0=========================================
! 2001-05-12  Vanya Belyaev
  New package

    The Gsl Service is the service which perform intelligent error handling
    for GSL (GNU Scientific Library)

  It provides a choice between different "Error Handling Policies"

  Current implementation supports the
  several "error handling policies", which are driven by
  "ErrorPolicy" property of class GslSvc:

  - "GSL":
    The simplest error policy, no action, the error
    hadling defined in GSL does not redefined

  - "Off":
    The GSL empty error handling is used, what means the
    ignorance of all GSL errors. Program continues after
    any error, so the return values from any library routines
    must be checked. This policy is recommended by GSL team for
    production programs

  - "Abort"
    The default GSL error policy, causes abort on error.

  - "Ignore"
    The policy which is essentialy the same as "Off",
    but performed with local error handler GslErrorHandlers::ignoreTheError

  - "Exception"
    This policy throws the GaudiException with tag *GSL Error" to be thrown
    at the error. The policy implemented by lcal error handler
    GslErrorHandlers::throwException

  - "Handle"
    The policy which uses the call back from local error handler
    GslErrorHandlers::handleTheError to IGslSvc::handle method.
    Current implementation of this method is sequential execution of
    declared handlers, defined throught the property "Handlers" of
    class GslSvc in a format:
    GslSvc.Handlers = { "H1Type/H1Name" , "H2Type/H2Name" , "H3ype/3Name" };
    The "handlers" must implement IGslErrorHandler interface
    The three concrete simple handlers are provided in GaudiGSL package:
    class GslErorCount, GslErrorPrint and GslErrorException.

  The  typical job-configurations:

  //
  // This configuration perform the "on-flight" printout of all GSL
  // errors and the printout of overall statistics of all errors
  // at the end of the job
  ApplicationMgr.DLLs         += { "GaudiGSL" };
  ApplicationMgr.ExtSvc       += { "GslSvc"   };
  ApplicationMgr.ErrorPolicy   = "Handle" ;
  ApplicationMgr.Handlers     += { "GslErrorPrint/GslPrint" };
  ApplicationMgr.Handlers     += { "GslErrorCount/GslCount" };

  //
  // This configuration is good for massive production.
  // Program continues after any error, so the return values from
  // any library routines must be checked. This policy is recommended
  // by GSL team for production programs
  ApplicationMgr.DLLs         += { "GaudiGSL" };
  ApplicationMgr.ExtSvc       += { "GslSvc"   };
  ApplicationMgr.ErrorPolicy   = "Off" ;

  //
  // This configuration corresponds to default GSL behaviour and
  // functional it is equivalent to the absence of special error
  // handling at all. Program just makes abortion on errors.
  ApplicationMgr.DLLs         += { "GaudiGSL" };
  ApplicationMgr.ExtSvc       += { "GslSvc"   };
  ApplicationMgr.ErrorPolicy   = "Abort" ;

  //
  // Under this configuration on the error the handler throws
  // GaudiException with tag = *GSL Error*
  ApplicationMgr.DLLs         += { "GaudiGSL" };
  ApplicationMgr.ExtSvc       += { "GslSvc"   };
  ApplicationMgr.ErrorPolicy   = "Exception" ;

  //
  // This configuration is similar to the previous one
  // but GaudiException is throwed by specialized handler, and
  // thus it could be combined in a sequence with other
  // specialized handlers
  ApplicationMgr.DLLs         += { "GaudiGSL" };
  ApplicationMgr.ExtSvc       += { "GslSvc"   };
  ApplicationMgr.ErrorPolicy   = "Handle" ;

  //
  // "Everything altogether" configuration.
  // It prints the error message, accumulate statistics of errors
  // and throws the exception
  ApplicationMgr.DLLs         += { "GaudiGSL" };
  ApplicationMgr.ExtSvc       += { "GslSvc"   };
  ApplicationMgr.ErrorPolicy   = "Handle" ;
  ApplicationMgr.Handlers     += { "GslErrorPrint/GslPrint" };
  ApplicationMgr.Handlers     += { "GslErrorCount/GslCount" };
  ApplicationMgr.Handlers     += { "GslErrorException/GslException" };


   The handling of some error codes could be suppressed explicitely, e.g.:

   GslSvc.IgnoreCodes = {  0 , 15 , -1 , 158 } ;

   (this option is valid only for "Handle" mode)


  In addition one could forbid the exception throws for certain erro codes:

   GslException.IgnoreCodes = { 0 , -1 };