Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
stan::io::dump Class Reference

#include "stan/io/dump.hpp"

Inheritance diagram for stan::io::dump:
stan::io::var_context

Public Member Functions

 dump (std::istream &in)
 
bool contains_r (const std::string &name) const
 
bool contains_i (const std::string &name) const
 
std::vector< double > vals_r (const std::string &name) const
 
std::vector< size_t > dims_r (const std::string &name) const
 
std::vector< intvals_i (const std::string &name) const
 
std::vector< size_t > dims_i (const std::string &name) const
 
virtual void names_r (std::vector< std::string > &names) const
 
virtual void names_i (std::vector< std::string > &names) const
 
bool remove (const std::string &name)
 
void add_vec (std::stringstream &msg, const std::vector< size_t > &dims) const
 
void validate_dims (const std::string &stage, const std::string &name, const std::string &base_type, const std::vector< size_t > &dims_declared) const
 

Static Public Member Functions

static std::vector< size_t > to_vec ()
 
static std::vector< size_t > to_vec (size_t n1)
 
static std::vector< size_t > to_vec (size_t n1, size_t n2)
 
static std::vector< size_t > to_vec (size_t n1, size_t n2, size_t n3)
 
static std::vector< size_t > to_vec (size_t n1, size_t n2, size_t n3, size_t n4)
 
static std::vector< size_t > to_vec (size_t n1, size_t n2, size_t n3, size_t n4, size_t n5)
 
static std::vector< size_t > to_vec (size_t n1, size_t n2, size_t n3, size_t n4, size_t n5, size_t n6)
 
static std::vector< size_t > to_vec (size_t n1, size_t n2, size_t n3, size_t n4, size_t n5, size_t n6, size_t n7)
 
static std::vector< size_t > to_vec (size_t n1, size_t n2, size_t n3, size_t n4, size_t n5, size_t n6, size_t n7, size_t n8)
 

Private Member Functions

bool contains_r_only (const std::string &name) const
 

Private Attributes

std::map< std::string, std::pair< std::vector< double >, std::vector< size_t > > > vars_r_
 
std::map< std::string, std::pair< std::vector< int >, std::vector< size_t > > > vars_i_
 
std::vector< double > const empty_vec_r_
 
std::vector< int > const empty_vec_i_
 
std::vector< size_t > const empty_vec_ui_
 

Detailed Description

Represents named arrays with dimensions.

A dump object represents a dump of named arrays with dimensions. The arrays may have any dimensionality. The values for an array are typed to double or int.

See dump_reader for more information on the format.

Dump objects are created from reading dump files from an input stream.

The dimensions and values of variables may be accessed by name.

Definition at line 599 of file dump.hpp.

Constructor & Destructor Documentation

stan::io::dump::dump ( std::istream &  in)
inlineexplicit

Construct a dump object from the specified input stream.

Warning: This method does not close the input stream.

Parameters
inInput stream from which to read.

Definition at line 631 of file dump.hpp.

References stan::io::dump_reader::dims(), stan::io::dump_reader::double_values(), stan::io::dump_reader::int_values(), stan::io::dump_reader::is_int(), stan::io::dump_reader::name(), and stan::io::dump_reader::next().

631  {
632  dump_reader reader(in);
633  while (reader.next()) {
634  if (reader.is_int()) {
635  vars_i_[reader.name()]
636  = std::pair<std::vector<int>,
637  std::vector<size_t> >(reader.int_values(),
638  reader.dims());
639 
640  } else {
641  vars_r_[reader.name()]
642  = std::pair<std::vector<double>,
643  std::vector<size_t> >(reader.double_values(),
644  reader.dims());
645  }
646  }
647  }
std::map< std::string, std::pair< std::vector< double >, std::vector< size_t > > > vars_r_
Definition: dump.hpp:603
std::map< std::string, std::pair< std::vector< int >, std::vector< size_t > > > vars_i_
Definition: dump.hpp:606
ifstream in
Definition: comparison.C:7

Member Function Documentation

