Fixes bug in lmfit - gsl-shell.git - gsl-shell

index : gsl-shell.git
gsl-shell
summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrancesco Abbate <francesco.bbt@gmail.com>2011年09月14日 10:02:29 +0200
committerFrancesco Abbate <francesco.bbt@gmail.com>2011年10月19日 14:43:24 +0200
commitbba69adf6f3a6303c38f46f4d0ba4b7cc7828c32 (patch)
treefc22d8cb1d53e4230fef1b1af5cb82904b4aa9d1
parentce039ed3b092f32a6b8435b9c52d3d2b356a2306 (diff)
downloadgsl-shell-bba69adf6f3a6303c38f46f4d0ba4b7cc7828c32.tar.gz
Fixes bug in lmfit
The error was in the Lua translation of original GSL routine multifit/qrsolv.c . The bug manifest itself with a message "arithmentic on nil value" when an bad dataset is provided to the fit procedure.
Diffstat
-rw-r--r--num/lmfit.lua.in 18
1 files changed, 9 insertions, 9 deletions
diff --git a/num/lmfit.lua.in b/num/lmfit.lua.in
index 5d7db424..b79fc121 100644
--- a/num/lmfit.lua.in
+++ b/num/lmfit.lua.in
@@ -228,19 +228,19 @@ local function qrsolv(r, p, lambda, diag, qtb, x, sdiag, wa)
gsl.gsl_matrix_set(r, k, k, new_rkk)
gsl.gsl_vector_set(wa, k, new_wak)
end
- end
- -- Accumulate the transformation in the row of s
+ -- Accumulate the transformation in the row of s
- for i = k + 1, n-1 do
- local rik = gsl.gsl_matrix_get (r, i, k)
- local sdiagi = gsl.gsl_vector_get (sdiag, i)
+ for i = k + 1, n-1 do
+ local rik = gsl.gsl_matrix_get (r, i, k)
+ local sdiagi = gsl.gsl_vector_get (sdiag, i)
- local new_rik = cosine * rik + sine * sdiagi
- local new_sdiagi = -sine * rik + cosine * sdiagi
+ local new_rik = cosine * rik + sine * sdiagi
+ local new_sdiagi = -sine * rik + cosine * sdiagi
- gsl.gsl_matrix_set(r, i, k, new_rik)
- gsl.gsl_vector_set(sdiag, i, new_sdiagi)
+ gsl.gsl_matrix_set(r, i, k, new_rik)
+ gsl.gsl_vector_set(sdiag, i, new_sdiagi)
+ end
end
end
generated by cgit v1.2.3 (git 2.39.1) at 2025年10月04日 18:06:52 +0000

AltStyle によって変換されたページ (->オリジナル) /