queso-0.50.1
Protected Member Functions | Protected Attributes | List of all members
QUESO::BaseVectorSequence< V, M > Class Template Referenceabstract

Base class for handling vector and array samples (sequence of vectors or arrays). More...

#include <VectorSequence.h>

Inheritance diagram for QUESO::BaseVectorSequence< V, M >:
Inheritance graph
[legend]
Collaboration diagram for QUESO::BaseVectorSequence< V, M >:
Collaboration graph
[legend]

Public Member Functions

Constructor/Destructor methods
 BaseVectorSequence (const VectorSpace< V, M > &vectorSpace, unsigned int subSequenceSize, const std::string &name)
 Default constructor. More...
 
virtual ~BaseVectorSequence ()
 Destructor. More...
 
Sequence methods
virtual unsigned int subSequenceSize () const =0
 Size of the sub-sequence of vectors. See template specialization. More...
 
unsigned int unifiedSequenceSize () const
 Calculates the size of the unified sequence of vectors. More...
 
unsigned int vectorSizeLocal () const
 Local dimension (size) of the vector space. More...
 
unsigned int vectorSizeGlobal () const
 Global dimension (size) of the vector space. More...
 
const VectorSpace< V, M > & vectorSpace () const
 Vector space; access to protected attribute VectorSpace<V,M>& m_vectorSpace. More...
 
const std::string & name () const
 Access to protected attribute m_name: name of the sequence of vectors. More...
 
void setName (const std::string &newName)
 Changes the name of the sequence of vectors. More...
 
void clear ()
 Reset the values and the size of the sequence of vectors. More...
 
const V & subMinPlain () const
 Finds the minimum value of the sub-sequence. More...
 
const V & unifiedMinPlain () const
 Finds the minimum value of the unified sequence. More...
 
const V & subMaxPlain () const
 Finds the maximum value of the sub-sequence. More...
 
const V & unifiedMaxPlain () const
 Finds the maximum value of the unified sequence. More...
 
const V & subMeanPlain () const
 Finds the mean value of the sub-sequence. More...
 
const V & unifiedMeanPlain () const
 Finds the mean value of the unified sequence. More...
 
const V & subMedianPlain () const
 Finds the median value of the sub-sequence. More...
 
const V & unifiedMedianPlain () const
 Finds the median value of the unified sequence. More...
 
const V & subSampleVariancePlain () const
 Finds the variance of a sample of the sub-sequence. More...
 
const V & unifiedSampleVariancePlain () const
 Finds the variance of a sample of the unified sequence. More...
 
const BoxSubset< V, M > & subBoxPlain () const
 Finds a box subset of the sub-sequence (given by its min and max values calculated via subMinPlain and subMaxPlain). More...
 
const BoxSubset< V, M > & unifiedBoxPlain () const
 Finds a box subset of the unified-sequence (given by the min and max values of the unified sequence calculated via unifiedMinPlain and unifiedMaxPlain). More...
 
void deleteStoredVectors ()
 Deletes all the stored vectors. More...
 
void append (const BaseVectorSequence< V, M > &src, unsigned int initialPos, unsigned int numPos)
 Appends the vector src to this vector. More...
 
double subPositionsOfMaximum (const ScalarSequence< double > &subCorrespondingScalarValues, BaseVectorSequence< V, M > &subPositionsOfMaximum)
 Finds the positions where the maximum element occurs in the sub-sequence. More...
 
double unifiedPositionsOfMaximum (const ScalarSequence< double > &subCorrespondingScalarValues, BaseVectorSequence< V, M > &unifiedPositionsOfMaximum)
 Finds the positions where the maximum element occurs in the unified sequence. More...
 
virtual void resizeSequence (unsigned int newSubSequenceSize)=0
 Resize the sequence. See template specialization. More...
 
virtual void resetValues (unsigned int initialPos, unsigned int numPos)=0
 Reset the values of the sequence. See template specialization. More...
 
virtual void erasePositions (unsigned int initialPos, unsigned int numPos)=0
 Erase numPos positions in the sequence, starting at position initialPos. More...
 
virtual void getPositionValues (unsigned int posId, V &vec) const =0
 Gets the values of the sequence at position posId and stores them at vec. See template specialization. More...
 
virtual void setPositionValues (unsigned int posId, const V &vec)=0
 Set the values in vec at position posId of the sequence. See template specialization. More...
 
void setGaussian (const V &meanVec, const V &stdDevVec)
 Sets the values of the sequence as a Gaussian distribution of mean given by meanVec and standard deviation by stdDevVec. More...
 
void setUniform (const V &aVec, const V &bVec)
 Sets the values of the sequence as a uniform distribution between the values given by vectors aVec and bVec. More...
 
virtual void subMeanExtra (unsigned int initialPos, unsigned int numPos, V &meanVec) const =0
 Finds the mean value of the sub-sequence, considering numPos positions starting at position initialPos. See template specialization. More...
 
virtual void unifiedMeanExtra (unsigned int initialPos, unsigned int numPos, V &unifiedMeanVec) const =0
 Finds the mean value of the unified sequence of numPos positions starting at position initialPos. See template specialization. More...
 
virtual void subMedianExtra (unsigned int initialPos, unsigned int numPos, V &medianVec) const =0
 Finds the median value of the sub-sequence, considering numPos positions starting at position initialPos. See template specialization. More...
 
virtual void unifiedMedianExtra (unsigned int initialPos, unsigned int localNumPos, V &unifiedMedianVec) const =0
 Finds the median value of the unified sequence, considering numPos positions starting at position initialPos. See template specialization. More...
 
virtual void subSampleVarianceExtra (unsigned int initialPos, unsigned int numPos, const V &meanVec, V &samVec) const =0
 Finds the sample variance of the sub-sequence, considering numPos positions starting at position initialPos and of mean meanVec. See template specialization. More...
 
virtual void unifiedSampleVarianceExtra (unsigned int initialPos, unsigned int numPos, const V &unifiedMeanVec, V &unifiedSamVec) const =0
 Finds the sample variance of the unified sequence, considering numPos positions starting at position initialPos and of mean meanVec. See template specialization. More...
 
virtual void subPopulationVariance (unsigned int initialPos, unsigned int numPos, const V &meanVec, V &popVec) const =0
 Finds the population variance of the sub-sequence, considering numPos positions starting at position initialPos and of mean meanVec. See template specialization. More...
 
virtual void unifiedPopulationVariance (unsigned int initialPos, unsigned int numPos, const V &unifiedMeanVec, V &unifiedPopVec) const =0
 Finds the population variance of the unified-sequence, considering numPos positions starting at position initialPos and of mean meanVec. See template specialization. More...
 
virtual void autoCovariance (unsigned int initialPos, unsigned int numPos, const V &meanVec, unsigned int lag, V &covVec) const =0
 Calculates the autocovariance. See template specialization. More...
 
virtual void autoCorrViaDef (unsigned int initialPos, unsigned int numPos, unsigned int lag, V &corrVec) const =0
 Calculates autocorrelation via definition. See template specialization. More...
 
virtual void autoCorrViaFft (unsigned int initialPos, unsigned int numPos, const std::vector< unsigned int > &lags, std::vector< V * > &corrVecs) const =0
 Calculates autocorrelation via Fast Fourier transforms (FFT). See template specialization. More...
 
virtual void autoCorrViaFft (unsigned int initialPos, unsigned int numPos, unsigned int numSum, V &autoCorrsSumVec) const =0
 Calculates autocorrelation via Fast Fourier transforms (FFT). See template specialization. More...
 
virtual void subMinMaxExtra (unsigned int initialPos, unsigned int numPos, V &minVec, V &maxVec) const =0
 Finds the minimum and the maximum values of the sub-sequence, considering numPos positions starting at position initialPos. See template specialization. More...
 
virtual void unifiedMinMaxExtra (unsigned int initialPos, unsigned int numPos, V &unifiedMinVec, V &unifiedMaxVec) const =0
 Finds the minimum and the maximum values of the unified sequence, considering numPos positions starting at position initialPos. See template specialization. More...
 
virtual void subHistogram (unsigned int initialPos, const V &minVec, const V &maxVec, std::vector< V * > &centersForAllBins, std::vector< V * > &quanttsForAllBins) const =0
 Calculates the histogram of the sub-sequence. See template specialization. More...
 
virtual void unifiedHistogram (unsigned int initialPos, const V &unifiedMinVec, const V &unifiedMaxVec, std::vector< V * > &unifiedCentersForAllBins, std::vector< V * > &unifiedQuanttsForAllBins) const =0
 Calculates the histogram of the unified sequence. See template specialization. More...
 
virtual void subInterQuantileRange (unsigned int initialPos, V &iqrVec) const =0
 Returns the interquartile range of the values in the sub-sequence. See template specialization. More...
 