void stan::io::var_context::add_vec ( std::stringstream &  msg,
const std::vector< size_t > &  dims 
) const
inlineinherited

Definition at line 114 of file var_context.hpp.

References MECModelEnuComparisons::i.

Referenced by stan::io::var_context::validate_dims().

115  {
116  msg << '(';
117  for (size_t i = 0; i < dims.size(); ++i) {
118  if (i > 0) msg << ',';
119  msg << dims[i];
120  }
121  msg << ')';
122  }
bool stan::io::dump::contains_i ( const std::string &  name) const
inlinevirtual

Return true if this dump contains an integer valued array with the specified name.

Parameters
nameVariable name to test.
Returns
true if the variable name has an integer array value.

Implements stan::io::var_context.

Definition at line 669 of file dump.hpp.

Referenced by TEST().

669  {
670  return vars_i_.find(name) != vars_i_.end();
671  }
const XML_Char * name
Definition: expat.h:151
std::map< std::string, std::pair< std::vector< int >, std::vector< size_t > > > vars_i_
Definition: dump.hpp:606
bool stan::io::dump::contains_r ( const std::string &  name) const
inlinevirtual

Return true if this dump contains the specified variable name is defined. This method returns true even if the values are all integers.

Parameters
nameVariable name to test.
Returns
true if the variable exists.

Implements stan::io::var_context.

Definition at line 657 of file dump.hpp.

Referenced by TEST().

657  {
658  return contains_r_only(name) || contains_i(name);
659  }
const XML_Char * name
Definition: expat.h:151
bool contains_r_only(const std::string &name) const
Definition: dump.hpp:619
bool contains_i(const std::string &name) const
Definition: dump.hpp:669
bool stan::io::dump::contains_r_only ( const std::string &  name) const
inlineprivate

Return true if this dump contains the specified variable name is defined in the real values. This method returns false if the values are all integers.

Parameters
nameVariable name to test.
Returns
true if the variable exists in the real values of the dump.

Definition at line 619 of file dump.hpp.

619  {
620  return vars_r_.find(name) != vars_r_.end();
621  }
const XML_Char * name
Definition: expat.h:151
std::map< std::string, std::pair< std::vector< double >, std::vector< size_t > > > vars_r_
Definition: dump.hpp:603
std::vector<size_t> stan::io::dump::dims_i ( const std::string &  name) const
inlinevirtual

Return the dimensions for the integer variable with the specified name.

Parameters
nameName of variable.
Returns
Dimensions of variable.

Implements stan::io::var_context.

Definition at line 731 of file dump.hpp.

References moon_position_table_new3::second.

Referenced by TEST().

731  {
732  if (contains_i(name)) {
733  return (vars_i_.find(name)->second).second;
734  }
735  return empty_vec_ui_;
736  }
const XML_Char * name
Definition: expat.h:151
std::vector< size_t > const empty_vec_ui_
Definition: dump.hpp:609
bool contains_i(const std::string &name) const
Definition: dump.hpp:669
std::map< std::string, std::pair< std::vector< int >, std::vector< size_t > > > vars_i_
Definition: dump.hpp:606
std::vector<size_t> stan::io::dump::dims_r ( const std::string &  name) const
inlinevirtual

Return the dimensions for the double variable with the specified name.

Parameters
nameName of variable.
Returns
Dimensions of variable.

Implements stan::io::var_context.

Definition at line 701 of file dump.hpp.

References moon_position_table_new3::second.

Referenced by TEST().

701  {
702  if (contains_r_only(name)) {
703  return (vars_r_.find(name)->second).second;
704  } else if (contains_i(name)) {
705  return (vars_i_.find(name)->second).second;
706  }
707  return empty_vec_ui_;
708  }
const XML_Char * name
Definition: expat.h:151
std::vector< size_t > const empty_vec_ui_
Definition: dump.hpp:609
bool contains_r_only(const std::string &name) const
Definition: dump.hpp:619
std::map< std::string, std::pair< std::vector< double >, std::vector< size_t > > > vars_r_
Definition: dump.hpp:603
bool contains_i(const std::string &name) const
Definition: dump.hpp:669
std::map< std::string, std::pair< std::vector< int >, std::vector< size_t > > > vars_i_
Definition: dump.hpp:606
virtual void stan::io::dump::names_i ( std::vector< std::string > &  names) const
inlinevirtual

