#include #include #include #include using namespace std; using namespace boost::numeric::ublas; int main() { compressed_matrix< double, column_major, 0, unbounded_array, unbounded_array > matrix(10, 10, 20); // Fill values unbounded_array &v = matrix.value_data(); v[0] = 1; v[1] = 2; v[2] = 3; v[3] = 4; v[4] = 5; v[5] = 6; v[6] = 7; v[7] = 8; v[8] = 9; v[9] = 10; v[10] = 11; v[11] = 12; v[12] = 13; v[13] = 14; v[14] = 15; v[15] = 16; v[16] = 17; v[17] = 18; v[18] = 19; v[19] = 20; // Fill index 1 unbounded_array &i1 = matrix.index1_data(); i1[0] = 0; i1[1] = 7; i1[2] = 15; i1[3] = 20; // Fill index 2 unbounded_array &i2 = matrix.index2_data(); i2[0] = 2; i2[1] = 3; i2[2] = 5; i2[3] = 6; i2[4] = 7; i2[5] = 8; i2[6] = 9; i2[7] = 0; i2[8] = 1; i2[9] = 2; i2[10] = 3; i2[11] = 4; i2[12] = 5; i2[13] = 6; i2[14] = 8; i2[15] = 1; i2[16] = 3; i2[17] = 4; i2[18] = 7; i2[19] = 8; cout << matrix.nnz() << endl; // Returns 0 cout << matrix << endl << endl; // Writes a zero-filled matrix /* * Now change the variables whit the debugger: * matrix.filled1_ = 4; * matrix.filled2_ = 20; */ cout << matrix.nnz() << endl; // Returns 20 cout << matrix << endl << endl; // Writes my matrix return 0; }