virtual void unifiedInterQuantileRange (unsigned int initialPos, V &unifiedIqrVec) const =0
 Returns the interquartile range of the values in the unified sequence. See template specialization. More...
 
virtual void subScalesForKde (unsigned int initialPos, const V &iqrVec, unsigned int kdeDimension, V &scaleVec) const =0
 Selects the scales (bandwidth, scaleVec) for the kernel density estimation, considering only the sub-sequence. See template specialization. More...
 
virtual void unifiedScalesForKde (unsigned int initialPos, const V &unifiedIqrVec, unsigned int kdeDimension, V &unifiedScaleVec) const =0
 Selects the scales (bandwidth) for the kernel density estimation, considering the unified sequence. See template specialization. More...
 
virtual void subGaussian1dKde (unsigned int initialPos, const V &scaleVec, const std::vector< V * > &evaluationParamVecs, std::vector< V * > &densityVecs) const =0
 Gaussian kernel for the KDE estimate of the sub-sequence. See template specialization. More...
 
virtual void unifiedGaussian1dKde (unsigned int initialPos, const V &unifiedScaleVec, const std::vector< V * > &unifiedEvaluationParamVecs, std::vector< V * > &unifiedDensityVecs) const =0
 Gaussian kernel for the KDE estimate of the unified sequence. See template specialization. More...
 
virtual void subWriteContents (unsigned int initialPos, unsigned int numPos, const std::string &fileName, const std::string &fileType, const std::set< unsigned int > &allowedSubEnvIds) const =0
 Writes info of the sub-sequence to a file. See template specialization. More...
 
virtual void subWriteContents (unsigned int initialPos, unsigned int numPos, std::ofstream &ofsvar, const std::string &fileType) const =0
 Writes info of the sub-sequence to a file. See template specialization. More...
 
virtual void unifiedWriteContents (const std::string &fileName, const std::string &fileType) const =0
 Writes info of the unified sequence to a file. See template specialization. More...
 
virtual void unifiedReadContents (const std::string &fileName, const std::string &fileType, const unsigned int subSequenceSize)=0
 Reads info of the unified sequence from a file. See template specialization. More...
 
virtual void select (const std::vector< unsigned int > &idsOfUniquePositions)=0
 Select positions in the sequence of vectors. See template specialization. More...
 
virtual void filter (unsigned int initialPos, unsigned int spacing)=0
 Filters positions in the sequence of vectors, starting at initialPos, and with spacing given by spacing. See template specialization. More...
 
void computeFilterParams (std::ofstream *passedOfs, unsigned int &initialPos, unsigned int &spacing)
 Computes the filtering parameters spacing for the sequence of vectors. More...
 
virtual double estimateConvBrooksGelman (unsigned int initialPos, unsigned int numPos) const =0
 Estimates convergence rate using Brooks & Gelman method. See template specialization. More...
 
virtual void extractScalarSeq (unsigned int initialPos, unsigned int spacing, unsigned int numPos, unsigned int paramId, ScalarSequence< double > &scalarSeq) const =0
 Extracts a sequence of scalars of size numPos, starting at position initialPos, given spacing spacing. See template specialization. More...
 

Protected Member Functions

void copy (const BaseVectorSequence< V, M > &src)
 Copies vector sequence src to this. More...
 
virtual void extractRawData (unsigned int initialPos, unsigned int spacing, unsigned int numPos, unsigned int paramId, std::vector< double > &rawData) const =0
 Extracts the raw data. See template specialization. More...
 

Protected Attributes

const BaseEnvironmentm_env
 
const VectorSpace< V, M > & m_vectorSpace
 
std::string m_name
 
Fft< double > * m_fftObj
 
V * m_subMinPlain
 
V * m_unifiedMinPlain
 
V * m_subMaxPlain
 
V * m_unifiedMaxPlain
 
V * m_subMeanPlain
 
V * m_unifiedMeanPlain
 
V * m_subMedianPlain
 
V * m_unifiedMedianPlain
 
V * m_subSampleVariancePlain
 
V * m_unifiedSampleVariancePlain
 
BoxSubset< V, M > * m_subBoxPlain
 
BoxSubset< V, M > * m_unifiedBoxPlain
 

Detailed Description

template<class V, class M>
class QUESO::BaseVectorSequence< V, M >

Base class for handling vector and array samples (sequence of vectors or arrays).

This class handles either vector or array samples generated by an algorithm, as well as operations that can be carried over them, e.g., calculation of means, correlation and covariance matrices.

Definition at line 54 of file VectorSequence.h.

Constructor & Destructor Documentation

template<class V, class M>
QUESO::BaseVectorSequence< V, M >::BaseVectorSequence ( const VectorSpace< V, M > &  vectorSpace,
unsigned int  subSequenceSize,
const std::string &  name 
)

Default constructor.

Definition at line 34 of file VectorSequence.C.

38  :
39  m_env (vectorSpace.env()),
41  m_name (name),
42  m_fftObj (new Fft<double>(m_env)),
43  m_subMinPlain (NULL),
44  m_unifiedMinPlain (NULL),
45  m_subMaxPlain (NULL),
46  m_unifiedMaxPlain (NULL),
47  m_subMeanPlain (NULL),
48  m_unifiedMeanPlain (NULL),
49  m_subMedianPlain (NULL),
50  m_unifiedMedianPlain (NULL),
53  m_subBoxPlain (NULL),
54  m_unifiedBoxPlain (NULL)
55 {
56  if (subSequenceSize) {}; // just to avoid compiler warning
57 }
const std::string & name() const
Access to protected attribute m_name: name of the sequence of vectors.
BoxSubset< V, M > * m_unifiedBoxPlain
BoxSubset< V, M > * m_subBoxPlain
const VectorSpace< V, M > & m_vectorSpace
const VectorSpace< V, M > & vectorSpace() const
Vector space; access to protected attribute VectorSpace&lt;V,M&gt;&amp; m_vectorSpace.
const BaseEnvironment & m_env
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V , class M >
QUESO::BaseVectorSequence< V, M >::~BaseVectorSequence ( )
virtual

Destructor.

Definition at line 60 of file VectorSequence.C.

61 {
62  //clear();
63  this->deleteStoredVectors();
64  if (m_fftObj != NULL) delete m_fftObj;
65 }
void deleteStoredVectors()
Deletes all the stored vectors.

Member Function Documentation

template<class V, class M>
void QUESO::BaseVectorSequence< V, M >::append ( const BaseVectorSequence< V, M > &  src,
unsigned int  initialPos,
unsigned int  numPos 
)

Appends the vector src to this vector.

This routine deletes all stored computed vectors

Definition at line 357 of file VectorSequence.C.

References QUESO::BaseVectorSequence< V, M >::getPositionValues(), QUESO::BaseVectorSequence< V, M >::subSequenceSize(), UQ_FATAL_TEST_MACRO, and QUESO::BaseVectorSequence< V, M >::vectorSpace().

Referenced by QUESO::MLSampling< P_V, P_M >::generateBalLinkedChains_all(), and QUESO::MLSampling< P_V, P_M >::generateUnbLinkedChains_all().

361 {
362  UQ_FATAL_TEST_MACRO((src.subSequenceSize() < (initialPos+1)),
363  m_env.worldRank(),
364  "BaseVectorSequence<V,M>::append()",
365  "initialPos is too big");
366 
367  UQ_FATAL_TEST_MACRO((src.subSequenceSize() < (initialPos+numPos)),
368  m_env.worldRank(),
369  "BaseVectorSequence<V,M>::append()",
370  "numPos is too big");
371 
372  this->deleteStoredVectors();
373  unsigned int currentSize = this->subSequenceSize();
374  this->resizeSequence(currentSize+numPos);
375  V tmpVec(src.vectorSpace().zeroVector());
376  for (unsigned int i = 0; i < numPos; ++i) {
377  src.getPositionValues(initialPos+i,tmpVec);
378  this->setPositionValues(currentSize+i,tmpVec);
379  }
380 
381  return;
382 }
virtual void setPositionValues(unsigned int posId, const V &vec)=0
Set the values in vec at position posId of the sequence. See template specialization.
int worldRank() const
Returns the process world rank.
Definition: Environment.C:235
virtual void resizeSequence(unsigned int newSubSequenceSize)=0
Resize the sequence. See template specialization.
void deleteStoredVectors()
Deletes all the stored vectors.
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
Definition: Defines.h:222
const BaseEnvironment & m_env
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::autoCorrViaDef ( unsigned int  initialPos,
unsigned int  numPos,
unsigned int  lag,
V &  corrVec 
) const
pure virtual

