예제 #1
0
	void IntEncodingAlgorithm::encode(const int* values, size_t size, FI::NonEmptyOctetString &octets)
	{
		Tools::float_to_unsigned_int_to_bytes u;
		for(size_t i = 0; i < size; i++)
		{
			u.ui = FIX_INT(values[i]);
			octets.insert(octets.end(), u.ub, u.ub+4);
		}
	}
예제 #2
0
fix_t fix_sin(fix_t x)
{
	fix_t abs_x;
	fix_t fract;
	fix_t sin_x;

	abs_x = (x >= 0) ? x : -x;
	abs_x &= FIX_ANGLE_MASK;
	fract = FIX_FRACT(abs_x);

	if ( FIX_INT(abs_x)&0x01 )
		fract = 255 - fract;

	sin_x = SIN_TABLE[fract];

	if ( FIX_INT(abs_x)&0x02 )
		sin_x = -sin_x;

	if ( x < 0 )
		sin_x = -sin_x;

	return sin_x;
}