/* The following code example is taken from the book * "The C++ Standard Library - A Tutorial and Reference" * by Nicolai M. Josuttis, Addison-Wesley, 1999 * * (C) Copyright Nicolai M. Josuttis 1999. * Permission to copy, use, modify, sell and distribute this software * is granted provided this copyright notice appears in all copies. * This software is provided "as is" without express or implied * warranty, and with no claim as to its suitability for any purpose. */ #include #include using namespace std; // print valarray line-by-line template void printValarray (const valarray& va, int num) { for (int i=0; i va(12); // fill valarray with values for (int i=0; i<12; i++) { va[i] = i; } printValarray (va, 3); // first column = second column raised to the third column va[slice(0,4,3)] = pow (valarray(va[slice(1,4,3)]), valarray(va[slice(2,4,3)])); printValarray (va, 3); // create valarray with three times the third element of va valarray vb(va[slice(2,4,0)]); // multiply the third column by the elements of vb va[slice(2,4,3)] *= vb; printValarray (va, 3); // print the square root of the elements in the second row printValarray (sqrt(valarray(va[slice(3,3,1)])), 3); // double the elements in the third row va[slice(2,4,3)] = valarray(va[slice(2,4,3)]) * 2.0; printValarray (va, 3); }