00001 // ReplicaMinimizableDirector.h: interface for the CReplicaMinimizableDirector class. 00002 // 00004 00005 #if !defined(AFX_REPLICAMINIMIZABLEDIRECTOR_H__DC6C671B_9506_4523_87DC_9FD277D02A3F__INCLUDED_) 00006 #define AFX_REPLICAMINIMIZABLEDIRECTOR_H__DC6C671B_9506_4523_87DC_9FD277D02A3F__INCLUDED_ 00007 00008 #if _MSC_VER > 1000 00009 #pragma once 00010 #endif // _MSC_VER > 1000 00011 00012 #include "NetworkMinimizableDirector.h" 00013 using namespace std; 00014 00015 // this minimizable is only able to treat replicas two at a time 00016 00017 class CReplicaMinimizableDirector : public NetworkMinimizableDirector 00018 { 00019 public: 00020 CReplicaMinimizableDirector(double epsSq = 0.1, double deltaSq = 0.1); 00021 virtual ~CReplicaMinimizableDirector(); 00022 // returns the sum of GetNParameters() for both the replicas 00023 int GetNParameters(); 00024 // returns the appropriate residuals 00025 double ComputeResiduals(double *parameters); 00026 // returns the appropriate parameter 00027 double GetParameter(int parIndex); 00028 // sets up the appropriate intesection lists for the two replicas 00029 void SetIntersectionLists(); 00030 private: 00031 virtual void DefineExperiments() = 0; 00032 protected: 00033 intVector m_viIntersectOne; 00034 intVector m_viIntersectTwo; 00035 double m_dEpsSquared; 00036 double m_dDeltaSquared; 00037 }; 00038 00039 #endif // !defined(AFX_REPLICAMINIMIZABLEDIRECTOR_H__DC6C671B_9506_4523_87DC_9FD277D02A3F__INCLUDED_)