mirror of
http://43.156.76.180:8026/YuuMJ/EukPhylo.git
synced 2025-12-28 06:20:25 +08:00
72 lines
1.6 KiB
C++
72 lines
1.6 KiB
C++
// cOptManager.h: interface for the cOptManager class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_COPTMANAGER_H__9FF6EA37_611D_485E_81B0_18D12B2D4816__INCLUDED_)
|
|
#define AFX_COPTMANAGER_H__9FF6EA37_611D_485E_81B0_18D12B2D4816__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "cProbs.h"
|
|
#include "cDataProbModel.h"
|
|
|
|
|
|
class cOptManager{
|
|
public:
|
|
|
|
typedef enum {PARALLEL, SEQUENTIAL} tModeOpt;
|
|
|
|
struct tOptParams {
|
|
bool FreezeBackground;
|
|
tModeOpt OptType;
|
|
double StopCriteria;
|
|
int MaxIter;
|
|
|
|
tOptParams() {
|
|
FreezeBackground = true;
|
|
OptType = SEQUENTIAL;
|
|
StopCriteria = 0.00001;
|
|
MaxIter = 100;
|
|
}
|
|
};
|
|
|
|
cOptManager( cOccuranceData const& OccuranceData,
|
|
cProbs& BackgroundProbs,
|
|
tOptParams Params = tOptParams() );
|
|
|
|
cOptManager( cOccuranceData const& OccuranceData,
|
|
cProbModel const& Model,
|
|
tOptParams Params = tOptParams() );
|
|
|
|
virtual ~cOptManager();
|
|
|
|
virtual
|
|
cProbModel operator()(void);
|
|
|
|
protected:
|
|
|
|
size_t First_Angle(void) const;
|
|
|
|
void IterationAngleSequential(cDataProbModel& DM);
|
|
|
|
void IterationAngleParallel(cDataProbModel& DM);
|
|
|
|
void IterationEigen(cDataProbModel& DM);
|
|
|
|
|
|
private:
|
|
|
|
// disable copy & assignment
|
|
cOptManager(const cOptManager&);
|
|
const cOptManager& operator=(const cOptManager&);
|
|
|
|
//
|
|
tOptParams _params;
|
|
cOccuranceData const& _data;
|
|
cProbModel _initModel;
|
|
};
|
|
|
|
#endif // !defined(AFX_COPTMANAGER_H__9FF6EA37_611D_485E_81B0_18D12B2D4816__INCLUDED_)
|