// -*- c++ -*- // // $COPYRIGHT$ // //=========================================================================== #include #include #include #include #include #include using namespace std; /* Sample Output using compressed1D vector before [2,2,2,2,2,2,2,2,2,] vector before [2,2,4,2,2,4,2,4,2,] using sparse1D vector before [2,2,2,2,2,2,2,2,2,] vector before [2,2,4,2,2,4,2,4,2,] */ template //begin void do_gather_scatter(DenseVec& d, SparseVec& c) { using namespace mtl; //end cout << "vector before" << endl; print_vector(d); //begin c[2] = 0; c[5] = 0; c[7] = 0; gather(d, c); scale(c, 2.0); scatter(c,d); //end cout << "vector after" << endl; print_vector(d); //being } //end int main (int,char*[]) { using namespace mtl; //begin typedef dense1D denseVec; typedef compressed1D compVec; // length 9, all elements = 2.0 denseVec d(9,2.0); compVec c(9); //end cout << "using compressed1D" << endl; //begin do_gather_scatter(d, c); //end cout << endl; typedef std::set< entry1 > RepType; typedef sparse1D< RepType > sparseVec; sparseVec s(9); mtl::set(d, 2); cout << "using sparse1D" << endl; do_gather_scatter(d, s); return 0; }