for(T f =(T)1.0F+ ep; f >(T)1.0F; f =(T)1.0F+ ep){
ep0 = ep;
ep /=(T)2.0F;
}
return ep;
}
int main()
{
cout<<"Positive limit for type double : "<< machineZero <double>()<< endl;
cout<<"Positive limit for type float : "<< machineZero <float>()<< endl;
cout<<"Positive limit for type long double : "<< machineZero <longdouble>()<< endl;// можно видеть, что MVS не делает разницы между double и LF даже для x64 набора комнад
cout<<"Machine epsilon for double : "<< machineEpsilon <double>()<< endl;
cout<<"Machine epsilon for float : "<< machineEpsilon <float>()<< endl;
Positive limit for type double : 4.94066e-324
Positive limit for type float : 1.4013e-45
Positive limit for type long double : 3.6452e-4951
Machine epsilon for double : 1.11022e-16
Machine epsilon for float : 5.96046e-08