I developed an image processing software and I need to do a numerical analysis of it, considering the error propagation associated to its operations and the uncertainty of float type variables caused by the inherent rounding up that happens with this type of variables.
Considering the IEEE 754 standard the machine epsilon
for the float type variables is 1.19e-07
. From what I understood, this value is the distance to the nearest representable float.
I did some testing to find if this is true by adding a float value to this epsilon as such: x + epsilon == x
. This notion does not hold for every value of the float range, which is understandable since great values of floats have more uncertainty associated with them caused by the rounding and the limited number of bits used to represent them.
My question is what is the uncertainty associated to a float value in such a way that (x + y) || (x - y) == x
being the float value x
and the float uncertainty y
.
It might be my lack of knowledge about the english language but I can not seem to understand the literature about this topic.
If someone could be as detailed as possible can you explain me the error in a simple operation such as the following?
float result = valA * 0.587f + valB * 0.331f;
If I knew the uncertainty of a float type variable this error could be simply calculated with this formulas, right?