Return a list of the names of the integer variables in the dump.

Parameters
namesVector to store the list of names in.

Implements stan::io::var_context.

Definition at line 760 of file dump.hpp.

References it.

760  {
761  names.resize(0);
762  for (std::map<std::string,
763  std::pair<std::vector<int>,
764  std::vector<size_t> > >
765  ::const_iterator it = vars_i_.begin();
766  it != vars_i_.end(); ++it)
767  names.push_back((*it).first);
768  }
set< int >::iterator it
std::map< std::string, std::pair< std::vector< int >, std::vector< size_t > > > vars_i_
Definition: dump.hpp:606
::xsd::cxx::tree::string< char, simple_type > string
Definition: Database.h:154
virtual void stan::io::dump::names_r ( std::vector< std::string > &  names) const
inlinevirtual

Return a list of the names of the floating point variables in the dump.

Parameters
namesVector to store the list of names in.

Implements stan::io::var_context.

Definition at line 744 of file dump.hpp.

References it.

744  {
745  names.resize(0);
746  for (std::map<std::string,
747  std::pair<std::vector<double>,
748  std::vector<size_t> > >
749  ::const_iterator it = vars_r_.begin();
750  it != vars_r_.end(); ++it)
751  names.push_back((*it).first);
752  }
set< int >::iterator it
std::map< std::string, std::pair< std::vector< double >, std::vector< size_t > > > vars_r_
Definition: dump.hpp:603
::xsd::cxx::tree::string< char, simple_type > string
Definition: Database.h:154
bool stan::io::dump::remove ( const std::string &  name)
inline

Remove variable from the object.

Parameters
nameName of the variable to remove.
Returns
If variable is removed returns true, else returns false.

Definition at line 777 of file dump.hpp.

Referenced by TEST().

777  {
778  return (vars_i_.erase(name) > 0)
779  || (vars_r_.erase(name) > 0);
780  }
const XML_Char * name
Definition: expat.h:151
std::map< std::string, std::pair< std::vector< double >, std::vector< size_t > > > vars_r_
Definition: dump.hpp:603
std::map< std::string, std::pair< std::vector< int >, std::vector< size_t > > > vars_i_
Definition: dump.hpp:606
static std::vector<size_t> stan::io::var_context::to_vec ( )
inlinestaticinherited

Definition at line 179 of file var_context.hpp.

Referenced by stan::services::util::read_dense_inv_metric(), stan::services::util::read_diag_inv_metric(), and TEST().

179  {
180  return std::vector<size_t>();
181  }
static std::vector<size_t> stan::io::var_context::to_vec ( size_t  n1)
inlinestaticinherited

Definition at line 182 of file var_context.hpp.

References make_training::n1, and registry_explorer::v.

182  {
183  std::vector<size_t> v(1);
184  v[0] = n1;
185  return v;
186  }
static std::vector<size_t> stan::io::var_context::to_vec ( size_t  n1,
size_t  n2 
)
inlinestaticinherited

Definition at line 187 of file var_context.hpp.

References make_training::n1, and registry_explorer::v.

187  {
188  std::vector<size_t> v(2);
189  v[0] = n1;
190  v[1] = n2;
191  return v;
192  }
static std::vector<size_t> stan::io::var_context::to_vec ( size_t  n1,
size_t  n2,
size_t  n3 
)
inlinestaticinherited

Definition at line 193 of file var_context.hpp.

References make_training::n1, and registry_explorer::v.

194  {
195  std::vector<size_t> v(3);
196  v[0] = n1;
197  v[1] = n2;
198  v[2] = n3;
199  return v;
200  }
static std::vector<size_t> stan::io::var_context::to_vec ( size_t  n1,
size_t  n2,
size_t  n3,
size_t  n4 
)
inlinestaticinherited

