Mercurial > octave
changeset 32177:2c9f01dc9fb5
maint: Merge stable to default.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Mon, 03 Jul 2023 21:49:07 +0200 |
parents | d8350580b981 (current diff) 134152cf1a3f (diff) |
children | 01ab19a0e2b9 |
files | liboctave/numeric/sparse-qr.cc |
diffstat | 1 files changed, 21 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/liboctave/numeric/sparse-qr.cc Mon Jul 03 18:46:54 2023 +0200 +++ b/liboctave/numeric/sparse-qr.cc Mon Jul 03 21:49:07 2023 +0200 @@ -801,16 +801,17 @@ cholmod_dense *q; // I is nrows x nrows identity matrix - cholmod_dense *I + cholmod_dense *I_mat = cholmod_l_allocate_dense (nrows, nrows, nrows, CHOLMOD_REAL, &m_cc); for (octave_idx_type i = 0; i < nrows * nrows; i++) - (reinterpret_cast<double *> (I->x))[i] = 0.0; + (reinterpret_cast<double *> (I_mat->x))[i] = 0.0; for (octave_idx_type i = 0; i < nrows; i++) - (reinterpret_cast<double *> (I->x))[i * nrows + i] = 1.0; - - q = SuiteSparseQR_qmult<double> (SPQR_QX, m_H, m_Htau, m_HPinv, I, &m_cc); + (reinterpret_cast<double *> (I_mat->x))[i * nrows + i] = 1.0; + + q = SuiteSparseQR_qmult<double> (SPQR_QX, m_H, m_Htau, m_HPinv, I_mat, + &m_cc); spqr_error_handler (&m_cc); double *q_x = reinterpret_cast<double *> (q->x); @@ -820,7 +821,7 @@ ret_vec[j * nrows + i] = q_x[j * nrows + i]; cholmod_l_free_dense (&q, &m_cc); - cholmod_l_free_dense (&I, &m_cc); + cholmod_l_free_dense (&I_mat, &m_cc); return ret; @@ -1735,17 +1736,17 @@ cholmod_dense *q; // I is nrows x nrows identity matrix - cholmod_dense *I + cholmod_dense *I_mat = reinterpret_cast<cholmod_dense *> (cholmod_l_allocate_dense (nrows, nrows, nrows, CHOLMOD_COMPLEX, &m_cc)); for (octave_idx_type i = 0; i < nrows * nrows; i++) - (reinterpret_cast<Complex *> (I->x))[i] = 0.0; + (reinterpret_cast<Complex *> (I_mat->x))[i] = 0.0; for (octave_idx_type i = 0; i < nrows; i++) - (reinterpret_cast<Complex *> (I->x))[i * nrows + i] = 1.0; - - q = SuiteSparseQR_qmult<Complex> (SPQR_QX, m_H, m_Htau, m_HPinv, I, + (reinterpret_cast<Complex *> (I_mat->x))[i * nrows + i] = 1.0; + + q = SuiteSparseQR_qmult<Complex> (SPQR_QX, m_H, m_Htau, m_HPinv, I_mat, &m_cc); spqr_error_handler (&m_cc); @@ -1757,7 +1758,7 @@ ret_vec[j * nrows + i] = q_x[j * nrows + i]; cholmod_l_free_dense (&q, &m_cc); - cholmod_l_free_dense (&I, &m_cc); + cholmod_l_free_dense (&I_mat, &m_cc); return ret; @@ -2069,7 +2070,7 @@ Xx[j] = b.xelem (j, i); for (octave_idx_type j = nr; j < S->m2; j++) - buf[j] = cs_complex_t (0.0, 0.0); + buf[j] = 0.0; CXSPARSE_ZNAME (_ipvec) (S->pinv, reinterpret_cast<cs_complex_t *>(Xx), @@ -2139,7 +2140,7 @@ Xx[j] = b.xelem (j, i); for (octave_idx_type j = nr; j < nbuf; j++) - buf[j] = cs_complex_t (0.0, 0.0); + buf[j] = 0.0; CXSPARSE_ZNAME (_pvec) (S->q, reinterpret_cast<cs_complex_t *> (Xx), buf, nr); @@ -2202,7 +2203,7 @@ Xx[j] = b.xelem (j, i); for (octave_idx_type j = nr; j < S->m2; j++) - buf[j] = cs_complex_t (0.0, 0.0); + buf[j] = 0.0; CXSPARSE_ZNAME (_ipvec) (S->pinv, reinterpret_cast<cs_complex_t *> (Xx), @@ -2300,7 +2301,7 @@ Xx[j] = b.xelem (j, i); for (octave_idx_type j = nr; j < nbuf; j++) - buf[j] = cs_complex_t (0.0, 0.0); + buf[j] = 0.0; CXSPARSE_ZNAME (_pvec) (S->q, reinterpret_cast<cs_complex_t *> (Xx), @@ -2388,7 +2389,7 @@ octave_quit (); for (octave_idx_type j = nr; j < S->m2; j++) - buf[j] = cs_complex_t (0.0, 0.0); + buf[j] = 0.0; CXSPARSE_ZNAME (_ipvec) (S->pinv, bvec + bidx, buf, nr); @@ -2456,7 +2457,7 @@ octave_quit (); for (octave_idx_type j = nr; j < nbuf; j++) - buf[j] = cs_complex_t (0.0, 0.0); + buf[j] = 0.0; CXSPARSE_ZNAME (_pvec) (S->q, bvec + bidx, buf, nr); CXSPARSE_ZNAME (_utsolve) (N->U, buf); @@ -2518,7 +2519,7 @@ Xx[j] = b.xelem (j, i); for (octave_idx_type j = nr; j < S->m2; j++) - buf[j] = cs_complex_t (0.0, 0.0); + buf[j] = 0.0; CXSPARSE_ZNAME (_ipvec) (S->pinv, reinterpret_cast<cs_complex_t *> (Xx), @@ -2616,7 +2617,7 @@ Xx[j] = b.xelem (j, i); for (octave_idx_type j = nr; j < nbuf; j++) - buf[j] = cs_complex_t (0.0, 0.0); + buf[j] = 0.0; CXSPARSE_ZNAME (_pvec) (S->q, reinterpret_cast<cs_complex_t *>(Xx), buf, nr);