This is the mail archive of the
gsl-discuss@sourceware.org
mailing list for the GSL project.
Re: test release gsl-1.8.90.tar.gz
Linas Vepstas wrote:
On Fri, Feb 16, 2007 at 12:03:08AM -0500, Ed Smith-Rowland wrote:
I am in the middle of implementing special functions for gcc (The C++
standards people are adding a list of special functions to the library -
or rather to an adjunct of the library.)
Are you doing this by copying code from GSL, or is this an all-new
implementation? I'd hate to see an all-new implementation become part
of the standard; C++ has a history of wrecking things and so remarks
like this make me nervous. (For example, the complex math type has been
wrecked for half a decade, and I find it amazing that no effort has
been made to fix it or make it operate in a compatible fashion. This
is one reason I've stopped using C++ for mathematics; unfortunately,
I still have a raft of old code, and so I continue to feel the pain.)
--lnas
There are very large portions either from GSL or from the same sources
as GSL uses (Abramowitz & Stegun, Olver, ..).
Construction of a special function library is just too difficult to do
from scratch without leveraging the efforts of others where possible.
The portion of the C++ standard (actually a technical report - TR1) is
here: TR1
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf>
The relevant sections are 5 - special functions and a random number
generator. Also section 8 is C99 compatibility. They deliberately
adopted a C99 style calling convention to leave open the possibility
that C99 could adopt this too.
The implementation of special functions for GCC should appear in
mainline within a week or two. The random number generator and almost
all of the C99 compatibility parts are already in. These should be
released with gcc-4.3.
Concerning complex I swore that conforming C++ was supposed to store the
real and imaginary parts in such a way that you could interact with
C99. I *think* you should be able to cast back and forth and have it
work. Also, a large part of this TR1 deals with syncing C99 with C++
(section 8).
I thought there was a way you could grab the raw implementation and use
it in C99 and conversely put a C99 _Complex in a constructor for C++
complex.
I'll dig around and see.
Ed Smith-Rowland