Example #1
0
vprut1 (matrix A)
{
int n, i, j, m, lf;
real er, x;
	n = DIM(A,0);

	MATRIX (VP, MAX, n, 1)
	MATRIX (L, MAX*MAX, n, n)
	MATRIX (R, MAX*MAX, n, n)

	m = 0;
	for (i=0; i<n; i++) VAL1(VP,i) = 0;
	er = 1;
	lf = 1;
	while ((m < 50) && /* (er > 0.5) */ lf )
	{
		lr (A, L, R);
		printf ("L : "); print_matrix (L);
		printf ("R : "); print_matrix (R);
		prod_matrix (L, R, A);
		printf ("LR: "); print_matrix (A);
		prod_matrix (R, L, A);
		printf ("A : "); print_matrix (A);
		gets (buf);
		er = 0;
		m++;
		for (i=0; i<n; i++)
		for (j=0; j<n; j++)
		{
			if (j < i)
			{
				x = fabs (VAL2(A,i,j));
				if (x > er)
					er = x;
			}
		}
		lf = 0;
		for (i=0; i<n; i++)
		{
			if (fabs(VAL2(A,i,i)-VAL1(VP,i)) > 1e-4)
				lf = 1;
		}
		for (i=0; i<n; i++)
			VAL1(VP,i) = VAL2(A,i,i);
	}
	if (m == 50)
		printf ("Non convergence\n");
	else
	{
		print_matrix (A);
	}

	ENDMAT ENDMAT ENDMAT
}
Example #2
0
vprut (matrix A1, matrix VP)
{
int n, i, status;
	n = DIM(A1,0);
	MATRIX(A,MAX*MAX,n,n);
	status = vprut1 (A);
	for (i=0; i<n; i++)
		VAL1(VP,i) = VAL2(A,i,i);
	return status;
	ENDMAT
}
Example #3
0
void FORTE_FB_HYST_3::alg_REQ(void){
  CIEC_REAL X;

X = HYS()*0.5f;

if((IN() < VAL1()-X)){
	Q1() = true;
}
else
  if((IN() > VAL1() + X)){
	Q1() = false;
};

if((IN() < VAL2()-X)){
	Q2() = false;
}
else
  if((IN() > VAL2()+X)){
	Q2() = true;
};
}