OpenCL中是否有复数(稠密)线性代数库

OpenCL中是否有复数(稠密)线性代数库,opencl,linear-algebra,Opencl,Linear Algebra,直到今天,OpenCL标准还不包括复数。然而,一些FFT实现似乎绕过了这一点。有没有(密集的)线性代数(特征值解算器、线性系统解算器)库(最好是C++)可以处理复杂代数呢?为什么在OpenCL标准中没有急于实现复数的原因(甚至2.0都没有)这是因为它很容易由您自己完成,而且硬件制造商也不太关心它 下面是一个关于如何开始使用复数的简单示例: #define complex_t float2 // real part of complex product (a,b) #define MULT_RE

直到今天,OpenCL标准还不包括复数。然而,一些FFT实现似乎绕过了这一点。有没有(密集的)线性代数(特征值解算器、线性系统解算器)库(最好是C++)可以处理复杂代数呢?

为什么在OpenCL标准中没有急于实现复数的原因(甚至2.0都没有)这是因为它很容易由您自己完成,而且硬件制造商也不太关心它

下面是一个关于如何开始使用复数的简单示例:

#define complex_t float2

// real part of complex product (a,b)
#define MULT_RE(a,b) (a.x * b.x - a.y*b.y)
// imaginary part of complex product (a,b)
#define MULT_IM(a,b) (a.x * b.y + a.y*b.x)

// complex product
inline complex_t mul_1(complex_t a,complex_t b)
{
  return (complex_t) (MULT_RE(a,b), MULT_IM(a,b));
}
正如您所看到的,复数非常自然地映射到2个分量向量。所以,每当一个算法需要复数时,通常都是这样做的


就我个人而言,我希望看到OpenCL支持复数。但我也明白,它主要是一个方便的库,而不是以任何方式涉及硬件的核心功能。

完全同意,回答不错。