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.
inner_product
#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
innerProduct(x, x)
[1] 14
sum(x^2)
tags: stl