Exemple #1
0
// ----------------------------------------------------------------
tmatrix<f2polymod_t> f2np_companion_matrix(
	f2npoly_t chpol)
{
	int n = chpol.find_degree();
	f2poly_t m = chpol.get_coeff(0).get_modulus();
	f2poly_t zero(0);
	f2poly_t one(1);
	f2polymod_t zero_m(zero, m);
	f2polymod_t one_m(one,  m);
	tmatrix<f2polymod_t> rv(n, n);
	int i;

	// chpol = 10011
	// 0 0 1 1
	// 1 0 0 0
	// 0 1 0 0
	// 0 0 1 0

	rv = zero_m;
	for (i = 1; i < n; i++)
		rv[i][i-1] = one_m;
	for (i = 0; i < n; i++)
		rv[0][n-1-i] = -chpol.get_coeff(i);

	return rv;
}
Exemple #2
0
 inline
 void
 matrix_perspective_lh( T (&r)[4][4], T fov_y, T aspect_ratio, T zn, T zf )
     {
     T ys=T(1)/::tanf(fov_y/T(2));
     T xs=ys/aspect_ratio;
     zero_m(r);
     r[0][0] = xs;
     r[1][1] = ys;
     r[2][2] = zf/(zf-zn);
     r[2][3] = -zn*zf/(zf-zn);
     r[3][2] = 1;
     }