25 #ifndef UQ_SEQUENCE_OF_VECTORS_H 
   26 #define UQ_SEQUENCE_OF_VECTORS_H 
   28 #include <queso/VectorSequence.h> 
   29 #define UQ_SEQ_VEC_USES_SCALAR_SEQ_CODE 
   30 #undef  UQ_SEQ_VEC_USES_OPERATOR 
   48 template <
class V = GslVector, 
class M = GslMatrix>
 
   64                            const std::string&             
name);
 
   86   void         resetValues                (
unsigned int initialPos, 
unsigned int numPos);
 
   90   void         erasePositions             (
unsigned int initialPos, 
unsigned int numPos);
 
  118                                           V&                                   unifiedMeanVec) 
const;
 
  130                                            V&                                   unifiedMedianVec) 
const;
 
  145                                            const V&                             unifiedMeanVec,
 
  146                                            V&                                   unifiedSamVec) 
const;
 
  158                                            const V&                             unifiedMeanVec,
 
  159                                            V&                                   unifiedStdVec) 
const;
 
  177                                            const V&                             unifiedMeanVec,
 
  178                                            V&                                   unifiedPopVec) 
const;
 
  204                                            const std::vector<unsigned int>&     lags,
 
  205                                            std::vector<V*>&                     corrVecs) 
const;
 
  211                                            V&                                   autoCorrsSumVec) 
const;
 
  221                                             V&                                   unifiedMaxVec) 
const;
 
  229                                            std::vector<V*>&                     centersForAllBins,
 
  230                                            std::vector<V*>&                     quanttsForAllBins) 
const;
 
  233                                            const V&                             unifiedMinVec,
 
  234                                            const V&                             unifiedMaxVec,
 
  235                                            std::vector<V*>&                     unifiedCentersForAllBins,
 
  236                                            std::vector<V*>&                     unifiedQuanttsForAllBins) 
const;
 
  249                                            V&                                   unifiedIqrVec) 
const;
 
  262                                            unsigned int                         kdeDimension,
 
  266                                            const V&                             unifiedIqrVec,
 
  267                                            unsigned int                         kdeDimension,
 
  268                                            V&                                   unifiedScaleVec) 
const;
 
  276                                            const std::vector<V*>&               evalParamVecs,
 
  277                                            std::vector<V*>&                     densityVecs) 
const;
 
  280                                            const V&                             unifiedScaleVec,
 
  281                                            const std::vector<V*>&               unifiedEvalParamVecs,
 
  282                                            std::vector<V*>&                     unifiedDensityVecs) 
const;
 
  292                                            const std::string&                   fileName,
 
  293                                            const std::string&                   fileType,
 
  294                                            const std::set<unsigned int>&        allowedSubEnvIds) 
const;
 
  300                                            const std::string&                   fileType) 
const;
 
  306                                            const std::string&                   fileType) 
const;
 
  310                                            const std::string&                   fileType) 
const;
 
  314                                            const std::string&                   fileType,
 
  317   void         select                     (
const std::vector<unsigned int>&     idsOfUniquePositions);
 
  321   void         filter                     (
unsigned int                         initialPos,
 
  322                                            unsigned int                         spacing);
 
  326                                            unsigned int                         numPos) 
