I have a simple program to figure out the single machine precision (epsilon). According to C, float precision is 1.2e-8, but I'm getting the double precision, 2.2e-16. I can't figure out how else to force single precision?
void main(void)
{
float eps = 1.0f;
while( eps + 1.0f != 1.0f )
eps /= 2.0f;
eps *= 2.0f;
printf("Epsilon is %g \n", eps);
}