You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

eigsrt.cc 473B

12345678910111213141516171819202122232425262728
  1. #include "ABACUS.h"
  2. void ABACUS::eigsrt (Vect_DP& d, SQMat_DP& v)
  3. {
  4. // This puts the eigenvalues in INCREASING order, not decreasing as in NR !
  5. int i, j, k;
  6. DP p;
  7. int n = d.size();
  8. for (i = 0; i < n-1; i++) {
  9. p = d[k=i];
  10. for (j = i; j < n; j++) {
  11. if (d[j] <= p) {
  12. p = d[k = j];
  13. }
  14. }
  15. if (k != i) {
  16. d[k] = d[i];
  17. d[i] = p;
  18. for (j = 0; j < n; j++) {
  19. p = v[j][i];
  20. v[j][i] = v[j][k];
  21. v[j][k] = p;
  22. }
  23. }
  24. }
  25. }