This is the mail archive of the gsl-discuss@sourceware.org mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]