Definition at line 201 of file var_context.hpp.

References make_training::n1, and registry_explorer::v.

202  {
203  std::vector<size_t> v(4);
204  v[0] = n1;
205  v[1] = n2;
206  v[2] = n3;
207  v[3] = n4;
208  return v;
209  }
static std::vector<size_t> stan::io::var_context::to_vec ( size_t  n1,
size_t  n2,
size_t  n3,
size_t  n4,
size_t  n5 
)
inlinestaticinherited

Definition at line 210 of file var_context.hpp.

References make_training::n1, and registry_explorer::v.

212  {
213  std::vector<size_t> v(5);
214  v[0] = n1;
215  v[1] = n2;
216  v[2] = n3;
217  v[3] = n4;
218  v[4] = n5;
219  return v;
220  }
static std::vector<size_t> stan::io::var_context::to_vec ( size_t  n1,
size_t  n2,
size_t  n3,
size_t  n4,
size_t  n5,
size_t  n6 
)
inlinestaticinherited

Definition at line 221 of file var_context.hpp.

References make_training::n1, and registry_explorer::v.

223  {
224  std::vector<size_t> v(6);
225  v[0] = n1;
226  v[1] = n2;
227  v[2] = n3;
228  v[3] = n4;
229  v[4] = n5;
230  v[5] = n6;
231  return v;
232  }
static std::vector<size_t> stan::io::var_context::to_vec ( size_t  n1,
size_t  n2,
size_t  n3,
size_t  n4,
size_t  n5,
size_t  n6,
size_t  n7 
)
inlinestaticinherited

Definition at line 233 of file var_context.hpp.

References make_training::n1, and registry_explorer::v.

236  {
237  std::vector<size_t> v(7);
238  v[0] = n1;
239  v[1] = n2;
240  v[2] = n3;
241  v[3] = n4;
242  v[4] = n5;
243  v[5] = n6;
244  v[6] = n7;
245  return v;
246  }
static std::vector<size_t> stan::io::var_context::to_vec ( size_t  n1,
size_t  n2,
size_t  n3,
size_t  n4,
size_t  n5,
size_t  n6,
size_t  n7,
size_t  n8 
)
inlinestaticinherited

Definition at line 247 of file var_context.hpp.

References make_training::n1, and registry_explorer::v.

250  {
251  std::vector<size_t> v(8);
252  v[0] = n1;
253  v[1] = n2;
254  v[2] = n3;
255  v[3] = n4;
256  v[4] = n5;
257  v[5] = n6;
258  v[6] = n7;
259  v[7] = n8;
260  return v;
261  }
void stan::io::var_context::validate_dims ( const std::string &  stage,
const std::string &  name,
const std::string &  base_type,
const std::vector< size_t > &  dims_declared 
) const
inlineinherited

Definition at line 124 of file var_context.hpp.

References stan::io::var_context::add_vec(), stan::io::var_context::contains_i(), stan::io::var_context::contains_r(), fetch_tb_beamline_files::dims, stan::io::var_context::dims_r(), MECModelEnuComparisons::i, and lem_server::msg.

Referenced by stan::services::util::read_dense_inv_metric(), stan::services::util::read_diag_inv_metric(), and TEST().

