/*
    Valarray - Arrays with numbers.

    http://www.cplusplus.com/reference/valarray/valarray/
*/

#include <valarray>         // Valarray methods
#include <cmath>            // Math functions
#include <iostream>         // cout
using namespace std;

int main()
{
   valarray<double> v1(10);                // Empty array
   valarray<double> v2(10);            // 10 elements = 0.0

   for (int i=0;i<10;i++) v1[i]=1.0*i; // 0,1,2,..
   for (int i=0;i<10;i++) v2[i]=2.0*i; // 0,2,4,..

   cout << "v1 contains " << v1.size() << " elements" << endl;
   cout << "v2 contains " << v2.size() << " elements" << endl;

   for (int i=0;i<10;i++) cout << "v1["<<i<<"]=" << v1[i] << "   v2["<<i<<"]=" << v2[i] << endl;

   v1+=2;  // Add elementwize
   v2*=2;  // Multipy element wize

   cout << "After mathematics:" << endl;
   for (int i=0;i<10;i++) cout << "v1["<<i<<"]=" << v1[i] << "   v2["<<i<<"]=" << v2[i] << endl;

   valarray<double> v3=v1*v2;   // element wize pair multiplication
   cout << v3.sum() << endl;

   return 0;
}

