Welcome to the  website 



Abstract: RLaB is an interactive, interpreted scientific programming environment which provides fast prototyping and program development. rlabplus provides the second release of the environment for 32- and 64-bit linux systems, which incorporates a number of updated and new solvers, functions and procedures, e.g., those released as the Gnu Scientific Library (GSL). It integrates data-visualization capabilities using the standard plotting packages, e.g., pgplot, Gnuplot or xmgr; allows data-processing; and, supports data-export to different formats, e.g., openoffice.org. It can also communicate through serial port or GPIB interfaces. RLaB was created by Ian Searle and collaborators. rlabplus is being actively developed by 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. RLaB is not a clone of languages such as those used by tools like Matlab or Matrix-X/Xmath. However, as RLaB focuses 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.

RLaB does 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 no longer maintained. It is available for download from the web site
rlab.sourceforge.net.
.

Features of   or   RLaB2 Rel.2

  1. New built-in solvers:

    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, discrete, continuous, and histogrammatic in 1- and 2-D; and their respective probability distribution functions. Shuffling, choosing and sampling;
      11. Simulated annealing: basic (the GSL) and advanced (ASA code);
      12. Partial Differential Equations in 1-D:
      13. 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;
      14. 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).
      15. 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.
      16. 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.
      17. 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).
      18. Integer data type which allows bit-wise logical operations on integers (and, or, not). Seamlessly incorporated in readb/writeb binary I/O operations.

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

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

  2. Data visualisation and input/output:
    1. 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;
    2. Fully integrated support for local installation of Gnuplot with predefined terminals for eps/ps, and gdlib (png/gif/jpeg) and xterm/wxt.
    3. Standard input/output functions: access to shell commands, editing or viewing of data arrays, stderr console etc.
    4. 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).
    5. GPIB add-on (shared object library. loader and scripted library) based on the project linux-gpib.
    6. Export data to openoffice.org and matrix market (NIST) format.

  3. 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.
  1. 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
  2. Installation (.src.)
    1. Download rlab-2.2.11-gfortran.src.tgz
    2. > tar xvfz rlab-2.2.11-gfortran.src.tgz
    3. > cd rlab-2.2.11-gfortran
    4. > rm config.cache; ./configure
    5. > rm rlab; make rlab
    6. # 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.
  3. Installation (.bin.)
    1. Download rlab-2.2.11-gfortran.bin.tgz
    2. > tar xvfz rlab-2.2.11-gfortran.src.tgz
    3. > cd rlab-2.2.11-gfortran
    4. 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

Known Compilation Issues

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:
  1. Required libraries: f2c, gcc, libreadline, libtermcap, libncurses (for terminal control, editing and such) and libX11 (for pgplot).
  2. 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.
  3. 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 ./; .
  4. 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.
  5. 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.

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


Back to the Top

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