#ifndef _TPFF1616_C
#define _TPFF1616_C

#include "f1616.h"

f1616 f1616_FromInt(int i)
{
	return (f1616) i << 16; /* ignore overflows */
}

f1616 f1616_FromFloat(float f)
{
	if (f <= -32769)
		return (f1616) 0x80000000;
	else if (f >= 32768)
		return (f1616) 0x7FFFFFFF;
	else
		return (f1616) (f*65536);
}

int f1616_ToInt(f1616 f)
{
	return (int) f >> 16;
}

float f1616_ToFloat(f1616 f)
{
	return ((float) f)/65536;
}

#endif
