Mercurial > octave-nkf
comparison liboctave/CmplxCHOL.cc @ 10350:12884915a8e4
merge MArray classes & improve Array interface
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Sat, 23 Jan 2010 21:41:03 +0100 |
parents | 07ebe522dac2 |
children | 8a5e980da6aa |
comparison
equal
deleted
inserted
replaced
10349:d4d13389c957 | 10350:12884915a8e4 |
---|---|
121 else if (calc_cond) | 121 else if (calc_cond) |
122 { | 122 { |
123 octave_idx_type zpocon_info = 0; | 123 octave_idx_type zpocon_info = 0; |
124 | 124 |
125 // Now calculate the condition number for non-singular matrix. | 125 // Now calculate the condition number for non-singular matrix. |
126 Array<Complex> z (2*n); | 126 Array<Complex> z (2*n, 1); |
127 Complex *pz = z.fortran_vec (); | 127 Complex *pz = z.fortran_vec (); |
128 Array<double> rz (n); | 128 Array<double> rz (n, 1); |
129 double *prz = rz.fortran_vec (); | 129 double *prz = rz.fortran_vec (); |
130 F77_XFCN (zpocon, ZPOCON, (F77_CONST_CHAR_ARG2 ("U", 1), n, h, | 130 F77_XFCN (zpocon, ZPOCON, (F77_CONST_CHAR_ARG2 ("U", 1), n, h, |
131 n, anorm, xrcond, pz, prz, zpocon_info | 131 n, anorm, xrcond, pz, prz, zpocon_info |
132 F77_CHAR_ARG_LEN (1))); | 132 F77_CHAR_ARG_LEN (1))); |
133 | 133 |
413 if (i < 0 || i > n-1 || j < 0 || j > n-1) | 413 if (i < 0 || i > n-1 || j < 0 || j > n-1) |
414 (*current_liboctave_error_handler) ("cholshift: index out of range"); | 414 (*current_liboctave_error_handler) ("cholshift: index out of range"); |
415 else | 415 else |
416 { | 416 { |
417 ComplexMatrix a = chol_mat.hermitian () * chol_mat; | 417 ComplexMatrix a = chol_mat.hermitian () * chol_mat; |
418 Array<octave_idx_type> p (n); | 418 Array<octave_idx_type> p (n, 1); |
419 for (octave_idx_type k = 0; k < n; k++) p(k) = k; | 419 for (octave_idx_type k = 0; k < n; k++) p(k) = k; |
420 if (i < j) | 420 if (i < j) |
421 { | 421 { |
422 for (octave_idx_type k = i; k < j; k++) p(k) = k+1; | 422 for (octave_idx_type k = i; k < j; k++) p(k) = k+1; |
423 p(j) = i; | 423 p(j) = i; |