svdcmp()
是Numerical Recipes in C书中提供的SVD计算程序,之前用的时候遇到一个坑,记录以备忘。
发现在NR in C的论坛上早已有提及到:BUG: svdcmp() out-of-bounds array access,摘录部分如下:
BUG: svdcmp() out-of-bounds array access
edward
04-10-2006, 05:48 PM
Hi,
I’ve encountered a bug in svdcmp() (NR in C) which I’ve searched on the web and no one seems to have published a fix for.
In the loop for “Diagonalization of the biadiagonal form”, we have the following code:
flag=1;
for (l=k;l>=1;l--) {
/* Test for splitting. */
nm=l-1; /* Note that rv1[1] is always zero. */
if ((double)(fabs(rv1[l])+anorm) =&#