-
New solvers utilizing contemporary open-source c and Fortran libraries
- Advanced numerical methods
and algorithms from the GNU Scientific Library (GSL) and netlib /gams;
- cubic spline toolkit;
- root finding in one and multi-dimensions
using MINPACK/GSL and HOMPACK (multidimensions), single parameter
curve tracking with CONTIN and HOMPACK;
- numerical integration of a real function of a real
scalar (QUADPACK/GSL) and a real vector variable over hypercube (GENZPAK
and Monte Carlo) and simplex domains (GENZPAK);
- Tchebyshev polynomial toolkit, numerical differentiation
of a real scalar and vector function in one and multi-dimensions,
numerical div operator;
- Minimization of a real function of a real vector variable
using the MINPACK/GSL's solvers, CONMAX solver and the Proximal Bundle
solvers (TOMS 811);
- Fitting and modeling : least-squares and
orthogonal distance regression solvers provided by ODRPACK
and the GSL;
- Statistics toolkit, permutations, combinations, outliers;
- Ordinary differential equations toolkit with solvers for:
- Initial value problems: rk2, rk4, rkf45, rkck45, rk8pd, rk2imp,
rk4imp, gear1, gear2, bsimp (from the GSL), adams
method (from netlib), blended
implicite method (BiM) and the backward difference method as
implemented in the package dvode
(also from netlib) ;
- Two-point boundary value problems: ACDC/TWPBVP
(stiff), COLDAE/COLSYS (mildly stiff) and MIRKDC (non-stiff);
- Differential algebraic equations initial value
problem: MEBDFI, DDASKR and BIM (all stiff solvers);
- Sturm-Liouville eigenvalue/eigenfunction boundary
value problem: SLEIGN2.
- Special functions (from AiryAi to Zeta, total of more than 65 new
functions);
- Random number generators: integer, general
discrete and continuous, and their respective probability
distribution functions. Shuffling, choosing and sampling;
- Simulated annealing;
- Partial Differential Equations in 1-D:
- Chaos and Signal Processing toolkit, based-on or
inspired-by the Time-Series Analysis Package ( TISEAN ) and recognized sources from netlib and gams. This is work
in progress. As of now it contains the following functions:
- False nearest neighbors, average mutual information;
- Recurrent maps, autocorrelation, running average;
- Generalized cross-validating spline smoothing (GCVSPL)
for noisy data; piece-wise line interpolation (STL2) of noisy data, and generic natural b-spline fit in 1- and 2-D (DIERCKX).
-
General purpose libraries:
- Polynomial toolkit: evaluation, approximation,
differentiation and integration, convolution, deconvolution, roots,
etc;
- String toolkit: access to ascii table, creation of a
string matrix, conversion of a real matrix to string matrix, gawk-type
manipulations on string matrices.
-
The Gnu Linear Programming Kit (GLPK): load/save data in
different formats (MPS, CPLEX LP, GnuMath), and solvers (simplex,
interior point, mixed integer). Uses sparse matrix storage for
constraint matrix, can work with both dense and sparse constraint
matrices.
-
Dedicated lists mks
and const with conversion
factors between
MKSA (SI) units and others, and the mathematical constants (only those
different from unity), respectively.
- New rlab-scripted libraries (rlib)
:
- Grace toolkit
for visualization of the RLaB data arrays: custom colors, stacked
graphs, etc. See jpegs of grace graphs created using rlabplus
: example 1, example
2, and example 3;
- Standard input/output functions: access to shell commands,
editing or viewing of data arrays, stderr console etc.
- Documentation:
A first draft of a manual containing some 190 pages is available
for download (size 1MB). Test codes demonstrating new features are
available for download, as well. See a screenshoot
of RLaB in action.
- Internal changes:
- SuperLU ,
UMFPack
and
SPARSKIT
v.2 are now integrated with RLaB.
These provide efficient (memory and speed-wise) built-in
sparse matrix functions solve,
spsolve and det. The sparse libraries are
linked to Boehms garbage collector (latest version 6.4) for better
memory management.
- Built-in functions like zeros,
ones, strtod, nan, inf, min,
max have improved functionality and take greater range
of arguments. Improved interface to pgplot and better book-keeping
of the open pgplot devices.
- a stripped-down version of ARPACK (removed
messaging/timing) is now integrated with RLaB. It provides
eigs function for
calculation of smaller number of eigenvalues/eigenvectors for dense
and sparse matrices. It offers 4 general purpose iterative
routines, integrated with UMFPACK (complex sparse matrices),
SuperLU (real sparse
matrices) and LAPACK (dense matrices).
- Integer matrices as a new internal storage type. Bit-wise
logical operations on integers (and,
or, not). Seamlessly incorporated
in readb/writeb binary I/O
operations.
- Ability to protect lists, to prevent such from being
accidentally overwritten, or saved to a file when using
save/load for managing the
workspace variables.
Installation Notes
To install
rlabplus, follow these instructions:
- Requirements (see also Known Compilation Issues below): rlabplus uses the the following shared libraries, BLAS , GSL, and LAPACK.
- GSL and LAPACK typically come with the installation disks (at least with SuSE). Please note, in rlabplus tree there is flibs/lapack directory which contains auxiliary files, primarily for testing. These are used for rlabplus function randomize to create a random matrix of desired properties (eigenvalues, singular values, hermitean & c.)
- BLAS can be downloaded from
Kazushige
Goto web site and it depends on processor type and its cache
size. Once obtained it needs to be copied and soft linked in /usr/local/lib or /usr/lib as libblas.so,
and libblas.so.3 (for lapack), e.g.,
> ln -s ./libgoto_p3_256.so /usr/lib/libblas.so
- Installation:
- download rlab-2.2.10-*.tgz
- > tar xvfz rlab-2.2.10-*.tgz
- > cd rlab-2.2.10-*
- > ./configure (for *=g77, all fortran libraries have been already compiled with g77)
> ./configure --without-pgplot (for *=gfortran, all fortran libraries have been already compiled with gfortran)
- > rm rlab; make rlab
- # make install (as super user)
Please see notes in root directory in README.g77 regarding
the needed blas and lapack. For further optimizations one can use local
(in
.bashrc, that is) CFLAGS,
FFLAGS and CPPFLAGS as
make
consults them in compilation. The versions available for download were
compiled with the following compiler flags (line from
.bashrc) :
CFLAGS=-O3
-malign-double -funroll-all-loops -ffastmath
Currently
rlabplus does not play well with
gfortran: it cannot compile the package
pgplot because of its
%VAL
statements (FORTRAN calls to c-functions.that take values rather than
pointers as arguments). For using rlab with gfortran thus one has to
use an alternative plotting interface - I recommend gnuplot (please see
libgnuplot.so).
rlab is built and tested on
Linux, SuSE9.3 (g77) and openSuSE 10.2 (g77 and gfortran), running on AMD T-bird,
P-III mobile, Dual Athlon-MP and Dual Xeon-32/64 (for now only
32bit). The following is a list of modifications one has to do
in order to make RLaB run:
- Following packages/libraries need to be installed from the linux
distribution media: gsl, lapack, bindings for g77 (if you are using gfortran), f2c, gcc (for compilation), libreadline, libtermcap, libncurses (for terminal control, editing and such) and libX11 (for pgplot).
- ncurses library has to be
fixed: suse provides two, /usr/lib/libncurses.so.4
and /lib/ncurses.so.5. The .so.5 is required because of readline. Do this cd /usr/lib; ln -s
../../lib/libncurses.so.5 ./libncurses.so, as super user, of
course.
- termcap library has to
be made available for linking. Yast2 unpacks it in /usr/lib/termcap. Do this cd /usr/lib; ln -s
termcap/libtermcap.so ./; . This should do it.
- The garbage collector gc
(version 6.4) is supplied with RLaB2 Rel. 2, and was compiled with
default compiler flags.
Marijan Kostrun, Ph.D.
Physics
(2002), University of Connecticut. Was a post doc at
UConn, a visiting
scientist at
ITAMP,
Harvard-Smithsonian, and a visiting professor at
Wesleyan University. Now back at
UConn with gratis visiting appointment and lost somewhere in traffic
on Massachussets turnpike.