internal static long float32_pack(float val)
{
uint sign=0;
int exp;
int mant;
if(val<0)
{
sign = 0x80000000;
val = -val;
}
exp=(int)Math.Floor(Math.Log(val)/Math.Log(2));
mant=(int)Math.Round(Math.Pow(val,(VQ_FMAN-1)-exp));
exp=(exp+VQ_FEXP_BIAS)<<VQ_FMAN;
return((int)sign | exp | mant);
}