13 #include "msdevstudio/MSconfig.h"
28 #ifdef ITERATOR_MEMBER_DEFECT
32 using std::runtime_error;
37 using namespace hippodraw;
39 RTuple::RTuple (
const std::vector< std::string > & labels )
42 std::size_t
size = labels.size ();
43 for ( std::size_t i = 0; i <
size; i++ ) {
44 vector< double > * vp =
new vector< double > ();
58 vector < string > labels;
59 for (
unsigned int i = 0; i < n; i++ ) {
60 labels.push_back (
string (
"nil" ) );
70 vector< vector<double> *>::iterator it =
m_data.begin();
71 for ( ; it !=
m_data.end(); ++it ) {
83 const RTuple & ntuple = dynamic_cast <
const RTuple & > ( other );
84 vector < vector < double > * > ::const_iterator first
86 while ( first != ntuple.
m_data.end () ) {
87 vector < double > * v =
new vector < double > ( **first++ );
93 for (
unsigned int i = 0; i <
size; i++ ) {
94 const vector < double > & src = other.
getRow ( i );
95 vector < double > * dst =
new vector < double > ( src );
103 vector < vector < double > * >::iterator it =
m_data.begin();
104 while ( it !=
m_data.end() ) {
127 addRow (
const std::vector < double > & v )
131 vector < double > * row =
new vector < double > ( v );
139 if ( row >=
m_data.size() ) {
140 string what (
"RTuple::getRow: argument out of range" );
141 throw runtime_error ( what );
152 assert ( indices.size() ==
rank );
157 unsigned int row = indices[0] /
size;
158 unsigned int col = indices[0] %
size;
159 const vector < double > & rowvec = *
m_data[row];
164 unsigned int col = indices[1];
165 unsigned int row = indices[0];
166 const vector < double > & rowvec = *
m_data[row];
172 unsigned int col = indices[2];
173 unsigned int j = indices[1];
174 unsigned int i = indices[0];
176 assert ( col < size );
180 unsigned int row = j + i *
m_shape[1];
181 const vector < double > & rowvec = *
m_data[row];