queso-0.52.0
ArrayOfSequences.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // QUESO - a library to support the Quantification of Uncertainty
5 // for Estimation, Simulation and Optimization
6 //
7 // Copyright (C) 2008-2015 The PECOS Development Team
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the Version 2.1 GNU Lesser General
11 // Public License as published by the Free Software Foundation.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Lesser General Public License for more details.
17 //
18 // You should have received a copy of the GNU Lesser General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc. 51 Franklin Street, Fifth Floor,
21 // Boston, MA 02110-1301 USA
22 //
23 //-----------------------------------------------------------------------el-
24 
25 #ifndef UQ_ARRAY_OF_SEQUENCES_H
26 #define UQ_ARRAY_OF_SEQUENCES_H
27 
28 #include <queso/VectorSequence.h>
29 
30 namespace QUESO {
31 
43 template <class V, class M>
45 {
46 public:
48 
51  unsigned int subSequenceSize,
52  const std::string& name);
56 
58 
59  unsigned int subSequenceSize () const;
61 
63  void resizeSequence (unsigned int newSubSequenceSize);
64 
66 
67  void resetValues (unsigned int initialPos, unsigned int numPos);
68 
70 
71  void erasePositions (unsigned int initialPos, unsigned int numPos);
72 
74  void getPositionValues (unsigned int posId, V& vec) const;
75 
77 
78  void setPositionValues (unsigned int posId, const V& vec);
79 
81 
82  void setGaussian (const V& meanVec, const V& stdDevVec);
83 
85 
86  void setUniform (const V& aVec, const V& bVec );
87 
89  void mean (unsigned int initialPos,
90  unsigned int numPos,
91  V& meanVec) const;
93  // TODO not implemented.
94  void unifiedMean (unsigned int initialPos,
95  unsigned int numPos,
96  V& unifiedMeanVec) const;
98  void sampleVariance (unsigned int initialPos,
99  unsigned int numPos,
100  const V& meanVec,
101  V& samVec) const;
103  // TODO not implemented.
104  void unifiedSampleVariance(unsigned int initialPos,
105  unsigned int numPos,
106  const V& meanVec,
107  V& samVec) const;
109  void populationVariance (unsigned int initialPos,
110  unsigned int numPos,
111  const V& meanVec,
112  V& popVec) const;
114 
118  void autoCovariance (unsigned int initialPos,
119  unsigned int numPos,
120  const V& meanVec,
121  unsigned int lag,
122  V& covVec) const;
123 
125  void autoCorrViaDef (unsigned int initialPos,
126  unsigned int numPos,
127  unsigned int lag,
128  V& corrVec) const;
131  void autoCorrViaFft (unsigned int initialPos,
132  unsigned int numPos,
133  const std::vector<unsigned int>& lags,
134  std::vector<V*>& corrVecs) const;
135 
138  void autoCorrViaFft (unsigned int initialPos,
139  unsigned int numPos,
140  unsigned int numSum,
141  V& autoCorrsSumVec) const;
143  void minMax (unsigned int initialPos,
144  V& minVec,
145  V& maxVec) const;
147 
148  void histogram (unsigned int initialPos,
149  const V& minVec,
150  const V& maxVec,
151  std::vector<V*>& centersForAllBins,
152  std::vector<V*>& quanttsForAllBins) const;
153 
155 
156  void interQuantileRange (unsigned int initialPos,
157  V& iqrs) const;
158 
160 
161  void scalesForKDE (unsigned int initialPos,
162  const V& iqrs,
163  unsigned int kdeDimension,
164  V& scales) const;
166 
167  void gaussianKDE (const V& evaluationParamVec,
168  V& densityVec) const;
170 
174  void gaussianKDE (unsigned int initialPos,
175  const V& scales,
176  const std::vector<V*>& evaluationParamVecs,
177  std::vector<V*>& densityVecs) const;
179  void writeContents (std::ofstream& ofsvar) const;
180 
182 
183  void unifiedWriteContents (std::ofstream& ofsvar) const;
184 
186 
187  void unifiedWriteContents (const std::string& fileName,
188  const std::string& fileType) const;
189 
191 
192  void unifiedReadContents (const std::string& fileName,
193  const std::string& fileType,
194  const unsigned int subSequenceSize);
195 
197 
198  void select (const std::vector<unsigned int>& idsOfUniquePositions);
199 
201 
202  void filter (unsigned int initialPos,
203  unsigned int spacing);
204 
206 
208  void extractScalarSeq (unsigned int initialPos,
209  unsigned int spacing,
210  unsigned int numPos,
211  unsigned int paramId,
212  ScalarSequence<double>& scalarSeq) const;
213 
214 #ifdef UQ_ALSO_COMPUTE_MDFS_WITHOUT_KDE
215  void uniformlySampledMdf (const V& numEvaluationPointsVec,
216  ArrayOfOneDGrids <V,M>& mdfGrids,
217  ArrayOfOneDTables<V,M>& mdfValues) const;
218 #endif
219 
220 #ifdef QUESO_COMPUTES_EXTRA_POST_PROCESSING_STATISTICS
221  void uniformlySampledCdf (const V& numEvaluationPointsVec,
222  ArrayOfOneDGrids <V,M>& cdfGrids,
223  ArrayOfOneDTables<V,M>& cdfValues) const;
224  void bmm (unsigned int initialPos,
225  unsigned int batchLength,
226  V& bmmVec) const;
227  void fftForward (unsigned int initialPos,
228  unsigned int fftSize,
229  unsigned int paramId,
230  std::vector<std::complex<double> >& resultData) const;
231 //void fftInverse (unsigned int fftSize);
232 
233  void psd (unsigned int initialPos,
234  unsigned int numBlocks,
235  double hopSizeRatio,
236  unsigned int paramId,
237  std::vector<double>& psdResult) const;
238  void psdAtZero (unsigned int initialPos,
239  unsigned int numBlocks,
240  double hopSizeRatio,
241  V& psdVec) const;
242  void geweke (unsigned int initialPos,
243  double ratioNa,
244  double ratioNb,
245  V& gewVec) const;
246 #endif
247 
248 
249 private:
251 
254  void extractRawData (unsigned int initialPos,
255  unsigned int spacing,
256  unsigned int numPos,
257  unsigned int paramId,
258  std::vector<double>& rawData) const;
259 
262 
267 };
268 
269 } // End namespace QUESO
270 
271 #endif // UQ_ARRAY_OF_SEQUENCES_H
void unifiedSampleVariance(unsigned int initialPos, unsigned int numPos, const V &meanVec, V &samVec) const
Finds the sample variance of the unified sequence, considering numPos positions starting at position ...
Class to accommodate arrays of one-dimensional grid.
void interQuantileRange(unsigned int initialPos, V &iqrs) const
Returns the interquartile range of the values in the sequence.
void autoCorrViaFft(unsigned int initialPos, unsigned int numPos, const std::vector< unsigned int > &lags, std::vector< V * > &corrVecs) const
A class for partitioning vectors and matrices.
Definition: DistArray.h:56
void gaussianKDE(const V &evaluationParamVec, V &densityVec) const
Gaussian kernel for the KDE estimate of the sequence.
void resizeSequence(unsigned int newSubSequenceSize)
Resizes the sequence.
void erasePositions(unsigned int initialPos, unsigned int numPos)
Erases numPos elements of the sequence starting at position initialPos.
void sampleVariance(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 extractRawData(unsigned int initialPos, unsigned int spacing, unsigned int numPos, unsigned int paramId, std::vector< double > &rawData) const
Extracts the raw data.
void resetValues(unsigned int initialPos, unsigned int numPos)
Resets a total of numPos values of the sequence starting at position initialPos.
void unifiedMean(unsigned int initialPos, unsigned int numPos, V &unifiedMeanVec) const
Finds the mean value of the unified sequence of numPos positions starting at position initialPos...
void select(const std::vector< unsigned int > &idsOfUniquePositions)
Select positions in the sequence of vectors.
void populationVariance(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 ...
const VectorSpace< V, M > & vectorSpace() const
Vector space; access to protected attribute VectorSpace&lt;V,M&gt;&amp; m_vectorSpace.
DistArray< ScalarSequence< double > * > m_scalarSequences
Sequence of scalars.
Class for handling array samples (arrays of scalar sequences).
void extractScalarSeq(unsigned int initialPos, unsigned int spacing, unsigned int numPos, unsigned int paramId, ScalarSequence< double > &scalarSeq) const
Extracts a sequence of scalars of size numPos, from position paramId of the array of sequences...
void setPositionValues(unsigned int posId, const V &vec)
Set the values of vec at position posId of the sequence.
void unifiedReadContents(const std::string &fileName, const std::string &fileType, const unsigned int subSequenceSize)
Reads the unified sequence from a file.
void scalesForKDE(unsigned int initialPos, const V &iqrs, unsigned int kdeDimension, V &scales) const
Selects the scales (bandwidth, scaleVec) for the kernel density estimation, of the sequence...
void minMax(unsigned int initialPos, V &minVec, V &maxVec) const
Given an initial position initialPos, finds the minimum and the maximum values of the sequence...
void autoCorrViaDef(unsigned int initialPos, unsigned int numPos, unsigned int lag, V &corrVec) const
Calculates autocorrelation via definition.
void mean(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 autoCovariance(unsigned int initialPos, unsigned int numPos, const V &meanVec, unsigned int lag, V &covVec) const
Calculates the autocovariance.
Class to accommodate arrays of one-dimensional tables.
void filter(unsigned int initialPos, unsigned int spacing)
Filters positions in the sequence of vectors, starting at initialPos, and with spacing given by spaci...
ArrayOfSequences(const VectorSpace< V, M > &vectorSpace, unsigned int subSequenceSize, const std::string &name)
Default constructor.
void unifiedWriteContents(std::ofstream &ofsvar) const
Writes info of the unified sequence to a file.
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). ...
unsigned int subSequenceSize() const
Size of the sub-sequence of arrays.
void writeContents(std::ofstream &ofsvar) const
Write contents of the chain to a file.
A class representing a vector space.
Definition: VectorSet.h:46
void histogram(unsigned int initialPos, const V &minVec, const V &maxVec, std::vector< V * > &centersForAllBins, std::vector< V * > &quanttsForAllBins) const
Calculates the histogram of the sequence.
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 an...
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 devi...
void getPositionValues(unsigned int posId, V &vec) const
Gets the values of the sequence at position posId and stores them at vec.
~ArrayOfSequences()
Destructor.

Generated on Thu Apr 23 2015 19:30:54 for queso-0.52.0 by  doxygen 1.8.5