The wiki for machine epsilon says:
"Machine epsilon gives an upper bound on the relative error due to rounding in floating point arithmetic"
If machine epsilon is the upper bound on the relative error, why does the spacing between floating point numbers actually get bigger for larger numbers? For example in MATLAB:
eps(1) = 2.220446049250313e-016 (machine epsilon)
eps(2) = 4.440892098500626e-016
eps(4) = 8.881784197001252e-016
eps(8) = 1.776356839400251e-015
eps(realmax) = 1.995840309534720e+292
So how is eps the upper bound on the relative error if it is less than all of those numbers?