Picking A Scale Factor
An example above illustrated how certain scale factors can cause unnecessary precision loss. We will revisit this example to further explore the situation.
We're storing representations of real data in 8 bit unsigned fixed point fields with 4 integer bits and 4 fractional bits. This gives us a range of in decimal, or in hex. Our real world data is all integers and in the range in decimal. Note that there are only 161 unique values that we may want to store, so our 8 bit field should be plenty, since 8 bits can have 256 unique configurations.
In the example given above, we picked a scale factor of 11 so that all the numbers would be small enough to fit in the range. However, when we began scaling the following real world data:
154, 101, 54, 3, 0, 160We discovered that the precision of these fractions is going to be a problem. The following box illustrates this showing the original data, its scaled decimal values, and the binary equivalent of the scaled value.
154/11 = 14 = 1110.0 101/11 = 9.1818... = 1001.00101110... 54/11 = 4.9090... = 100.111010... 3/11 = 0.2727... = 0.010010... 0/11 = 0 = 0.0 160/11 = 14.5454... = 1110.10010...Notice how several of the binary fractions require more than the 4 fractional bits provided by our fixed point format. To fit them into our fields, we would simply truncate the remaining bits, giving us the following stored representations:
1110.0000 1001.0010 0100.1110 0000.0100 0000.0000 1110.1001Or in decimal:
14.0 9.125 4.875 0.25 0.0 14.5625And when we need to bring them back into the real world, we need to divide by our scale factor, 1/11, giving the following "real world" values:
154.0 100.375 53.625 2.75 0 160.1875Notice how they've changed? For one thing, they aren't all integers anymore, immediately indicating that an error was introduced in the storage, due to a poor choice of scaling factor.
Read more about this topic: Scale Factor (computer Science)
Famous quotes containing the words picking a, picking, scale and/or factor:
“Thus their hands are plucking at each other;
Picking at the rope-knouts of their scourging;
Snatching after us who smote them, brother,
Pawing us who dealt them war and madness.”
—Wilfred Owen (18931918)
“In conversation the game is, to say something new with old words. And you shall observe a man of the people picking his way along, step by step, using every time an old boulder, yet never setting his foot on an old place.”
—Ralph Waldo Emerson (18031882)
“I love to weigh, to settle, to gravitate toward that which most strongly and rightfully attracts me;Mnot hang by the beam of the scale and try to weigh less,not suppose a case, but take the case that is; to travel the only path I can, and that on which no power can resist me. It affords me no satisfaction to commence to spring an arch before I have got a solid foundation.”
—Henry David Thoreau (18171862)
“It is change, continuing change, inevitable change, that is the dominant factor in society today. No sensible decision can be made any longer without taking into account not only the world as it is, but the world as it will be.... This, in turn, means that our statesmen, our businessmen, our everyman must take on a science fictional way of thinking.”
—Isaac Asimov (19201992)