Mercurial > hg > octave-lyh
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, |