Calculates autocorrelation via definition. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >, and QUESO::ArrayOfSequences< V, M >.

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::autoCorrViaFft ( unsigned int  initialPos,
unsigned int  numPos,
const std::vector< unsigned int > &  lags,
std::vector< V * > &  corrVecs 
) const
pure virtual

Calculates autocorrelation via Fast Fourier transforms (FFT). See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >, and QUESO::ArrayOfSequences< V, M >.

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::autoCorrViaFft ( unsigned int  initialPos,
unsigned int  numPos,
unsigned int  numSum,
V &  autoCorrsSumVec 
) const
pure virtual

Calculates autocorrelation via Fast Fourier transforms (FFT). See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >, and QUESO::ArrayOfSequences< V, M >.

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::autoCovariance ( unsigned int  initialPos,
unsigned int  numPos,
const V &  meanVec,
unsigned int  lag,
V &  covVec 
) const
pure virtual

Calculates the autocovariance. See template specialization.

The autocovariance is the covariance of a variable with itself at some other time. It is calculated over a sequence of vectors with initial position initialPos, considering numPos positions, a lag of lag, with mean given by meanVec. The results are saved in the output vector covVec/

Implemented in QUESO::SequenceOfVectors< V, M >, and QUESO::ArrayOfSequences< V, M >.

template<class V , class M >
void QUESO::BaseVectorSequence< V, M >::clear ( )

Reset the values and the size of the sequence of vectors.

Definition at line 136 of file VectorSequence.C.

Referenced by QUESO::MLSampling< P_V, P_M >::generateSequence(), and QUESO::MLSampling< P_V, P_M >::generateSequence_Step02_inter0().

137 {
138  unsigned int numPos = this->subSequenceSize();
139  if (numPos) {
140  this->resetValues(0,numPos);
141  this->resizeSequence(0);
142  }
143 
144  return;
145 }
virtual void resizeSequence(unsigned int newSubSequenceSize)=0
Resize the sequence. See template specialization.
virtual void resetValues(unsigned int initialPos, unsigned int numPos)=0
Reset the values of the sequence. See template specialization.
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V , class M >
void QUESO::BaseVectorSequence< V, M >::computeFilterParams ( std::ofstream *  passedOfs,
unsigned int &  initialPos,
unsigned int &  spacing 
)

Computes the filtering parameters spacing for the sequence of vectors.

Definition at line 613 of file VectorSequence.C.

References UQ_FATAL_TEST_MACRO.

Referenced by QUESO::MLSampling< P_V, P_M >::generateSequence(), QUESO::MetropolisHastingsSG< P_V, P_M >::generateSequence(), and QUESO::MLSampling< P_V, P_M >::generateSequence_Step11_inter0().

617 {
618  if (m_env.subDisplayFile()) {
619  *m_env.subDisplayFile() << "\n"
620  << "\n-----------------------------------------------------"
621  << "\n Computing filter parameters for chain '" << m_name << "' ..."
622  << "\n-----------------------------------------------------"
623  << "\n"
624  << std::endl;
625  }
626 
627  bool okSituation = ((passedOfs == NULL ) ||
628  ((passedOfs != NULL) && (m_env.subRank() >= 0)));
629  UQ_FATAL_TEST_MACRO(!okSituation,
630  m_env.worldRank(),
631  "BaseVectorSequence<V,M>::computeFilterParams()",
632  "unexpected combination of file pointer and subRank");
633 
634  //initialPos = 0;
635  spacing = 1;
636 
637  if (m_env.subDisplayFile()) {
638  *m_env.subDisplayFile() << "\n-----------------------------------------------------"
639  << "\n Finished computing filter parameters for chain '" << m_name << "'"
640  << ": initialPos = " << initialPos
641  << ", spacing = " << spacing
642  << "\n-----------------------------------------------------"
643  << "\n"
644  << std::endl;
645  }
646 
647  return;
648 }
int subRank() const
Access function for sub-rank.
Definition: Environment.C:263
int worldRank() const
Returns the process world rank.
Definition: Environment.C:235
std::ofstream * subDisplayFile() const
Access function for m_subDisplayFile (displays file on stream).
Definition: Environment.C:305
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
Definition: Defines.h:222
const BaseEnvironment & m_env
template<class V, class M>
void QUESO::BaseVectorSequence< V, M >::copy ( const BaseVectorSequence< V, M > &  src)
protected

Copies vector sequence src to this.

This routine deletes all stored computed vectors

Definition at line 653 of file VectorSequence.C.

References QUESO::BaseVectorSequence< V, M >::m_name, QUESO::BaseVectorSequence< V, M >::m_vectorSpace, and UQ_FATAL_TEST_MACRO.

Referenced by QUESO::SequenceOfVectors< V, M >::copy().

654 {
655  // FIX ME: should check environments as well ???
656 
657  UQ_FATAL_TEST_MACRO(m_vectorSpace.dimLocal() != src.m_vectorSpace.dimLocal(),
658  m_env.worldRank(),
659  "SequenceOfVectors<V,M>::copy()",
660  "incompatible vector space dimensions");
661 
662  m_name = src.m_name;
663  this->deleteStoredVectors();
664 
665  return;
666 }
int worldRank() const
Returns the process world rank.
Definition: Environment.C:235
void deleteStoredVectors()
Deletes all the stored vectors.
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
Definition: Defines.h:222
const VectorSpace< V, M > & m_vectorSpace
const BaseEnvironment & m_env
template<class V , class M >
void QUESO::BaseVectorSequence< V, M >::deleteStoredVectors ( )

Deletes all the stored vectors.

It deletes all stored vectors and assigns NULL value to the pointers: m_subMinPlain, m_unifiedMinPlain, m_subMaxPlain, m_unifiedMaxPlain, m_subMeanPlain, m_unifiedMeanPlain, m_subMedianPlain, m_unifiedMedianPlain, m_subBoxPlain, m_unifiedBoxPlain, m_subSampleVariancePlain, m_unifiedSampleVariancePlain.

Definition at line 301 of file VectorSequence.C.

Referenced by QUESO::ArrayOfSequences< V, M >::erasePositions(), QUESO::SequenceOfVectors< V, M >::erasePositions(), QUESO::ArrayOfSequences< V, M >::resetValues(), QUESO::SequenceOfVectors< V, M >::resetValues(), QUESO::ArrayOfSequences< V, M >::resizeSequence(), QUESO::SequenceOfVectors< V, M >::resizeSequence(), QUESO::ArrayOfSequences< V, M >::setGaussian(), QUESO::ArrayOfSequences< V, M >::setPositionValues(), QUESO::SequenceOfVectors< V, M >::setPositionValues(), and QUESO::ArrayOfSequences< V, M >::setUniform().

302 {
303  if (m_subMinPlain) {
304  delete m_subMinPlain;
305  m_subMinPlain = NULL;
306  }
307  if (m_unifiedMinPlain) {
308  delete m_unifiedMinPlain;
309  m_unifiedMinPlain = NULL;
310  }
311  if (m_subMaxPlain) {
312  delete m_subMaxPlain;
313  m_subMaxPlain = NULL;
314  }
315  if (m_unifiedMaxPlain) {
316  delete m_unifiedMaxPlain;
317  m_unifiedMaxPlain = NULL;
318  }
319  if (m_subMeanPlain) {
320  delete m_subMeanPlain;
321  m_subMeanPlain = NULL;
322  }
323  if (m_unifiedMeanPlain) {
324  delete m_unifiedMeanPlain;
325  m_unifiedMeanPlain = NULL;
326  }
327  if (m_subMedianPlain) {
328  delete m_subMedianPlain;
329  m_subMedianPlain = NULL;
330  }
331  if (m_unifiedMedianPlain) {
332  delete m_unifiedMedianPlain;
333  m_unifiedMedianPlain = NULL;
334  }
338  }
342  }
343  if (m_subBoxPlain) {
344  delete m_subBoxPlain;
345  m_subBoxPlain = NULL;
346  }
347  if (m_unifiedBoxPlain) {
348  delete m_unifiedBoxPlain;
349  m_unifiedBoxPlain = NULL;
350  }
351 
352  return;
353 }
BoxSubset< V, M > * m_unifiedBoxPlain
BoxSubset< V, M > * m_subBoxPlain
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::erasePositions ( unsigned int  initialPos,
unsigned int  numPos 
)
pure virtual

Erase numPos positions in the sequence, starting at position initialPos.

This routine deletes all stored computed vectors

Implemented in QUESO::SequenceOfVectors< V, M >, and QUESO::ArrayOfSequences< V, M >.

template<class V, class M>
virtual double QUESO::BaseVectorSequence< V, M >::estimateConvBrooksGelman ( unsigned int  initialPos,
unsigned int  numPos 
) const
pure virtual

