Welcome to the  website 



Abstract: Project  rlabplusis a continuation of work on an open-source scripting environment for scientific computations RLaB2.  Project  rlabplus  provides release 2 of RLaB2, which contains upgrades of the numerical libraries used in the first release, and many new libraries and toolkits, e.g., Gnu Scientific Library (GSL). Original RLaB was created by Ian Searle and collaborators. Rlabplus is a creation of Marijan Kostrun. 


  Project rlabplus for Linux: Content

About RLaBAbout rlabplusAdmin |  Home Page |  Forums |  Tracker |  Bugs |  Support |  Patches |
  | Download RLaB2 Rel. 2  for Linux |
Download the GSLDownload BLAS by Kazushige GotoAbout the author |




 What is RLaB ? 

" .. RLaB is an interactive, interpreted scientific programming environment. RLaB is a very high level language intended to provide fast prototyping and program development, as well as easy data-visualization, and processing. RLaBis not a clone of languages such as those used by tools like Matlab or Matrix-X/Xmath. However, as RLaBfocuses on creating a good experimental environment (or laboratory) in which to do matrix math, it can be called ``Matlab-like''; since the programming language possesses similar operators and concepts.

RLaBdoes not try to be a Matlab clone. Instead, it borrows what I believe are the best features of the Matlab language and provides improved language syntax and semantics. The syntax has been improved to allow users more expression and reduce ambiguities. The variable scoping rules have been improved to facilitate creation of larger programs and program libraries. A heterogeneous associative array has been added to allow users to create and operate on arbitrary data structures. The fundamental data type is a floating point matrix (either real or complex), though RLaB also includes string matrices, and sparse numerical matrices (both real and complex) .."
Ian Searle   

RLaB2 Rel. 1 (rlab-2.1.05) is an orphan, and is available for download from, now abandoned, web site
rlab.sourceforge.net.
.

What does   or   RLaB2 Rel.2  add to the original RLaB2 Rel.1 ?

  1. New solvers utilizing contemporary open-source c and Fortran libraries

    1. Advanced numerical methods and algorithms from the GNU Scientific Library (GSL) and  netlib /gams;
      1. cubic spline toolkit;
      2. root finding in one and multi-dimensions using MINPACK/GSL and HOMPACK (multidimensions), single parameter curve tracking with CONTIN and HOMPACK;
      3. 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);
      4. Tchebyshev polynomial toolkit, numerical differentiation of a real scalar and vector function in one and multi-dimensions, numerical div operator;
      5. 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);
      6. Fitting and modeling : least-squares and orthogonal distance regression solvers provided by ODRPACK and the GSL;
      7. Statistics toolkit, permutations, combinations, outliers;
      8. 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.
      9. Special functions (from AiryAi to Zeta, total of more than 65 new functions);
      10. Random number generators: integer, general discrete  and continuous, and their respective probability distribution functions. Shuffling, choosing and sampling;
      11. Simulated annealing;
      12. Partial Differential Equations in 1-D:

    2. 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:

      1. False nearest neighbors, average mutual information;
      2. Recurrent maps, autocorrelation, running average;
      3. 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).

    3. General purpose libraries:

      1. Polynomial toolkit: evaluation, approximation, differentiation and integration, convolution, deconvolution, roots, etc;
      2. 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.

    4. 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.

    5. Dedicated lists mks and const with conversion factors between MKSA (SI) units and others, and the mathematical constants (only those different from unity), respectively.

  2. New rlab-scripted libraries (rlib) :
    1. Grace toolkit for visualization of the RLaB data arrays: custom colors, stacked graphs, etc. See jpegs of grace graphs created using rlabplusexample 1, example 2, and  example 3;
    2. Standard input/output functions: access to shell commands, editing or viewing of data arrays, stderr console etc.

  3. 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.

  4. 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:
  1. 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
  2. Installation:
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

Known Compilation Issues

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:
  1. 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).
  2. 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.
  3. 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.
  4. The garbage collector gc (version 6.4) is supplied with RLaB2 Rel. 2, and was compiled with default compiler flags.

About the author

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.


Back to the Top

© 2004-2006, Marijan Kostrun.
Last updated on April 22, 2006.
Please e-mail all questions or comments to me !
Document made with Nvu  SourceForge.net Logo