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 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 ...
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...
Class to accommodate arrays of one-dimensional grid.
void subUniformlySampledCdf(const V &numEvaluationPointsVec, ArrayOfOneDGrids< V, M > &cdfGrids, ArrayOfOneDTables< V, M > &cdfValues) const
Uniformly samples from the CDF from the sub-sequence.
void unifiedInterQuantileRange(unsigned int initialPos, V &unifiedIqrVec) const
Returns the interquartile range of the values in the unified 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...
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 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 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...
double estimateConvBrooksGelman(unsigned int initialPos, unsigned int numPos) const
Estimates convergence rate using Brooks & Gelman method.
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 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 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 getPositionValues(unsigned int posId, V &vec) const
Gets the values of the sequence at position posId and stores them at vec.
void select(const std::vector< unsigned int > &idsOfUniquePositions)
TODO: It shall select positions in the sequence of vectors.
void extractScalarSeq(unsigned int initialPos, unsigned int spacing, unsigned int numPos, unsigned int paramId, ScalarSequence< double > &scalarSeq) const
Extracts a sequence of scalars.
void autoCovariance(unsigned int initialPos, unsigned int numPos, const V &meanVec, unsigned int lag, V &covVec) const
Calculates the autocovariance.
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 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 copy(const SequenceOfVectors< V, M > &src)
Copies vector sequence src to this.
void unifiedUniformlySampledCdf(const V &numEvaluationPointsVec, ArrayOfOneDGrids< V, M > &unifiedCdfGrids, ArrayOfOneDTables< V, M > &unifiedCdfValues) const
Uniformly samples from the CDF from the sub-sequence.
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...
const std::string & name() const
Access to protected attribute m_name: name of the sequence of vectors.
std::vector< const V * >::iterator seqVectorPositionIteratorTypedef
Struct for handling data input and output from files.
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 extractRawData(unsigned int initialPos, unsigned int spacing, unsigned int numPos, unsigned int paramId, std::vector< double > &rawData) const
Extracts the raw data.
std::vector< const V * > m_seq
Sequence of vectors.
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.
Base class for handling vector and array samples (sequence of vectors or arrays). ...
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 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.
void erasePositions(unsigned int initialPos, unsigned int numPos)
Erases numPos elements of the sequence starting at position initialPos.
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 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 subInterQuantileRange(unsigned int initialPos, V &iqrVec) const
Returns the interquartile range of the values in the sub-sequence.
std::vector< const V * >::const_iterator seqVectorPositionConstIteratorTypedef
const VectorSpace< V, M > & vectorSpace() const
Vector space; access to protected attribute VectorSpace<V,M>& m_vectorSpace.
Class to accommodate arrays of one-dimensional tables.
SequenceOfVectors< V, M > & operator=(const SequenceOfVectors< V, M > &rhs)
Copies values from rhs to this.
A class representing a vector space.
Class for handling vector samples (sequence of vectors).
SequenceOfVectors(const VectorSpace< V, M > &vectorSpace, unsigned int subSequenceSize, const std::string &name)
Default constructor.
void unifiedReadContents(const std::string &fileName, const std::string &fileType, const unsigned int subSequenceSize)
Reads the unified sequence from a file.
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 filter(unsigned int initialPos, unsigned int spacing)
Filters positions in the sequence of vectors.
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...
unsigned int subSequenceSize() const
Size of the sub-sequence of vectors.
void unifiedWriteContents(const std::string &fileName, const std::string &fileType) const
~SequenceOfVectors()
Destructor.