Estimates convergence rate using Brooks & Gelman method. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

Referenced by QUESO::MetropolisHastingsSG< P_V, P_M >::generateFullChain().

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::extractRawData ( unsigned int  initialPos,
unsigned int  spacing,
unsigned int  numPos,
unsigned int  paramId,
std::vector< double > &  rawData 
) const
protectedpure virtual

Extracts the raw data. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >, and QUESO::ArrayOfSequences< V, M >.

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::extractScalarSeq ( unsigned int  initialPos,
unsigned int  spacing,
unsigned int  numPos,
unsigned int  paramId,
ScalarSequence< double > &  scalarSeq 
) const
pure virtual

Extracts a sequence of scalars of size numPos, starting at position initialPos, given spacing spacing. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >, and QUESO::ArrayOfSequences< V, M >.

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::filter ( unsigned int  initialPos,
unsigned int  spacing 
)
pure virtual

Filters positions in the sequence of vectors, starting at initialPos, and with spacing given by spacing. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >, and QUESO::ArrayOfSequences< V, M >.

Referenced by QUESO::MetropolisHastingsSG< P_V, P_M >::generateSequence().

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::getPositionValues ( unsigned int  posId,
V &  vec 
) const
pure virtual
template<class V , class M >
const std::string & QUESO::BaseVectorSequence< V, M >::name ( ) const

Access to protected attribute m_name: name of the sequence of vectors.

This method is used, for instance, to recover the name of a sequence of vector samples, such as the 'rawChain' for the raw chain of samples used in an Monte Carlo algorithm.

Definition at line 121 of file VectorSequence.C.

Referenced by QUESO::MonteCarloSG< P_V, P_M, Q_V, Q_M >::actualGenerateSequence(), QUESO::MetropolisHastingsSG< P_V, P_M >::generateFullChain(), QUESO::MetropolisHastingsSG< P_V, P_M >::generateSequence(), QUESO::MonteCarloSG< P_V, P_M, Q_V, Q_M >::internGenerateSequence(), and QUESO::MetropolisHastingsSG< P_V, P_M >::writeInfo().

122 {
123  return m_name;
124 }
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::resetValues ( unsigned int  initialPos,
unsigned int  numPos 
)
pure virtual

Reset the values of the sequence. See template specialization.

This routine deletes all stored computed vectors

Implemented in QUESO::SequenceOfVectors< V, M >, and QUESO::ArrayOfSequences< V, M >.

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::resizeSequence ( unsigned int  newSubSequenceSize)
pure virtual
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::select ( const std::vector< unsigned int > &  idsOfUniquePositions)
pure virtual

Select positions in the sequence of vectors. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >, and QUESO::ArrayOfSequences< V, M >.

template<class V, class M >
void QUESO::BaseVectorSequence< V, M >::setGaussian ( const V &  meanVec,
const V &  stdDevVec 
)

Sets the values of the sequence as a Gaussian distribution of mean given by meanVec and standard deviation by stdDevVec.

This routine deletes all stored computed vectors

Definition at line 583 of file VectorSequence.C.

584 {
585  V gaussianVector(m_vectorSpace.zeroVector());
586  for (unsigned int j = 0; j < this->subSequenceSize(); ++j) {
587  gaussianVector.cwSetGaussian(meanVec,stdDevVec);
588  this->setPositionValues(j,gaussianVector);
589  }
590 
591  this->deleteStoredVectors();
592 
593  return;
594 }
virtual void setPositionValues(unsigned int posId, const V &vec)=0
Set the values in vec at position posId of the sequence. See template specialization.
void deleteStoredVectors()
Deletes all the stored vectors.
const VectorSpace< V, M > & m_vectorSpace
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V , class M >
void QUESO::BaseVectorSequence< V, M >::setName ( const std::string &  newName)
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::setPositionValues ( unsigned int  posId,
const V &  vec 
)
pure virtual
template<class V, class M >
void QUESO::BaseVectorSequence< V, M >::setUniform ( const V &  aVec,
const V &  bVec 
)

Sets the values of the sequence as a uniform distribution between the values given by vectors aVec and bVec.

This routine deletes all stored computed vectors

Definition at line 598 of file VectorSequence.C.

599 {
600  V uniformVector(m_vectorSpace.zeroVector());
601  for (unsigned int j = 0; j < this->subSequenceSize(); ++j) {
602  uniformVector.cwSetUniform(aVec,bVec);
603  this->setPositionValues(j,uniformVector);
604  }
605 
606  this->deleteStoredVectors();
607 
608  return;
609 }
virtual void setPositionValues(unsigned int posId, const V &vec)=0
Set the values in vec at position posId of the sequence. See template specialization.
void deleteStoredVectors()
Deletes all the stored vectors.
const VectorSpace< V, M > & m_vectorSpace
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V , class M >
const BoxSubset< V, M > & QUESO::BaseVectorSequence< V, M >::subBoxPlain ( ) const

Finds a box subset of the sub-sequence (given by its min and max values calculated via subMinPlain and subMaxPlain).

Definition at line 273 of file VectorSequence.C.

274 {
275  if (m_subBoxPlain == NULL) {
276  m_subBoxPlain = new BoxSubset<V,M>(m_name.c_str(),
278  this->subMinPlain(),
279  this->subMaxPlain());
280  }
281 
282  return *m_subBoxPlain;
283 }
const V & subMinPlain() const
Finds the minimum value of the sub-sequence.
BoxSubset< V, M > * m_subBoxPlain
const V & subMaxPlain() const
Finds the maximum value of the sub-sequence.
const VectorSpace< V, M > & m_vectorSpace
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::subGaussian1dKde ( unsigned int  initialPos,
const V &  scaleVec,
const std::vector< V * > &  evaluationParamVecs,
std::vector< V * > &  densityVecs 
) const
pure virtual

Gaussian kernel for the KDE estimate of the sub-sequence. See template specialization.

Computes a probability density estimate of the sample in this sub-sequence, starting at position initialPos. densityVecs is the vector of density values evaluated at the points in evaluationParamVecs. The estimate is based on Gaussian (normal) kernel function, using a window parameter (scaleVec).

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::subHistogram ( unsigned int  initialPos,
const V &  minVec,
const V &  maxVec,
std::vector< V * > &  centersForAllBins,
std::vector< V * > &  quanttsForAllBins 
) const
pure virtual

Calculates the histogram of the sub-sequence. See template specialization.

The IQR is a robust estimate of the spread of the data, since changes in the upper and lower 25% of the data do not affect it. If there are outliers in the data, then the IQR is more representative than the standard deviation as an estimate of the spread of the body of the data. The IQR is less efficient than the standard deviation as an estimate of the spread when the data is all from the normal distribution. (from Matlab)

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::subInterQuantileRange ( unsigned int  initialPos,
V &  iqrVec 
) const
pure virtual

Returns the interquartile range of the values in the sub-sequence. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V , class M >
const V & QUESO::BaseVectorSequence< V, M >::subMaxPlain ( ) const

Finds the maximum value of the sub-sequence.

Definition at line 175 of file VectorSequence.C.

176 {
177  if (m_subMaxPlain == NULL) {
178  if (m_subMinPlain == NULL) m_subMinPlain = m_vectorSpace.newVector();
179  m_subMaxPlain = m_vectorSpace.newVector();
181  }
182 
183  return *m_subMaxPlain;
184 }
virtual void subMinMaxExtra(unsigned int initialPos, unsigned int numPos, V &minVec, V &maxVec) const =0
Finds the minimum and the maximum values of the sub-sequence, considering numPos positions starting a...
const VectorSpace< V, M > & m_vectorSpace
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::subMeanExtra ( unsigned int  initialPos,
unsigned int  numPos,
V &  meanVec 
) const
pure virtual

Finds the mean value of the sub-sequence, considering numPos positions starting at position initialPos. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

Referenced by QUESO::MetropolisHastingsSG< P_V, P_M >::updateAdaptedCovMatrix().

template<class V , class M >
const V & QUESO::BaseVectorSequence< V, M >::subMeanPlain ( ) const

Finds the mean value of the sub-sequence.

Definition at line 201 of file VectorSequence.C.

Referenced by QUESO::MetropolisHastingsSG< P_V, P_M >::updateAdaptedCovMatrix().

202 {
203  if (m_subMeanPlain == NULL) {
204  m_subMeanPlain = m_vectorSpace.newVector();
206  }
207 
208  return *m_subMeanPlain;
209 }
virtual void subMeanExtra(unsigned int initialPos, unsigned int numPos, V &meanVec) const =0
Finds the mean value of the sub-sequence, considering numPos positions starting at position initialPo...
const VectorSpace< V, M > & m_vectorSpace
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::subMedianExtra ( unsigned int  initialPos,
unsigned int  numPos,
V &  medianVec 
) const
pure virtual

