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.

covsrt.cc 799B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /**********************************************************
  2. This software is part of J.-S. Caux's ABACUS library.
  3. Copyright (c) J.-S. Caux.
  4. -----------------------------------------------------------
  5. File: covsrt.cc
  6. Purpose: covsrt algorithm
  7. ***********************************************************/
  8. #include "ABACUS.h"
  9. using namespace std;
  10. namespace ABACUS {
  11. void covsrt (SQMat_DP& covar, Vect<bool>& ia, const int mfit)
  12. {
  13. int i, j, k;
  14. int ma = ia.size();
  15. for (i = mfit; i < ma; i++)
  16. for (j = 0; j < i+1; j++) covar[i][j] = covar[j][i] = 0.0;
  17. k = mfit - 1;
  18. for (j = ma - 1; j >= 0; j--) {
  19. if (ia[j]) {
  20. for (i = 0; i < ma; i++) SWAP(covar[i][k], covar[i][j]);
  21. for (i = 0; i < ma; i++) SWAP(covar[k][i], covar[j][i]);
  22. k--;
  23. }
  24. }
  25. }
  26. }