STL Inner Product

Dirk Eddelbuettel — written Dec 27, 2012 — source

The STL contains a large number of useful functions and algorithm. One useful function is inner_product which can be used to compute the sum oof the elements of two vectors.

#include <Rcpp.h>
#include <numeric>

// [[Rcpp::export]]
double innerProduct(const std::vector<double>& x, 
                    const std::vector<double>& y) {
    double val = std::inner_product(x.begin(), x.end(), y.begin(), 0);
    return val;
}
x <- c(1,2,3)
y <- c(4,5,6)
cbind(x,y)
     x y
[1,] 1 4
[2,] 2 5
[3,] 3 6
innerProduct(x, y)
[1] 32
sum(x*y)  # check from R
[1] 32
innerProduct(x, x)
[1] 14
sum(x^2)
[1] 14

tags: stl 

Related Articles