Finds the median value of the sub-sequence, considering numPos positions starting at position initialPos. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V , class M >
const V & QUESO::BaseVectorSequence< V, M >::subMedianPlain ( ) const

Finds the median value of the sub-sequence.

Definition at line 225 of file VectorSequence.C.

226 {
227  if (m_subMedianPlain == NULL) {
228  m_subMedianPlain = m_vectorSpace.newVector();
230  }
231 
232  return *m_subMedianPlain;
233 }
const VectorSpace< V, M > & m_vectorSpace
virtual void subMedianExtra(unsigned int initialPos, unsigned int numPos, V &medianVec) const =0
Finds the median value of the sub-sequence, considering numPos positions starting at position initial...
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::subMinMaxExtra ( unsigned int  initialPos,
unsigned int  numPos,
V &  minVec,
V &  maxVec 
) const
pure virtual

Finds the minimum and the maximum values of the sub-sequence, considering numPos positions starting at position initialPos. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V , class M >
const V & QUESO::BaseVectorSequence< V, M >::subMinPlain ( ) const

Finds the minimum value of the sub-sequence.

Definition at line 149 of file VectorSequence.C.

150 {
151  if (m_subMinPlain == NULL) {
152  m_subMinPlain = m_vectorSpace.newVector();
153  if (m_subMaxPlain == NULL) m_subMaxPlain = m_vectorSpace.newVector();
155  }
156 
157  return *m_subMinPlain;
158 }
virtual void subMinMaxExtra(unsigned int initialPos, unsigned int numPos, V &minVec, V &maxVec) const =0
Finds the minimum and the maximum values of the sub-sequence, considering numPos positions starting a...
const VectorSpace< V, M > & m_vectorSpace
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::subPopulationVariance ( unsigned int  initialPos,
unsigned int  numPos,
const V &  meanVec,
V &  popVec 
) const
pure virtual

Finds the population variance of the sub-sequence, considering numPos positions starting at position initialPos and of mean meanVec. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V, class M>
double QUESO::BaseVectorSequence< V, M >::subPositionsOfMaximum ( const ScalarSequence< double > &  subCorrespondingScalarValues,
BaseVectorSequence< V, M > &  subPositionsOfMaximum 
)

Finds the positions where the maximum element occurs in the sub-sequence.

Definition at line 386 of file VectorSequence.C.

References QUESO::BaseVectorSequence< V, M >::resizeSequence(), QUESO::BaseVectorSequence< V, M >::setPositionValues(), QUESO::ScalarSequence< T >::subMaxPlain(), QUESO::ScalarSequence< T >::subSequenceSize(), and UQ_FATAL_TEST_MACRO.

Referenced by QUESO::MetropolisHastingsSG< P_V, P_M >::generateSequence().

389 {
390  if (m_env.subDisplayFile()) {
391  *m_env.subDisplayFile() << "Entering BaseVectorSequence<V,M>::subPositionsOfMaximum()"
392  << ": subCorrespondingScalarValues,subSequenceSize() = " << subCorrespondingScalarValues.subSequenceSize()
393  << ", this->subSequenceSize = " << this->subSequenceSize()
394  << std::endl;
395  }
396 
397  UQ_FATAL_TEST_MACRO(subCorrespondingScalarValues.subSequenceSize() != this->subSequenceSize(),
398  m_env.worldRank(),
399  "BaseVectorSequence<V,M>::subPositionsOfMaximum()",
400  "invalid input");
401 
402  double subMaxValue = subCorrespondingScalarValues.subMaxPlain();
403  unsigned int iMax = subCorrespondingScalarValues.subSequenceSize();
404 
405  unsigned int subNumPos = 0;
406  for (unsigned int i = 0; i < iMax; ++i) {
407  if (subCorrespondingScalarValues[i] == subMaxValue) {
408  subNumPos++;
409  }
410  }
411 
412  V tmpVec(this->vectorSpace().zeroVector());
413  subPositionsOfMaximum.resizeSequence(subNumPos);
414  unsigned int j = 0;
415  for (unsigned int i = 0; i < iMax; ++i) {
416  if (subCorrespondingScalarValues[i] == subMaxValue) {
417  this->getPositionValues (i,tmpVec);
418  subPositionsOfMaximum.setPositionValues(j,tmpVec);
419  j++;
420  }
421  }
422 
423  if (m_env.subDisplayFile()) {
424  *m_env.subDisplayFile() << "Leaving BaseVectorSequence<V,M>::subPositionsOfMaximum()"
425  << std::endl;
426  }
427 
428  return subMaxValue;
429 }
const T & subMaxPlain() const
Finds the maximum value of the sub-sequence of scalars.
int worldRank() const
Returns the process world rank.
Definition: Environment.C:235
std::ofstream * subDisplayFile() const
Access function for m_subDisplayFile (displays file on stream).
Definition: Environment.C:305
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
Definition: Defines.h:222
virtual void getPositionValues(unsigned int posId, V &vec) const =0
Gets the values of the sequence at position posId and stores them at vec. See template specialization...
double subPositionsOfMaximum(const ScalarSequence< double > &subCorrespondingScalarValues, BaseVectorSequence< V, M > &subPositionsOfMaximum)
Finds the positions where the maximum element occurs in the sub-sequence.
unsigned int subSequenceSize() const
Size of the sub-sequence of scalars.
const VectorSpace< V, M > & vectorSpace() const
Vector space; access to protected attribute VectorSpace&lt;V,M&gt;&amp; m_vectorSpace.
const BaseEnvironment & m_env
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::subSampleVarianceExtra ( unsigned int  initialPos,
unsigned int  numPos,
const V &  meanVec,
V &  samVec 
) const
pure virtual

Finds the sample variance of the sub-sequence, considering numPos positions starting at position initialPos and of mean meanVec. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V , class M >
const V & QUESO::BaseVectorSequence< V, M >::subSampleVariancePlain ( ) const

Finds the variance of a sample of the sub-sequence.

Definition at line 249 of file VectorSequence.C.

250 {
251  if (m_subSampleVariancePlain == NULL) {
254  }
255 
256  return *m_subSampleVariancePlain;
257 }
const V & subMeanPlain() const
Finds the mean value of the sub-sequence.
const VectorSpace< V, M > & m_vectorSpace
virtual void subSampleVarianceExtra(unsigned int initialPos, unsigned int numPos, const V &meanVec, V &samVec) const =0
Finds the sample variance of the sub-sequence, considering numPos positions starting at position init...
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::subScalesForKde ( unsigned int  initialPos,
const V &  iqrVec,
unsigned int  kdeDimension,
V &  scaleVec 
) const
pure virtual

Selects the scales (bandwidth, scaleVec) for the kernel density estimation, considering only the sub-sequence. See template specialization.

The bandwidth of the kernel is a free parameter which exhibits a strong influence on the resulting estimate. Silverman (1986) suggests the following normal-based estimates: S1 = 1.06 × (standard deviation) × n^{-1/5} S2 = 0.79 × (iqrVec) × n^{-1/5}, where iqrVec is the interquartile range scaleVec = 0.90 × minimum(standard deviation, iqrVec /1.34) × n^{-1/5}. These estimates are popular due to their simplicity, and are used in QUESO with the adaptation of the exponent oven the sample size n (-1/5) with -1/(4 + kdeDimension) where kdeDimension is the KDE dimension.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V, class M>
virtual unsigned int QUESO::BaseVectorSequence< V, M >::subSequenceSize ( ) const
pure virtual
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::subWriteContents ( unsigned int  initialPos,
unsigned int  numPos,
const std::string &  fileName,
const std::string &  fileType,
const std::set< unsigned int > &  allowedSubEnvIds 
) const
pure virtual
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::subWriteContents ( unsigned int  initialPos,
unsigned int  numPos,
std::ofstream &  ofsvar,
const std::string &  fileType 
) const
pure virtual

Writes info of the sub-sequence to a file. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V , class M >
const BoxSubset< V, M > & QUESO::BaseVectorSequence< V, M >::unifiedBoxPlain ( ) const

Finds a box subset of the unified-sequence (given by the min and max values of the unified sequence calculated via unifiedMinPlain and unifiedMaxPlain).

Definition at line 287 of file VectorSequence.C.

288 {
289  if (m_unifiedBoxPlain == NULL) {
290  m_unifiedBoxPlain = new BoxSubset<V,M>(m_name.c_str(),
292  this->unifiedMinPlain(),
293  this->unifiedMaxPlain());
294  }
295 
296  return *m_unifiedBoxPlain;
297 }
BoxSubset< V, M > * m_unifiedBoxPlain
const V & unifiedMinPlain() const
Finds the minimum value of the unified sequence.
const VectorSpace< V, M > & m_vectorSpace
const V & unifiedMaxPlain() const
Finds the maximum value of the unified sequence.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::unifiedGaussian1dKde ( unsigned int  initialPos,
const V &  unifiedScaleVec,
const std::vector< V * > &  unifiedEvaluationParamVecs,
std::vector< V * > &  unifiedDensityVecs 
) const
pure virtual

