C++ Program to Calculate Inner Product of Two Valarrays
#include <iostream>
#include <valarray>
void print(std::valarray <double> v)
{
for (int i = 0; i < v.size(); i++)
std::cout << v[i] << " ";
std::cout << std::endl;
}
int main()
{
std::valarray <double> v(2, 5);
std::valarray <double> vd(1.5, 5);
std::valarray <double> vd2(10.0, 10);
std::cout << "Valarray 1 => ";
print(v);
std::cout << "Valarray 2 => ";
print(vd);
std::cout << "Inner Product of valarray 1 and 2 => ";
vd = v * vd;
print(vd);
// Behaviour of multiplying different sized valarrays is undefined
std::cout << "Inner Product of valarrays of different sizes => ";
vd = vd * vd2;
print(vd);
}
Output:
Valarray 1 => 2 2 2 2 2
Valarray 2 => 1.5 1.5 1.5 1.5 1.5
Inner Product of valarray 1 and 2 => 3 3 3 3 3
Inner Product of valarrays of different sizes => 30 30 30 30 30
