
248 CHAPTER 11. PREFIX SCAN
xa . end ( ) ) ;
i n t xas = xa . s i z e ( ) ;
i f ( xas < wa) return 0 ;
t h r u s t : : d e vi c e vector<double>
csums ( xa . s i z e ( ) + 1 ) ;
t h r u s t : : e x c l u s i v e scan ( dx . begin ( ) , dx . end ( ) ,
csums . b egin ( ) ) ;
csums [ xas ] = xa [ xas −1] + csums [ xas −1];
Rcpp : : NumericVector xb ( xas − wa + 1 ) ;
// changed code
t h r u s t : : transform ( csums . begin ( ) + wa , csums . end ( ) ,
csums . b egin ( ) , xb . begin ( ) ,
// lambda function
[=] ( double& a , double& b) { return ( ( a−b )/wa ) ;
}) ;
return xb ;
}
Just what is going on in the line
[=] ( double& a , double& b) { return ( ( a−b )