| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
FuncMinimum Class Reference

The simplest concrete implementation of IFuncMinimum interface. More...

`#include <FuncMinimum.h>`

Inheritance diagram for FuncMinimum:
[legend]
Collaboration diagram for FuncMinimum:
[legend]

## Classes
class | FuncMinimumMisc

## Public Types
typedef std::vector< const GenFunc * > | Gradient
Public Types inherited from extends1< GaudiTool, IFuncMinimum >
typedef extends1 | base_class
| Typedef to this class.
typedef extend_interfaces1 < IFuncMinimum > | extend_interfaces_base
| Typedef to the base of this class.
typedef extend_interfaces_base::ext_iids | interfaces
| MPL set of all the implemented interfaces.
Public Types inherited from extend_interfaces1< IFuncMinimum >
typedef IFuncMinimum::iid::iids::type | ext_iids
| MPL set of interfaces extended by this one.
Public Types inherited from IFuncMinimum
typedef Genfun::AbsFunction | GenFunc
| Function which we minimize (.
typedef Genfun::Argument | Arg
| Argument of function "GenFunc" (.
typedef CLHEP::HepSymMatrix | Covariance
| Covariance matrix (matrix of error) (.

## Public Member Functions
virtual StatusCode | minimum (const GenFunc &func, Arg &arg) const
| Find minimum of the function "GenFunc".
virtual StatusCode | minimum (const GenFunc &func, Arg &arg, Covariance &covar) const
| Find minimum of the function "GenFunc".
virtual StatusCode | initialize ()
| Overriding initialize.
virtual StatusCode | finalize ()
| standard finalization method
virtual | ~FuncMinimum ()
| Destructor.
| FuncMinimum (const std::string &type, const std::string &name, const IInterface *parent)
| Standard constructor.
Public Member Functions inherited from extends1< GaudiTool, IFuncMinimum >
| extends1 (A1 a1, A2 a2, A3 a3)
| Templated constructor with 3 arguments.
| extends1 (A1 a1, A2 a2)
| Templated constructor with 2 arguments.
| extends1 (A1 a1)
| Templated constructor with 1 argument.
| extends1 ()
| Default constructor.
virtual void * | i_cast (const InterfaceID &tid) const
| Implementation of IInterface::i_cast.
virtual StatusCode | queryInterface (const InterfaceID &ti, void **pp)
| Implementation of IInterface::queryInterface.
virtual std::vector< std::string > | getInterfaceNames () const
| Implementation of IInterface::getInterfaceNames.
virtual | ~extends1 ()
| Virtual destructor.
Public Member Functions inherited from GaudiTool
INTupleSvc * | ntupleSvc () const
| Access the standard N-Tuple.
INTupleSvc * | evtColSvc () const
| Access the standard event collection service.
IDataProviderSvc * | detSvc () const
| accessor to detector service
IDataProviderSvc * | evtSvc () const
| accessor to event service service
IIncidentSvc * | incSvc () const
| accessor to Incident Service
IChronoStatSvc * | chronoSvc () const
| accessor to Chrono & Stat Service
IHistogramSvc * | histoSvc () const
| acessor to the histogram service
IAlgContextSvc * | contextSvc () const
| acessor to the Algorithm Context Service
DataObject * | put (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
| Register a data object or container into Gaudi Event Transient Store.
DataObject * | put (DataObject *object, const std::string &address, const bool useRootInTES=true) const
| Register a data object or container into Gaudi Event Transient Store.
template<class TYPE >
Gaudi::Utils::GetData< TYPE > ::return_type | get (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Templated access to the data in Gaudi Transient Store.
template<class TYPE >
Gaudi::Utils::GetData< TYPE > ::return_type | getIfExists (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Templated access to the data in Gaudi Transient Store.
template<class TYPE >
Gaudi::Utils::GetData< TYPE > ::return_type | get (const std::string &location, const bool useRootInTES=true) const
| Templated access to the data from Gaudi Event Transient Store.
template<class TYPE >
Gaudi::Utils::GetData< TYPE > ::return_type | getIfExists (const std::string &location, const bool useRootInTES=true) const
| Templated access to the data in Gaudi Transient Store.
template<class TYPE >
TYPE * | getDet (IDataProviderSvc *svc, const std::string &location) const
| Templated access to the detector data from the Gaudi Detector Transient Store.
template<class TYPE >
Gaudi::Utils::GetData< TYPE > ::return_type | getDetIfExists (IDataProviderSvc *svc, const std::string &location) const
| Templated access to the detector data from the Gaudi Detector Transient Store.
template<class TYPE >
TYPE * | getDet (const std::string &location) const
| Templated access to the detector data from the Gaudi Detector Transient Store.
template<class TYPE >
Gaudi::Utils::GetData< TYPE > ::return_type | getDetIfExists (const std::string &location) const
| Templated access to the detector data from the Gaudi Detector Transient Store.
template<class TYPE >
bool | exist (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Check the existence of a data object or container in the Gaudi Transient Event Store.
template<class TYPE >
bool | exist (const std::string &location, const bool useRootInTES=true) const
| Check the existence of a data object or container in the Gaudi Transient Event Store.
template<class TYPE >
bool | existDet (IDataProviderSvc *svc, const std::string &location) const
| Check the existence of detector objects in the Gaudi Transient Detector Store.
template<class TYPE >
bool | existDet (const std::string &location) const
| Check the existence of detector objects in the Gaudi Transient Detector Store.
template<class TYPE , class TYPE2 >
Gaudi::Utils::GetData< TYPE > ::return_type | getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Get the existing data object from Gaudi Event Transient store.
template<class TYPE , class TYPE2 >
Gaudi::Utils::GetData< TYPE > ::return_type | getOrCreate (const std::string &location, const bool useRootInTES=true) const
| Get the existing data object from Gaudi Event Transient store.
Public Member Functions inherited from GaudiCommon< AlgTool >
Gaudi::Utils::GetData< TYPE > ::return_type | get (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Templated access to the data in Gaudi Transient Store.
Gaudi::Utils::GetData< TYPE > ::return_type | getIfExists (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Quicker version of the get function which bypasses the check on the retrieved data.
bool | exist (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Check the existence of a data object or container in the Gaudi Transient Event Store.
Gaudi::Utils::GetData< TYPE > ::return_type | getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Get the existing data object from Gaudi Event Transient store.
DataObject * | put (IDataProviderSvc *svc, DataObject *object, const std::string &location, const bool useRootInTES=true) const
| Register a data object or container into Gaudi Event Transient Store.
TOOL * | tool (const std::string &type, const std::string &name, const IInterface *parent=0, bool create=true) const
| Useful method for the easy location of tools.
TOOL * | tool (const std::string &type, const IInterface *parent=0, bool create=true) const
| A useful method for the easy location of tools.
SmartIF< SERVICE > | svc (const std::string &name, const bool create=true) const
| A useful method for the easy location of services.
IUpdateManagerSvc * | updMgrSvc () const
| Short-cut to locate the Update Manager Service.
StatusCode | Error (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
| Print the error message and return with the given StatusCode.
StatusCode | Warning (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
| Print the warning message and return with the given StatusCode.
StatusCode | Info (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const size_t mx=10) const
| Print the info message and return with the given StatusCode.
StatusCode | Print (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const MSG::Level lev=MSG::INFO) const
| Print the message and return with the given StatusCode.
void | Assert (const bool ok, const std::string &message="", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
| Assertion - throw exception if the given condition is not fulfilled.
void | Assert (const bool ok, const char *message, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
| Assertion - throw exception if the given condition is not fulfilled.
void | Exception (const std::string &msg, const GaudiException &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
| Create and (re)-throw a given GaudiException.
void | Exception (const std::string &msg, const std::exception &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
| Create and (re)-throw a given exception.
void | Exception (const std::string &msg="no message", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
| Create and throw an exception with the given message.
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts.
MsgStream & | always () const
| shortcut for the method msgStream ( MSG::ALWAYS )
MsgStream & | fatal () const
| shortcut for the method msgStream ( MSG::FATAL )
MsgStream & | err () const
| shortcut for the method msgStream ( MSG::ERROR )
MsgStream & | error () const
| shortcut for the method msgStream ( MSG::ERROR )
MsgStream & | warning () const
| shortcut for the method msgStream ( MSG::WARNING )
MsgStream & | info () const
| shortcut for the method msgStream ( MSG::INFO )
MsgStream & | debug () const
| shortcut for the method msgStream ( MSG::DEBUG )
MsgStream & | verbose () const
| shortcut for the method msgStream ( MSG::VERBOSE )
MsgStream & | msg () const
| shortcut for the method msgStream ( MSG::INFO )
const Statistics & | counters () const
| accessor to all counters
StatEntity & | counter (const std::string &tag) const
| accessor to certain counter by name
MSG::Level | msgLevel () const
| The current message service output level.
bool | msgLevel (const MSG::Level level) const
| Test the output level.
void | resetMsgStream () const
| Reset (delete) the current message stream object.
bool | typePrint () const
| Insert the actual C++ type of the algorithm/tool in the messages ?
bool | propsPrint () const
| Print properties at initialization ?
bool | statPrint () const
| Print statistical counters at finalization ?
bool | errorsPrint () const
| Print error counters at finalization ?
long | printStat (const MSG::Level level=MSG::ALWAYS) const
| perform the actual printout of statistical counters
long | printErrors (const MSG::Level level=MSG::ALWAYS) const
| perform the actual printout of error counters
long | printProps (const MSG::Level level=MSG::ALWAYS) const
| perform the actual printout of properties
void | registerCondition (const std::string &condition, StatusCode(CallerClass::*mf)()=NULL)
| register the current instance to the UpdateManagerSvc as a consumer for a condition.
void | registerCondition (const std::string &condition, CondType *&condPtrDest, StatusCode(CallerClass::*mf)()=NULL)
| register the current instance to the UpdateManagerSvc as a consumer for a condition.
void | registerCondition (char *condition, StatusCode(CallerClass::*mf)()=NULL)
| just to avoid conflicts with the version using a pointer to a template class.
void | registerCondition (TargetClass *condition, StatusCode(CallerClass::*mf)()=NULL)
| register the current instance to the UpdateManagerSvc as a consumer for a condition.
StatusCode | runUpdate ()
| asks the UpdateManagerSvc to perform an update of the instance (if needed) without waiting the next BeginEvent incident.
| GaudiCommon (const std::string &name, ISvcLocator *pSvcLocator)
| Algorithm constructor.
| GaudiCommon (const std::string &type, const std::string &name, const IInterface *parent)
| Tool constructor.
StatusCode | release (const IInterface *interface) const
| Manual forced (and 'safe') release of the active tool or service.
virtual unsigned long | release ()
| Un-hide IInterface::release (ICC warning #1125)
const AlgTools & | tools () const
| get the list of aquired tools
const Services & | services () const
| get the list of aquired services
const std::string & | context () const
| Returns the "context" string. Used to identify different processing states.
const std::string & | rootInTES () const
| Returns the "rootInTES" string.
double | globalTimeOffset () const
| Returns the "globalTimeOffset" double.
const std::string | fullTESLocation (const std::string &location, const bool useRootInTES) const
| Returns the full correct event location given the rootInTes settings.
Public Member Functions inherited from AlgTool
virtual const std::string & | name () const
| Retrieve full identifying name of the concrete tool object.
virtual const std::string & | type () const
| Retrieve type (concrete class) of the sub-algtool.
virtual const IInterface * | parent () const
| Retrieve parent of the sub-algtool.
virtual StatusCode | configure ()
virtual StatusCode | start ()
virtual StatusCode | stop ()
virtual StatusCode | terminate ()
virtual StatusCode | reinitialize ()
virtual StatusCode | restart ()
virtual Gaudi::StateMachine::State | FSMState () const
virtual Gaudi::StateMachine::State | targetFSMState () const
virtual StatusCode | sysInitialize ()
| Initialize AlgTool.
virtual StatusCode | sysStart ()
| Start AlgTool.
virtual StatusCode | sysStop ()
| Stop AlgTool.
virtual StatusCode | sysFinalize ()
| Finalize AlgTool.
virtual StatusCode | sysReinitialize ()
| Initialize AlgTool.
virtual StatusCode | sysRestart ()
| Start AlgTool.
virtual StatusCode | setProperty (const Property &p)
| Default implementations for IProperty interface.
virtual StatusCode | setProperty (const std::string &s)
virtual StatusCode | setProperty (const std::string &n, const std::string &v)
virtual StatusCode | getProperty (Property *p) const
virtual const Property & | getProperty (const std::string &name) const
virtual StatusCode | getProperty (const std::string &n, std::string &v) const
virtual const std::vector < Property * > & | getProperties () const
PropertyMgr * | getPropertyMgr ()
template<class TYPE >
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value
| AlgTool (const std::string &type, const std::string &name, const IInterface *parent)
| Standard Constructor.
ISvcLocator * | serviceLocator () const
| Retrieve pointer to service locator.
ISvcLocator * | svcLoc () const
| shortcut for the method service locator
IMessageSvc * | msgSvc () const
| Retrieve pointer to message service.
IToolSvc * | toolSvc () const
| The standard ToolSvc service, Return a pointer to the service if present.
StatusCode | setProperties ()
| Method for setting declared properties to the values specified in the jobOptions via the job option service.
template<class T >
StatusCode | service (const std::string &name, T *&svc, bool createIf=true) const
| Access a service by name, creating it if it doesn't already exist.
template<class T >
StatusCode | service (const std::string &type, const std::string &name, T *&svc) const
| Access a service by name, type creating it if it doesn't already exist.
SmartIF< IService > | service (const std::string &name, const bool createIf=true, const bool quiet=false) const
| Return a pointer to the service identified by name (or "type/name")
void | declInterface (const InterfaceID &, void *)
| declare interface
template<class T >
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const
| Declare the named property.
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
| Declare remote named properties.
IAuditorSvc * | auditorSvc () const
| Access the auditor service.
IMonitorSvc * | monitorSvc () const
| Access the monitor service.
template<class T >
void | declareInfo (const std::string &name, const T &var, const std::string &desc) const
| Declare monitoring information.
void | declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const
| Declare monitoring information (special case)
Public Member Functions inherited from extend_interfaces1< IFuncMinimum >
virtual | ~extend_interfaces1 ()
| Virtual destructor.
Public Member Functions inherited from IFuncMinimum
| DeclareInterfaceID (IFuncMinimum, 2, 0)
| InterfaceID.
Public Member Functions inherited from IAlgTool
| DeclareInterfaceID (IAlgTool, 3, 0)
| InterfaceID.
virtual | ~IAlgTool ()
| Virtual destructor.
virtual const std::string & | type () const =0
| The type of an AlgTool, meaning the concrete AlgTool class.
virtual const IInterface * | parent () const =0
| The parent of the concrete AlgTool.
virtual StatusCode | configure ()=0
| Configuration (from OFFLINE to CONFIGURED).
virtual StatusCode | start ()=0
| Start (from INITIALIZED to RUNNING).
virtual StatusCode | stop ()=0
| Stop (from RUNNING to INITIALIZED).
virtual StatusCode | terminate ()=0
| Initialization (from CONFIGURED to OFFLINE).
virtual StatusCode | reinitialize ()=0
| Initialization (from INITIALIZED or RUNNING to INITIALIZED, via CONFIGURED).
virtual StatusCode | restart ()=0
| Initialization (from RUNNING to RUNNING, via INITIALIZED).
virtual Gaudi::StateMachine::State | FSMState () const =0
| Get the current state.
virtual StatusCode | sysInitialize ()=0
| Initialization of the Tool.
virtual StatusCode | sysStart ()=0
| Initialization of the Tool.
virtual StatusCode | sysStop ()=0
| Initialization of the Tool.
virtual StatusCode | sysFinalize ()=0
| Finalization of the Tool.
virtual StatusCode | sysReinitialize ()=0
| Initialization of the Tool.
virtual StatusCode | sysRestart ()=0
| Initialization of the Tool.
virtual unsigned long | refCount () const =0
| Current number of reference counts.
Public Member Functions inherited from INamedInterface
| DeclareInterfaceID (INamedInterface, 1, 0)
| InterfaceID.
virtual const std::string & | name () const =0
| Retrieve the name of the instance.
virtual | ~INamedInterface ()
| Virtual destructor (always needed for abstract classes).
Public Member Functions inherited from IInterface
virtual unsigned long | addRef ()=0
| Increment the reference count of Interface instance.
virtual unsigned long | release ()=0
| Release Interface instance.
virtual | ~IInterface ()
| Virtual destructor.

## Private Member Functions
| FuncMinimum ()
| default constructor is private
| FuncMinimum (const FuncMinimum &)
| copy constructor is private
FuncMinimum & | operator= (const FuncMinimum &)
| assignment operator is

## Private Attributes
std::string | m_algType
double | m_max_iter
double | m_norm_gradient
double | m_step_size
double | m_tol
const gsl_multimin_fdfminimizer_type * | m_type

## Additional Inherited Members
Static Public Member Functions inherited from GaudiTool
static bool | enableSummary (bool)
| enable/disable summary
static bool | summaryEnabled ()
| is summary enabled?
Static Public Member Functions inherited from IInterface
static const InterfaceID & | interfaceID ()
| Return an instance of InterfaceID identifying the interface.
Protected Types inherited from GaudiCommon< AlgTool >
typedef std::map< std::string, StatEntity > | Statistics
| the actual type of general counters
typedef std::map< std::string, unsigned int > | Counter
| the actual type error/warning counter
typedef std::vector< IAlgTool * > | AlgTools
| storage for active tools
typedef GaudiUtils::HashMap < std::string, SmartIF < IService > > | Services
| storage for active services
Protected Member Functions inherited from GaudiTool
| GaudiTool (const std::string &type, const std::string &name, const IInterface *parent)
| Standard constructor.
virtual | ~GaudiTool ()
| destructor, virtual and protected
Protected Attributes inherited from GaudiCommon< AlgTool >
ICounterSummarySvc * | m_counterSummarySvc
| a pointer to the CounterSummarySvc
std::vector< std::string > | m_counterList
| list of counters to declare. Set by property CounterList. This can be a regular expression.
std::vector< std::string > | m_statEntityList
Static Protected Attributes inherited from GaudiCommon< AlgTool >
static const bool | IgnoreRootInTES
| Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods.
static const bool | UseRootInTES
| Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods.

## Detailed Description

The simplest concrete implementation of IFuncMinimum interface.

See Also
  GaudiGSL/IFuncMinimum.h

Author
  Kirill Miklyaev kiril.nosp@m.lm@i.nosp@m.ris1..nosp@m.itep.nosp@m..ru

Date
  2002-09-14

Definition at line 26 of file FuncMinimum.h.

## Member Typedef Documentation

typedef std::vector<const GenFunc*> FuncMinimum::Gradient

Definition at line 28 of file FuncMinimum.h.

## Constructor & Destructor Documentation

FuncMinimum::~FuncMinimum | ( |  | ) |
| virtual

Destructor.

Definition at line 356 of file FuncMinimum.cpp.

{}

FuncMinimum::FuncMinimum | ( | const std::string & | type,
|  | const std::string & | name,
|  | const IInterface * | parent
| ) |  |

Standard constructor.

See Also
  GaudiTool

Parameters

  type | tool type
  name | tool name
  parent | parent of the tool

declare type of the algorithm for multidimensional minimization

declare maximum of iteration

declare the absolute tolerance for the Euclidean norm of the gradient

declare the size of the first trial step

declare the accuracy of the line minimization

Definition at line 64 of file FuncMinimum.cpp.

: base_class ( type, name , parent )
, m_algType ( "conjugate_fr" )
, m_max_iter ( 200 )
, m_norm_gradient ( 1.0e-10 )
, m_step_size ( 0.01 )
, m_tol ( 1e-10 )
, m_type ( 0 )
{
declareProperty ( "Algorithm", m_algType );
declareProperty ( "Iteration", m_max_iter );
declareProperty ( "Gradient" , m_norm_gradient );
declareProperty ( "Step_size", m_step_size );
declareProperty ( "Tol" , m_tol );
}

FuncMinimum::FuncMinimum | ( |  | ) |
| private

default constructor is private

FuncMinimum::FuncMinimum | ( | const FuncMinimum & |  | ) |
| private

copy constructor is private

## Member Function Documentation

StatusCode FuncMinimum::finalize | ( |  | ) |
| virtual

standard finalization method

See Also
  AlgTool
  IAlgTool

Returns
  status code

Reimplemented from GaudiTool.

Definition at line 343 of file FuncMinimum.cpp.

{
StatusCode sc = GaudiTool::finalize() ;
MsgStream log( msgSvc() , name() ) ;
if ( sc.isFailure() )
{
return Error("Could not finalize base class GaudiTool", sc);
}
return StatusCode::SUCCESS;
}

StatusCode FuncMinimum::initialize | ( |  | ) |
| virtual

Overriding initialize.

The algorithm for multidimensional minimization

Reimplemented from GaudiTool.

Definition at line 290 of file FuncMinimum.cpp.

{
StatusCode sc = GaudiTool::initialize() ;
MsgStream log( msgSvc() , name() ) ;
if ( sc.isFailure() )
{
return Error ("Could not initialize base class GaudiTool", sc);
}
if( "conjugate_fr" == m_algType )
{
m_type = gsl_multimin_fdfminimizer_conjugate_fr ;
log << MSG::DEBUG
<< "Minimization algorithm to be used: "
<< "'gsl_multimin_fdfminimizer_conjugate_fr'"
<< endmsg;
}
else if ( "conjugate_pr" == m_algType )
{
m_type = gsl_multimin_fdfminimizer_conjugate_pr ;
log << MSG::DEBUG
<< "Minimization algorithm to be used: "
<< "'gsl_multimin_fdfminimizer_conjugate_pr'"
<< endmsg;
}
else if ( "vector_bfgs" == m_algType )
{
m_type = gsl_multimin_fdfminimizer_vector_bfgs ;
log << MSG::DEBUG
<< "Minimization algorithm to be used: " <<
"'gsl_multimin_fdfminimizer_vector_bfgs'" << endmsg;
}
else if ( "steepest_descent" == m_algType )
{
m_type = gsl_multimin_fdfminimizer_steepest_descent ;
log << MSG::DEBUG
<< "Minimization algorithm to be used: "
<< "'gsl_multimin_fdfminimizer_steepest_descent'"
<< endmsg;
}
else
{
return Error(" Unknown algorithm type '"
+ std::string(m_algType) + "'");
}
return StatusCode::SUCCESS;
}

StatusCode FuncMinimum::minimum | ( | const GenFunc & | func,
|  | IFuncMinimum::Arg & | arg
| ) |  | const
| virtual

Find minimum of the function "GenFunc".

See Also
  IFuncMinimum.h

Returns
  StatusCode

Implements IFuncMinimum.

Definition at line 151 of file FuncMinimum.cpp.

{
using namespace Genfun;
gsl_vector_view vect = gsl_vector_view_array ( &arg[0] ,
arg.dimension() );
MsgStream log( msgSvc(), name() );
FuncMinimumMisc local (func, arg);
gsl_multimin_function_fdf function;
function.f = &fun_gsl;
function.df = &dfun_gsl;
function.fdf = &fdfun_gsl;
function.n = vect.vector.size;
function.params = (void*) &local;
size_t iter = 0 ;
int status = 0 ;
const gsl_multimin_fdfminimizer_type *T = m_type ;
gsl_multimin_fdfminimizer *s;
s = gsl_multimin_fdfminimizer_alloc ( T, vect.vector.size);
gsl_multimin_fdfminimizer_set ( s, &function,
&vect.vector, m_step_size, m_tol);
for( iter = 0 ; iter < m_max_iter ; ++iter )
{
status = gsl_multimin_fdfminimizer_iterate (s);
if ( status )
{
return Error
("Error from gsl_multimin_fdfminimizer_iterate '"
+ std::string(gsl_strerror(status)) + "'") ;
}
status = gsl_multimin_test_gradient (s->gradient,
m_norm_gradient);
if ( status != GSL_CONTINUE ) { break; }
}
for (unsigned int i = 0; i < vect.vector.size; ++i)
{
gsl_vector_set (&vect.vector, i, gsl_vector_get (s->x, i));
}
if (status == GSL_SUCCESS)
{
log << MSG::DEBUG
<< "We stopped in the method on the " << iter
<< " iteration (we have maximum " << m_max_iter
<< " iterations)" << endmsg;
log << "The Euclidean norm of gradient = "
<< gsl_blas_dnrm2 (s->gradient)
<< " by the absolute tolerance = "
<< m_norm_gradient << endmsg;
}
else if (status == GSL_CONTINUE && iter <= m_max_iter )
{
return Error ( "Method finished with '"
+ std::string(gsl_strerror(status))
+ "' error" );
}
else
{
return Error ( "Method finished with '" +
std::string(gsl_strerror(status))
+ "' error" );
}
gsl_multimin_fdfminimizer_free (s);
if (status)
{
return Error ( "Method finished with '"
+ std::string(gsl_strerror(status))
+ "' error" );
}
return StatusCode::SUCCESS;
}

StatusCode FuncMinimum::minimum | ( | const GenFunc & | func,
|  | IFuncMinimum::Arg & | arg,
|  | IFuncMinimum::Covariance & | covar
| ) |  | const
| virtual

Find minimum of the function "GenFunc".

See Also
  IFuncMinimum.h

Returns
  StatusCode

Find minimum of our function

Implements IFuncMinimum.

Definition at line 247 of file FuncMinimum.cpp.

{
MsgStream log( msgSvc(), name() );
StatusCode sc = minimum (func, arg) ;
if (sc.isFailure())
{
std::ostringstream buffer;
buffer << "MINIMUM IS NOT FOUND. StatusCode = '" << sc.getCode() << '\'';
return Error (buffer.str(), sc);
}
else
{
HepSymMatrix cov(arg.dimension(), 0);
for (unsigned int i = 0; i < arg.dimension(); ++i)
{
Genfun::GENFUNCTION f = func.partial(i);
for (unsigned int j = i; j < arg.dimension(); ++j)
{
Genfun::GENFUNCTION fij = f.partial(j);
cov(i+1, j+1) = 0.5 * fij(arg);
}
}
int inv;
covar = cov.inverse(inv);
if ( inv != 0)
{
return Error
("Matrix of Error is not complete successful");
}
return StatusCode::SUCCESS;
}
}

FuncMinimum& FuncMinimum::operator= | ( | const FuncMinimum & |  | ) |
| private

assignment operator is

## Member Data Documentation

std::string FuncMinimum::m_algType
| private

Definition at line 103 of file FuncMinimum.h.

double FuncMinimum::m_max_iter
| private

Definition at line 104 of file FuncMinimum.h.

double FuncMinimum::m_norm_gradient
| private

Definition at line 105 of file FuncMinimum.h.

double FuncMinimum::m_step_size
| private

Definition at line 106 of file FuncMinimum.h.

double FuncMinimum::m_tol
| private

Definition at line 107 of file FuncMinimum.h.

const gsl_multimin_fdfminimizer_type* FuncMinimum::m_type
| private

Definition at line 108 of file FuncMinimum.h.

The documentation for this class was generated from the following files:

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiGSL/src/Components/FuncMinimum.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiGSL/src/Components/FuncMinimum.cpp