Mercurial > hg > octave-lyh
comparison liboctave/CMatrix.cc @ 6867:83619ae96c1d
[project @ 2007-09-06 12:08:44 by dbateman]
author | dbateman |
---|---|
date | Thu, 06 Sep 2007 12:08:45 +0000 |
parents | 2f17d5556756 |
children | be176b7e110a |
comparison
equal
deleted
inserted
replaced
6866:f7bc1c20800e | 6867:83619ae96c1d |
---|---|
2759 retval(i,j) *= dscale(i) / dscale(j); | 2759 retval(i,j) *= dscale(i) / dscale(j); |
2760 | 2760 |
2761 OCTAVE_QUIT; | 2761 OCTAVE_QUIT; |
2762 | 2762 |
2763 // construct balancing permutation vector | 2763 // construct balancing permutation vector |
2764 Array<int> iperm (nc); | 2764 Array<octave_idx_type> iperm (nc); |
2765 for (octave_idx_type i = 0; i < nc; i++) | 2765 for (octave_idx_type i = 0; i < nc; i++) |
2766 iperm(i) = i; // initialize to identity permutation | 2766 iperm(i) = i; // initialize to identity permutation |
2767 | 2767 |
2768 // leading permutations in forward order | 2768 // leading permutations in forward order |
2769 for (octave_idx_type i = 0; i < (ilo-1); i++) | 2769 for (octave_idx_type i = 0; i < (ilo-1); i++) |
2770 { | 2770 { |
2771 octave_idx_type swapidx = static_cast<int> (dpermute(i)) - 1; | 2771 octave_idx_type swapidx = static_cast<octave_idx_type> (dpermute(i)) - 1; |
2772 octave_idx_type tmp = iperm(i); | 2772 octave_idx_type tmp = iperm(i); |
2773 iperm(i) = iperm(swapidx); | 2773 iperm(i) = iperm(swapidx); |
2774 iperm(swapidx) = tmp; | 2774 iperm(swapidx) = tmp; |
2775 } | 2775 } |
2776 | 2776 |
2777 // trailing permutations must be done in reverse order | 2777 // trailing permutations must be done in reverse order |
2778 for (octave_idx_type i = nc - 1; i >= ihi; i--) | 2778 for (octave_idx_type i = nc - 1; i >= ihi; i--) |
2779 { | 2779 { |
2780 octave_idx_type swapidx = static_cast<int> (dpermute(i)) - 1; | 2780 octave_idx_type swapidx = static_cast<octave_idx_type> (dpermute(i)) - 1; |
2781 octave_idx_type tmp = iperm(i); | 2781 octave_idx_type tmp = iperm(i); |
2782 iperm(i) = iperm(swapidx); | 2782 iperm(i) = iperm(swapidx); |
2783 iperm(swapidx) = tmp; | 2783 iperm(swapidx) = tmp; |
2784 } | 2784 } |
2785 | 2785 |
2786 // construct inverse balancing permutation vector | 2786 // construct inverse balancing permutation vector |
2787 Array<int> invpvec (nc); | 2787 Array<octave_idx_type> invpvec (nc); |
2788 for (octave_idx_type i = 0; i < nc; i++) | 2788 for (octave_idx_type i = 0; i < nc; i++) |
2789 invpvec(iperm(i)) = i; // Thanks to R. A. Lippert for this method | 2789 invpvec(iperm(i)) = i; // Thanks to R. A. Lippert for this method |
2790 | 2790 |
2791 OCTAVE_QUIT; | 2791 OCTAVE_QUIT; |
2792 | 2792 |