delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/02/26/01:40:12

Message-Id: <3.0.6.32.19990226012010.008e7bd0@pop.globalserve.net>
X-Sender: derbyshire AT pop DOT globalserve DOT net
X-Mailer: QUALCOMM Windows Eudora Light Version 3.0.6 (32)
Date: Fri, 26 Feb 1999 01:20:10 -0500
To: egcs AT egcs DOT cygnus DOT com, djgpp AT delorie DOT com
From: Paul Derbyshire <pderbysh AT usa DOT net>
Subject: Re: Bug in libm or libstdc++.
In-Reply-To: <Pine.LNX.3.96.990224183714.7438r-100000@exeter.exeter.org>
References: <3 DOT 0 DOT 6 DOT 32 DOT 19990222090333 DOT 00847df0 AT pop DOT globalserve DOT net>
Mime-Version: 1.0
Reply-To: djgpp AT delorie DOT com

>	Uhhh... if you're referring to page 660 (section 22.3)
>	it most certainly does not make any such guarantee with
>	regards to -long double- datatypes.

S22.3, page 661: "double atan (double) ..... In addition, <cmath> and
<math.h> supply these functions for float and long double arguments."

You're wrong, I'm right. Long double versions of atan and friends ARE
demanded by the standard. I would like to see them very soon so that I may
use them (the long double versions anyways) when I want that bit of extra
precision.......

>	at least on my box (sparc solaris), libm is vendor provided.

Not on an IBM PC clone, where it comes with the DJGPP/Cygwin/whatever
development environment you install. I installed the DJGPP/EGCS development
environment and got a broken libm.

>	gnu/include/g++/cmath -does- make reference to the math
>	functions that use long doubles for arguments, but I don't
>	think any library on my box actually supports them.

Then those libraries are broken and not conformant. I suggest you complain
to the vendor. You may also want to ask the bookstore where you got your
copy of Stroustrup for an exchange or a refund; I sure would have if my
copy had turned out to have pp. 661-662 torn out or missing.

Anyways, since these are function overloads in C++, I would expect the long
double and float versions to be in libstdc++, not libm. And libstdc++ comes
with gcc/egcs rather than being vendor supplied, on all platforms. If the
egcs libstdc++ is lacking long double overloads for atan and the like, then
this is a bug in egcs.


-- 
   .*.  "Clouds are not spheres, mountains are not cones, coastlines are not
-()  <  circles, and bark is not smooth, nor does lightning travel in a
   `*'  straight line."    -------------------------------------------------
        -- B. Mandelbrot  |http://surf.to/pgd.net
_____________________ ____|________     Paul Derbyshire     pderbysh AT usa DOT net
Programmer & Humanist|ICQ: 10423848|

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019