COPASI API  4.16.103
CExperiment.h
Go to the documentation of this file.
1 // Copyright (C) 2010 - 2015 by Pedro Mendes, Virginia Tech Intellectual
2 // Properties, Inc., University of Heidelberg, and The University
3 // of Manchester.
4 // All rights reserved.
5 
6 // Copyright (C) 2008 - 2009 by Pedro Mendes, Virginia Tech Intellectual
7 // Properties, Inc., EML Research, gGmbH, University of Heidelberg,
8 // and The University of Manchester.
9 // All rights reserved.
10 
11 // Copyright (C) 2005 - 2007 by Pedro Mendes, Virginia Tech Intellectual
12 // Properties, Inc. and EML Research, gGmbH.
13 // All rights reserved.
14 
15 #ifndef COPASI_CExperiment
16 #define COPASI_CExperiment
17 
18 #include <string>
19 
22 #include "utilities/CCopasiTask.h"
23 #include "utilities/CMatrix.h"
24 #include "utilities/CVector.h"
25 
27 
29 {
30  // Operations
31 public:
32  CFittingPoint(const std::string & name = "unknown",
33  const CCopasiContainer * pParent = NULL);
34 
35  CFittingPoint(const CFittingPoint & src,
36  const CCopasiContainer * pParent = NULL);
37 
39 
40  virtual std::string getObjectDisplayName(bool regular = true, bool richtext = false) const;
41 
42  const std::string & getModelObjectCN() const;
43 
44  void setValues(const C_FLOAT64 & independent,
45  const C_FLOAT64 & measured,
46  const C_FLOAT64 & fitted,
47  const C_FLOAT64 & weightedError);
48 
49 private:
50  void initObjects();
51 
52  // Attributes
53 private:
59 };
60 
62 {
63 public:
64  /**
65  * Enumeration of the types of columns known to COPASI.
66  */
67  enum Type
68  {
69  ignore = 0,
73  };
74 
75  /**
76  * String literals for the GUI to display type names of columns known
77  * to COPASI.
78  */
79  static const std::string TypeName[];
80 
81  /**
82  * XML type names of tasks known to COPASI.
83  */
84  static const char* XMLType[];
85 
86  /**
87  * Enumeration of methods to calculate the weight.
88  */
90  {
91  MEAN = 0,
93  SD,
95  };
96 
97  /**
98  * String literals for the GUI to display weight method known
99  * to COPASI.
100  */
101  static const std::string WeightMethodName[];
102 
103  /**
104  * XML type names of weight methods known to COPASI.
105  */
106  static const char* WeightMethodType[];
107 
108  /**
109  * Default constructor
110  * @param const CCopasiContainer * pParent
111  * @param const std::string & name (default: Experiment)
112  */
113  CExperiment(const CCopasiContainer * pParent,
114  const std::string & name = "Experiment");
115 
116  /**
117  * Copy constructor
118  * @param const CExperiment & src
119  * @param const CCopasiContainer * pParent (default: src data model)
120  */
121  CExperiment(const CExperiment & src,
122  const CCopasiContainer * pParent = NULL);
123 
124  /**
125  * Specific constructor used for reading COPASI files
126  * @param const CCopasiParameterGroup & group
127  * @param const CCopasiContainer * pParent (default: group data model)
128  */
129  CExperiment(const CCopasiParameterGroup & group,
130  const CCopasiContainer * pParent = NULL);
131 
132  /**
133  * Destructor
134  */
135  virtual ~CExperiment();
136 
137  /**
138  * Assignment operator
139  * @param const CExperiment & rhs
140  * @return CExperiment & lhs
141  */
142  CExperiment & operator = (const CExperiment & rhs);
143 
144  /**
145  * This methods must be called to elevate subgroups to
146  * derived objects. The default implementation does nothing.
147  * @return bool success
148  */
149  virtual bool elevateChildren();
150 
151  /**
152  * Compile the experiment. This function must be called
153  * before any evaluations can be performed.
154  * @param const std::vector< CCopasiContainer * > listOfContainer
155  * @return bool success
156  */
157  bool compile(const std::vector< CCopasiContainer * > listOfContainer =
159 
160  /**
161  * Reads the experiment data form a the given stream
162  * @param std::istream & in
163  * @param size_t & currentLine
164  * @return bool success
165  */
166  bool read(std::istream & in, size_t & currentLine);
167 
168  /**
169  * Calculate/set the weights used in the sum of squares.
170  * @return bool success
171  */
172  bool calculateWeights();
173 
174  /**
175  * Retrieve the list of dependent data objects
176  * @return const std::map< CCopasiObject *, size_t > & dependentObjects
177  */
178  const std::map< CCopasiObject *, size_t > & getDependentObjects() const;
179 
180  /**
181  * Calculate the sum of squares for the indexed row of the experiment.
182  * If residuals is not NULL residuals will contain the differences
183  * between the calculated and the experiment values.
184  * @param const size_t & index
185  * @param C_FLOAT64 *& residuals (may be NULL)
186  * @return C_FLOAT64 sumOfSquares
187  */
188  C_FLOAT64 sumOfSquares(const size_t & index,
189  C_FLOAT64 *& residuals) const;
190 
191  /**
192  * Calculate the sum of squares for the indexed row of the experiment.
193  * On return dependentValues contains the calculated values. If
194  * residuals is not NULL residuals will contain the differences
195  * between the calculated and the experiment values.
196  * @param const size_t & index
197  * @param C_FLOAT64 *& dependentValues (must not be NULL)
198  * @return C_FLOAT64 sumOfSquares
199  */
200  C_FLOAT64 sumOfSquaresStore(const size_t & index,
201  C_FLOAT64 *& dependentValues);
202 
203  /**
204  * Initialize the storage of an extended time series for plotting.
205  * This clears the storage, resizes it to the given size and sets the
206  * iterator to the start of the storage.
207  * The size given is the number of time points, not the number of data
208  */
209  void initExtendedTimeSeries(size_t s);
210 
211  /**
212  * Add one dataset to the extended time series. The time and the simulated dependent
213  * values are stored and the iterator is increased
214  */
216 
217  size_t extendedTimeSeriesSize() const;
218 
219  /**
220  * Calculate statistics by comparing the stored calculated values
221  * with the measurements.
222  * @return bool success
223  */
224  bool calculateStatistics();
225 
226  /**
227  * Reads the header row for the experiment data
228  * @return bool success
229  */
230  bool readColumnNames();
231 
232  /**
233  * Try to guess the number of columns
234  * @return size_t numColumns
235  */
236  size_t guessColumnNumber() const;
237 
238  /**
239  * Retrieve the column names
240  * @return const std::vector< std::string > & columnNames;
241  */
242  const std::vector< std::string > & getColumnNames() const;
243 
244  /**
245  * Update the model with the independent data of the experiment
246  * @param const size_t & index
247  * @return bool success
248  */
249  bool updateModelWithIndependentData(const size_t & index);
250 
251  /**
252  * Restore the model with the independent data from before the experiment
253  * @return bool success
254  */
256 
257  /**
258  * set the experiment type
259  * @param const CCopasiTask::Type & experimentType
260  * @return bool success
261  */
262  bool setExperimentType(const CCopasiTask::Type & type);
263 
264  /**
265  * Retrieve the experiment type
266  * @return const CCopasiTask::Type & experimentType
267  */
268  const CCopasiTask::Type & getExperimentType() const;
269 
272  /**
273  * Retrieve the time data of the experiment.
274  * @return const CVector< C_FLOAT64 > & timeData
275  */
276  const CVector< C_FLOAT64 > & getTimeData() const;
277 
278  /**
279  * Retrieve the independent data of the experiment.
280  * @return const CMatrix< C_FLOAT64 > & independentData
281  */
283 
284  /**
285  * Retrieve the dependent data of the experiment.
286  * @return const CMatrix< C_FLOAT64 > & dependentData
287  */
288  const CMatrix< C_FLOAT64 > & getDependentData() const;
289 
290  /**
291  * Retrieve the file name
292  * @return const std::string & fileName
293  */
294  const std::string & getFileName() const;
295 
296  /**
297  * Set the file name
298  * @param const std::string & fileName
299  * @return bool success
300  */
301  bool setFileName(const std::string & fileName);
302 
303  /**
304  * Retrieve the object map
305  * @return CExperimentObjectMap & mpObjectMap
306  */
308 
309  /**
310  * Retrieve the list of fitting points
311  * @return const CCopasiVector< CFittingPoint > & fittingPoints
312  */
314 
315  /**
316  * This method needs to be called whenever the Object Map
317  * is changed
318  */
319  void updateFittedPoints();
320 
321  /**
322  * This method is used for output to fill the fitted points
323  * with the values of the index data record. If index exceedds the
324  * number of data records all values are set to NaN.
325  * If includeSimulation = false the entries for the simulation results
326  * are set to NaN. (This means the simulated time series is not plotted and
327  * can be output using a different mechanism)
328  */
329  void updateFittedPointValues(const size_t & index, bool includeSimulation);
330 
331  /**
332  * Fill the fitted points with values from the extended time series
333  */
334  void updateFittedPointValuesFromExtendedTimeSeries(const size_t & index);
335 
336  /**
337  * Retrieve the number of columns
338  * @return const unsigned C_INT32 & numColumns
339  */
340  const unsigned C_INT32 & getNumColumns() const;
341 
342  /**
343  * Set the number of columns in a stream
344  * @param const unsigned C_INT32 & cols
345  * @return bool success
346  */
347  bool setNumColumns(const unsigned C_INT32 & cols);
348 
349  /**
350  * Retrieve the first row
351  * @return const unsigned C_INT32 & firstRow
352  */
353  const unsigned C_INT32 & getFirstRow() const;
354 
355  /**
356  * Set the first row containing data
357  * @param const unsigned C_INT32 & firstRow
358  * @return bool success
359  */
360  bool setFirstRow(const unsigned C_INT32 & firstRow);
361 
362  /**
363  * Retrieve the last row
364  * @return const unsigned C_INT32 & lastRow
365  */
366  const unsigned C_INT32 & getLastRow() const;
367 
368  /**
369  * Set the last row containing data
370  * @param const unsigned C_INT32 & lastRow
371  * @return bool success
372  */
373  bool setLastRow(const unsigned C_INT32 & lastRow);
374 
375  /**
376  * Retrieve the header row
377  * @return const unsigned C_INT32 & headerRow
378  */
379  const unsigned C_INT32 & getHeaderRow() const;
380 
381  /**
382  * Set the header row containing data
383  * @param const unsigned C_INT32 & headerRow
384  * @return bool success
385  */
386  bool setHeaderRow(const unsigned C_INT32 & headerRow);
387 
388  /**
389  * Retrieve the number of data rows
390  * @return const size_t numDataRows
391  */
392  size_t getNumDataRows() const;
393 
394  /**
395  * Retrieve the separator
396  * @return const std::string & separator
397  */
398  const std::string & getSeparator() const;
399 
400  /**
401  * Set the seperator used when reading a stream
402  * @param const std::string & separator
403  * @return bool success
404  */
405  bool setSeparator(const std::string & seperator);
406 
407  /**
408  * Retrieve the method used for calculating the default weights.
409  * @return const WeightMethod & weightMethod
410  */
411  const WeightMethod & getWeightMethod() const;
412 
413  /**
414  * Set the weight calculation method and resets manual adjusted weights
415  * @param const WeightMethod & weightMethod
416  * @return bool success
417  */
418  bool setWeightMethod(const WeightMethod & weightMethod);
419 
420  /**
421  * Check whter the data is row oriented.
422  * @return const bool & isRowOriented
423  */
424  const bool & isRowOriented() const;
425 
426  /**
427  * Set whether the data is row oriented. This only
428  * impacts reading the data from a stream
429  * @param const bool & isRowOriented
430  * @return bool success
431  */
432  bool setIsRowOriented(const bool & isRowOriented);
433 
434  /**
435  * Comparison used to evaluate the order of the experiment
436  * based on the filename and starting line number.
437  * @param const CExperiment * lhs;
438  * @param const CExperiment * rhs;
439  * @return bool isLess
440  */
441  static bool compare(const CExperiment * lhs,
442  const CExperiment * rhs);
443 
444  /**
445  * Comparison operator
446  * @param const CExperiment & lhs
447  * @param const CExperiment & rhs
448  * @return bool equal
449  */
450  friend bool operator == (const CExperiment & lhs,
451  const CExperiment & rhs);
452 
453  /**
454  * This is the output method for the statistics for the experiment.
455  * This method is called from CFitProblem::printResult.
456  * @param std::ostream * ostream
457  */
458  virtual void printResult(std::ostream * ostream) const;
459 
460  /**
461  * Retrieve the value of the objective function
462  * @param const C_FLOAT64 & errorMean
463  */
464  const C_FLOAT64 & getObjectiveValue() const;
465 
466  /**
467  * Retrieve the RMS
468  * @param const C_FLOAT64 & RMS
469  */
470  const C_FLOAT64 & getRMS() const;
471 
472  /**
473  * Retrieve the mean of the error
474  * @param const C_FLOAT64 & errorMean
475  */
476  const C_FLOAT64 & getErrorMean() const;
477 
478  /**
479  * Retrieve the std. deviation of the error
480  * @param const C_FLOAT64 & errorMeanSD
481  */
482  const C_FLOAT64 & getErrorMeanSD() const;
483 
484  /**
485  * Retrieve the objective value for the object.
486  * @param CCopasiObject *const& pObject
487  * @return C_FLOAT64 objectiveValue
488  */
489  C_FLOAT64 getObjectiveValue(CCopasiObject * const& pObject) const;
490 
491  /**
492  * Retrieve the default scaling factor for the object.
493  * @param CCopasiObject *const& pObject
494  * @return C_FLOAT64 defaultScale
495  */
496  C_FLOAT64 getDefaultScale(const CCopasiObject * const& pObject) const;
497 
498  /**
499  * Retrieve the RMS for the object.
500  * @param CCopasiObject *const& pObject
501  * @return C_FLOAT64 RMS
502  */
503  C_FLOAT64 getRMS(CCopasiObject *const& pObject) const;
504 
505  /**
506  * Retrieve the sum of errors (scaled residuals) for the object.
507  * @param CCopasiObject *const& pObject
508  * @return C_FLOAT64 errorSum
509  */
510  C_FLOAT64 getErrorSum(CCopasiObject *const& pObject) const;
511 
512  /**
513  * Retrieve the error mean std. deviations for the object.
514  * More specifically this is the sum of the squared deviations of the residuals
515  * from the provided errorMean. The sum is over all data points for the object.
516  * @param CCopasiObject *const& pObject
517  * @param C_FLOAT64 errorMean
518  * @return C_FLOAT64 errorMeanSD
519  */
520  C_FLOAT64 getErrorMeanSD(CCopasiObject *const& pObject,
521  const C_FLOAT64 & errorMean) const;
522 
523  /**
524  * Retrieve the data point count for the object.
525  * @param CCopasiObject * const & pObject
526  * @return size_t count
527  */
528  size_t getColumnValidValueCount(CCopasiObject * const & pObject) const;
529 
530  /**
531  * Retrieve the list of independent objects
532  * @return const std::set< const CCopasiObject * > & independentObjects
533  */
534  const std::set< const CCopasiObject * > & getIndependentObjects() const;
535 
536  /**
537  * Fix files written with Version 4.10.55, which wrote the square root of user defined weights for the
538  * parameter fitting task
539  */
540  void fixBuild55();
541 
542 private:
543  /**
544  * Allocates all group parameters and assures that they are
545  * properly initialized.
546  */
547  void initializeParameter();
548 
549  /**
550  * Initialize the scaling matrix
551  */
553 
554 private:
555  // Attributes
556 
557  /**
558  * This is realized as a CCopasiParameter type STRING
559  */
560  std::string * mpFileName;
561 
562  /**
563  * This is realized as a CCopasiParameter type UINT
564  */
565  unsigned C_INT32 * mpFirstRow;
566 
567  /**
568  * This is realized as a CCopasiParameter type UINT
569  */
570  unsigned C_INT32 * mpLastRow;
571 
572  /**
573  * This is realized as a CCopasiParameter type UINT
574  */
576 
577  /**
578  * Indicates whether the weights of this experiment should be normalized to 1
579  */
581 
582  /**
583  * This is realized as a CCopasiParameter type STRING
584  */
585  std::string * mpSeparator;
586 
587  /**
588  * This is realized as a CCopasiParameter type UINT
589  */
591 
592  /**
593  * This is realized as a CCopasiParameter type BOOL
594  */
596 
597  /**
598  * This is realized as a CCopasiParameter type UINT
599  */
600  unsigned C_INT32 *mpHeaderRow;
601 
602  /**
603  * This is realized as a CCopasiParameter type UINT
604  */
605  unsigned C_INT32 * mpNumColumns;
606 
607  /**
608  * The column names if available after reading a file
609  */
610  std::vector< std::string > mColumnName;
611 
612  /**
613  * This is realized as a CCopasiParameter type GROUP
614  */
616 
617  /**
618  * The vector of time points
619  */
621 
622  /**
623  * The relevant independent experimental data after reading a file
624  */
626 
627  /**
628  * The relevant dependent experimental data after reading a file
629  */
631 
632  /**
633  * The individual scale for each residual
634  */
636 
637  /**
638  * Indicates whether we have missing data
639  */
641 
643 
645 
647 
649 
651 
652  std::vector< Refresh * > mRefreshMethods;
653 
654  std::set< const CCopasiObject * > mIndependentObjects;
655 
657 
658  size_t mNumDataRows;
659 
660  /**
661  * The relevant dependent experimental data after reading a file
662  */
664 
669 
672 
676 
677  /**
678  * A map of all dependent data objects to dependent data columns;
679  */
680  std::map< CCopasiObject *, size_t > mDependentObjects;
681 
683 
684  //storage for extended time series (for nicer plotting)
686 
687  //points to the next empty space in the time series storage
689 
690  //number of data sets in the extended time series
692 };
693 
694 #endif // COPASI_CExperiment
const CMatrix< C_FLOAT64 > & getIndependentData() const
const std::string & getFileName() const
C_FLOAT64 getDefaultScale(const CCopasiObject *const &pObject) const
std::vector< std::string > mColumnName
Definition: CExperiment.h:610
virtual bool elevateChildren()
bool setExperimentType(const CCopasiTask::Type &type)
C_FLOAT64 mWeightedError
Definition: CExperiment.h:58
friend bool operator==(const CExperiment &lhs, const CExperiment &rhs)
C_FLOAT64 mMean
Definition: CExperiment.h:665
virtual ~CExperiment()
const unsigned C_INT32 & getFirstRow() const
const C_FLOAT64 & getObjectiveValue() const
const CMatrix< C_FLOAT64 > & getDependentData() const
CVector< C_FLOAT64 > mDefaultColumnScale
Definition: CExperiment.h:646
CVector< C_FLOAT64 > mColumnRMS
Definition: CExperiment.h:674
unsigned C_INT32 * mpFirstRow
Definition: CExperiment.h:565
CFittingPoint(const std::string &name="unknown", const CCopasiContainer *pParent=NULL)
CMatrix< C_FLOAT64 > mDataDependent
Definition: CExperiment.h:630
CVector< C_FLOAT64 > mRowObjectiveValue
Definition: CExperiment.h:670
CVector< C_FLOAT64 * > mDependentValues
Definition: CExperiment.h:648
bool mMissingData
Definition: CExperiment.h:640
bool setIsRowOriented(const bool &isRowOriented)
CVector< size_t > mColumnValidValueCount
Definition: CExperiment.h:675
std::string * mpSeparator
Definition: CExperiment.h:585
bool setHeaderRow(const unsigned C_INT32 &headerRow)
size_t mNumDataRows
Definition: CExperiment.h:658
std::string * mpFileName
Definition: CExperiment.h:560
bool setFileName(const std::string &fileName)
const std::map< CCopasiObject *, size_t > & getDependentObjects() const
const WeightMethod & getWeightMethod() const
unsigned C_INT32 * mpNumColumns
Definition: CExperiment.h:605
#define C_INT32
Definition: copasi.h:90
void initExtendedTimeSeries(size_t s)
const std::set< const CCopasiObject * > & getIndependentObjects() const
size_t guessColumnNumber() const
C_FLOAT64 mObjectiveValue
Definition: CExperiment.h:667
C_FLOAT64 * mpDataDependentCalculated
Definition: CExperiment.h:663
C_FLOAT64 * mStorageIt
Definition: CExperiment.h:688
C_FLOAT64 mFittedValue
Definition: CExperiment.h:57
void setNormalizeWeightsPerExperiment(bool flag)
const CCopasiVector< CFittingPoint > & getFittingPoints() const
CCopasiVector< CFittingPoint > mFittingPoints
Definition: CExperiment.h:682
std::vector< Refresh * > mRefreshMethods
Definition: CExperiment.h:652
size_t getNumDataRows() const
static const char * XMLType[]
Definition: CExperiment.h:84
unsigned C_INT32 * mpLastRow
Definition: CExperiment.h:570
const std::vector< std::string > & getColumnNames() const
const C_FLOAT64 & getRMS() const
CMatrix< C_FLOAT64 > mDataIndependent
Definition: CExperiment.h:625
CExperimentObjectMap * mpObjectMap
Definition: CExperiment.h:615
void storeExtendedTimeSeriesData(C_FLOAT64 time)
virtual std::string getObjectDisplayName(bool regular=true, bool richtext=false) const
static const std::vector< CCopasiContainer * > EmptyList
const C_FLOAT64 & getErrorMean() const
static bool compare(const CExperiment *lhs, const CExperiment *rhs)
const std::string & getModelObjectCN() const
bool restoreModelIndependentData()
CVector< C_FLOAT64 > mRowRMS
Definition: CExperiment.h:671
static const char * WeightMethodType[]
Definition: CExperiment.h:106
bool setSeparator(const std::string &seperator)
std::set< const CCopasiObject * > mIndependentObjects
Definition: CExperiment.h:654
CVector< C_FLOAT64 > mMeans
Definition: CExperiment.h:642
C_FLOAT64 mMeanSD
Definition: CExperiment.h:666
void updateFittedPointValues(const size_t &index, bool includeSimulation)
const C_FLOAT64 & getErrorMeanSD() const
CCopasiTask::Type * mpTaskType
Definition: CExperiment.h:575
C_FLOAT64 getErrorSum(CCopasiObject *const &pObject) const
CExperiment(const CCopasiContainer *pParent, const std::string &name="Experiment")
Definition: CExperiment.cpp:76
CExperimentObjectMap & getObjectMap()
CRegisteredObjectName mModelObjectCN
Definition: CExperiment.h:54
CVector< C_FLOAT64 > mColumnScale
Definition: CExperiment.h:644
const unsigned C_INT32 & getHeaderRow() const
C_FLOAT64 sumOfSquares(const size_t &index, C_FLOAT64 *&residuals) const
static const std::string WeightMethodName[]
Definition: CExperiment.h:101
C_FLOAT64 sumOfSquaresStore(const size_t &index, C_FLOAT64 *&dependentValues)
std::map< CCopasiObject *, size_t > mDependentObjects
Definition: CExperiment.h:680
size_t mExtendedTimeSeriesSize
Definition: CExperiment.h:691
const bool & isRowOriented() const
size_t getColumnValidValueCount(CCopasiObject *const &pObject) const
long int flag
Definition: f2c.h:52
size_t extendedTimeSeriesSize() const
bool * mpRowOriented
Definition: CExperiment.h:595
const CCopasiTask::Type & getExperimentType() const
bool calculateWeights()
const CVector< C_FLOAT64 > & getTimeData() const
unsigned C_INT32 * mpHeaderRow
Definition: CExperiment.h:600
CVector< C_FLOAT64 > mDataTime
Definition: CExperiment.h:620
CVector< C_FLOAT64 > mColumnObjectiveValue
Definition: CExperiment.h:673
C_FLOAT64 mIndependentValue
Definition: CExperiment.h:55
void initializeScalingMatrix()
#define C_FLOAT64
Definition: copasi.h:92
void updateFittedPoints()
void updateFittedPointValuesFromExtendedTimeSeries(const size_t &index)
void setValues(const C_FLOAT64 &independent, const C_FLOAT64 &measured, const C_FLOAT64 &fitted, const C_FLOAT64 &weightedError)
bool compile(const std::vector< CCopasiContainer * > listOfContainer=CCopasiContainer::EmptyList)
WeightMethod * mpWeightMethod
Definition: CExperiment.h:590
const std::string & getSeparator() const
bool setNumColumns(const unsigned C_INT32 &cols)
bool * mpNormalizeWeightsPerExperiment
Definition: CExperiment.h:580
bool calculateStatistics()
bool setFirstRow(const unsigned C_INT32 &firstRow)
C_FLOAT64 mRMS
Definition: CExperiment.h:668
CVector< C_FLOAT64 > mExtendedTimeSeries
Definition: CExperiment.h:685
virtual void printResult(std::ostream *ostream) const
const unsigned C_INT32 & getNumColumns() const
const unsigned C_INT32 & getLastRow() const
bool updateModelWithIndependentData(const size_t &index)
CVector< C_FLOAT64 > mIndependentValues
Definition: CExperiment.h:656
bool setLastRow(const unsigned C_INT32 &lastRow)
CVector< UpdateMethod * > mIndependentUpdateMethods
Definition: CExperiment.h:650
bool getNormalizeWeightsPerExperiment() const
bool readColumnNames()
CExperiment & operator=(const CExperiment &rhs)
static const std::string TypeName[]
Definition: CExperiment.h:79
C_FLOAT64 mMeasuredValue
Definition: CExperiment.h:56
bool setWeightMethod(const WeightMethod &weightMethod)
CMatrix< C_FLOAT64 > mScale
Definition: CExperiment.h:635
bool read(std::istream &in, size_t &currentLine)
void initializeParameter()
void fixBuild55()