Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

NetworkMinimizable.h

Go to the documentation of this file.
00001 // NetworkMinimizable.h: interface for the NetworkMinimizable class.
00002 //
00004 
00005 #if !defined(AFX_NETWORKMINIMIZABLE_H__8F38BFB2_7B39_41DB_A979_3A20AD69180D__INCLUDED_)
00006 #define AFX_NETWORKMINIMIZABLE_H__8F38BFB2_7B39_41DB_A979_3A20AD69180D__INCLUDED_
00007 
00008 #if _MSC_VER > 1000
00009 #pragma once
00010 #endif // _MSC_VER > 1000
00011 
00012 #include <iomanip>
00013 #include <cmath>
00014 #include <assert.h>
00015 #include "SubjectObserver.h"
00016 #include "NLLSMinimizable.h"
00017 #include "Experiment.h"
00018 #include "ReactionMover.h"
00019 #include "CellAverageObserver.h"
00020 #include "ConversionFactor.h"
00021 
00022 class NetworkMinimizable : public NLLSMinimizable, public Subject  
00023 {
00024 public:
00025         // default construction gives no free parameters (nothing to optimize)
00026         NetworkMinimizable();
00027         virtual ~NetworkMinimizable();
00028         virtual void Initialize(std::vector<Experiment *> experiments, std::vector<CReactionMover *> reactionMovers, int nCells, bool rateConstantsOptimizable, bool initialChemConcOptimizable, bool logsInObjectiveFunction, double timeSeriesWeight, double rateConstantsWeight, double initialChemConcWeight);
00029         virtual void Initialize(Experiment *experiment, CReactionMover *reactionMover, int nCells, bool rateConstantsOptimizable, bool initialChemConcOptimizable, bool logsInObjectiveFunction, double timeSeriesWeight, double rateConstantsWeight, double initialChemConcWeight);
00030         // Get() functions
00031         int GetNCells() {return this->nCells;} 
00032         bool GetRateConstantsOptimizable() const {return rateConstantsOptimizable;}
00033         bool GetInitialChemConcOptimizable() const {return initialChemConcOptimizable;}
00034         bool GetLogsInObjectiveFunction() const {return logsInObjectiveFunction;}
00035         double GetTimeSeriesWeight() {return this->timeSeriesWeight;}
00036         double GetRateConstantsWeight() {return this->rateConstantsWeight;}
00037         double GetInitialChemConcWeight() {return this->initialChemConcWeight;}
00038         void SetTimeSeriesWeight(double timeSeriesWeight) {this->timeSeriesWeight = timeSeriesWeight;}
00039         void SetRateConstantsWeight(double rateConstantsWeight) {this->rateConstantsWeight = rateConstantsWeight;}
00040         void SetInitialChemConcWeight(double initialChemConcWeight) {this->initialChemConcWeight = initialChemConcWeight;}
00041         CConversionFactor *GetConversionFactor(int factorIndex) {return m_pConversionFactors[factorIndex];}
00042         //double *GetParameters();
00043         // overloaded from base classes
00044         virtual double GetParameter(int parIndex)=0;
00045         virtual Experiment *GetExperiment();
00046         virtual Experiment *GetExperiment(int expNum);
00047         virtual int GetNParameters()=0;
00048         virtual double ComputeResiduals(double *parameters)=0;
00049         virtual double ComputeES(double *parameters, double T)=0;
00050 // EntropyShift is defined in NetworkMinimizable because it doesn't need *parameters
00051 // I don't know what EntropyShift, ComputeES, F, or F0 do though so I don't know how to generalize them for SharedBFactorNetworkMinimizable
00052 //      virtual double EntropyShift(double T);
00053         double EntropyShift(double T);
00054         virtual double F(double *parameters, double T)=0;
00055         virtual double F0(double *parameters, double T)=0;
00056         int GetNBFactors() {return this->m_iNBFactors;}
00057 protected:
00058         bool rateConstantsOptimizable;
00059         bool initialChemConcOptimizable;
00060         bool logsInObjectiveFunction;
00061         int nCells;
00062         double timeSeriesWeight;
00063         double rateConstantsWeight;
00064         double initialChemConcWeight;
00065 /*      double *initialNetworkData;
00066         double *currentNetworkData;
00067 */      std::vector<CConversionFactor *> m_pConversionFactors;
00068         // maybe don't need
00069         int m_iNBFactors;
00070 
00071 };
00072 
00073 #endif // !defined(AFX_NETWORKMINIMIZABLE_H__8F38BFB2_7B39_41DB_A979_3A20AD69180D__INCLUDED_)

Generated on Mon Nov 3 09:38:02 2003 by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002