00001 // CoupledReplicasMinimizableDirector.h: interface for the CCoupledReplicasMinimizableDirector class. 00002 // 00004 00005 #if !defined(AFX_COUPLEDREPLICASMINIMIZABLEDIRECTOR_H__5FBEC6D7_E482_4046_94FE_96B7D8FA44EF__INCLUDED_) 00006 #define AFX_COUPLEDREPLICASMINIMIZABLEDIRECTOR_H__5FBEC6D7_E482_4046_94FE_96B7D8FA44EF__INCLUDED_ 00007 00008 #if _MSC_VER > 1000 00009 #pragma once 00010 #endif // _MSC_VER > 1000 00011 00012 #include "NetworkMinimizableDirector.h" 00013 00014 class CCoupledReplicasMinimizableDirector : public NetworkMinimizableDirector 00015 { 00016 public: 00017 CCoupledReplicasMinimizableDirector(double epsSq, double deltaSq); 00018 virtual ~CCoupledReplicasMinimizableDirector(); 00019 // returns the sum of GetNParameters() for both the replicas 00020 int GetNParameters(); 00021 // returns the appropriate residuals 00022 double ComputeResiduals(double *parameters); 00023 // returns the appropriate parameter 00024 double GetParameter(int parIndex); 00025 // sets up the appropriate intesection lists for the two replicas 00026 void SetIntersectionLists(); 00027 private: 00028 virtual void DefineExperiments() {return;} 00029 protected: 00030 NetworkMinimizableDirector *m_pReplicaOne; 00031 NetworkMinimizableDirector *m_pReplicaTwo; 00032 intVector m_viIntersectOne; 00033 intVector m_viIntersectTwo; 00034 double m_dEpsSquared; 00035 double m_dDeltaSquared; 00036 }; 00037 00038 #endif // !defined(AFX_COUPLEDREPLICASMINIMIZABLEDIRECTOR_H__5FBEC6D7_E482_4046_94FE_96B7D8FA44EF__INCLUDED_)