Mercurial > hg > octave-lojdl
changeset 12000:a9d20c890190 release-3-2-x
avoid useless zero initialization when doing matrix multiply
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Thu, 18 Jun 2009 09:31:47 +0200 |
parents | 49affc56fac2 |
children | 21f9ff16c49a |
files | liboctave/CMatrix.cc liboctave/ChangeLog liboctave/dMatrix.cc liboctave/fCMatrix.cc liboctave/fMatrix.cc |
diffstat | 5 files changed, 24 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/liboctave/CMatrix.cc +++ b/liboctave/CMatrix.cc @@ -2903,7 +2903,7 @@ { octave_idx_type a_len = a.length (); - retval.resize (len, a_len); + retval = ComplexMatrix (len, a_len); Complex *c = retval.fortran_vec (); F77_XFCN (zgemm, ZGEMM, (F77_CONST_CHAR_ARG2 ("N", 1), @@ -3788,12 +3788,12 @@ else { if (a_nr == 0 || a_nc == 0 || b_nc == 0) - retval.resize (a_nr, b_nc, 0.0); + retval = ComplexMatrix (a_nr, b_nc, 0.0); else if (a.data () == b.data () && a_nr == b_nc && transa != transb) { octave_idx_type lda = a.rows (); - retval.resize (a_nr, b_nc); + retval = ComplexMatrix (a_nr, b_nc); Complex *c = retval.fortran_vec (); const char *ctransa = get_blas_trans_arg (transa, conja); @@ -3829,7 +3829,7 @@ octave_idx_type lda = a.rows (), tda = a.cols (); octave_idx_type ldb = b.rows (), tdb = b.cols (); - retval.resize (a_nr, b_nc); + retval = ComplexMatrix (a_nr, b_nc); Complex *c = retval.fortran_vec (); if (b_nc == 1 && a_nr == 1)
--- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -1,3 +1,11 @@ +2009-06-18 Jaroslav Hajek <highegg@gmail.com> + + * dMatrix.cc (xgemm): Replace resize() with uninitialized allocations + where appropriate. + * fMatrix.cc (xgemm): Ditto. + * CMatrix.cc (xgemm): Ditto. + * fCMatrix.cc (xgemm): Ditto. + 2009-06-09 Jaroslav Hajek <highegg@gmail.com> * cmd-edit.cc (command_editor::force_default_editor): New static
--- a/liboctave/dMatrix.cc +++ b/liboctave/dMatrix.cc @@ -2592,7 +2592,7 @@ { octave_idx_type a_len = a.length (); - retval.resize (len, a_len); + retval = Matrix (len, a_len); double *c = retval.fortran_vec (); F77_XFCN (dgemm, DGEMM, (F77_CONST_CHAR_ARG2 ("N", 1), @@ -3188,12 +3188,12 @@ else { if (a_nr == 0 || a_nc == 0 || b_nc == 0) - retval.resize (a_nr, b_nc, 0.0); + retval = Matrix (a_nr, b_nc, 0.0); else if (a.data () == b.data () && a_nr == b_nc && transa != transb) { octave_idx_type lda = a.rows (); - retval.resize (a_nr, b_nc); + retval = Matrix (a_nr, b_nc); double *c = retval.fortran_vec (); const char *ctransa = get_blas_trans_arg (transa); @@ -3213,7 +3213,7 @@ octave_idx_type lda = a.rows (), tda = a.cols (); octave_idx_type ldb = b.rows (), tdb = b.cols (); - retval.resize (a_nr, b_nc); + retval = Matrix (a_nr, b_nc); double *c = retval.fortran_vec (); if (b_nc == 1)
--- a/liboctave/fCMatrix.cc +++ b/liboctave/fCMatrix.cc @@ -2896,7 +2896,7 @@ { octave_idx_type a_len = a.length (); - retval.resize (len, a_len); + retval = FloatComplexMatrix (len, a_len); FloatComplex *c = retval.fortran_vec (); F77_XFCN (cgemm, CGEMM, (F77_CONST_CHAR_ARG2 ("N", 1), @@ -3781,12 +3781,12 @@ else { if (a_nr == 0 || a_nc == 0 || b_nc == 0) - retval.resize (a_nr, b_nc, 0.0); + retval = FloatComplexMatrix (a_nr, b_nc, 0.0); else if (a.data () == b.data () && a_nr == b_nc && transa != transb) { octave_idx_type lda = a.rows (); - retval.resize (a_nr, b_nc); + retval = FloatComplexMatrix (a_nr, b_nc); FloatComplex *c = retval.fortran_vec (); const char *ctransa = get_blas_trans_arg (transa, conja); @@ -3822,7 +3822,7 @@ octave_idx_type lda = a.rows (), tda = a.cols (); octave_idx_type ldb = b.rows (), tdb = b.cols (); - retval.resize (a_nr, b_nc); + retval = FloatComplexMatrix (a_nr, b_nc); FloatComplex *c = retval.fortran_vec (); if (b_nc == 1 && a_nr == 1)
--- a/liboctave/fMatrix.cc +++ b/liboctave/fMatrix.cc @@ -2591,7 +2591,7 @@ { octave_idx_type a_len = a.length (); - retval.resize (len, a_len); + retval = FloatMatrix (len, a_len); float *c = retval.fortran_vec (); F77_XFCN (sgemm, SGEMM, (F77_CONST_CHAR_ARG2 ("N", 1), @@ -3187,12 +3187,12 @@ else { if (a_nr == 0 || a_nc == 0 || b_nc == 0) - retval.resize (a_nr, b_nc, 0.0); + retval = FloatMatrix (a_nr, b_nc, 0.0); else if (a.data () == b.data () && a_nr == b_nc && transa != transb) { octave_idx_type lda = a.rows (); - retval.resize (a_nr, b_nc); + retval = FloatMatrix (a_nr, b_nc); float *c = retval.fortran_vec (); const char *ctransa = get_blas_trans_arg (transa); @@ -3212,7 +3212,7 @@ octave_idx_type lda = a.rows (), tda = a.cols (); octave_idx_type ldb = b.rows (), tdb = b.cols (); - retval.resize (a_nr, b_nc); + retval = FloatMatrix (a_nr, b_nc); float *c = retval.fortran_vec (); if (b_nc == 1)