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;