Description
Xsimd C++ Header-Only Library Files.
Description
This header-only library provides modern, portable C++ wrappers for SIMD intrinsics and parallelized, optimized math implementations (SSE, AVX, NEON, AVX512). By placing this library in this package, we offer an efficient distribution system for Xsimd <https://github.com/xtensor-stack/xsimd> for R packages using CRAN.
README.md
RcppXsimd
Overview
This library provides an Rcpp
wrapper around Xsimd that is a modern, portable C++14
header-only library for SIMD intrinsics and parallelized, optimized math implementations.
Example
library(RcppXsimd)
?supportsAVX
if (supportsAVX()) {
Sys.setenv(PKG_CPPFLAGS = "-mavx")
Rcpp::sourceCpp(verbose = TRUE, code='
// [[Rcpp::plugins(cpp14)]]
// [[Rcpp::depends(RcppXsimd)]]
#include <Rcpp.h>
#include "xsimd/xsimd.hpp"
// [[Rcpp::export]]
void demoAVX() {
xsimd::batch<double, 4> a(1.0);
xsimd::batch<double, 4> b(1.0);
Rcpp::Rcout << a << " + " << b << " = " << (a + b) << std::endl;
}')
demoAVX()
} else {
message("AVX is not supported")
}
Development status
Acknowledgements
- This project is supported in part through the National Science Foundation grant DMS 1264153.