Jump to navigation Jump to search
60 bytes added ,  8 May
Floating-point arithmetic is an approximation '''in binary''' to arithmetic on real or complex numbers. Just like you cannot represent 1/3 exactly in decimal arithmetic (0.333333... is only a rough approximation to 1/3), you cannot represent some fractions like <math>1/10</math> exactly in base 2. In binary, the representation to one tenth is <math>0.0\overline{0011}_b</math> where the bar indicates that it repeats infinitely (like how <math>1/6 = 0.1\overline{6}_d</math> in decimal). Because this infinite repetition cannot be represented exactly with a finite number of digits, rounding errors occur for values that appear to be exact in decimal but are in fact approximations in binary, such as for example how 0.3 - 0.2 - 0.1 is not equal to zero.
In addition, some advanced operations are computed by approximation and are not guaranteed there is no guarantee for them to be accurate, see [ Table-maker's dilemma]for further references . Their results are system-dependent.
This isn't an a bug that is limited to GNU-Octave bug. It & it happens with any program that uses [ IEEE 754 floating-point arithmetic]. To be fair, IEEE 754 also specifies decimal floating-point arithmetic, which has never seen wide adoption. The reason why Octave and other programs using IEEE 754 binary floating-point numbers is that they are ''fast'', because they are implemented in hardware or system libraries. Unless you are using very exotic hardware, Octave will use your computer's processor for basic floating-point arithmetic.
Another approach to deal with rounding errors is interval arithmetic with the [[Interval package]] or symbolic computatons computations with the [[Symbolic package]]. These approaches are likely to be slower, since not all operations can be performed on Hardware like pure floatinfloating-point arithmetic.
To learn more about floating-point arithmetic, consult the this [ Wikipedia article] or the classical reference by David Goldberg [ What Every Computer Scientist Should Know About Floating-Point Arithmetic].
==Missing lines when printing under Windows with OpenGL toolkit and Intel integrated GPU==

Navigation menu