1. float32, float64?
- Posted by "Lucius L. Hilley III" <lhilley at CDC.NET> Nov 19, 1999
- 488 views
My request is simple. Improve the type below. I don't think I should have to convert the value to a float32 sequence and back just to see if the stored value is accurate. I know that float64 is as accurate as I can get. I don't want to store numbers as float64 if I can accurately store them as float32. Thanks in advanced for your assistance. type float32(atom a) return (a = float32_to_atom(atom_to_float32(a))) end type Lucius L. Hilley III lhilley at cdc.net lucius at ComputerCafeUSA.com +----------+--------------+--------------+----------+ | Hollow | ICQ: 9638898 | AIM: LLHIII | Computer | | Horse +--------------+--------------+ Cafe' | | Software | http://www.cdc.net/~lhilley | USA | +----------+-------+---------------------+----------+ | http://www.ComputerCafeUSA.com | +--------------------------------+
2. Re: float32, float64?
- Posted by Bernie Ryan <bwryan at PCOM.NET> Nov 19, 1999
- 487 views
On Fri, 19 Nov 1999 12:51:05 -0500, Lucius L. Hilley III <lhilley at CDC.NET> wrote: > My request is simple. Improve the type below. Lucius: Can't you do this ? -- global type float( atom val) if ( val >= -3.4E38 and val <= 3.4E38 ) then return 1 else return 0 end if end type -- -- global type double( atom val) if ( val >= -1.7E308 and val <= 1.7E308 ) then return 1 else return 0 end if end type -- Bernie
3. Re: float32, float64?
- Posted by "Lucius L. Hilley III" <lhilley at CDC.NET> Nov 19, 1999
- 525 views
> ---------------------- Information from the mail header ----------------------- > Sender: Euphoria Programming for MS-DOS <EUPHORIA at LISTSERV.MUOHIO.EDU> > Poster: Bernie Ryan <bwryan at PCOM.NET> > Subject: Re: float32, float64? > -------------------------------------------------------------------------- ----- > > On Fri, 19 Nov 1999 12:51:05 -0500, Lucius L. Hilley III <lhilley at CDC.NET> > wrote: > > > My request is simple. Improve the type below. > > Lucius: Can't you do this ? > > -- > global > type float( atom val) > if ( val >= -3.4E38 and val <= 3.4E38 ) then return 1 else return 0 end if > end type > -- > -- > global > type double( atom val) > if ( val >= -1.7E308 and val <= 1.7E308 ) then return 1 else return 0 end > if > end type > -- > > Bernie > I can now. :) Thank you. I didn't know the exact values. I figured at least 1 of about 200 minds would know. Lucius L. Hilley III lhilley at cdc.net +----------+--------------+--------------+ | Hollow | ICQ: 9638898 | AIM: LLHIII | | Horse +--------------+--------------+ | Software | http://www.cdc.net/~lhilley | +----------+-----------------------------+
4. Re: float32, float64?
- Posted by "Boehme, Gabriel" <gboehme at POSTOFFICE.MUSICLAND.COM> Nov 19, 1999
- 513 views
Bernie Ryan wrote (in response to Lucius L. Hilley): >> My request is simple. Improve the type below. > > Lucius: Can't you do this ? > >-- >global >type float( atom val) > if ( val >= -3.4E38 and val <= 3.4E38 ) then return 1 else return 0 end if >end type >-- >-- >global >type double( atom val) > if ( val >= -1.7E308 and val <= 1.7E308 ) then return 1 else return 0 end >if >end type >-- Sorry, but that won't work. Why not? Because whether an atom is float32 or float64 is not dependent on the range of values alone, but also upon its decimal accuracy. The value of 1/7 CANNOT be accurately represented with a float32 -- to get the most accurate representation, you MUST use a float64. -- begin example code constant a = 1/7 ? (a = float32_to_atom(atom_to_float32(a))) -- prints 0 (FALSE) -- end example code As far as I know, Lucius, your original method is the only 100% accurate method for determining what machine type an atom really is. Hep yadda, Gabriel Boehme ---------- To have a horror of tobacco is not to have an abstract standard of right; but exactly the opposite. It is to have no standard of right whatever; and to take certain local likes and dislikes as a substitute. G.K. Chesterton ----------
5. Re: float32, float64?
- Posted by Bernie Ryan <bwryan at PCOM.NET> Nov 19, 1999
- 468 views
On Fri, 19 Nov 1999 16:46:52 -0600, Boehme, Gabriel <gboehme at POSTOFFICE.MUSICLAND.COM> wrote: >Sorry, but that won't work. Why not? Because whether an atom is float32 or Gabriel : I don't use these to test atoms. The idea of type define is to prevent a variable from accepting a value that is within a given range. I use them as a new user defined variable types. float var1 double var2 var1 = 3.4 var2 = 33.25677 Bernie
6. Re: float32, float64?
- Posted by "Boehme, Gabriel" <gboehme at POSTOFFICE.MUSICLAND.COM> Nov 19, 1999
- 468 views
Bernie Ryan responded: > I don't use these to test atoms. The idea of type define is to prevent > a variable from accepting a value that is within a given range. I use > them as a new user defined variable types. That's perfectly fine. However, look closely at what Lucius asked for in his original post: Lucius originally wrote: >I don't think I should have to convert the value to a float32 >sequence and back just to see if the stored value is accurate. > > I know that float64 is as accurate as I can get. I don't >want to store numbers as float64 if I can accurately store >them as float32. Notice how the word "accurate" is stressed. My interpretation of this was that he wanted a check for the most *accurate* machine type, not simply the general numeric ranges. If my impression is wrong, I apologize, but I wanted to be sure that his concerns about accuracy were addressed. Hep yadda, Gabriel Boehme ---------- Reason is always a kind of brute force; those who appeal to the head rather than the heart, however pallid and polite, are necessarily men of violence. We speak of "touching" a man's heart, but we can do nothing to his head but hit it. G.K. Chesterton ----------
7. Re: float32, float64?
- Posted by "Lucius L. Hilley III" <lhilley at CDC.NET> Nov 19, 1999
- 466 views
- Last edited Nov 20, 1999
> ---------------------- Information from the mail header ----------------------- > Sender: Euphoria Programming for MS-DOS <EUPHORIA at LISTSERV.MUOHIO.EDU> > Poster: "Boehme, Gabriel" <gboehme at POSTOFFICE.MUSICLAND.COM> > Subject: Re: float32, float64? > -------------------------------------------------------------------------- ----- > > Bernie Ryan wrote (in response to Lucius L. Hilley): > > >> My request is simple. Improve the type below. > > > > Lucius: Can't you do this ? > > > >-- > >global > >type float( atom val) > > if ( val >= -3.4E38 and val <= 3.4E38 ) then return 1 else return 0 end > if > >end type > >-- > >-- > >global > >type double( atom val) > > if ( val >= -1.7E308 and val <= 1.7E308 ) then return 1 else return 0 end > >if > >end type > >-- > > Sorry, but that won't work. Why not? Because whether an atom is float32 or > float64 is not dependent on the range of values alone, but also upon its > decimal accuracy. The value of 1/7 CANNOT be accurately represented with a > float32 -- to get the most accurate representation, you MUST use a float64. > > -- begin example code > constant a = 1/7 > ? (a = float32_to_atom(atom_to_float32(a))) -- prints 0 (FALSE) > -- end example code > > As far as I know, Lucius, your original method is the only 100% accurate > method for determining what machine type an atom really is. > > > Hep yadda, > Gabriel Boehme I need 100% accuracy. If the range test isn't 100% accurate then I will have to resort to the back and forth equivalence test. Lucius L. Hilley III lhilley at cdc.net +----------+--------------+--------------+ | Hollow | ICQ: 9638898 | AIM: LLHIII | | Horse +--------------+--------------+ | Software | http://www.cdc.net/~lhilley | +----------+-----------------------------+
8. Re: float32, float64?
- Posted by nieuwen at XS4ALL.NL Nov 20, 1999
- 480 views
> My request is simple. Improve the type below. > I don't think I should have to convert the value to a float32 > sequence and back just to see if the stored value is accurate. Hmm, maybe by adding the lowest possible value with a float32 and adding the highest possible value. If adding such a low value makes any difference, and adding adding such a high value, then the value can be stored in 32 bit. I'm not sure though, this is just a guess. Ralf Nieuwenhuijsen [[ Email ]] nieuwen at xs4all.nl ralf_n at email.com [[ I-Seek-You ]] UIN: 9389920 [[ The Elevator ]] http://www.xs4all.nl/~nieuwen Download NeoPlanet at http://www.neoplanet.com