gsl-shell.git - gsl-shell

index : gsl-shell.git
gsl-shell
summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat
-rw-r--r--matrix-power.lua 12
-rw-r--r--matrix.lua 8
2 files changed, 8 insertions, 12 deletions
diff --git a/matrix-power.lua b/matrix-power.lua
index fc33cb12..a279e84c 100644
--- a/matrix-power.lua
+++ b/matrix-power.lua
@@ -18,8 +18,7 @@ local function power_raw(r, m, n, e)
-- The content of m2 is not needed here.
-- We compute r <- r * m using m2 as a temporary store
gsl.gsl_matrix_memcpy(m2, r)
- gsl.gsl_matrix_set_zero(r)
- gsl.gsl_blas_dgemm(NT, NT, 1, m, m2, 1, r)
+ gsl.gsl_blas_dgemm(NT, NT, 1, m, m2, 0, r)
else
gsl.gsl_matrix_memcpy(r, m)
end
@@ -29,8 +28,7 @@ local function power_raw(r, m, n, e)
if e > 0 then
-- compute m2 <- m * m
- gsl.gsl_matrix_set_zero(m2)
- gsl.gsl_blas_dgemm(NT, NT, 1, m, m, 1, m2)
+ gsl.gsl_blas_dgemm(NT, NT, 1, m, m, 0, m2)
m, m2 = m2, m
end
end
@@ -47,8 +45,7 @@ local function power_complex_raw(r, m, n, e)
-- The content of m2 is not needed here.
-- We compute r <- r * m using m2 as a temporary store
gsl.gsl_matrix_complex_memcpy(m2, r)
- gsl.gsl_matrix_complex_set_zero(r)
- gsl.gsl_blas_zgemm(NT, NT, 1, m, m2, 1, r)
+ gsl.gsl_blas_zgemm(NT, NT, 1, m, m2, 0, r)
else
gsl.gsl_matrix_complex_memcpy(r, m)
end
@@ -58,8 +55,7 @@ local function power_complex_raw(r, m, n, e)
if e > 0 then
-- compute m2 <- m * m
- gsl.gsl_matrix_complex_set_zero(m2)
- gsl.gsl_blas_zgemm(NT, NT, 1, m, m, 1, m2)
+ gsl.gsl_blas_zgemm(NT, NT, 1, m, m, 0, m2)
m, m2 = m2, m
end
end
diff --git a/matrix.lua b/matrix.lua
index b28da49e..8f7d788e 100644
--- a/matrix.lua
+++ b/matrix.lua
@@ -489,17 +489,17 @@ local function vector_op(scalar_op, element_wise, no_inverse)
else
if ra and rb then
local n1, n2 = tonumber(a.size1), tonumber(b.size2)
- local c = matrix_new(n1, n2)
+ local c = matrix_alloc(n1, n2)
local NT = gsl.CblasNoTrans
- gsl_check(gsl.gsl_blas_dgemm(NT, NT, 1, a, b, 1, c))
+ gsl_check(gsl.gsl_blas_dgemm(NT, NT, 1, a, b, 0, c))
return c
else
if ra then a = mat_complex_of_real(a) end
if rb then b = mat_complex_of_real(b) end
local n1, n2 = tonumber(a.size1), tonumber(b.size2)
- local c = matrix_cnew(n1, n2)
+ local c = matrix_calloc(n1, n2)
local NT = gsl.CblasNoTrans
- gsl_check(gsl.gsl_blas_zgemm(NT, NT, 1, a, b, 1, c))
+ gsl_check(gsl.gsl_blas_zgemm(NT, NT, 1, a, b, 0, c))
return c
end
end
generated by cgit v1.2.3 (git 2.39.1) at 2025年09月20日 22:17:15 +0000

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