【问题标题】:how to use lapack under windowswindows下如何使用lapack
【发布时间】:2011-09-28 09:35:41
【问题描述】:
我想使用 lapack 并为其制作 C++ 矩阵包装器,但 lapack 是用 Fortran 编写的,有一些 clapack 但我想从源代码中使用它。首先将 *.f 和 *.cpp 文件编译为目标文件,然后将其链接到应用程序中..
我拥有的以下应用和来源。
- visual studio proff edition,dev c++,ultimate++,mingw 不管什么
- g95 和 gfortran(在 mingw 下)编译器
- lapack(最新来源)
- blas(包含在 lapack 中)
如何申请,请帮忙...
我的操作系统是 Windows 7 和 CPU Core2Duo,我没有 Intel 数学内核
【问题讨论】:
标签:
c++
windows
fortran
lapack
lapack++
【解决方案1】:
您可以使用official C bindings for LAPACK,然后围绕它构建您的 C++ 包装器。这避免了必须担心 Fortran 调用约定的问题,并且 C 绑定对于 C/C++ 程序员来说比直接调用 Fortran 例程更友好。
此外,您可以使用已经可用的 C++ 矩阵库之一,而不是自己滚动。我推荐Eigen。
PS.:特征矩阵/向量有一个 data() 成员,允许调用 LAPACK 而无需制作临时副本。
【讨论】:
-
您也可以尝试Armadillo,它是 LAPACK(和 BLAS)的高效 C++ 包装器。与 Eigen 一样,它也使用表达式模板来提高速度。但是,Armadillo 与 Eigen 的不同之处在于其语法 (API) 与 Matlab 非常相似。