| beliavsky@aol.com 2004-12-14, 9:01 pm |
| >My institute is planning to spend some money on software. Can >you
point me to numerical libraries which are proprietary and >have no free
competitor which is equivalent, or at least >comparable (and are worth
their price on their own, of course). I >will be grateful for any
recommendations.
Do the libraries need to be callable from C or Fortran? Do you want
source code, or is object code ok? For object code libraries IMSL and
NAG should be considered, and a license is specific to a particular
compiler/OS/hardware combination. The licenses are expensive (but
perhaps worthwhile when considering the value of your time), and
getting licenses for several compiler/OS/hardware combinations may be
prohibitive. The IMSL 5 library is not even available for
Lahey/Fujitsu. I recommend the Fortran 90 versions of the IMSL and NAG
libraries over the F77 ones, because with OPTIONAL arguments and
assumed shape arrays, the argument lists can be a LOT shorter.
A list of Fortran libraries, some commercial, is at
http://www.dmoz.org/Computers/Progr...tran/Libraries/
.. Some source code libraries to consider there are HSL, Numerical
Recipes, and Math a la Carte.
I have used IMSL and Numerical Recipes with success.
Regarding the "no free equivalent" criterion: probably most of IMSL and
NR codes I have used in my codes did have public domain equivalents. It
can save time, however, to have acess to a library of categorized and
documented codes, which in the case of IMSL and NAG have already been
compiled for you. Nowadays I try to avoid using IMSL in new code, to
avoid compiler "lock-in", unless there really is no free equivalent.
I think that an experimental physicist who needs to quickly get an
algorithm working to analyze some data may benefit from commercial
libraries, but a computational/theoretical physicist should spend the
time to find public domain code or write his own. It is risky to have
the core of your work depend on a proprietary library, especially one
not distributed as source code.
|