[Ecell3-devel] GSL
Kouichi Takahashi
shafi@sfc.keio.ac.jp
Mon, 05 Nov 2001 22:52:25 +0900
hi there,
I'm thinking about integrating GSL (GNU Scientific Library) with
ecell3 in the future versions.
http://sources.redhat.com/gsl/
from the homepage:
> The GNU Scientific Library (GSL) is a collection of routines for
> numerical computing. The routines are written from scratch by the GSL
> team in ANSI C, and are meant to present a modern Applications
> Programming Interface (API) for C programmers, while allowing wrappers
> to be written for very high level languages.
About the half of the developers are working for Los Alamos National
Laboratory.
It uses standard CBLAS (or optionally ATLAS, the best performance
(3.8GFlops!!) lin-alg library for P4) and FFTPACK (of netlib). It is
reimplementing other standard packages like LAPACK, QUADPACK, MINPACK
etc.
There are C++ and python wrappers (both in early development stage) as
well as two perl ones.
If it is integrated with ecell3, GSL:
- can be used in algorithm modules.
I'll be recommending use of the library if the module need an external
mathematical library to keep developers from losing their way.
- will only modestly be used in the core portions (libecs).
Libecs itself should not depend on the library. However, some
functions like physical constants and random numbers can be used
by wraping with some classes, keeping the implementation replacable.
- can be used in python frontend.
I guess PyGSL can replace the NumericalPython. This is good
because one can do numerical operations with the common library
in both of C++ and python portions. Moreover, data passing over pyecs
(i.e. libecs,emc <-> frontends) can be made more efficient since
data structures are the same (just a memcpy in the optimum case).
If GSL is used for the data passing libecs will depend on it, though.
Features of GSL:
* Complex Numbers
* Roots of Polynomials
* Special Functions
* Vectors and Matrices
* Permutations
* Sorting
* BLAS Support
* Linear Algebra
* Eigensystems
* Fast Fourier Transforms
* Quadrature
* Random Numbers
* Quasi-Random Sequences
* Random Distributions
* Statistics
* Histograms
* N-Tuples
* Monte Carlo Integration
* Simulated Annealing
* Differential Equations
* Interpolation
* Numerical Differentiation
* Chebyshev Approximations
* Series Acceleration
* Discrete Hankel Transforms
* Root-Finding
* Minimization
* Least-Squares Fitting
* Physical Constants
* IEEE Floating-Point
A modeler (Yugi Katsuyuki) is currently using CERN's CLHEP library for
hybrid dynamic metabolic flux-balance model in the e-Rice project (with
ecell1). He had asked me what library to use in this summer before he
start the implementation but I couldn't answer with a firm
convinction. (I recommended TNT and MTL and he choose CLHEP) I'll ask
him to use GSL and give us a comment.
GSL is included in the standard RedHat distributions (version 0.9.0,
which is not the latest though). C++ and python wrapper are not yet.
Any comments?
-----
Kouichi Takahashi E-CELL Project,
email: shafi@sfc.keio.ac.jp Institute for Advanced Biosciences
shafi@e-cell.org Keio Univ. SFC