- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
提出这样的问题会让人感到良心不安……尽管如此,我发现用谷歌搜索这个问题出奇地困难。我正在试验
lapack_int LAPACKE_dgesvd(
int matrix_order, char jobu, char jobvt,
lapack_int m, lapack_int n, double* a,
lapack_int lda, double* s, double* u, lapack_int ldu,
double* vt, lapack_int ldvt, double* superb);
promise 奇异值分解。已经不再害怕 Fortran 我在这里找到了一个信息金矿:http://www.netlib.no/netlib/lapack/double/dgesvd.f
实际上,该链接的目标解释了所有参数,但 LAPACKE 特定的double* super(以及顺序参数,但在 FORTRAN 中所有参数都是 COL_MAJOR)。
接下来,这里http://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_lapack_examples/lapacke_dgesvd_row.c.htm我发现了一个似乎暗示“这是某种工作缓存”的程序。
但是,如果这是真的,LAPACKE_dgesvd_work(..) 的原因是什么?
此外,我还有第二个问题:在示例中,他们使用 min(M,N)-1 作为 superbed 的大小。为什么?
最佳答案
根据 http://www.netlib.no/netlib/lapack/double/dgesvd.f , 关于 fortran 版本的参数 WORK
:
WORK(工作空间/输出) double 组,维度(MAX(1,LWORK)) 退出时,如果 INFO = 0,WORK(1) 返回最优 LWORK;如果 INFO > 0,WORK(2:MIN(M,N)) 包含上双对角矩阵 B 的未收敛超对角线元素,其对角线在 S 中(不一定排序)。 B满足A = U * B * VT,故其奇异值与A相同,奇异 vector 与U、VT相关。
有可能 superb 是这个上双对角矩阵 B
的超对角线,它具有与 A 相同的奇异值。这也解释了长度 min(n,m)-1
查看从 http://www.netlib.org/lapack/ 下载的 lapack-3.5.0/lapacke/src/lapacke_dgesvd.c证实了这一点。
源代码还显示了高层函数lapacke_dgesvd()
调用了中间层接口(interface)lapacke_dgesvd_work()
。如果您使用高级接口(interface),则不必关心 WORK
的最佳大小。它将被计算并且 WORK
将在 lapacke_dgesvd()
我想知道使用中间层接口(interface)是否有任何好处......也许当这个函数在相同大小的小矩阵上被多次调用时......
再见,
弗朗西斯
关于c - LAPACKE_dgesvd(..) 中的参数 superbed 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21758782/
好的,所以我最近有了OpenGL SuperBible,并在 Code::: Block上将目录设置为到freeglut和GLTools.h,但是这些#include语句不起作用: #include
有人知道如何配置 Kdevelop 和 cmakelist.txt 以使用 GLTools/GLU/和其他 opengl 库吗? Opengl superbible 提供了配置 VS 和 MAC ID
最近我得到了 OpenGL SuperBible 第 5 版。很高兴我开始阅读,当我读到关于如何正确设置所有内容的第一部分时,我遇到了一些 Google 和其他 StackOverflow 问题都无法
显然,它不会运行。代码直接从提供的来源复制。我把图书馆和标题放在我被告知的地方。运行它会导致某种崩溃。 我请了几个人运行它,他们都说它给了他们一个关于丢失 .dll 的错误并且没有尝试运行该程序,这与
我目前正在尝试通过编写一些 DirectX 10 和 OpenGL 3.3 在 DirectX 和 OpenGL 之间做出决定。我已经完成了 DirectX 的设置,链接和编译相当容易。 OpenGl
由于某种原因,立方体虽然旋转,但它不会在屏幕上移动。 这是通过使用函数 m3dTranslateMatrix44 和 m3dRotationMatrix44 实现的,尽管似乎有更好的方法。 修改了 r
我正在尝试编写并运行“OpenGL SuperBible 第 6 版”一书中的第一个示例,但我无法让它工作。我收到错误: fatal error C1083: No se puede abrir el
好吧,我刚买了这本opengl精湛的书(第5版)。不幸的是,我在第一章中偶然发现了如何设置 opengl 本身。这是我执行的步骤。 (1) 首先我安装了Microsoft Visual Studio
提出这样的问题会让人感到良心不安……尽管如此,我发现用谷歌搜索这个问题出奇地困难。我正在试验 lapack_int LAPACKE_dgesvd( int matrix_order, char j
我正在使用 SuperBible v6 提供的 sb6::application 框架开发一个 OpenGL 应用程序,尽管它在我的计算机上始终运行良好(即使我在我的 DE 之外运行可执行文件),但我
我的系统是 Win 8.1 64 位并使用 VS2013 Express。我可以验证我的视频卡支持最新的 OpenGL 和 OpenCL。我使用了来自作者 github 和网站的最新代码和媒体文件:h
我正在按照 HOWTOBUILD.txt 中的步骤进行操作。我已经为 glfw 构建了必要的文件。链接器第一次提示 glfw。搜索后,似乎我需要链接到 gl3w see this link .我已经为
我精通 C++,但对 openGL 和 OpenGL SuperBible 还很陌生。我想采用先前开发人员在着色器中使用的投影矩阵,并在没有着色器的情况下应用该矩阵。比如我想取下面的(只贴出相关代码)
呼吁专家、大师和任何人帮助阅读和解析 python 中的文件。 第 6 版第 751 页。或第 7 版第 800 页。 Superbible OpenGL 的附录 B. SBM 文件格式似乎在某种程度
我正在尝试编译 OpenGL SuperBible 第 6 版书中的示例。我从他们的 git 存储库中获取了所有内容,我试图通过打开包含的 visual studio 2013 解决方案文件来使用 V
我是 OpenGL 的新手,我现在正在尝试书中的例子,我已经正确地包含了所有的库和头文件,但似乎还有一些不对劲。 这些是我包含的 header : 这是代码: // Triangle.cpp // O
最近我开始学习 OpenGL 并且;反过来,开始阅读使用 OpenGL 4.3 的 OpenGL SuperBible 第 6 版。 我的问题出在 sb6.h 头文件中,因为书中写道这是一个 c++
我在编译 OpenGL Superbible, 6th ed 提供的示例代码时遇到问题.我正在使用 Ubuntu 19.04 和 CMake 3.13.4。我拥有所有必要的依赖项。 CMake 执行没
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
我移植了spinningcube的.cpp版本在那里找到了 python,以便更好地理解 opengl 并创建新的东西。虽然我得到了与第 6 版和第 7 版书籍源代码的编译版本相同的结果,因为两个版本
我是一名优秀的程序员,十分优秀!