const;
 
  332                                            unsigned int                         spacing,
 
  334                                            unsigned int                         paramId,
 
  337 #ifdef UQ_SEQ_VEC_USES_OPERATOR 
  338   const V*     operator[]                 (
unsigned int posId) 
const;
 
  339   const V*&    operator[]                 (
unsigned int posId);
 
  342 #ifdef UQ_ALSO_COMPUTE_MDFS_WITHOUT_KDE 
  343   void         subUniformlySampledMdf     (
const V&                             numEvaluationPointsVec,
 
  348 #ifdef QUESO_COMPUTES_EXTRA_POST_PROCESSING_STATISTICS 
  349   void         subMeanCltStd              (
unsigned int                         initialPos,
 
  353   void         unifiedMeanCltStd          (
unsigned int                         initialPos,
 
  355                                            const V&                             unifiedMeanVec,
 
  356                                             V&                                   unifiedSamVec) 
const;
 
  357   void         bmm                        (
unsigned int                         initialPos,
 
  358                                            unsigned int                         batchLength,
 
  360   void         fftForward                 (
unsigned int                         initialPos,
 
  361                                            unsigned int                         fftSize,
 
  362                                            unsigned int                         paramId,
 
  363                                            std::vector<std::complex<double> >&  fftResult) 
const;
 
  365   void         psd                        (
unsigned int                         initialPos,
 
  366                                            unsigned int                         numBlocks,
 
  368                                            unsigned int                         paramId,
 
  369                                            std::vector<double>&                 psdResult) 
const;
 
  370   void         psdAtZero                  (
unsigned int                         initialPos,
 
  371                                            unsigned int                         numBlocks,
 
  374   void         geweke                     (
unsigned int                         initialPos,
 
  378   void         meanStacc                  (
unsigned int                         initialPos,
 
  379                                            V&                                   meanStaccVec) 
const;
 
  380   void         subCdfPercentageRange      (
unsigned int                         initialPos,
 
  385   void         unifiedCdfPercentageRange  (
unsigned int                         initialPos,
 
  390   void         subCdfStacc                (
unsigned int                         initialPos,
 
  391                                            std::vector<V*>&                     cdfStaccVecs,
 
  392                                            std::vector<V*>&                     cdfStaccVecsUp,
 
  393                                            std::vector<V*>&                     cdfStaccVecsLow,
 
  394                                            std::vector<V*>&                     sortedDataVecs) 
const;
 
  395   void         subCdfStacc                (
unsigned int                         initialPos,
 
  396                                            const std::vector<V*>&               evalPositionsVecs,
 
  397                                            std::vector<V*>&                     cdfStaccVecs) 
const;
 
  409                                            unsigned int                         spacing,
 
  411                                            unsigned int                         paramId,
 
  412                                            std::vector<double>&                 rawData) 
const;
 
  437 #ifdef UQ_CODE_HAS_MONITORS 
  438   void         subMeanMonitorAlloc        (
unsigned int numberOfMonitorPositions);
 
  439   void         subMeanInter0MonitorAlloc  (
unsigned int numberOfMonitorPositions);
 
  440   void         unifiedMeanMonitorAlloc    (
unsigned int numberOfMonitorPositions);
 
  441   void         subMeanMonitorRun          (
unsigned int monitorPosition,
 
  444   void         subMeanInter0MonitorRun    (
unsigned int currentPosition,
 
  445                                            V&           subMeanInter0Mean,
 
  446                                            V&           subMeanInter0Clt95,
 
  447                                            V&           subMeanInter0Empirical90,
 
  449                                            V&           subMeanInter0Max);
 
  450   void         unifiedMeanMonitorRun      (
unsigned int currentPosition,
 
  452                                            V&           unifiedMeanCltStd);
 
  453   void         subMeanMonitorStore        (
unsigned int i,
 
  454                                            unsigned int monitorPosition,
 
  456                                            const V&     subMeanCltStd);
 
  457   void         subMeanInter0MonitorStore  (
unsigned int i,
 
  458                                            unsigned int monitorPosition,
 
  459                                            const V&     subMeanInter0Mean,
 
  460                                            const V&     subMeanInter0Clt95,
 
  461                                            const V&     subMeanInter0Empirical90,
 
  462                                            const V&     subMeanInter0Min,
 
  463                                            const V&     subMeanInter0Max);
 
  464   void         unifiedMeanMonitorStore    (
unsigned int i,
 
  465                                            unsigned int monitorPosition,
 
  467                                            V&           unifiedMeanCltStd);
 
  468   void         subMeanMonitorFree         ();
 
  469   void         subMeanInter0MonitorFree   ();
 
  470   void         unifiedMeanMonitorFree     ();
 
  471   void         subMeanMonitorWrite        (std::ofstream& ofs);
 
  472   void         subMeanInter0MonitorWrite  (std::ofstream& ofs);
 
  473   void         unifiedMeanMonitorWrite    (std::ofstream& ofs);
 
  476 #ifdef UQ_CODE_HAS_MONITORS 
  496 #endif // UQ_SEQUENCE_OF_VECTORS_H 
void unifiedMedianExtra(unsigned int initialPos, unsigned int numPos, V &unifiedMedianVec) const 
Finds the median value of the unfed sequence, considering numPos positions starting at position initi...
 
void unifiedGaussian1dKde(unsigned int initialPos, const V &unifiedScaleVec, const std::vector< V * > &unifiedEvalParamVecs, std::vector< V * > &unifiedDensityVecs) const 
Gaussian kernel for the KDE estimate of the unified sequence. 
 
double estimateConvBrooksGelman(unsigned int initialPos, unsigned int numPos) const 
Estimates convergence rate using Brooks & Gelman method. 
 
std::vector< const V * > m_seq
Sequence of vectors. 
 
void setPositionValues(unsigned int posId, const V &vec)
Set the values in vec at position posId of the sequence. 
 
Class to accommodate arrays of one-dimensional grid. 
 
void unifiedSampleVarianceExtra(unsigned int initialPos, unsigned int numPos, const V &unifiedMeanVec, V &unifiedSamVec) const 
Finds the sample variance of the unified sequence, considering numPos positions starting at position ...
 
void subMedianExtra(unsigned int initialPos, unsigned int numPos, V &medianVec) const 
Finds the median value of the sub-sequence, considering numPos positions starting at position initial...
 
void writeSubMatlabHeader(std::ofstream &ofs, double sequenceSize, double vectorSizeLocal) const 
Helper function to write matlab-specific header info for vectors. 
 
void resetValues(unsigned int initialPos, unsigned int numPos)
Resets a total of numPos values of the sequence starting at position initialPos. 
 
void autoCorrViaFft(unsigned int initialPos, unsigned int numPos, const std::vector< unsigned int > &lags, std::vector< V * > &corrVecs) const 
Calculates the autocorrelation via Fast Fourier transforms (FFT). 
 
void subSampleVarianceExtra(unsigned int initialPos, unsigned int numPos, const V &meanVec, V &samVec) const 
Finds the sample variance of the sub-sequence, considering numPos positions starting at position init...
 
A class representing a vector space. 
 
void getPositionValues(unsigned int posId, V &vec) const 
Gets the values of the sequence at position posId and stores them at vec. 
 
void unifiedSampleStd(unsigned int initialPos, unsigned int numPos, const V &unifiedMeanVec, V &unifiedStdVec) const 
Finds the sample standard deviation of the unified sequence, considering numPos positions starting at...
 
void filter(unsigned int initialPos, unsigned int spacing)
Filters positions in the sequence of vectors. 
 
void subUniformlySampledCdf(const V &numEvaluationPointsVec, ArrayOfOneDGrids< V, M > &cdfGrids, ArrayOfOneDTables< V, M > &cdfValues) const 
Uniformly samples from the CDF from the sub-sequence. 
 
void subMeanExtra(unsigned int initialPos, unsigned int numPos, V &meanVec) const 
Finds the mean value of the sub-sequence, considering numPos positions starting at position initialPo...
 
unsigned int subSequenceSize() const 
Size of the sub-sequence of vectors. 
 
unsigned int vectorSizeLocal() const 
Local dimension (size) of the vector space. 
 
void resizeSequence(unsigned int newSubSequenceSize)
Resizes the sequence. 
 
void subInterQuantileRange(unsigned int initialPos, V &iqrVec) const 
Returns the interquartile range of the values in the sub-sequence. 
 
void unifiedReadContents(const std::string &fileName, const std::string &fileType, const unsigned int subSequenceSize)
Reads the unified sequence from a file. 
 
void unifiedMeanExtra(unsigned int initialPos, unsigned int numPos, V &unifiedMeanVec) const 
Finds the mean value of the unified sequence, considering numPos positions starting at position initi...
 
void writeTxtHeader(std::ofstream &ofs, double sequenceSize, double vectorSizeLocal) const 
Helper function to write plain txt info for vectors. 
 
void select(const std::vector< unsigned int > &idsOfUniquePositions)
TODO: It shall select positions in the sequence of vectors. 
 
Struct for handling data input and output from files. 
 
void subScalesForKde(unsigned int initialPos, const V &iqrVec, unsigned int kdeDimension, V &scaleVec) const 
Selects the scales (bandwidth, scaleVec) for the kernel density estimation, considering only the sub-...
 
Class for handling vector samples (sequence of vectors). 
 
void copy(const SequenceOfVectors< V, M > &src)
Copies vector sequence src to this. 
 
void autoCorrViaDef(unsigned int initialPos, unsigned int numPos, unsigned int lag, V &corrVec) const 
Calculates the autocorrelation via definition. 
 
void subWriteContents(unsigned int initialPos, unsigned int numPos, const std::string &fileName, const std::string &fileType, const std::set< unsigned int > &allowedSubEnvIds) const 
Writes the sub-sequence to a file. 
 
void subGaussian1dKde(unsigned int initialPos, const V &scaleVec, const std::vector< V * > &evalParamVecs, std::vector< V * > &densityVecs) const 
Gaussian kernel for the KDE estimate of the sub-sequence. 
 
void subHistogram(unsigned int initialPos, const V &minVec, const V &maxVec, std::vector< V * > ¢ersForAllBins, std::vector< V * > &quanttsForAllBins) const 
Calculates the histogram of the sub-sequence. 
 
SequenceOfVectors(const VectorSpace< V, M > &vectorSpace, unsigned int subSequenceSize, const std::string &name)
Default constructor. 
 
void unifiedInterQuantileRange(unsigned int initialPos, V &unifiedIqrVec) const 
Returns the interquartile range of the values in the unified sequence. 
 
void unifiedWriteContents(const std::string &fileName, const std::string &fileType) const 
 
void subPopulationVariance(unsigned int initialPos, unsigned int numPos, const V &meanVec, V &popVec) const 
Finds the population variance of the sub-sequence, considering numPos positions starting at position ...
 
SequenceOfVectors< V, M > & operator=(const SequenceOfVectors< V, M > &rhs)
Copies values from rhs to this. 
 
void writeUnifiedMatlabHeader(std::ofstream &ofs, double sequenceSize, double vectorSizeLocal) const 
 
void subMinMaxExtra(unsigned int initialPos, unsigned int numPos, V &minVec, V &maxVec) const 
Finds the minimum and the maximum values of the sub-sequence, considering numPos positions starting a...
 
void subSampleStd(unsigned int initialPos, unsigned int numPos, const V &meanVec, V &stdVec) const 
Finds the sample standard deviation of the sub-sequence, considering numPos positions starting at pos...
 
const VectorSpace< V, M > & vectorSpace() const 
Vector space; access to protected attribute VectorSpace<V,M>& m_vectorSpace. 
 
std::vector< const V * >::const_iterator seqVectorPositionConstIteratorTypedef
 
void extractScalarSeq(unsigned int initialPos, unsigned int spacing, unsigned int numPos, unsigned int paramId, ScalarSequence< double > &scalarSeq) const 
Extracts a sequence of scalars. 
 
std::vector< const V * >::iterator seqVectorPositionIteratorTypedef
 
~SequenceOfVectors()
Destructor. 
 
Class to accommodate arrays of one-dimensional tables. 
 
void unifiedMinMaxExtra(unsigned int initialPos, unsigned int numPos, V &unifiedMinVec, V &unifiedMaxVec) const 
Finds the minimum and the maximum values of the unified sequence, considering numPos positions starti...
 
void unifiedHistogram(unsigned int initialPos, const V &unifiedMinVec, const V &unifiedMaxVec, std::vector< V * > &unifiedCentersForAllBins, std::vector< V * > &unifiedQuanttsForAllBins) const 
Calculates the histogram of the unified sequence. 
 
Base class for handling vector and array samples (sequence of vectors or arrays). ...
 
void unifiedPopulationVariance(unsigned int initialPos, unsigned int numPos, const V &unifiedMeanVec, V &unifiedPopVec) const 
Finds the population variance of the unified sequence, considering numPos positions starting at posit...
 
void extractRawData(unsigned int initialPos, unsigned int spacing, unsigned int numPos, unsigned int paramId, std::vector< double > &rawData) const 
Extracts the raw data. 
 
void unifiedUniformlySampledCdf(const V &numEvaluationPointsVec, ArrayOfOneDGrids< V, M > &unifiedCdfGrids, ArrayOfOneDTables< V, M > &unifiedCdfValues) const 
Uniformly samples from the CDF from the sub-sequence. 
 
void unifiedScalesForKde(unsigned int initialPos, const V &unifiedIqrVec, unsigned int kdeDimension, V &unifiedScaleVec) const 
Selects the scales (bandwidth) for the kernel density estimation, considering the unified sequence...
 
const std::string & name() const 
Access to protected attribute m_name: name of the sequence of vectors. 
 
void erasePositions(unsigned int initialPos, unsigned int numPos)
Erases numPos elements of the sequence starting at position initialPos. 
 
void autoCovariance(unsigned int initialPos, unsigned int numPos, const V &meanVec, unsigned int lag, V &covVec) const 
Calculates the autocovariance.