int func_input(double* A, int n){
	for (int i = 0; i < n; i++){
		for (int j = 0; j < n; j++){
			A[i*n + j] = Aij(i,j);
			if (fabs(Aij(i,j) - Aij(j,i)) > EPS){
				printf("It is not diagonal matrix.\n");
				return -1;
			}
		}
	}
	return 0;
}
int func_input(double* A, int n){
	for (int i = 0; i < n; i++){
		for (int j = 0; j < n; j++){
			A[i*n+ j] = Aij(i,j);
		}
	}
	return 0;
}
예제 #3
0
double residual_norm(int n, double *b, double *x){
	double m,l = 0.;
	for (int i = 0; i < n; i++){
		m = 0.;
		for (int j = 0; j < n; j++){
			m += Aij(i,j)*x[j];
		}
		m -= b[i];
		l += m*m;
	}
	return sqrt(l);
}
예제 #4
0
파일: blockmatrix.hpp 프로젝트: jdahm/mfem
 //! Check if block (i,j) is a zero block.
 int IsZeroBlock(int i, int j) const {
     return (Aij(i,j)==NULL) ? 1 : 0;
 }