我正在开发一种基于线性代数的C ++工具,允许用户在不同的操作系统上链接到OpenBLAS / ATLAS / Intel MKL。这在Windows和Linux上都很好,但我更愿意允许OS X用户也链接到Accelerate Framework。但是,我的代码使用LAPACKE,它是LAPACK的C接口(例如,函数是LAPACKE_fxname),它似乎不是Accelerate Framework的一部分。相反,it has CLAPACK f2c'd functions(例如函数是fxname_),它们具有不同的接口并使用列主存储。
由于我的其余代码都适用于行专业,我不必将矩阵转换为专业列,这样我就可以在OS X上使用CLAPACK,但这是我唯一的选择吗?换句话说,在使用LAPACKE开发跨平台软件时,有没有办法使用Accelerate Framework?或者我可以使用任何技巧在行主阵列上使用CLAPACK函数(可能只是传递"转换"标记为"不转置"操作?在我看来,行主矩阵以与转置列顺序矩阵相同的方式存储。)?