我正在寻找一款免费/开源的C/C++库(两者都可以接受),其中包含常见数学函数(如ln或exp)的矢量化版本,类似于Intel的Linux矢量数学库。 我希望能够使用这样的库来编写类似以下代码:
double a[ARRAY_SIZE], b[ARRAY_SIZE];
for (int i = 0; i < ARRAY_SIZE; ++i) {
a[i] = ln(b[i]);
}
作为:
double a[ARRAY_SIZE], b[ARRAY_SIZE];
vectorized_ln(a, b, ARRAY_SIZE);
我希望您能够使用Intel和AMD架构上可用的SIMD指令的全部功能,并使其发挥最大作用。开发环境由在Linux上运行的GNU工具组成。Intel的数学内核库包含一些称为Vector Math Library的东西,它广告宣传“计算密集型核心数学函数的向量实现”,包括基本函数、三角函数等等,因此我正在寻找类似于免费的东西。