Gaussian kernel for the KDE estimate of the unified sequence. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::unifiedHistogram ( unsigned int  initialPos,
const V &  unifiedMinVec,
const V &  unifiedMaxVec,
std::vector< V * > &  unifiedCentersForAllBins,
std::vector< V * > &  unifiedQuanttsForAllBins 
) const
pure virtual

Calculates the histogram of the unified sequence. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::unifiedInterQuantileRange ( unsigned int  initialPos,
V &  unifiedIqrVec 
) const
pure virtual

Returns the interquartile range of the values in the unified sequence. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V , class M >
const V & QUESO::BaseVectorSequence< V, M >::unifiedMaxPlain ( ) const

Finds the maximum value of the unified sequence.

Definition at line 188 of file VectorSequence.C.

189 {
190  if (m_unifiedMaxPlain == NULL) {
191  if (m_unifiedMinPlain == NULL) m_unifiedMinPlain = m_vectorSpace.newVector();
192  m_unifiedMaxPlain = m_vectorSpace.newVector();
194  }
195 
196  return *m_unifiedMaxPlain;
197 }
const VectorSpace< V, M > & m_vectorSpace
virtual void unifiedMinMaxExtra(unsigned int initialPos, unsigned int numPos, V &unifiedMinVec, V &unifiedMaxVec) const =0
Finds the minimum and the maximum values of the unified sequence, considering numPos positions starti...
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::unifiedMeanExtra ( unsigned int  initialPos,
unsigned int  numPos,
V &  unifiedMeanVec 
) const
pure virtual

Finds the mean value of the unified sequence of numPos positions starting at position initialPos. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

Referenced by QUESO::ComputeCovCorrMatricesBetweenVectorSequences().

template<class V , class M >
const V & QUESO::BaseVectorSequence< V, M >::unifiedMeanPlain ( ) const

Finds the mean value of the unified sequence.

Definition at line 213 of file VectorSequence.C.

214 {
215  if (m_unifiedMeanPlain == NULL) {
216  m_unifiedMeanPlain = m_vectorSpace.newVector();
218  }
219 
220  return *m_unifiedMeanPlain;
221 }
const VectorSpace< V, M > & m_vectorSpace
virtual void unifiedMeanExtra(unsigned int initialPos, unsigned int numPos, V &unifiedMeanVec) const =0
Finds the mean value of the unified sequence of numPos positions starting at position initialPos...
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::unifiedMedianExtra ( unsigned int  initialPos,
unsigned int  localNumPos,
V &  unifiedMedianVec 
) const
pure virtual

Finds the median value of the unified sequence, considering numPos positions starting at position initialPos. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V , class M >
const V & QUESO::BaseVectorSequence< V, M >::unifiedMedianPlain ( ) const

Finds the median value of the unified sequence.

Definition at line 237 of file VectorSequence.C.

238 {
239  if (m_unifiedMedianPlain == NULL) {
240  m_unifiedMedianPlain = m_vectorSpace.newVector();
242  }
243 
244  return *m_unifiedMedianPlain;
245 }
virtual void unifiedMedianExtra(unsigned int initialPos, unsigned int localNumPos, V &unifiedMedianVec) const =0
Finds the median value of the unified sequence, considering numPos positions starting at position ini...
const VectorSpace< V, M > & m_vectorSpace
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::unifiedMinMaxExtra ( unsigned int  initialPos,
unsigned int  numPos,
V &  unifiedMinVec,
V &  unifiedMaxVec 
) const
pure virtual

Finds the minimum and the maximum values of the unified sequence, considering numPos positions starting at position initialPos. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V , class M >
const V & QUESO::BaseVectorSequence< V, M >::unifiedMinPlain ( ) const

Finds the minimum value of the unified sequence.

Definition at line 162 of file VectorSequence.C.

163 {
164  if (m_unifiedMinPlain == NULL) {
165  m_unifiedMinPlain = m_vectorSpace.newVector();
166  if (m_unifiedMaxPlain == NULL) m_unifiedMaxPlain = m_vectorSpace.newVector();
168  }
169 
170  return *m_unifiedMinPlain;
171 }
const VectorSpace< V, M > & m_vectorSpace
virtual void unifiedMinMaxExtra(unsigned int initialPos, unsigned int numPos, V &unifiedMinVec, V &unifiedMaxVec) const =0
Finds the minimum and the maximum values of the unified sequence, considering numPos positions starti...
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::unifiedPopulationVariance ( unsigned int  initialPos,
unsigned int  numPos,
const V &  unifiedMeanVec,
V &  unifiedPopVec 
) const
pure virtual

Finds the population variance of the unified-sequence, considering numPos positions starting at position initialPos and of mean meanVec. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V, class M>
double QUESO::BaseVectorSequence< V, M >::unifiedPositionsOfMaximum ( const ScalarSequence< double > &  subCorrespondingScalarValues,
BaseVectorSequence< V, M > &  unifiedPositionsOfMaximum 
)

Finds the positions where the maximum element occurs in the unified sequence.

Definition at line 433 of file VectorSequence.C.

References QUESO::BaseVectorSequence< V, M >::getPositionValues(), RawValue_MPI_DOUBLE, RawValue_MPI_INT, RawValue_MPI_MAX, RawValue_MPI_SUM, QUESO::BaseVectorSequence< V, M >::resizeSequence(), QUESO::BaseVectorSequence< V, M >::setPositionValues(), QUESO::ScalarSequence< T >::subMaxPlain(), QUESO::ScalarSequence< T >::subSequenceSize(), and UQ_FATAL_TEST_MACRO.

Referenced by QUESO::MetropolisHastingsSG< P_V, P_M >::generateSequence().

