| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

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

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
FuncMinimum.h
Go to the documentation of this file.
1 // $Id: FuncMinimum.h,v 1.3 2006/11/30 10:40:53 mato Exp $
2 // ============================================================================
3 #ifndef ALGTOOLS_FUNCMINIMUM_H
4 #define ALGTOOLS_FUNCMINIMUM_H 1
5 // Include files
6 // from CLHEP
7 #include "CLHEP/GenericFunctions/GenericFunctions.hh"
8 #include "CLHEP/GenericFunctions/Argument.hh"
9 #include "CLHEP/GenericFunctions/AbsFunction.hh"
10 #include "CLHEP/Matrix/SymMatrix.h"
11 // from Gaudi
12 #include "GaudiAlg/GaudiTool.h"
13 //from GSL
14 #include "gsl/gsl_multimin.h"
15
16 // local
17 #include "GaudiGSL/IFuncMinimum.h"
18
26 class FuncMinimum : public extends1<GaudiTool, IFuncMinimum> {
27 public:
28 typedef std::vector<const GenFunc*> Gradient;
29 public:
30
35 virtual StatusCode minimum( const GenFunc& func ,
36 Arg& arg ) const;
37
42 virtual StatusCode minimum( const GenFunc& func ,
43 Arg& arg ,
44 Covariance& covar ) const;
45
47 virtual StatusCode initialize ();
48 virtual StatusCode finalize ();
49
50 virtual ~FuncMinimum( );
51
52 class FuncMinimumMisc
53 {
54 public:
58 FuncMinimumMisc (const GenFunc& func ,
59 Arg& arg );
60 // destructor
61 ~FuncMinimumMisc () ;
62
63 public:
64 inline const Arg& argument () const { return m_argum ;}
65 inline Arg& argument () { return m_argum ;}
66 inline const GenFunc* equation () const { return m_eq ;}
67 inline const Gradient& gradient () const { return m_grad ;}
68 private:
69 // default constructor is disabled
70 FuncMinimumMisc () ;
71 // copy constructor is disabled
72 FuncMinimumMisc ( const FuncMinimumMisc& );
73 // assignment operator is disabled
74 FuncMinimumMisc& operator=( const FuncMinimumMisc& );
75 private:
76 Arg m_argum ;
77 const GenFunc* m_eq ;
78 Gradient m_grad ;
79 };
80
81
88 FuncMinimum( const std::string& type,
89 const std::string& name,
90 const IInterface* parent);
91
92 private:
93
95 FuncMinimum();
97 FuncMinimum ( const FuncMinimum& );
99 FuncMinimum& operator=( const FuncMinimum& );
100
101 private:
102
103 std::string m_algType ;
104 double m_max_iter ;
105 double m_norm_gradient ;
106 double m_step_size ;
107 double m_tol ;
108 const gsl_multimin_fdfminimizer_type* m_type ;
109 };
110
111 // ============================================================================
112 // The END
113 // ============================================================================
114 #endif // ALGTOOLS_FUNCMINIMUM_H
115 // ============================================================================