C++ main module for mmsd Package  1.0
MMSD_StiefelFunction.h
Go to the documentation of this file.
1 #ifndef MMSD_StiefelFunction_H
2 #define MMSD_StiefelFunction_H
3 
4 
5 #include "MATH_StiefelFunction.h"
7 #include "MMSD_DoubleVector.h"
9 #include "MMSD_DoubleVector.h"
10 
12 
25  SP_OBJECT(MMSD_StiefelFunction);
26  // ATTRIBUTES
27 
28 private:
29 
30  // the matrix A in the definition of the function
31  // F(x) = -0.5*Tr(X'*A*X);
32 
33  // parameters
34  const MMSD_DoubleVector *mDiag;
35  const MMSD_DoubleVector *mMean;
36  const MMSD_DoubleVector *mProbs;
38  const MMSD_DoubleFullMatrix *mW;
39  const MMSD_DoubleFullMatrix *mY;
40 
41  // columns of matrices
46 
47 
48 protected:
49  // METHODS
50 
51  // CONSTRUCTORS
52 
55 
56 
57 
58  // DESTRUCTORS
59 
60 
63  virtual ~MMSD_StiefelFunction(void);
64 
65 
66 public:
67 
68 
69  // NEW Method
70 
73  inline static SP::MMSD_StiefelFunction New() {
74  SP::MMSD_StiefelFunction p(new MMSD_StiefelFunction(),MMSD_StiefelFunction::Delete());
75  p->setThis(p);
76  return p;
77  }
78 
79 
80  // SET methods
81 
82 
83 public:
84 
93  inline void setParameters( const MMSD_DoubleVector &Diag,
94  const MMSD_DoubleVector &Mean,
95  const MMSD_DoubleVector &Probs,
97  const MMSD_DoubleFullMatrix &W,
98  const MMSD_DoubleFullMatrix &Y) {
99  mDiag=&Diag;
100  mMean=&Mean;
101  mProbs=&Probs;
102  mYP=&YP;
103  mW=&W;
104  mY=&Y;
105 
106  }
107 
132 
133 
136  virtual tString toString() const;
137 
138 };
139 
140 
141 #endif
DEFINE_SPTR(MMSD_StiefelFunction)
virtual tString toString() const
to string
Definition: MMSD_StiefelFunction.cpp:14
MMSD_StiefelFunction(void)
create a EigenFunction object
Definition: MMSD_StiefelFunction.cpp:5
This class describes the FullMatrix class.
Definition: MMSD_DoubleFullMatrix.h:17
DEFINE_SVPTR(MMSD_StiefelFunction)
static SP::MMSD_StiefelFunction New()
create an instance of eigen function class
Definition: MMSD_StiefelFunction.h:73
Definition: LAP_DoubleFullGeneralMatrix.h:30
Definition: MMSD_DoubleVector.h:16
virtual tReal computeFunction(const LAP_DoubleFullGeneralMatrix &P, LAP_DoubleFullGeneralMatrix &G)
compute the function & derivatives
Definition: MMSD_StiefelFunction.cpp:21
This class describes Stiefel function to optimize.
Definition: MATH_StiefelFunction.h:20
This class describes Eigen function to optimize : -0.5*Tr(X'*A*X);.
Definition: MMSD_StiefelFunction.h:24
#define tString
Definition: types.h:49
virtual ~MMSD_StiefelFunction(void)
destroy an EigenFunction Object.
Definition: MMSD_StiefelFunction.cpp:10
void setParameters(const MMSD_DoubleVector &Diag, const MMSD_DoubleVector &Mean, const MMSD_DoubleVector &Probs, MMSD_DoubleFullMatrix &YP, const MMSD_DoubleFullMatrix &W, const MMSD_DoubleFullMatrix &Y)
set parameters
Definition: MMSD_StiefelFunction.h:93
Definition: LAP_ConstDoubleVector.h:25
#define tReal
Definition: types.h:18
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:106