127  {
128  bool is_int_type = base_type == "int";
129  if (is_int_type) {
130  if (!contains_i(name)) {
131  std::stringstream msg;
132  msg << (contains_r(name)
133  ? "int variable contained non-int values"
134  : "variable does not exist" )
135  << "; processing stage=" << stage
136  << "; variable name=" << name
137  << "; base type=" << base_type;
138  throw std::runtime_error(msg.str());
139  }
140  } else {
141  if (!contains_r(name)) {
142  std::stringstream msg;
143  msg << "variable does not exist"
144  << "; processing stage=" << stage
145  << "; variable name=" << name
146  << "; base type=" << base_type;
147  throw std::runtime_error(msg.str());
148  }
149  }
150  std::vector<size_t> dims = dims_r(name);
151  if (dims.size() != dims_declared.size()) {
152  std::stringstream msg;
153  msg << "mismatch in number dimensions declared and found in context"
154  << "; processing stage=" << stage
155  << "; variable name=" << name
156  << "; dims declared=";
157  add_vec(msg, dims_declared);
158  msg << "; dims found=";
159  add_vec(msg, dims);
160  throw std::runtime_error(msg.str());
161  }
162  for (size_t i = 0; i < dims.size(); ++i) {
163  if (dims_declared[i] != dims[i]) {
164  std::stringstream msg;
165  msg << "mismatch in dimension declared and found in context"
166  << "; processing stage=" << stage
167  << "; variable name=" << name
168  << "; position="
169  << i
170  << "; dims declared=";
171  add_vec(msg, dims_declared);
172  msg << "; dims found=";
173  add_vec(msg, dims);
174  throw std::runtime_error(msg.str());
175  }
176  }
177  }
const XML_Char * name
Definition: expat.h:151
virtual bool contains_r(const std::string &name) const =0
virtual bool contains_i(const std::string &name) const =0
void add_vec(std::stringstream &msg, const std::vector< size_t > &dims) const
virtual std::vector< size_t > dims_r(const std::string &name) const =0
std::vector<int> stan::io::dump::vals_i ( const std::string &  name) const
inlinevirtual

Return the integer values for the variable with the specified name.

Parameters
nameName of variable.
Returns
Values.

Implements stan::io::var_context.

Definition at line 717 of file dump.hpp.

Referenced by TEST().

717  {
718  if (contains_i(name)) {
719  return (vars_i_.find(name)->second).first;
720  }
721  return empty_vec_i_;
722  }
const XML_Char * name
Definition: expat.h:151
bool contains_i(const std::string &name) const
Definition: dump.hpp:669
std::map< std::string, std::pair< std::vector< int >, std::vector< size_t > > > vars_i_
Definition: dump.hpp:606
std::vector< int > const empty_vec_i_
Definition: dump.hpp:608
std::vector<double> stan::io::dump::vals_r ( const std::string &  name) const
inlinevirtual

Return the double values for the variable with the specified name or null.

Parameters
nameName of variable.
Returns
Values of variable.

Implements stan::io::var_context.

Definition at line 680 of file dump.hpp.

Referenced by TEST().

680  {
681  if (contains_r_only(name)) {
682  return (vars_r_.find(name)->second).first;
683  } else if (contains_i(name)) {
684  std::vector<int> vec_int = (vars_i_.find(name)->second).first;
685  std::vector<double> vec_r(vec_int.size());
686  for (size_t ii = 0; ii < vec_int.size(); ii++) {
687  vec_r[ii] = vec_int[ii];
688  }
689  return vec_r;
690  }
691  return empty_vec_r_;
692  }
const XML_Char * name
Definition: expat.h:151
bool contains_r_only(const std::string &name) const
Definition: dump.hpp:619
std::map< std::string, std::pair< std::vector< double >, std::vector< size_t > > > vars_r_
Definition: dump.hpp:603
bool contains_i(const std::string &name) const
Definition: dump.hpp:669
std::vector< double > const empty_vec_r_
Definition: dump.hpp:607
std::map< std::string, std::pair< std::vector< int >, std::vector< size_t > > > vars_i_
Definition: dump.hpp:606

Member Data Documentation

std::vector<int> const stan::io::dump::empty_vec_i_
private

Definition at line 608 of file dump.hpp.

std::vector<double> const stan::io::dump::empty_vec_r_
private

Definition at line 607 of file dump.hpp.

std::vector<size_t> const stan::io::dump::empty_vec_ui_
private

Definition at line 609 of file dump.hpp.

std::map<std::string, std::pair<std::vector<int>, std::vector<size_t> > > stan::io::dump::vars_i_
private

Definition at line 606 of file dump.hpp.

std::map<std::string, std::pair<std::vector<double>, std::vector<size_t> > > stan::io::dump::vars_r_
private

Definition at line 603 of file dump.hpp.


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