00001 // SharedParametersMinimizableDirector.h: interface for the CSharedParametersMinimizableDirector class. 00002 // 00004 00005 #if !defined(AFX_SHAREDPARAMETERSMINIMIZABLEDIRECTOR_H__D78A7250_B952_4C4E_94EF_66E6B4AE2740__INCLUDED_) 00006 #define AFX_SHAREDPARAMETERSMINIMIZABLEDIRECTOR_H__D78A7250_B952_4C4E_94EF_66E6B4AE2740__INCLUDED_ 00007 00008 #if _MSC_VER > 1000 00009 #pragma once 00010 #endif // _MSC_VER > 1000 00011 00012 // Need something fancy to make sure parameters get put in the right 00013 // place, since intersected parameters and unique parameters will be 00014 // interleaved. 00015 00016 #include "NetworkMinimizableDirector.h" 00017 using namespace std; 00018 00019 class CSharedParametersMinimizableDirector : public NetworkMinimizableDirector 00020 { 00021 public: 00022 CSharedParametersMinimizableDirector(); 00023 virtual ~CSharedParametersMinimizableDirector(); 00024 // returns NP_1 + NP_2 - N_Intersect(P_1,P_2) 00025 int GetNParameters(); 00026 double ComputeResiduals(double *parameters); 00027 double GetParameter(int parIndex); 00028 // sets up the appropriate intesection lists for the two models so 00029 // we know which parameters are common 00030 void SetIntersectionLists(); 00031 private: 00032 virtual void DefineExperiments() {return;} 00033 protected: 00034 NetworkMinimizableDirector *m_pReplicaOne; 00035 NetworkMinimizableDirector *m_pReplicaTwo; 00036 intVector m_viIntersectOne; 00037 intVector m_viIntersectTwo; 00038 }; 00039 00040 #endif // !defined(AFX_SHAREDPARAMETERSMINIMIZABLEDIRECTOR_H__D78A7250_B952_4C4E_94EF_66E6B4AE2740__INCLUDED_)