What are the Values of Machine Constants in Excel/VBA?

  1. What are the Values of "Machine Constants" in Excel/VBA?

    The Fortran code for TOMS Algorithm 691 refers to five "machine constants" belonging to the host computing environment. Two of these are:

    1. "The smallest relative spacing", given as "B ** (-T)", where B = base (say 10?), and T = number of base-B digits, say 15, so this = 10**-15...?
    2. "The largest relative spacing", given as "B**(1-T)", so this = 10**(1-15) = 10**-14...?

    It appears the values are being used in the program for fine-grain error management. Unfortunately, I can find no general references to these constants, and I'm not certain what they mean, nor what their values are...

    Would anyone be able to enlighten me on the particular values of these two parameters for the Excel/VBA environment.

    TIA for any assistance.
     
  2. jcsd
  3. AlephZero

    AlephZero 7,298
    Science Advisor
    Homework Helper

    Re: What are the Values of "Machine Constants" in Excel/VBA?

    See http://www.netlib.org/blas/d1mach.f

    At the bottom of the code these constants are defined in terms of standard C library functions, so you can get more details from the C standard if you need that.
     
  4. Re: What are the Values of "Machine Constants" in Excel/VBA?

    Thanks for your reply.

    I found one glimmer of hope in a statement in a (web) file named C Standard Library <float.h>:

    ... EPSILON: smallest number x such that 1.0 + x != 1.0

    Using Excel, I obtained a figure of around 4.996E-15, which may well be the value for my point 1 above, ie, the smallest relative spacing. Am I on the right track here?

    Unfortunately, I can find no similar example or statement defining my point 2 above.

    Any help appreciated.
     
Know someone interested in this topic? Share this thead via email, Google+, Twitter, or Facebook

Have something to add?