Mercurial > hg > octave-nkf
diff liboctave/dMatrix.cc @ 7265:7da4a5262e2e
[project @ 2007-12-06 19:16:47 by jwe]
author | jwe |
---|---|
date | Thu, 06 Dec 2007 19:16:48 +0000 |
parents | d07cb867891b |
children | 600808df131c 6c36c5d3c38b |
line wrap: on
line diff
--- a/liboctave/dMatrix.cc +++ b/liboctave/dMatrix.cc @@ -2473,15 +2473,28 @@ // npp, dpp: pade' approx polynomial matrices. Matrix npp (nc, nc, 0.0); + double *pnpp = npp.fortran_vec (); Matrix dpp = npp; + double *pdpp = dpp.fortran_vec (); // Now powers a^8 ... a^1. octave_idx_type minus_one_j = -1; for (octave_idx_type j = 7; j >= 0; j--) { - npp = m * npp + padec[j] * m; - dpp = m * dpp + (minus_one_j * padec[j]) * m; + for (octave_idx_type i = 0; i < nc; i++) + { + octave_idx_type k = i * nc + i; + pnpp[k] += padec[j]; + pdpp[k] += minus_one_j * padec[j]; + } + + npp = m * npp; + pnpp = npp.fortran_vec (); + + dpp = m * dpp; + pdpp = dpp.fortran_vec (); + minus_one_j *= -1; }