- New built-in solvers:
- 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, discrete, continuous,
and histogrammatic in 1- and 2-D; and their respective probability
distribution functions. Shuffling, choosing and sampling;
- Simulated annealing: basic (the GSL) and advanced (ASA code);
- 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: 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 b-spline fit in 1- and 2-D (DIERCKX).
- 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.
- Sparse matrices functionality: integrated solvers SuperLU
, UMFPack
and SPARSKIT
v.2,
which provide efficient (memory and speed-wise) built-in
sparse matrix functions solve,
spsolve
and det.
- Linear algebra functionality: ARPACK which 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 data type which allows bit-wise
logical operations on integers (and,
or, not). Seamlessly incorporated
in readb/writeb binary
I/O
operations.
- General purpose libraries: 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.
- Dedicated lists mks
and const
with conversion
factors between
MKSA (SI) units and others, and the mathematical constants (different from unity), respectively.
- Data visualisation and input/output:
- 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;
- Fully integrated support for local installation of Gnuplot with predefined terminals for
eps/ps, and gdlib (png/gif/jpeg) and xterm/wxt.
- Standard input/output functions: access to shell
commands,
editing or viewing of data arrays, stderr console etc.
- Handling of input/output using Uniform Resource Locator (URL) protocol://address. Supports protocols file, HDF5, serial, http/https/ftp and tcp.
HDF5 input/output is supported for all data structures specific to RLaB (dense and sparse matrices, lists).
- GPIB add-on (shared object library. loader and scripted library) based on the project linux-gpib.
- Export data to openoffice.org and matrix market (NIST) format.
- Documentation:
A first draft of a manual containing some 240 pages is available
for download (size 2MB). Test codes demonstrating new features are
available for download, as well. See a screenshoot
of RLaB in action.
On-line help is also available from the site Project Rosetta Code.
Installation
Notes
rlabplus
provides RLaB2 for 32- and 64-bit linux systems. Each comes in two
archives, binaries only (.bin.), and as partially compiled source
(.src.). Besides the source code, and the updated installation and build
scripts, the latter contains precompiled fortran and c-libraries. The
former contains precompiled executable with the accompanying files and an
installation script.
- rlabplus relies
on the following shared libraries to do some of the numerical work
for it: BLAS, LAPACK, both in FORTRAN, and the GSL, in C. All
three are available from the installation media of any major linux
distribution. Once installed I recommend to replace the generic BLAS
with a processor/cache optimized version from Kazushige
Goto web site, or perhaps auto-tuned version called ATLAS.
In the case of Goto's BLAS (libgoto), 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 (.src.)
- Download rlab-2.2.11-gfortran.src.tgz
- > tar xvfz rlab-2.2.11-gfortran.src.tgz
- > cd rlab-2.2.11-gfortran
- > rm config.cache; ./configure
- > rm rlab; make rlab
- # make install (as super user)
This will install executable and acompanying libraries in
/usr/local/lib/rlab{64}-2.2.11-gfortran. It will also install RLaB
headers necessary for development of local shared object libraries in
/usr/local/include/rlab.
- Installation (.bin.)
- Download rlab-2.2.11-gfortran.bin.tgz
- > tar xvfz rlab-2.2.11-gfortran.src.tgz
- > cd rlab-2.2.11-gfortran
- Start an installation script in the directory. It will
copy the binaries and the needed libraries in the
/usr/local/lib/rlab{64}-2.2.11-gfortran and install a start script in /usr/local/bin.
When building RLaB2 from sources, this depends on local flags CFLAGS
and FFLAGS. The versions available for download were
compiled with the following compiler flags:
FFLAGS,CFLAGS=-O3 -fPIC
rlabplus
is
built and tested on
Linuxii opensuse 11.1 (gfortran) on processors AMD P-III mobile
(32-bit), Quad Athlon, Quad Xeon and Dual Pentium-D cores (all 64-bit).
The following is
a list of modifications one has to do
in order to make RLaB run:
- Required libraries: f2c,
gcc, libreadline,
libtermcap,
libncurses
(for terminal control, editing and such) and libX11 (for pgplot).
- ncurses
library has to be
fixed on opensuse 11.1 and prior installations. The two are provided, /usr/lib/libncurses.so.4
and /lib/ncurses.so.5.
The .so.5
is required because of readline.
This is fixed by cd
/usr/lib; ln -s
../../lib/libncurses.so.5 ./libncurses.so, as super user,
of
course.
- termcap
library has to
be fixed on opensuse 11.1 and prior installations. The library is located in /usr/lib/termcap.
This is fixed by cd /usr/lib; ln -s
termcap/libtermcap.so ./; .
- The garbage collector gc
(version 6.4) is supplied with RLaB2 Rel. 2. It is necessary it be configured as ./configure --disable-threads
Other than that it is compiled with
the default compiler flags. Use make gc. to build within rlab root directory.
- Warning! RLaB parser is contained in the file lex.yy.c, which is created by FLEX, version 2.5.33.
Later versions of FLEX produce the parser that does not
compile properly. I have informed the FLEX developers about the problem. They have acknowledged it.
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.
Currently holding a gratis visiting appointment at UConn while being
lost somewhere in the jungle that is called the North shore in pursuit
of a research goal to make the world a better place one photon at a
time.