Related Software Packages

There are a number of software packages that may be of interest to users of BBTools, or even provide an alternative solution for a given problem.

To the best knowledge of the author, there are no readily available Matlab packages that attempt to do create a similar system for constructing black-box operators.

The list given here is by no means exhaustive. It is only intended to be a starting-point for further investigation.

Dense Systems

The de-facto software package for numerical linear algebra with dense systems is LAPACK [1]. There is also a modern variant, ScaLAPACK, which is intended for parallel computations [3]. Both packages are freely available from Netlib.

Iterative Routines for SVD Computations

Iterative computation of the SVD is supported by the following packages:

  1. ARPACK is a tremendously successful package for solving eigenproblems iteratively [13]. It is written in Fortran, and forms the basis of the Matlab-functions eigs and svds.
  2. PROPACK includes Lanczos bidiagonalization algorithm with partial reorthogonalization. The original report [12] did not contain implicit restarting, but the software have now been expanded. The package exists for both Fortran and Matlab.
  3. SVDPACK, written by Michael W. Berry, contains several SVD-routines for large-scale computations with black-box operators. The routines, described in [2], is written in Fortran.


The package "Regularization Tools" [8] is a fairly complete toolbox for Matlab, and contains numerous tools and test problems. It is very useful for people who wants an introduction to the topic of regularization and ill-posed problems.

The toolbox is mainly concerned with techniques for small dense systems. There are, however, a few iterative routines and some functions which work independently of the solutions (e.g. computation of filter-factors).

The software and its manual are available online. A tecnical report is also available online [10].

Object oriented software

The matlab toolbox MOORE Tools offer a different approach to implement operators [11]. Instead of considering an operator as a black-box, it uses object oriented programming. That is, an operator is implemented as a class, and is not limited to matrix-vector products. In fact, the operations supported by MOORE Tools increase with the capabilities a particular class implements.

Both BBTools and MOORE Tools can combine operators in an evaluation tree. However, the main emphasis of MOORE Tools is abstraction and infrastructure, whereas BBTools is efficiency, minimalism, and problem solving. For example, MOORE Tools does not require you to convert between hypercubes and vectors; it understands the difference. On the othert hand, you never need to teach BBTools there is a difference.

If your main use of BBTools is to combine operators, or if you are looking for a framework for implementing general methods, MOORE Tools may well be the best choice. On the other hand, BBTools may be preferable if you just want to solve a specific problem.


[1] E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen. LAPACK Users' Guide. SIAM, Philadelphia, PA, Third edition, 1999. ISBN: 0-89871-447-8. (Book: )

[2] Michael W. Berry. Large-Scale Sparse Singular Value Computations. International Journal of Supercomputer Applications, 6(1):13-49, 1992. University of Tennessee. ISSN: 0890-2720. (Paper: )

[3] L. S. Blackford, J. Choi, A. Cleary, E. D'Azeuedo, J. Demmel, I. Dhillon, S. Hammarling, G. Henry, A. Petitet, K. Stanley, D. Walker, and R. C. Whaley. ScaLAPACK Users' Guide. SIAM, Philadelphia, PA, 1997. ISBN: 0-89871-397-8. (Book: )

[8] Per Christian Hansen. Regularization Tools: A Matlab Package for Analysis and Solution of Discrete Ill-posed Problems. Numerical Algorithms, 6:1-35, 1994. (Paper)

[10] Per Christian Hansen. Regularization Tools. Technical University of Denmark, 2001. Reference number: IMM-REP-98-6. (Technical report: )

[11] Michael Jacobsen. Modular Regularization Algorithms. Technical University of Denmark, 2004. (Ph.D. thesis: )

[12] Rasmus Munk Larsen. Lanczos Bidiagonalization with Partial Reorthogonalization. Department of Computer Science, Aarhus University, 1998. Reference number: DAIMI PB-357. (Technical report: )

[13] Richard Bruno Lehoucq, Danny C. Sorensen, and Chao Yang. ARPACK Users' Guide: Solution of Large-Scale Eigenvalue Problems with Implicitly Restarted Arnoldi Methods. Rice University, 1997. (Technical report: )