Machine Epsilon

Determine the machine epsilon.
HH 10.4.2018

Close to 1

fprintf('%.16g\n', eps);
2.220446049250313e-16
fprintf('%.16g\n', 2^(-52));
2.220446049250313e-16
epsm = 1.0;
while 1.0 + 0.5 * epsm ~= 1.0
epsm = 0.5 * epsm;
end
fprintf('%.16g\n', epsm);
2.220446049250313e-16

Close to 10

fprintf('%.16g\n', eps(10));
1.77635683940025e-15
fprintf('%.16g\n', log2(eps(10)));
-49
fprintf('%.16g\n', 2^(-49));
1.77635683940025e-15
epsm = 1.0;
while 10.0 + 0.5 * epsm ~= 10.0
epsm = 0.5 * epsm;
end
fprintf('%.16g\n', epsm);
1.77635683940025e-15
fprintf('%.16g\n', log2(10));
3.321928094887362