double Strip::getCond() { return N * A.GET_M()[0][0] / L; }
void Strip::AddS() { /*int R = Destrib(pc); MATRIX Y(A.GET_n()); Y = A; int i,j; if (a != N-1) { if (R){ if(A.GET_M()[a][a] !=0) for(i = 0;i < N;i++) for(j = 0;j < N;j++){ A.GET_M()[i][j] -= (Y.GET_M()[i][a] * Y.GET_M()[a][j]) / (1 + Y.GET_M()[a][a]); } } else if(Y.GET_M()[a][a] != 0) for(i = 0;i < N;i++) for(j = 0;j < N;j++){ A.GET_M()[i][j] -= (Y.GET_M()[i][a] * Y.GET_M()[a][j]) / Y.GET_M()[a][a]; } } R = Destrib(pc); if (R == 1) for(i = 0;i < N;i++) for(j = 0;j < N;j++) { A.GET_M()[i][j] += ((Kronecker(a,j) - Kronecker(a-1,j))*(Kronecker(a,i) - Kronecker(a-1,i))); } if (a == N-1) // !!!!!!!!!!!! { a = 1; l++; } else a++; */ double R; int i,j; //MATRIX Y(A.GET_m()); Y = A; //R = Destrib(pc); R = Kronecker((a + l % 2) % 2,0) * R1 + Kronecker((a + l % 2)% 2,1) * R2; if (a != N-1) { if (R != 0) { if (Y.GET_M()[a][a] != 0) for(i = 0;i < N;i++) for(j = 0;j < N;j++) A.GET_M()[i][j] -= Y.GET_M()[i][a] * Y.GET_M()[a][j] / (1 + Y.GET_M()[a][a] * R); } else { if (!(Y.GET_M()[a][a] < 0.00000000001 && Y.GET_M()[a][a] > -0.00000000001)) { for(i = 0;i < N;i++) for(j = 0;j < N;j++){ A.GET_M()[i][j] -= Y.GET_M()[i][a] * Y.GET_M()[a][j] / Y.GET_M()[a][a]; } } } } //R = Destrib(pc); R = Kronecker((a + l % 2) % 2,0) * R1 + Kronecker((a + l % 2) % 2,1) * R2; if (R != 0) { for(i = 0;i < N;i++) for(j = 0;j < N;j++) A.GET_M()[i][j] += (Kronecker(a,j) - Kronecker(a - 1,j)) * (Kronecker(a,i) - Kronecker(a - 1,i)) / R; } if (a == N - 1) { a = 1; l++; } else a++; }