www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Are there any floating point libraries for D?

reply Don Clugston <Don_member pathlink.com> writes:
Hello -
I'm just starting to explore D. I have a particular interest in floating point
calculations, which D seems to have superb language support for.
But I have not been able to find any libraries which take advantage of this
support. (In fact even C99 libraries seem to be rare on the web).
Am I correct in believing that this incredible potential is almost completely
untapped at present? What is out there so far?

Cheers,
Don.
Jul 27 2005
parent reply "Ben Hinkle" <ben.hinkle gmail.com> writes:
"Don Clugston" <Don_member pathlink.com> wrote in message 
news:dc9g60$13ae$1 digitaldaemon.com...
 Hello -
 I'm just starting to explore D. I have a particular interest in floating 
 point
 calculations, which D seems to have superb language support for.
 But I have not been able to find any libraries which take advantage of 
 this
 support. (In fact even C99 libraries seem to be rare on the web).
 Am I correct in believing that this incredible potential is almost 
 completely
 untapped at present? What is out there so far?

 Cheers,
 Don.

What sort of functionality are you looking for? Something like LAPACK or Blitz? There's a proposal for better multi-dimensional array support by Norbert Nemec (see for example http://www.digitalmars.com/d/archives/digitalmars/D/3223.html) but I'm not aware of any D-specific libraries. A (not-so-complete) list of libraries is at http://www.prowiki.org/wiki4d/wiki.cgi?AllLibraries
Jul 28 2005
parent reply Don Clugston <Don_member pathlink.com> writes:
In article <dcai9k$1se8$1 digitaldaemon.com>, Ben Hinkle says...
"Don Clugston" <Don_member pathlink.com> wrote in message 
news:dc9g60$13ae$1 digitaldaemon.com...
 Hello -
 I'm just starting to explore D. I have a particular interest in floating 
 point
 calculations, which D seems to have superb language support for.
 But I have not been able to find any libraries which take advantage of 
 this
 support. (In fact even C99 libraries seem to be rare on the web).
 Am I correct in believing that this incredible potential is almost 
 completely
 untapped at present? What is out there so far?

 Cheers,
 Don.

What sort of functionality are you looking for? Something like LAPACK or Blitz?

Anything, really. It seems that Phobos doesn't even have the most trivial functions for complex numbers -- eg. exp(creal x). The combination of built-in support for 80-bit imaginary numbers, NCEG operators, unit tests, and the template features could easily make D the most robust (and fast) language for computation. I'm a research scientist/engineer, with a significant experience of x86 FP assembler and modern C++, so I believe I could make a contribution in this area. I just want to make sure that I wouldn't be reinventing the wheel.
There's a proposal for better multi-dimensional array support by Norbert 
Nemec (see for example 
http://www.digitalmars.com/d/archives/digitalmars/D/3223.html)

That is truly awesome! It does caution me against doing much matrix work, though -- that proposal would render a lot of code obselete. but I'm not
aware of any D-specific libraries. A (not-so-complete) list of libraries is 
at http://www.prowiki.org/wiki4d/wiki.cgi?AllLibraries

It looks very easy to find something that hasn't already been done :) Maybe I can write std.complex.d
Jul 28 2005
next sibling parent "Ben Hinkle" <ben.hinkle gmail.com> writes:
[snip]
 It seems that Phobos doesn't even have the most trivial
 functions for complex numbers -- eg. exp(creal x).
 The combination of built-in support for 80-bit imaginary numbers, NCEG
 operators, unit tests, and the template features could easily make D the 
 most
 robust (and fast) language for computation. I'm a research 
 scientist/engineer,
 with a significant experience of x86 FP assembler and modern C++, so I 
 believe I
 could make a contribution in this area. I just want to make sure that I 
 wouldn't
 be reinventing the wheel.

Welcome - it's great to have people interested in numerics. Things are pretty quiet right now over the summer but we have gotten some good threads on number-crunching in the past.
There's a proposal for better multi-dimensional array support by Norbert
Nemec (see for example
http://www.digitalmars.com/d/archives/digitalmars/D/3223.html)

That is truly awesome! It does caution me against doing much matrix work, though -- that proposal would render a lot of code obselete.

True - I think there have been several vector/matrix modules coded up (2 and 3 dim mostly). I don't have any links handy, though.
 but I'm not
aware of any D-specific libraries. A (not-so-complete) list of libraries 
is
at http://www.prowiki.org/wiki4d/wiki.cgi?AllLibraries

It looks very easy to find something that hasn't already been done :) Maybe I can write std.complex.d

Go for it. I'm sure it will be appreciated. It is pretty common to request at dsource if you need a host and forum. The url is http://www.dsource.org - ask for Brad :-) Or if you are planning something somewhat small like a single module for std (as you suggest) then the typical approach is to post some ideas or post some code and have people comment and then send it to Walter. You can also just email Walter to get his opinion on the whole thing but be aware he's out right now.
Jul 28 2005
prev sibling next sibling parent Sean Kelly <sean f4.ca> writes:
In article <dcbsvs$8em$1 digitaldaemon.com>, Don Clugston says...
In article <dcai9k$1se8$1 digitaldaemon.com>, Ben Hinkle says...
What sort of functionality are you looking for? Something like LAPACK or 
Blitz?

Anything, really. It seems that Phobos doesn't even have the most trivial functions for complex numbers -- eg. exp(creal x).

For what it's worth, I've exposed all the standard C routines that DMD supports (that being all of them) for complex mathematics. Links are here: http://svn.dsource.org/projects/ares/trunk/src/ares/std/c/complex.d http://svn.dsource.org/projects/ares/trunk/src/ares/std/c/math.d
The combination of built-in support for 80-bit imaginary numbers, NCEG
operators, unit tests, and the template features could easily make D the most
robust (and fast) language for computation. I'm a research scientist/engineer,
with a significant experience of x86 FP assembler and modern C++, so I believe I
could make a contribution in this area. I just want to make sure that I wouldn't
be reinventing the wheel.

Definately not. And it would be great to have a solid numeric library for D. Sean
Jul 28 2005
prev sibling parent Manfred Nowak <svv1999 hotmail.com> writes:
Don Clugston <Don_member pathlink.com> wrote:

 It looks very easy to find something that hasn't already been
 done :) Maybe I can write std.complex.d

An it is as easy to overlook, that there are already processor specific libraries available. For the Athlon 64 AMD has released "AMD Core Math Library (ACML)" with versions of BLAS, LAPACK etc. and a C interface to them. Therefore al that has to be done is to convert the headerfile to D. -manfred
Jul 31 2005