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
45 template <
class V,
class M>
61 const std::string&
name);
83 void resetValues (
unsigned int initialPos,
unsigned int numPos);
87 void erasePositions (
unsigned int initialPos,
unsigned int numPos);
115 V& unifiedMeanVec)
const;
127 V& unifiedMedianVec)
const;
142 const V& unifiedMeanVec,
143 V& unifiedSamVec)
const;
155 const V& unifiedMeanVec,
156 V& unifiedStdVec)
const;
174 const V& unifiedMeanVec,
175 V& unifiedPopVec)
const;
201 const std::vector<unsigned int>& lags,
202 std::vector<V*>& corrVecs)
const;
208 V& autoCorrsSumVec)
const;
218 V& unifiedMaxVec)
const;
226 std::vector<V*>& centersForAllBins,
227 std::vector<V*>& quanttsForAllBins)
const;
230 const V& unifiedMinVec,
231 const V& unifiedMaxVec,
232 std::vector<V*>& unifiedCentersForAllBins,
233 std::vector<V*>& unifiedQuanttsForAllBins)
const;
246 V& unifiedIqrVec)
const;
259 unsigned int kdeDimension,
263 const V& unifiedIqrVec,
264 unsigned int kdeDimension,
265 V& unifiedScaleVec)
const;
273 const std::vector<V*>& evalParamVecs,
274 std::vector<V*>& densityVecs)
const;
277 const V& unifiedScaleVec,
278 const std::vector<V*>& unifiedEvalParamVecs,
279 std::vector<V*>& unifiedDensityVecs)
const;
289 const std::string& fileName,
290 const std::string& fileType,
291 const std::set<unsigned int>& allowedSubEnvIds)
const;
297 const std::string& fileType)
const;
303 const std::string& fileType)
const;
307 const std::string& fileType)
const;
311 const std::string& fileType,
314 void select (
const std::vector<unsigned int>& idsOfUniquePositions);
318 void filter (
unsigned int initialPos,
319 unsigned int spacing);
323 unsigned int numPos)
const;
329 unsigned int spacing,
331 unsigned int paramId,
334 #ifdef UQ_SEQ_VEC_USES_OPERATOR
335 const V* operator[] (
unsigned int posId)
const;
336 const V*& operator[] (
unsigned int posId);
339 #ifdef UQ_ALSO_COMPUTE_MDFS_WITHOUT_KDE
340 void subUniformlySampledMdf (
const V& numEvaluationPointsVec,
345 #ifdef QUESO_COMPUTES_EXTRA_POST_PROCESSING_STATISTICS
346 void subMeanCltStd (
unsigned int initialPos,
350 void unifiedMeanCltStd (
unsigned int initialPos,
352 const V& unifiedMeanVec,
353 V& unifiedSamVec)
const;
354 void bmm (
unsigned int initialPos,
355 unsigned int batchLength,
357 void fftForward (
unsigned int initialPos,
358 unsigned int fftSize,
359 unsigned int paramId,
360 std::vector<std::complex<double> >& fftResult)
const;
362 void psd (
unsigned int initialPos,
363 unsigned int numBlocks,
365 unsigned int paramId,
366 std::vector<double>& psdResult)
const;
367 void psdAtZero (
unsigned int initialPos,
368 unsigned int numBlocks,
371 void geweke (
unsigned int initialPos,
375 void meanStacc (
unsigned int initialPos,
376 V& meanStaccVec)
const;
377 void subCdfPercentageRange (
unsigned int initialPos,
382 void unifiedCdfPercentageRange (
unsigned int initialPos,
387 void subCdfStacc (
unsigned int initialPos,
388 std::vector<V*>& cdfStaccVecs,
389 std::vector<V*>& cdfStaccVecsUp,
390 std::vector<V*>& cdfStaccVecsLow,
391 std::vector<V*>& sortedDataVecs)
const;
392 void subCdfStacc (
unsigned int initialPos,
393 const std::vector<V*>& evalPositionsVecs,
394 std::vector<V*>& cdfStaccVecs)
const;
406 unsigned int spacing,
408 unsigned int paramId,
409 std::vector<double>& rawData)
const;
419 #ifdef UQ_CODE_HAS_MONITORS
420 void subMeanMonitorAlloc (
unsigned int numberOfMonitorPositions);
421 void subMeanInter0MonitorAlloc (
unsigned int numberOfMonitorPositions);
422 void unifiedMeanMonitorAlloc (
unsigned int numberOfMonitorPositions);
423 void subMeanMonitorRun (
unsigned int monitorPosition,
426 void subMeanInter0MonitorRun (
unsigned int currentPosition,
427 V& subMeanInter0Mean,
428 V& subMeanInter0Clt95,
429 V& subMeanInter0Empirical90,
431 V& subMeanInter0Max);
432 void unifiedMeanMonitorRun (
unsigned int currentPosition,
434 V& unifiedMeanCltStd);
435 void subMeanMonitorStore (
unsigned int i,
436 unsigned int monitorPosition,
438 const V& subMeanCltStd);
439 void subMeanInter0MonitorStore (
unsigned int i,
440 unsigned int monitorPosition,
441 const V& subMeanInter0Mean,
442 const V& subMeanInter0Clt95,
443 const V& subMeanInter0Empirical90,
444 const V& subMeanInter0Min,
445 const V& subMeanInter0Max);
446 void unifiedMeanMonitorStore (
unsigned int i,
447 unsigned int monitorPosition,
449 V& unifiedMeanCltStd);
450 void subMeanMonitorFree ();
451 void subMeanInter0MonitorFree ();
452 void unifiedMeanMonitorFree ();
453 void subMeanMonitorWrite (std::ofstream& ofs);
454 void subMeanInter0MonitorWrite (std::ofstream& ofs);
455 void unifiedMeanMonitorWrite (std::ofstream& ofs);
458 #ifdef UQ_CODE_HAS_MONITORS
478 #endif // UQ_SEQUENCE_OF_VECTORS_H
void subUniformlySampledCdf(const V &numEvaluationPointsVec, ArrayOfOneDGrids< V, M > &cdfGrids, ArrayOfOneDTables< V, M > &cdfValues) const
Uniformly samples from the CDF from the sub-sequence.
void unifiedReadContents(const std::string &fileName, const std::string &fileType, const unsigned int subSequenceSize)
Reads the unified sequence from a file.
Class to accommodate arrays of one-dimensional grid.
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 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.
Struct for handling data input and output from files.
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 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 unifiedInterQuantileRange(unsigned int initialPos, V &unifiedIqrVec) const
Returns the interquartile range of the values in the unified sequence.
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 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...
void extractScalarSeq(unsigned int initialPos, unsigned int spacing, unsigned int numPos, unsigned int paramId, ScalarSequence< double > &scalarSeq) const
Extracts a sequence of scalars.
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...
unsigned int subSequenceSize() const
Size of the sub-sequence of vectors.
SequenceOfVectors< V, M > & operator=(const SequenceOfVectors< V, M > &rhs)
Copies values from rhs to this.
double estimateConvBrooksGelman(unsigned int initialPos, unsigned int numPos) const
Estimates convergence rate using Brooks & Gelman method.
std::vector< const V * >::iterator seqVectorPositionIteratorTypedef
void unifiedWriteContents(const std::string &fileName, const std::string &fileType) const
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...
void autoCovariance(unsigned int initialPos, unsigned int numPos, const V &meanVec, unsigned int lag, V &covVec) const
Calculates the autocovariance.
const VectorSpace< V, M > & vectorSpace() const
Vector space; access to protected attribute VectorSpace<V,M>& m_vectorSpace.
void erasePositions(unsigned int initialPos, unsigned int numPos)
Erases numPos elements of the sequence starting at position initialPos.
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 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 extractRawData(unsigned int initialPos, unsigned int spacing, unsigned int numPos, unsigned int paramId, std::vector< double > &rawData) const
Extracts the raw data.
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...
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 unifiedUniformlySampledCdf(const V &numEvaluationPointsVec, ArrayOfOneDGrids< V, M > &unifiedCdfGrids, ArrayOfOneDTables< V, M > &unifiedCdfValues) const
Uniformly samples from the CDF from the sub-sequence.
void getPositionValues(unsigned int posId, V &vec) const
Gets the values of the sequence at position posId and stores them at vec.
void autoCorrViaDef(unsigned int initialPos, unsigned int numPos, unsigned int lag, V &corrVec) const
Calculates the autocorrelation via definition.
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-...
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.
void resizeSequence(unsigned int newSubSequenceSize)
Resizes the sequence.
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.
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 filter(unsigned int initialPos, unsigned int spacing)
Filters positions in the sequence of vectors.
Class to accommodate arrays of one-dimensional tables.
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 ...
const std::string & name() const
Access to protected attribute m_name: name of the sequence of vectors.
Base class for handling vector and array samples (sequence of vectors or arrays). ...
void subInterQuantileRange(unsigned int initialPos, V &iqrVec) const
Returns the interquartile range of the values in the sub-sequence.
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 copy(const SequenceOfVectors< V, M > &src)
Copies vector sequence src to this.
A class representing a vector space.
void select(const std::vector< unsigned int > &idsOfUniquePositions)
TODO: It shall select positions in the sequence of vectors.
std::vector< const V * >::const_iterator seqVectorPositionConstIteratorTypedef
Class for handling vector samples (sequence of vectors).
~SequenceOfVectors()
Destructor.
void setPositionValues(unsigned int posId, const V &vec)
Set the values in vec at position posId of the sequence.
void resetValues(unsigned int initialPos, unsigned int numPos)
Resets a total of numPos values of the sequence starting at position initialPos.
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 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(const VectorSpace< V, M > &vectorSpace, unsigned int subSequenceSize, const std::string &name)
Default constructor.
std::vector< const V * > m_seq
Sequence of vectors.