436 {
437  if (m_env.subDisplayFile()) {
438  *m_env.subDisplayFile() << "Entering BaseVectorSequence<V,M>::unifiedPositionsOfMaximum()"
439  << ": subCorrespondingScalarValues,subSequenceSize() = " << subCorrespondingScalarValues.subSequenceSize()
440  << ", this->subSequenceSize = " << this->subSequenceSize()
441  << std::endl;
442  }
443 
444  UQ_FATAL_TEST_MACRO(subCorrespondingScalarValues.subSequenceSize() != this->subSequenceSize(),
445  m_env.worldRank(),
446  "BaseVectorSequence<V,M>::unifiedPositionsOfMaximum()",
447  "invalid input");
448 
449  double subMaxValue = subCorrespondingScalarValues.subMaxPlain();
450 
451  //******************************************************************
452  // Get overall max
453  //******************************************************************
454  double unifiedMaxValue;
455  std::vector<double> sendbufPos(1,0.);
456  for (unsigned int i = 0; i < sendbufPos.size(); ++i) {
457  sendbufPos[i] = subMaxValue;
458  }
459  m_env.inter0Comm().Allreduce((void *) &sendbufPos[0], (void *) &unifiedMaxValue, (int) sendbufPos.size(), RawValue_MPI_DOUBLE, RawValue_MPI_MAX,
460  "BaseVectorSequence<V,M>::unifiedPositionsOfMaximum()",
461  "failed MPI.Allreduce() for max");
462 
463  unsigned int iMax = subCorrespondingScalarValues.subSequenceSize();
464  int subNumPos = 0; // Yes, 'int', due to MPI to be used soon
465  for (unsigned int i = 0; i < iMax; ++i) {
466  if (subCorrespondingScalarValues[i] == unifiedMaxValue) {
467  subNumPos++;
468  }
469  }
470 
471  V tmpVec(this->vectorSpace().zeroVector());
472  unifiedPositionsOfMaximum.resizeSequence(subNumPos);
473  unsigned int j = 0;
474  for (unsigned int i = 0; i < iMax; ++i) {
475  if (subCorrespondingScalarValues[i] == unifiedMaxValue) {
476  this->getPositionValues (i,tmpVec);
477  unifiedPositionsOfMaximum.setPositionValues(j,tmpVec);
478  j++;
479  }
480  }
481 
482  std::vector<int> auxBuf(1,0);
483  int unifiedNumPos = 0; // Yes, 'int', due to MPI to be used soon
484  auxBuf[0] = subNumPos;
485  m_env.inter0Comm().Allreduce((void *) &auxBuf[0], (void *) &unifiedNumPos, (int) auxBuf.size(), RawValue_MPI_INT, RawValue_MPI_SUM,
486  "BaseVectorSequence<V,M>::unifiedPositionsOfMaximum()",
487  "failed MPI.Allreduce() for sum");
488  unifiedPositionsOfMaximum.resizeSequence(unifiedNumPos);
489 
490  //******************************************************************
491  // Use MPI_Gatherv for number of positions
492  //******************************************************************
493  unsigned int Np = (unsigned int) m_env.inter0Comm().NumProc();
494 
495  std::vector<int> recvcntsPos(Np,0); // '0' is NOT the correct value for recvcntsPos[0]
496  m_env.inter0Comm().Gather((void *) &subNumPos, 1, RawValue_MPI_INT, (void *) &recvcntsPos[0], (int) 1, RawValue_MPI_INT, 0,
497  "BaseVectorSequence<V,M>::unifiedPositionsOfMaximum()",
498  "failed MPI.Gatherv()");
499  if (m_env.inter0Rank() == 0) {
500  UQ_FATAL_TEST_MACRO(recvcntsPos[0] != (int) subNumPos,
501  m_env.worldRank(),
502  "BaseVectorSequence<V,M>::unifiedPositionsOfMaximum()",
503  "failed MPI.Gather() result at proc 0 (recvcntsPos[0])");
504  }
505 
506  std::vector<int> displsPos(Np,0);
507  for (unsigned int nodeId = 1; nodeId < Np; ++nodeId) { // Yes, from '1' on
508  displsPos[nodeId] = displsPos[nodeId-1] + recvcntsPos[nodeId-1];
509  }
510  if (m_env.inter0Rank() == 0) {
511  UQ_FATAL_TEST_MACRO(unifiedNumPos != (displsPos[Np - 1] + recvcntsPos[Np - 1]),
512  m_env.worldRank(),
513  "BaseVectorSequence<V,M>::unifiedPositionsOfMaximum()",
514  "failed MPI.Gather() result at proc 0 (unifiedNumPos)");
515  }
516 
517  //******************************************************************
518  // Use MPI_Gatherv for number of doubles
519  //******************************************************************
520  unsigned int dimSize = m_vectorSpace.dimLocal();
521  int subNumDbs = subNumPos * dimSize; // Yes, 'int', due to MPI to be used soon
522  std::vector<int> recvcntsDbs(Np,0); // '0' is NOT the correct value for recvcntsDbs[0]
523  m_env.inter0Comm().Gather((void *) &subNumDbs, 1, RawValue_MPI_INT, (void *) &recvcntsDbs[0], (int) 1, RawValue_MPI_INT, 0,
524  "BaseVectorSequence<V,M>::unifiedPositionsOfMaximum()",
525  "failed MPI.Gatherv()");
526  if (m_env.inter0Rank() == 0) {
527  UQ_FATAL_TEST_MACRO(recvcntsDbs[0] != (int) subNumDbs,
528  m_env.worldRank(),
529  "BaseVectorSequence<V,M>::unifiedPositionsOfMaximum()",
530  "failed MPI.Gather() result at proc 0 (recvcntsDbs[0])");
531  }
532 
533  std::vector<int> displsDbs(Np,0);
534  for (unsigned int nodeId = 1; nodeId < Np; ++nodeId) { // Yes, from '1' on
535  displsDbs[nodeId] = displsDbs[nodeId-1] + recvcntsDbs[nodeId-1];
536  }
537  if (m_env.inter0Rank() == 0) {
538  UQ_FATAL_TEST_MACRO(((int) (unifiedNumPos*dimSize)) != (displsDbs[Np - 1] + recvcntsDbs[Np - 1]),
539  m_env.worldRank(),
540  "BaseVectorSequence<V,M>::unifiedPositionsOfMaximum()",
541  "failed MPI.Gather() result at proc 0 (unifiedNumPos*dimSize)");
542  }
543 
544  //******************************************************************
545  // Prepare counters and buffers for gatherv of maximum positions
546  //******************************************************************
547  std::vector<double> sendbufDbs(subNumDbs,0.);
548  for (unsigned int i = 0; i < (unsigned int) subNumPos; ++i) {
549  unifiedPositionsOfMaximum.getPositionValues(i,tmpVec);
550  for (unsigned int j = 0; j < dimSize; ++j) {
551  sendbufDbs[i*dimSize + j] = tmpVec[j];
552  }
553  }
554 
555  std::vector<double> recvbufDbs(unifiedNumPos * dimSize);
556 
557  m_env.inter0Comm().Gatherv((void *) &sendbufDbs[0], (int) subNumDbs, RawValue_MPI_DOUBLE, (void *) &recvbufDbs[0], (int *) &recvcntsDbs[0], (int *) &displsDbs[0], RawValue_MPI_DOUBLE, 0,
558  "BaseVectorSequence<V,M>::unifiedPositionsOfMaximum()",
559  "failed MPI.Gatherv()");
560 
561  //******************************************************************
562  // Transfer data from 'recvbuf' to 'unifiedPositionsOfMaximum'
563  //******************************************************************
564  if (m_env.inter0Rank() == (int) 0) {
565  for (unsigned int i = 0; i < (unsigned int) unifiedNumPos; ++i) {
566  for (unsigned int j = 0; j < dimSize; ++j) {
567  tmpVec[j] = recvbufDbs[i*dimSize + j];
568  }
569  unifiedPositionsOfMaximum.setPositionValues(i,tmpVec);
570  }
571  }
572 
573  if (m_env.subDisplayFile()) {
574  *m_env.subDisplayFile() << "Leaving BaseVectorSequence<V,M>::unifiedPositionsOfMaximum()"
575  << std::endl;
576  }
577 
578  return unifiedMaxValue;
579 }
void Gather(void *sendbuf, int sendcnt, RawType_MPI_Datatype sendtype, void *recvbuf, int recvcount, RawType_MPI_Datatype recvtype, int root, const char *whereMsg, const char *whatMsg) const
Gather values from each process to collect on all processes.
Definition: MpiComm.C:168
#define RawValue_MPI_DOUBLE
Definition: MpiComm.h:48
int inter0Rank() const
Returns the process inter0 rank.
Definition: Environment.C:289
const T & subMaxPlain() const
Finds the maximum value of the sub-sequence of scalars.
int worldRank() const
Returns the process world rank.
Definition: Environment.C:235
std::ofstream * subDisplayFile() const
Access function for m_subDisplayFile (displays file on stream).
Definition: Environment.C:305
void Allreduce(void *sendbuf, void *recvbuf, int count, RawType_MPI_Datatype datatype, RawType_MPI_Op op, const char *whereMsg, const char *whatMsg) const
Combines values from all processes and distributes the result back to all processes.
Definition: MpiComm.C:131
#define RawValue_MPI_INT
Definition: MpiComm.h:47
void Gatherv(void *sendbuf, int sendcnt, RawType_MPI_Datatype sendtype, void *recvbuf, int *recvcnts, int *displs, RawType_MPI_Datatype recvtype, int root, const char *whereMsg, const char *whatMsg) const
Gathers into specified locations from all processes in a group.
Definition: MpiComm.C:188
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
Definition: Defines.h:222
const VectorSpace< V, M > & m_vectorSpace
#define RawValue_MPI_MAX
Definition: MpiComm.h:51
virtual void getPositionValues(unsigned int posId, V &vec) const =0
Gets the values of the sequence at position posId and stores them at vec. See template specialization...
unsigned int subSequenceSize() const
Size of the sub-sequence of scalars.
const MpiComm & inter0Comm() const
Access function for MpiComm inter0-communicator.
Definition: Environment.C:295
#define RawValue_MPI_SUM
Definition: MpiComm.h:52
const VectorSpace< V, M > & vectorSpace() const
Vector space; access to protected attribute VectorSpace&lt;V,M&gt;&amp; m_vectorSpace.
int NumProc() const
Returns total number of processes.
Definition: MpiComm.C:121
const BaseEnvironment & m_env
double unifiedPositionsOfMaximum(const ScalarSequence< double > &subCorrespondingScalarValues, BaseVectorSequence< V, M > &unifiedPositionsOfMaximum)
Finds the positions where the maximum element occurs in the unified sequence.
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::unifiedReadContents ( const std::string &  fileName,
const std::string &  fileType,
const unsigned int  subSequenceSize 
)
pure virtual

Reads info of the unified sequence from a file. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >, and QUESO::ArrayOfSequences< V, M >.

Referenced by QUESO::MonteCarloSG< P_V, P_M, Q_V, Q_M >::actualReadSequence(), and QUESO::MetropolisHastingsSG< P_V, P_M >::readFullChain().

template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::unifiedSampleVarianceExtra ( unsigned int  initialPos,
unsigned int  numPos,
const V &  unifiedMeanVec,
V &  unifiedSamVec 
) const
pure virtual

