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.

lubksb_CX.cc 522B

12345678910111213141516171819202122232425
  1. #include "ABACUS.h"
  2. using namespace std;
  3. void ABACUS::lubksb_CX (SQMat_CX& a, Vect_INT& indx, Vect_CX& b)
  4. {
  5. int i, ii=0, ip, j;
  6. complex<DP> sum;
  7. int n = a.size();
  8. for (i = 0; i < n; i++) {
  9. ip = indx[i];
  10. sum = b[ip];
  11. b[ip] = b[i];
  12. if (ii != 0)
  13. for (j = ii-1; j < i; j++) sum -= a[i][j] * b[j];
  14. else if (sum != 0.0)
  15. ii = i + 1;
  16. b[i] = sum;
  17. }
  18. for (i = n - 1; i >= 0; i--) {
  19. sum = b[i];
  20. for (j = i + 1; j < n; j++) sum -= a[i][j] * b[j];
  21. b[i] = sum/a[i][i];
  22. }
  23. }