queso-0.51.1
Private Attributes | List of all members
QUESO::ArrayOfOneDTables< V, M > Class Template Reference

Class to accommodate arrays of one-dimensional tables. More...

#include <ArrayOfOneDTables.h>

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

Public Member Functions

Constructor/Destructor methods
 ArrayOfOneDTables (const char *prefix, const VectorSpace< V, M > &rowSpace)
 Default constructor. More...
 
 ~ArrayOfOneDTables ()
 Destructor. More...
 
Math methods
void setOneDTable (unsigned int rowId, const std::vector< double > &values)
 Sets the one-dimensional table. More...
 
const std::vector< double > & oneDTable (unsigned int rowId) const
 Returns the array located at position rowId of the one-dimensional table. More...
 
I/O method
void print (std::ostream &os) const
 Prints the values in this array of tables. More...
 

Private Attributes

const BaseEnvironmentm_env
 
std::string m_prefix
 
const VectorSpace< V, M > & m_rowSpace
 
DistArray< std::vector< double > * > m_oneDTables
 

Detailed Description

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

Class to accommodate arrays of one-dimensional tables.

Arrays of one-dimensional tables are necessary in the calculation (storage), for instance, of CDFs and MDF of vector functions (refer to BaseVectorCdf, BaseVectorMdf, and derived classes) given the (array of) grid points (ArrayOfOneDGrids).

Definition at line 46 of file ArrayOfOneDTables.h.

Constructor & Destructor Documentation

template<class V , class M >
QUESO::ArrayOfOneDTables< V, M >::ArrayOfOneDTables ( const char *  prefix,
const VectorSpace< V, M > &  rowSpace 
)

Default constructor.

Definition at line 33 of file ArrayOfOneDTables.C.

References QUESO::ArrayOfOneDTables< V, M >::m_oneDTables, and QUESO::DistArray< T >::MyLength().

36  :
37  m_env (rowSpace.env()),
38  m_prefix ((std::string)(prefix)+""),
39  m_rowSpace (rowSpace ),
40  m_oneDTables(m_rowSpace.map(),1)
41 {
42  for (unsigned int i = 0; i < (unsigned int) m_oneDTables.MyLength(); ++i) {
43  m_oneDTables(i,0) = NULL;
44  }
45 }
DistArray< std::vector< double > * > m_oneDTables
const BaseEnvironment & m_env
int MyLength() const
Returns the length of the locally owned array.
Definition: DistArray.C:147
const VectorSpace< V, M > & m_rowSpace
template<class V , class M >
QUESO::ArrayOfOneDTables< V, M >::~ArrayOfOneDTables ( )

Destructor.

Definition at line 49 of file ArrayOfOneDTables.C.

50 {
51  for (unsigned int i = 0; i < (unsigned int) m_oneDTables.MyLength(); ++i) {
52  if (m_oneDTables(i,0)) delete m_oneDTables(i,0);
53  }
54 }
DistArray< std::vector< double > * > m_oneDTables
int MyLength() const
Returns the length of the locally owned array.
Definition: DistArray.C:147

Member Function Documentation

template<class V , class M >
const std::vector< double > & QUESO::ArrayOfOneDTables< V, M >::oneDTable ( unsigned int  rowId) const

Returns the array located at position rowId of the one-dimensional table.

Definition at line 80 of file ArrayOfOneDTables.C.

References UQ_FATAL_TEST_MACRO.

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

81 {
82  UQ_FATAL_TEST_MACRO(rowId >= (unsigned int) m_oneDTables.MyLength(),
83  m_env.worldRank(),
84  "ArrayOfOneDTables<T>::oneDTable()",
85  "rowId is out of range");
86 
87  ArrayOfOneDTables<V,M>* tmp = const_cast<ArrayOfOneDTables<V,M>*>(this);
88 
89  UQ_FATAL_TEST_MACRO(tmp->m_oneDTables(rowId,0) == NULL,
90  m_env.worldRank(),
91  "ArrayOfOneDTables<T>::oneDTable()",
92  "requested row is still NULL");
93 
94  return *(tmp->m_oneDTables(rowId,0));
95 }
DistArray< std::vector< double > * > m_oneDTables
int worldRank() const
Returns the process world rank.
Definition: Environment.C:235
const BaseEnvironment & m_env
int MyLength() const
Returns the length of the locally owned array.
Definition: DistArray.C:147
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
Definition: Defines.h:223
template<class V , class M >
void QUESO::ArrayOfOneDTables< V, M >::print ( std::ostream &  os) const

