| 7 | | RV::RV(ivec in_ids, Array<std::string> in_names, ivec in_sizes, ivec in_times, ivec in_obs) { |
| 8 | | //TODO: check consistency! |
| 9 | | // All vetors should be of same length |
| 10 | | ids = in_ids; |
| 11 | | names = in_names; |
| 12 | | sizes = in_sizes; |
| 13 | | times = in_times; |
| 14 | | obs = in_obs; |
| | 9 | void RV::init( ivec in_ids, Array<std::string> in_names, ivec in_sizes, ivec in_times, ivec in_obs ) { |
| | 10 | // |
| | 11 | len = in_ids.length(); |
| | 12 | //PRUDENT_MODE |
| | 13 | // All vetors should be of same length |
| | 14 | if ( ( len != in_ids.length() ) || \ |
| | 15 | ( len != in_names.length() ) || \ |
| | 16 | ( len != in_sizes.length() ) || \ |
| | 17 | ( len != in_times.length() ) || \ |
| | 18 | ( len != in_obs.length() ) ) { |
| | 19 | it_error( "RV::RV inconsistent length of input vectors." ); |
| | 20 | } |
| | 21 | |
| | 22 | ids = in_ids; |
| | 23 | names = in_names; |
| | 24 | sizes = in_sizes; |
| | 25 | times = in_times; |
| | 26 | obs = in_obs; |
| | 45 | |
| | 46 | RV RV::rvsubselect(ivec ind){ |
| | 47 | return RV(ids(ind), names(to_Arr(ind)), sizes(ind), times(ind), obs(ind)); |
| | 48 | } |
| | 49 | |
| | 50 | RV RV::operator()(ivec ind){ |
| | 51 | return RV(ids(ind), names(to_Arr(ind)), sizes(ind), times(ind), obs(ind)); |
| | 52 | } |
| | 53 | |
| | 54 | std::ostream &operator<<( std::ostream &os, const RV &rv ) { |
| | 55 | |
| | 56 | for ( int i = 0; i < rv.len ;i++ ) { |
| | 57 | os << rv.ids( i ) << "(" << rv.sizes( i ) << ")" << // id(size)= |
| | 58 | "=" << rv.names( i ) << "_{" << rv.times( i ) << "}; "; //name_{time} |
| | 59 | } |
| | 60 | return os; |
| | 61 | } |
| | 62 | |