Finds the sample variance of the unified sequence, considering numPos positions starting at position initialPos and of mean meanVec. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

Referenced by QUESO::ComputeCovCorrMatricesBetweenVectorSequences().

template<class V , class M >
const V & QUESO::BaseVectorSequence< V, M >::unifiedSampleVariancePlain ( ) const

Finds the variance of a sample of the unified sequence.

Definition at line 261 of file VectorSequence.C.

262 {
263  if (m_unifiedSampleVariancePlain == NULL) {
266  }
267 
269 }
virtual void unifiedSampleVarianceExtra(unsigned int initialPos, unsigned int numPos, const V &unifiedMeanVec, V &unifiedSamVec) const =0
Finds the sample variance of the unified sequence, considering numPos positions starting at position ...
const VectorSpace< V, M > & m_vectorSpace
const V & unifiedMeanPlain() const
Finds the mean value of the unified sequence.
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::unifiedScalesForKde ( unsigned int  initialPos,
const V &  unifiedIqrVec,
unsigned int  kdeDimension,
V &  unifiedScaleVec 
) const
pure virtual

Selects the scales (bandwidth) for the kernel density estimation, considering the unified sequence. See template specialization.

Implemented in QUESO::SequenceOfVectors< V, M >.

template<class V , class M >
unsigned int QUESO::BaseVectorSequence< V, M >::unifiedSequenceSize ( ) const

Calculates the size of the unified sequence of vectors.

TODO: this procedure does not support parallel vectors yet.

Definition at line 70 of file VectorSequence.C.

References RawValue_MPI_SUM, RawValue_MPI_UNSIGNED, and UQ_FATAL_TEST_MACRO.

Referenced by QUESO::MLSampling< P_V, P_M >::checkpointML(), and QUESO::MLSampling< P_V, P_M >::generateSequence_Step02_inter0().

71 {
72  unsigned int unifiedNumSamples = 0;
73 
74  bool useOnlyInter0Comm = (m_vectorSpace.numOfProcsForStorage() == 1);
75 
76  if (useOnlyInter0Comm) {
77  if (m_env.inter0Rank() >= 0) {
78  unsigned int subNumSamples = this->subSequenceSize();
79  m_env.inter0Comm().Allreduce((void *) &subNumSamples, (void *) &unifiedNumSamples, (int) 1, RawValue_MPI_UNSIGNED, RawValue_MPI_SUM,
80  "BaseVectorSequence<V,M>::unifiedSequenceSize()",
81  "failed MPI.Allreduce() for unifiedSequenceSize()");
82  }
83  else {
84  // Node not in the 'inter0' communicator
85  unifiedNumSamples = this->subSequenceSize();
86  }
87  }
88  else {
89  UQ_FATAL_TEST_MACRO((useOnlyInter0Comm == false),
90  m_env.worldRank(),
91  "BaseVectorSequence<V,M>::unifiedSequenceSize()",
92  "parallel vectors not supported yet");
93  }
94 
95  return unifiedNumSamples;
96 }
#define RawValue_MPI_UNSIGNED
Definition: MpiComm.h:49
int inter0Rank() const
Returns the process inter0 rank.
Definition: Environment.C:289
int worldRank() const
Returns the process world rank.
Definition: Environment.C:235
void Allreduce(void *sendbuf, void *recvbuf, int count, RawType_MPI_Datatype datatype, RawType_MPI_Op op, const char *whereMsg, const char *whatMsg) const
Combines values from all processes and distributes the result back to all processes.
Definition: MpiComm.C:131
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
Definition: Defines.h:222
const VectorSpace< V, M > & m_vectorSpace
const MpiComm & inter0Comm() const
Access function for MpiComm inter0-communicator.
Definition: Environment.C:295
#define RawValue_MPI_SUM
Definition: MpiComm.h:52
const BaseEnvironment & m_env
virtual unsigned int subSequenceSize() const =0
Size of the sub-sequence of vectors. See template specialization.
template<class V, class M>
virtual void QUESO::BaseVectorSequence< V, M >::unifiedWriteContents ( const std::string &  fileName,
const std::string &  fileType 
) const
pure virtual
template<class V , class M >
unsigned int QUESO::BaseVectorSequence< V, M >::vectorSizeGlobal ( ) const

Global dimension (size) of the vector space.

Definition at line 107 of file VectorSequence.C.

108 {
109  return m_vectorSpace.dimGlobal();
110 }
const VectorSpace< V, M > & m_vectorSpace
template<class V , class M >
unsigned int QUESO::BaseVectorSequence< V, M >::vectorSizeLocal ( ) const

Local dimension (size) of the vector space.

Definition at line 100 of file VectorSequence.C.

Referenced by QUESO::MonteCarloSG< P_V, P_M, Q_V, Q_M >::generateSequence(), and QUESO::MetropolisHastingsSG< P_V, P_M >::generateSequence().

101 {
102  return m_vectorSpace.dimLocal();
103 }
const VectorSpace< V, M > & m_vectorSpace
template<class V , class M >
const VectorSpace< V, M > & QUESO::BaseVectorSequence< V, M >::vectorSpace ( ) const

Vector space; access to protected attribute VectorSpace<V,M>& m_vectorSpace.

Definition at line 114 of file VectorSequence.C.

Referenced by QUESO::BaseVectorSequence< V, M >::append(), and QUESO::ComputeCovCorrMatricesBetweenVectorSequences().

115 {
116  return m_vectorSpace;
117 }
const VectorSpace< V, M > & m_vectorSpace

Member Data Documentation

template<class V, class M>
const BaseEnvironment& QUESO::BaseVectorSequence< V, M >::m_env
protected

Definition at line 413 of file VectorSequence.h.

Referenced by QUESO::ArrayOfSequences< V, M >::ArrayOfSequences().

template<class V, class M>
Fft<double>* QUESO::BaseVectorSequence< V, M >::m_fftObj
mutableprotected

Definition at line 417 of file VectorSequence.h.

template<class V, class M>
std::string QUESO::BaseVectorSequence< V, M >::m_name
protected

Definition at line 415 of file VectorSequence.h.

Referenced by QUESO::BaseVectorSequence< V, M >::copy().

template<class V, class M>
BoxSubset<V,M>* QUESO::BaseVectorSequence< V, M >::m_subBoxPlain
mutableprotected

Definition at line 428 of file VectorSequence.h.

template<class V, class M>
V* QUESO::BaseVectorSequence< V, M >::m_subMaxPlain
mutableprotected

Definition at line 420 of file VectorSequence.h.

template<class V, class M>
V* QUESO::BaseVectorSequence< V, M >::m_subMeanPlain
mutableprotected

Definition at line 422 of file VectorSequence.h.

template<class V, class M>
V* QUESO::BaseVectorSequence< V, M >::m_subMedianPlain
mutableprotected

Definition at line 424 of file VectorSequence.h.

template<class V, class M>
V* QUESO::BaseVectorSequence< V, M >::m_subMinPlain
mutableprotected

Definition at line 418 of file VectorSequence.h.

template<class V, class M>
V* QUESO::BaseVectorSequence< V, M >::m_subSampleVariancePlain
mutableprotected

Definition at line 426 of file VectorSequence.h.

template<class V, class M>
BoxSubset<V,M>* QUESO::BaseVectorSequence< V, M >::m_unifiedBoxPlain
mutableprotected

Definition at line 429 of file VectorSequence.h.

template<class V, class M>
V* QUESO::BaseVectorSequence< V, M >::m_unifiedMaxPlain
mutableprotected

Definition at line 421 of file VectorSequence.h.

template<class V, class M>
V* QUESO::BaseVectorSequence< V, M >::m_unifiedMeanPlain
mutableprotected

Definition at line 423 of file VectorSequence.h.

template<class V, class M>
V* QUESO::BaseVectorSequence< V, M >::m_unifiedMedianPlain
mutableprotected

Definition at line 425 of file VectorSequence.h.

template<class V, class M>
V* QUESO::BaseVectorSequence< V, M >::m_unifiedMinPlain
mutableprotected

Definition at line 419 of file VectorSequence.h.

template<class V, class M>
V* QUESO::BaseVectorSequence< V, M >::m_unifiedSampleVariancePlain
mutableprotected

Definition at line 427 of file VectorSequence.h.

template<class V, class M>
const VectorSpace<V,M>& QUESO::BaseVectorSequence< V, M >::m_vectorSpace
protected

Definition at line 414 of file VectorSequence.h.

Referenced by QUESO::BaseVectorSequence< V, M >::copy().


The documentation for this class was generated from the following files:

Generated on Thu Apr 23 2015 19:18:36 for queso-0.50.1 by  doxygen 1.8.5