comparison liboctave/floatCHOL.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 spocon_info = 0; 123 octave_idx_type spocon_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<float> z (3*n); 126 Array<float> z (3*n, 1);
127 float *pz = z.fortran_vec (); 127 float *pz = z.fortran_vec ();
128 Array<octave_idx_type> iz (n); 128 Array<octave_idx_type> iz (n, 1);
129 octave_idx_type *piz = iz.fortran_vec (); 129 octave_idx_type *piz = iz.fortran_vec ();
130 F77_XFCN (spocon, SPOCON, (F77_CONST_CHAR_ARG2 ("U", 1), n, h, 130 F77_XFCN (spocon, SPOCON, (F77_CONST_CHAR_ARG2 ("U", 1), n, h,
131 n, anorm, xrcond, pz, piz, spocon_info 131 n, anorm, xrcond, pz, piz, spocon_info
132 F77_CHAR_ARG_LEN (1))); 132 F77_CHAR_ARG_LEN (1)));
133 133
414 if (i < 0 || i > n-1 || j < 0 || j > n-1) 414 if (i < 0 || i > n-1 || j < 0 || j > n-1)
415 (*current_liboctave_error_handler) ("cholshift: index out of range"); 415 (*current_liboctave_error_handler) ("cholshift: index out of range");
416 else 416 else
417 { 417 {
418 FloatMatrix a = chol_mat.transpose () * chol_mat; 418 FloatMatrix a = chol_mat.transpose () * chol_mat;
419 Array<octave_idx_type> p (n); 419 Array<octave_idx_type> p (n, 1);
420 for (octave_idx_type k = 0; k < n; k++) p(k) = k; 420 for (octave_idx_type k = 0; k < n; k++) p(k) = k;
421 if (i < j) 421 if (i < j)
422 { 422 {
423 for (octave_idx_type k = i; k < j; k++) p(k) = k+1; 423 for (octave_idx_type k = i; k < j; k++) p(k) = k+1;
424 p(j) = i; 424 p(j) = i;