comparison liboctave/CSparse.cc @ 11570:57632dea2446

attempt better backward compatibility for Array constructors
author John W. Eaton <jwe@octave.org>
date Wed, 19 Jan 2011 17:55:56 -0500
parents fd0a3ac60b0e
children a83bad07f7e3
comparison
equal deleted inserted replaced
11569:7e9a111cae20 11570:57632dea2446
3917 { 3917 {
3918 OCTAVE_LOCAL_BUFFER (Complex, DU2, nr - 2); 3918 OCTAVE_LOCAL_BUFFER (Complex, DU2, nr - 2);
3919 OCTAVE_LOCAL_BUFFER (Complex, DU, nr - 1); 3919 OCTAVE_LOCAL_BUFFER (Complex, DU, nr - 1);
3920 OCTAVE_LOCAL_BUFFER (Complex, D, nr); 3920 OCTAVE_LOCAL_BUFFER (Complex, D, nr);
3921 OCTAVE_LOCAL_BUFFER (Complex, DL, nr - 1); 3921 OCTAVE_LOCAL_BUFFER (Complex, DL, nr - 1);
3922 Array<octave_idx_type> ipvt (nr, 1); 3922 Array<octave_idx_type> ipvt (dim_vector (nr, 1));
3923 octave_idx_type *pipvt = ipvt.fortran_vec (); 3923 octave_idx_type *pipvt = ipvt.fortran_vec ();
3924 3924
3925 if (mattype.is_dense ()) 3925 if (mattype.is_dense ())
3926 { 3926 {
3927 octave_idx_type ii = 0; 3927 octave_idx_type ii = 0;
4217 { 4217 {
4218 OCTAVE_LOCAL_BUFFER (Complex, DU2, nr - 2); 4218 OCTAVE_LOCAL_BUFFER (Complex, DU2, nr - 2);
4219 OCTAVE_LOCAL_BUFFER (Complex, DU, nr - 1); 4219 OCTAVE_LOCAL_BUFFER (Complex, DU, nr - 1);
4220 OCTAVE_LOCAL_BUFFER (Complex, D, nr); 4220 OCTAVE_LOCAL_BUFFER (Complex, D, nr);
4221 OCTAVE_LOCAL_BUFFER (Complex, DL, nr - 1); 4221 OCTAVE_LOCAL_BUFFER (Complex, DL, nr - 1);
4222 Array<octave_idx_type> ipvt (nr, 1); 4222 Array<octave_idx_type> ipvt (dim_vector (nr, 1));
4223 octave_idx_type *pipvt = ipvt.fortran_vec (); 4223 octave_idx_type *pipvt = ipvt.fortran_vec ();
4224 4224
4225 if (mattype.is_dense ()) 4225 if (mattype.is_dense ())
4226 { 4226 {
4227 octave_idx_type ii = 0; 4227 octave_idx_type ii = 0;
4411 } 4411 }
4412 else 4412 else
4413 { 4413 {
4414 if (calc_cond) 4414 if (calc_cond)
4415 { 4415 {
4416 Array<Complex> z (2 * nr, 1); 4416 Array<Complex> z (dim_vector (2 * nr, 1));
4417 Complex *pz = z.fortran_vec (); 4417 Complex *pz = z.fortran_vec ();
4418 Array<double> iz (nr, 1); 4418 Array<double> iz (dim_vector (nr, 1));
4419 double *piz = iz.fortran_vec (); 4419 double *piz = iz.fortran_vec ();
4420 4420
4421 F77_XFCN (zpbcon, ZPBCON, 4421 F77_XFCN (zpbcon, ZPBCON,
4422 (F77_CONST_CHAR_ARG2 (&job, 1), 4422 (F77_CONST_CHAR_ARG2 (&job, 1),
4423 nr, n_lower, tmp_data, ldm, 4423 nr, n_lower, tmp_data, ldm,
4505 if (atmp > anorm) 4505 if (atmp > anorm)
4506 anorm = atmp; 4506 anorm = atmp;
4507 } 4507 }
4508 } 4508 }
4509 4509
4510 Array<octave_idx_type> ipvt (nr, 1); 4510 Array<octave_idx_type> ipvt (dim_vector (nr, 1));
4511 octave_idx_type *pipvt = ipvt.fortran_vec (); 4511 octave_idx_type *pipvt = ipvt.fortran_vec ();
4512 4512
4513 F77_XFCN (zgbtrf, ZGBTRF, (nr, nc, n_lower, n_upper, tmp_data, 4513 F77_XFCN (zgbtrf, ZGBTRF, (nr, nc, n_lower, n_upper, tmp_data,
4514 ldm, pipvt, err)); 4514 ldm, pipvt, err));
4515 4515
4532 else 4532 else
4533 { 4533 {
4534 if (calc_cond) 4534 if (calc_cond)
4535 { 4535 {
4536 char job = '1'; 4536 char job = '1';
4537 Array<Complex> z (2 * nr, 1); 4537 Array<Complex> z (dim_vector (2 * nr, 1));
4538 Complex *pz = z.fortran_vec (); 4538 Complex *pz = z.fortran_vec ();
4539 Array<double> iz (nr, 1); 4539 Array<double> iz (dim_vector (nr, 1));
4540 double *piz = iz.fortran_vec (); 4540 double *piz = iz.fortran_vec ();
4541 4541
4542 F77_XFCN (zgbcon, ZGBCON, 4542 F77_XFCN (zgbcon, ZGBCON,
4543 (F77_CONST_CHAR_ARG2 (&job, 1), 4543 (F77_CONST_CHAR_ARG2 (&job, 1),
4544 nc, n_lower, n_upper, tmp_data, ldm, pipvt, 4544 nc, n_lower, n_upper, tmp_data, ldm, pipvt,
4658 } 4658 }
4659 else 4659 else
4660 { 4660 {
4661 if (calc_cond) 4661 if (calc_cond)
4662 { 4662 {
4663 Array<Complex> z (2 * nr, 1); 4663 Array<Complex> z (dim_vector (2 * nr, 1));
4664 Complex *pz = z.fortran_vec (); 4664 Complex *pz = z.fortran_vec ();
4665 Array<double> iz (nr, 1); 4665 Array<double> iz (dim_vector (nr, 1));
4666 double *piz = iz.fortran_vec (); 4666 double *piz = iz.fortran_vec ();
4667 4667
4668 F77_XFCN (zpbcon, ZPBCON, 4668 F77_XFCN (zpbcon, ZPBCON,
4669 (F77_CONST_CHAR_ARG2 (&job, 1), 4669 (F77_CONST_CHAR_ARG2 (&job, 1),
4670 nr, n_lower, tmp_data, ldm, 4670 nr, n_lower, tmp_data, ldm,
4787 if (atmp > anorm) 4787 if (atmp > anorm)
4788 anorm = atmp; 4788 anorm = atmp;
4789 } 4789 }
4790 } 4790 }
4791 4791
4792 Array<octave_idx_type> ipvt (nr, 1); 4792 Array<octave_idx_type> ipvt (dim_vector (nr, 1));
4793 octave_idx_type *pipvt = ipvt.fortran_vec (); 4793 octave_idx_type *pipvt = ipvt.fortran_vec ();
4794 4794
4795 F77_XFCN (zgbtrf, ZGBTRF, (nr, nr, n_lower, n_upper, tmp_data, 4795 F77_XFCN (zgbtrf, ZGBTRF, (nr, nr, n_lower, n_upper, tmp_data,
4796 ldm, pipvt, err)); 4796 ldm, pipvt, err));
4797 4797
4813 else 4813 else
4814 { 4814 {
4815 if (calc_cond) 4815 if (calc_cond)
4816 { 4816 {
4817 char job = '1'; 4817 char job = '1';
4818 Array<Complex> z (2 * nr, 1); 4818 Array<Complex> z (dim_vector (2 * nr, 1));
4819 Complex *pz = z.fortran_vec (); 4819 Complex *pz = z.fortran_vec ();
4820 Array<double> iz (nr, 1); 4820 Array<double> iz (dim_vector (nr, 1));
4821 double *piz = iz.fortran_vec (); 4821 double *piz = iz.fortran_vec ();
4822 4822
4823 F77_XFCN (zgbcon, ZGBCON, 4823 F77_XFCN (zgbcon, ZGBCON,
4824 (F77_CONST_CHAR_ARG2 (&job, 1), 4824 (F77_CONST_CHAR_ARG2 (&job, 1),
4825 nc, n_lower, n_upper, tmp_data, ldm, pipvt, 4825 nc, n_lower, n_upper, tmp_data, ldm, pipvt,
4978 } 4978 }
4979 else 4979 else
4980 { 4980 {
4981 if (calc_cond) 4981 if (calc_cond)
4982 { 4982 {
4983 Array<Complex> z (2 * nr, 1); 4983 Array<Complex> z (dim_vector (2 * nr, 1));
4984 Complex *pz = z.fortran_vec (); 4984 Complex *pz = z.fortran_vec ();
4985 Array<double> iz (nr, 1); 4985 Array<double> iz (dim_vector (nr, 1));
4986 double *piz = iz.fortran_vec (); 4986 double *piz = iz.fortran_vec ();
4987 4987
4988 F77_XFCN (zpbcon, ZPBCON, 4988 F77_XFCN (zpbcon, ZPBCON,
4989 (F77_CONST_CHAR_ARG2 (&job, 1), 4989 (F77_CONST_CHAR_ARG2 (&job, 1),
4990 nr, n_lower, tmp_data, ldm, 4990 nr, n_lower, tmp_data, ldm,
5072 if (atmp > anorm) 5072 if (atmp > anorm)
5073 anorm = atmp; 5073 anorm = atmp;
5074 } 5074 }
5075 } 5075 }
5076 5076
5077 Array<octave_idx_type> ipvt (nr, 1); 5077 Array<octave_idx_type> ipvt (dim_vector (nr, 1));
5078 octave_idx_type *pipvt = ipvt.fortran_vec (); 5078 octave_idx_type *pipvt = ipvt.fortran_vec ();
5079 5079
5080 F77_XFCN (zgbtrf, ZGBTRF, (nr, nr, n_lower, n_upper, tmp_data, 5080 F77_XFCN (zgbtrf, ZGBTRF, (nr, nr, n_lower, n_upper, tmp_data,
5081 ldm, pipvt, err)); 5081 ldm, pipvt, err));
5082 5082
5097 else 5097 else
5098 { 5098 {
5099 if (calc_cond) 5099 if (calc_cond)
5100 { 5100 {
5101 char job = '1'; 5101 char job = '1';
5102 Array<Complex> z (2 * nr, 1); 5102 Array<Complex> z (dim_vector (2 * nr, 1));
5103 Complex *pz = z.fortran_vec (); 5103 Complex *pz = z.fortran_vec ();
5104 Array<double> iz (nr, 1); 5104 Array<double> iz (dim_vector (nr, 1));
5105 double *piz = iz.fortran_vec (); 5105 double *piz = iz.fortran_vec ();
5106 5106
5107 F77_XFCN (zgbcon, ZGBCON, 5107 F77_XFCN (zgbcon, ZGBCON,
5108 (F77_CONST_CHAR_ARG2 (&job, 1), 5108 (F77_CONST_CHAR_ARG2 (&job, 1),
5109 nc, n_lower, n_upper, tmp_data, ldm, pipvt, 5109 nc, n_lower, n_upper, tmp_data, ldm, pipvt,
5225 } 5225 }
5226 else 5226 else
5227 { 5227 {
5228 if (calc_cond) 5228 if (calc_cond)
5229 { 5229 {
5230 Array<Complex> z (2 * nr, 1); 5230 Array<Complex> z (dim_vector (2 * nr, 1));
5231 Complex *pz = z.fortran_vec (); 5231 Complex *pz = z.fortran_vec ();
5232 Array<double> iz (nr, 1); 5232 Array<double> iz (dim_vector (nr, 1));
5233 double *piz = iz.fortran_vec (); 5233 double *piz = iz.fortran_vec ();
5234 5234
5235 F77_XFCN (zpbcon, ZPBCON, 5235 F77_XFCN (zpbcon, ZPBCON,
5236 (F77_CONST_CHAR_ARG2 (&job, 1), 5236 (F77_CONST_CHAR_ARG2 (&job, 1),
5237 nr, n_lower, tmp_data, ldm, 5237 nr, n_lower, tmp_data, ldm,
5359 if (atmp > anorm) 5359 if (atmp > anorm)
5360 anorm = atmp; 5360 anorm = atmp;
5361 } 5361 }
5362 } 5362 }
5363 5363
5364 Array<octave_idx_type> ipvt (nr, 1); 5364 Array<octave_idx_type> ipvt (dim_vector (nr, 1));
5365 octave_idx_type *pipvt = ipvt.fortran_vec (); 5365 octave_idx_type *pipvt = ipvt.fortran_vec ();
5366 5366
5367 F77_XFCN (zgbtrf, ZGBTRF, (nr, nr, n_lower, n_upper, tmp_data, 5367 F77_XFCN (zgbtrf, ZGBTRF, (nr, nr, n_lower, n_upper, tmp_data,
5368 ldm, pipvt, err)); 5368 ldm, pipvt, err));
5369 5369
5385 else 5385 else
5386 { 5386 {
5387 if (calc_cond) 5387 if (calc_cond)
5388 { 5388 {
5389 char job = '1'; 5389 char job = '1';
5390 Array<Complex> z (2 * nr, 1); 5390 Array<Complex> z (dim_vector (2 * nr, 1));
5391 Complex *pz = z.fortran_vec (); 5391 Complex *pz = z.fortran_vec ();
5392 Array<double> iz (nr, 1); 5392 Array<double> iz (dim_vector (nr, 1));
5393 double *piz = iz.fortran_vec (); 5393 double *piz = iz.fortran_vec ();
5394 5394
5395 F77_XFCN (zgbcon, ZGBCON, 5395 F77_XFCN (zgbcon, ZGBCON,
5396 (F77_CONST_CHAR_ARG2 (&job, 1), 5396 (F77_CONST_CHAR_ARG2 (&job, 1),
5397 nc, n_lower, n_upper, tmp_data, ldm, pipvt, 5397 nc, n_lower, n_upper, tmp_data, ldm, pipvt,