Prints the values in this array of tables.

It prints the arrays (inner for-loop) in each position of the table (outer for-loop).

Definition at line 100 of file ArrayOfOneDTables.C.

References QUESO::ArrayOfOneDTables< V, M >::m_oneDTables.

Referenced by QUESO::operator<<().

101 {
102  ArrayOfOneDTables<V,M>* tmp = const_cast<ArrayOfOneDTables<V,M>*>(this);
103  for (unsigned int i = 0; i < (unsigned int) m_oneDTables.MyLength(); ++i) {
104  const std::vector<double>& tmpVec = *(tmp->m_oneDTables(i,0));
105  os << m_prefix << i << "_values_sub" << m_env.subIdString() << " = zeros(" << tmpVec.size()
106  << "," << 1
107  << ");"
108  << std::endl;
109  os << m_prefix << i << "_values_sub" << m_env.subIdString() << " = [";
110  for (unsigned int j = 0; j < tmpVec.size(); ++j) {
111  os << tmpVec[j] << " ";
112  }
113  os << "];"
114  << std::endl;
115  }
116 
117  return;
118 }
const std::string & subIdString() const
Access to the attribute m_subIdString; which stores the string for the sub-environment, and it will be used, for instance, to create the output files for each sub-environment.
Definition: Environment.C:335
DistArray< std::vector< double > * > m_oneDTables
const BaseEnvironment & m_env
int MyLength() const
Returns the length of the locally owned array.
Definition: DistArray.C:147
template<class V , class M >
void QUESO::ArrayOfOneDTables< V, M >::setOneDTable ( unsigned int  rowId,
const std::vector< double > &  values 
)

Sets the one-dimensional table.

This methods assigns the array values to position rowId of the one-dimensional table.

Definition at line 59 of file ArrayOfOneDTables.C.

References UQ_FATAL_TEST_MACRO.

Referenced by QUESO::SequenceOfVectors< V, M >::subUniformlySampledCdf(), and QUESO::SequenceOfVectors< V, M >::unifiedUniformlySampledCdf().

60 {
61  UQ_FATAL_TEST_MACRO(rowId >= (unsigned int) m_oneDTables.MyLength(),
62  m_env.worldRank(),
63  "ArrayOfOneDTables<T>::setOneDTable()",
64  "rowId is out of range");
65 
66  if (m_oneDTables(rowId,0) == NULL) m_oneDTables(rowId,0) = new std::vector<double>(0);
67  else m_oneDTables(rowId,0)->clear();
68 
69  std::vector<double>& vec = *(m_oneDTables(rowId,0));
70  vec.resize(values.size(),0.);
71  for (unsigned int j = 0; j < values.size(); ++j) {
72  vec[j] = values[j];
73  }
74 
75  return;
76 }
DistArray< std::vector< double > * > m_oneDTables
int worldRank() const
Returns the process world rank.
Definition: Environment.C:235
const BaseEnvironment & m_env
int MyLength() const
Returns the length of the locally owned array.
Definition: DistArray.C:147
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
Definition: Defines.h:223

Member Data Documentation

template<class V, class M>
const BaseEnvironment& QUESO::ArrayOfOneDTables< V, M >::m_env
private

Definition at line 75 of file ArrayOfOneDTables.h.

template<class V, class M>
DistArray<std::vector<double>*> QUESO::ArrayOfOneDTables< V, M >::m_oneDTables
private
template<class V, class M>
std::string QUESO::ArrayOfOneDTables< V, M >::m_prefix
private

Definition at line 76 of file ArrayOfOneDTables.h.

template<class V, class M>
const VectorSpace<V,M>& QUESO::ArrayOfOneDTables< V, M >::m_rowSpace
private

Definition at line 77 of file ArrayOfOneDTables.h.


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

Generated on Thu Apr 23 2015 19:26:17 for queso-0.51.1 by  doxygen 1.8.5