SHARE
TWEET

Untitled

a guest May 19th, 2017 42 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     private BigDecimal[] gauss(BigDecimal[][] A, BigDecimal[] B) {
  2.         BigDecimal[] X = new BigDecimal[64];
  3.         Arrays.fill(X, BigDecimal.ZERO);
  4.         int n = 64;
  5.         for (int j = 0; j < n; ++j) {
  6.             int bestI = j;
  7.             for (int i = j + 1; i < n; ++i)
  8.                 if (A[i][j].abs().compareTo(A[bestI][j].abs()) > 0) {
  9.                     bestI = i;
  10.                 }
  11.             BigDecimal[] tm = A[j];
  12.             A[j] = A[bestI];
  13.             A[bestI] = tm;
  14.             BigDecimal tmp = B[j];
  15.             B[j] = B[bestI];
  16.             B[bestI] = tmp;
  17.             for (int i = j + 1; i < n; ++i) {
  18.                 BigDecimal d = A[i][j].divide(A[j][j], mc);
  19.                 for (int t = 0; t < n; ++t) {
  20.                     A[i][t] = A[i][t].subtract(A[j][t].multiply(d, mc), mc);
  21.                 }
  22.                 B[i] = B[i].subtract(B[j].multiply(d, mc), mc);
  23.             }
  24.         }
  25.         for (int i = n - 1; i >= 0; --i) {
  26.             for (int j = i + 1; j < n; ++j) {
  27.                 B[i] = B[i].subtract(A[i][j].multiply(X[j], mc), mc);
  28.             }
  29.             X[i] = B[i].divide(A[i][i], mc);
  30.         }
  31.         return X;
  32.     }
RAW Paste Data
Challenge yourself this year...
Learn something new in 2017
Top