4 * Created on: Dec 7, 2010
21 Data::Data(int size) {
22 value_arr.resize(size);
25 Data::Data(vector<double> vector_param, Date *date_param) {
29 size = vector_param.size();
30 //log_debug("Data(), value count: %d\n", size);
31 value_arr.resize(size);
32 for (int ii = 0; ii < vector_param.size(); ii++) {
33 value_arr[ii] = vector_param.at(ii);
34 //log_debug("Data(), value[%d]: %f\n", ii, value_arr[ii]);
36 date_time.copy(date_param);
39 Data::Data(std::valarray<double> value_arr_param, Date *date_param) {
40 value_arr.resize(value_arr_param.size());
41 for (int ii = 0; ii < value_arr_param.size(); ii++) {
42 value_arr[ii] = value_arr_param[ii];
44 date_time.copy(date_param);
50 plp::Date Data::get_date() {
54 void Data::set_date(plp::Date date) {
55 date_time.copy(&date);
58 void Data::printout() {
62 for (ii = 0; ii < value_arr.size(); ii++) {
63 log_debug(" data[%d] = %f\n", ii, value_arr[ii]);
67 DataRange::DataRange(int value_count_per_data_item) {
69 column_count = value_count_per_data_item;
73 DataRange::DataRange(Data data) {
75 column_count = data.value_arr.size();
80 DataRange::~DataRange() {
84 if (val_matrix != NULL) {
88 for (ii = 0; ii < date_list.size(); ii++) {
89 date = date_list.at(ii);
94 void DataRange::add_data(Data data) {
100 //log_debug("old row_count: %d, column_count: %d, value_arr_size: %d\n", row_count, column_count, data.value_arr.size());
101 val_matrix = (double *)realloc(val_matrix, ((row_count + 1) * column_count) * sizeof(double));
102 indx = row_count * column_count;
103 for (ii = 0; ii < data.value_arr.size(); ii++) {
104 val_matrix[indx + ii] = data.value_arr[ii];
107 for (int ii = 0; ii < ((row_count + 1) * column_count); ii++) {
108 log_debug("data_matrix[%d] = %f\n", ii, val_matrix[ii]);
111 date = data.get_date();
112 date_list.push_back(date.clone());
116 Data *DataRange::get_data(int row_index) {
120 vector<double> vector;
124 if ((row_index >= 0) &&
125 (row_index < row_count)) {
126 start_indx = row_index * column_count;
127 for (ii = 0; ii < column_count; ii++) {
128 vector.push_back(val_matrix[start_indx + ii]);
130 date = date_list.at(row_index);
131 ret_val = new Data(vector, date);
136 int DataRange::get_data_row_count() {
140 int DataRange::get_data_column_count() {
144 Data *DataRange::get_first_data() {
149 ret_val = get_data(0);
154 Data *DataRange::get_last_data() {
155 return get_data(row_count - 1);