1
$\begingroup$

Given a real value $M>0$, I want to compute the greatest value of $\epsilon$ strictly smaller than $M$. Given the assumption that the computational model is Real-RAM, how to find a real number sufficiently close to $M$?

$\endgroup$
  • $\begingroup$ Real RAM uses exact real numbers, so how do you define the greatest value smaller than M if the variable is continous? What does sufficiently close mean to you? Does 0.9999999 * M satisfy your needs? $\endgroup$ – Evil Jan 3 at 5:03
  • $\begingroup$ Right. I guess I want to know about number precision in real-RAM Model (the smallest possible gap between two real numbers w.r.t. machine precision). We cannot have arbitrarily close numbers in Real-RAM in practice, right? The more general question is how to define, for example, an open interval like (a,b) with a<b in Real-RAM model? $\endgroup$ – Armin Mir Jan 3 at 19:44
  • 1
    $\begingroup$ In Real RAM precision is infinite. For hardware, using something like IEEE754 you have defined in standard the minimal epsilon that you can add to end up with greater number. Question asks about Real RAM, there is no connection to fixed precision. $\endgroup$ – Evil Jan 3 at 19:59
  • 1
    $\begingroup$ @Evil Make an answer? $\endgroup$ – Yuval Filmus Jan 3 at 20:48
  • $\begingroup$ @Evil I still cannot see how precision in 'practice' can be infinite. Basically, we are not able to store any arbitrarily long floating point real number in any RAM. There has to be some limitation on the length of the number... This can potentially bring the precision with itself. I understand your statement is true in a theoretical manner, but in practice, the length of any real number is limited, no? $\endgroup$ – Armin Mir Jan 3 at 22:42
1
$\begingroup$

In Real RAM precision is infinite, this comes straight from definition: it uses exact real numbers. As you have noticed this is purely theoretical model. It is also worth notting that real-RAM model gives enormous computational boost from standard RAM model where each cell uses only fixed length, called machine word.

For hardware (practical one), using something like IEEE754, these are not real numbers, but fixed-precision representation, with sign, significand and exponent. Common float has about seven digits of precision. There are types using 24, 32, 64, 80, 128... bits.

If you want to model something with practical indication in mind, do not use real-RAM as it is too powerful.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.