author | Francesco Abbate <francesco.abbate@gmail.com> | 2013年08月18日 12:31:23 +0200 |
---|---|---|
committer | Francesco Abbate <francesco.abbate@gmail.com> | 2013年08月18日 12:31:23 +0200 |
commit | 25ee7bf05e5f918e3675f5cbd07e8aa45c57bb06 (patch) | |
tree | 1fc6d7511217364ca3d50e087fdd3e38297134ad | |
parent | 6a1ec4b19fa3b97e88c5ac60a143b0db83e8d978 (diff) | |
download | gsl-shell-25ee7bf05e5f918e3675f5cbd07e8aa45c57bb06.tar.gz |
-rw-r--r-- | matrix-power.lua | 12 | ||||
-rw-r--r-- | matrix.lua | 8 |
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 |