Browse thread
[Caml-list] Finding the sign of a float
-
Shawn Wagner
- Chris Hecker
-
John Carr
-
malc
- Shawn Wagner
-
malc
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Shawn Wagner <shawnw@s...> |
| Subject: | Re: [Caml-list] Finding the sign of a float |
On Sat, Feb 01, 2003 at 05:11:10PM +0300, malc wrote: > On Sat, 1 Feb 2003, John Carr wrote: > > > > > > I'm looking for a way, in pure ocaml without having to bail out to C, to > > > tell if a float is negative or not. > > > > > > Just using x < 0.0 won't work, as I need to be able to tell the difference > > > between -0.0 and +0.0. This is for ocaml versions of the C copysign and > > > signbit functions. Any suggestions? > > > > x < 0.0 || (x = 0.0 && 1.0/.x < 0.0) > > > > may be faster than converting the bits to integer, or slower, > > depending on platform and context, and how often you encounter -0. > > 1.0 /. x = neg_infinity less typing > That one doesn't work for all negative numbers, though. I think I'll go with John's, though Chris's suggestion of converting to an int64 is nifty. I wasn't aware of bits_to_float before. PS: I agree with Chris's sentiments about overloaded arithmetic operators (It has to be possible; < > and = do it...) and largeint constants. That last one is particularily annoying, as I never could figure out how to make my patch to add them work with camlp4. -- Shawn Wagner shawnw@speakeasy.org ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners