Re: any specific Matrix library

From: Terrence Brannon (brannon@quake.usc.edu)
Date: Wed Jun 04 1997 - 01:15:15 MEST


Fons Rademakers <Fons.Rademakers@cern.ch> writes:
> 
> We would like to integrate (I/O, interpreter access, etc.) a small
> and concise yet powerful matrix package in ROOT. Please, let us
> know your favorite candidate. Code should be freely accessable
> and changeable.

My favorite is Matclass. But I include an exhaustive list of C++
Matrix classes for your perusal.

matclass_info    Version 1.3   1995 Sep 11
-------------    -----------   -----------

Information about matrix classes in C++.   The intention is to list all
public domain codes.   Commercial programs get a brief mention at the end.
Written by Keith.Briggs@physics.uwa.edu.au.    
Corrections, updates and opinions welcome.

This file owes much to Ajay Shah's usc.edu:pub/C-numanal/numcomp-free-c.gz.

Name        : lapack++
Where       : netlib2.cs.utk.edu:c++/lapack++/*
Description : C++ version of Lapack (Linear Algebra PACKage) fortran code.
Author      : J. Dongarra, R. Pozo, D. Walker
Contact     : pozo@cs.utk.edu
Version     : 1.0
Documents   : For documentation see the LAPACK++ User's Manual, 
              Installation Manual, and Class Reference Manual.
Comments    : LAPACK extensions for high performance linear
              algebra computations. This version includes support for solving linear
              systems using LU, Cholesky, and QR matrix factorizations.
              LAPACK++ supports various matrix classes for vectors, non-symmetric
              matrices, SPD matrices, symmetric matrices, banded, triangular,
              and tridiagonal matrices.  
              This version includes support for solving linear systems using LU,Cholesky,
              QR matrix factorizations, and symmetric eigenvalue problems. 
	      Source code is given for matrices of type float, double, int, 
	      long int, and complex. 
              There is also a templated vector class, template_v.h, for which one
              extend to other element types. 
              LAPACK++ v. 1.0 can use the C-LAPACK library (also available from netlib)
              and does not rely on the availablity of Fortran compilers.

Name        : Matclass
Description : a C++ class for numerical computation
Author      : Chris Birchenhall (chris.birchenhall@mailhost.mcc.ac.uk}
Where       : ftp.mcc.ac.uk(130.88.203.12):pub/matclass
Version     : v1.0d.   New version pending.
Comments    : Very complete. 
              *  Offers a general purpose dense, real matrix class
              *  Has a family of decomposition classes based on
                 LU, Cholesky, Householder QR and SVD
              *  Has a family of OLS regression classes based on
                 above decompositions
              *  A family of special function classes
              *  Random number class
              *  Has a simplified I/O structure
Documents   : Very thorough tex manual, with discussion of design philosophy.
              Currently the manual does not cover all the features of the I/O.


Name        : libaips-3
Where       : aips2.cv.nrao.edu:pub/aips++/RELEASED/libaips-3
Description : Library which includes dense Array and Matrix functions
Author      : AIPS++ Consortium
Contact     : Brian Glendenning bglenden@nrao.edu
Version     : 3 (Beta)
Comments    : The library is templated, and presently only compiles under
	      CFront 3.0 based compilers. More an "array" than a "matrix"
              library (although LU decomposition, FFT, transpose etc are
              available). Many other classes besides array related.
Documents   : Reference manuals, Array tutorial, and other.

Name        : libg++
Where       : prep.ai.mit.edu
Description : Class library for gnu g++ compiler.
Author      : Doug Lea and others
Version     : 2.4.5
Comments    : Includes a vector class that may be useful as a basis for
              a matrix class
Documents   : Excellent texinfo manual.

Name        : matode
Where       : elib.ZIB-Berlin.de (130.73.108.11)
Systems     : Unix, MSDOS
Description : matrix class, and class for solving ODEs by extrapolation
Author      : Andreas Hohmann hohmann@sc.zib-berlin.de
Version     : 1993 November
Comments    : Postscript documentation describes design philosophy.

Name        : JCOOL
Where       : ?
Systems     : ?
Description : ?
Author      : ?
Version     : ?
Comments    : ?


Name        : blas.cpp.shar.z
Where       : in pub/C-numanal on usc.edu
Author      : Damian McGuckin (damianm@eram.esi.com.au)
Description : a BLAS in C++
Version     : beta, 8 May 1993

Name        : cvmath.cc (12263 bytes)
Where       : in pub/C-numanal on usc.edu
Systems     : Unix
Description : An include file to make complex math look like
              regular math.
Author      : Leonard Kamlet, lik@engin.umich.edu
Version     : 8 March 1993
Comments    : Contains a rudimentary complex matrix class

Name        : kalman.tar.gz (22747 bytes)
Where       : in pub/C-numanal on usc.edu
Author      : Skip Carter (skip@taygeta.oc.nps.navy.mil)
Description : A class library for Kalman filtering
Comments    : Contains lumatrix.c++ etc.
Language    : g++ 2.4.2 tested OK.
Version     : v1.0, 3 July 1993

Name        : lin_alg.shar.Z
Author      : ??
Where       : in c++ on Netlib
Description : BLAS 1 and 2 in C++.   No decompositions.

Name        : C++ Matrix class
Where       : ftp.cs.ucla.edu:pub/Matrix.tar.Z
Description : The C++ Matrix class includes a matrix implementation
              of the backward error propagation (backprop) algorithm for
              training multi-layer, feed-forward artificial neural networks
Version     : 9 July 1993
Author      : E. Robert (Bob) Tisdale, edwin@cs.ucla.edu
Comments    : A C++ interface to existing C and FORTRAN matrix libraries.
Documents   : LaTeX manual.

Name        : newmat08
Where       : volume 47, issues 38-47 of comp.sources.misc;
              oak.oakland.edu: pub/msdos/cpluspls/newmat08.zip;
              Compuserve: Borland C++/DOS+ forum;
              tahi.isor.vuw.ac.nz: pub/newmat08/newmat08.tar.gz
Language    : C++
Systems     : Unix (AT&T, Gnu), MS-DOS (Borland, Watcom)
Description : a very thorough matrix class
Author      : Robert Davies (robertd@kauri.vuw.ac.nz)
Version     : v8, 19 Jan 1995
Documents   : Good ascii manual; HTML version also available.
Comments    : Optimized expression evaluation.  Many decompositions.
              The objective is to provide a natural interface, good
              efficiency and a variety of matrix types.
              The library supports classes Matrix, UpperTriangularMatrix,
              LowerTriangularMatrix, DiagonalMatrix, SymmetricMatrix,
              BandMatrix, UpperBandMatrix, LowerBandMatrix,
              SymmetricBandMatrix, RowVector, ColumnVector.
              Only one element type (float or double) is supported.
              The library includes the operations *, +, -, concatenation,
              elementwise product, inverse, transpose, conversion between
              types, submatrix, determinant, Cholesky decomposition, QR
              triangularisation, singular value decomposition, symmetric
              eigenvalue analysis, fast Fourier transform, sort, print, an
              interface to "Numerical Recipes in C" programs, and an
              emulation of exceptions.
              It is suitable for matrices in the size range 15 by 15 up to
              the maximum size that can conveniently be stored in a single
              block of memory. It can be used with smaller matrices, but
              becomes less efficient.
              The package works with AT&T C++ (2.1 & 3.0.1), Gnu G++
              (2.3.3, 2.5.8 & 2.6.0), Borland C++ (3.1 & 4.5), Microsoft
              C++ (8.0), Watcom (10A), Sun (4.0.1), HP-UX.

Name        : nlmdl
Where       : in pub/arg/nlmdl at ccvr1.cc.ncsu.edu (128.109.212.20)
Language    : C++
Systems     : Unix, MS-DOS (Turbo C++)
Description : a library for estimation of nonlinear models
Author      : A. Ronald Gallant, arg@ccvr1.cc.ncsu.edu
Comments    : nonlinear maximisation, estimation, includes a real matrix class
Version     : January 1991

Name        : Octave
Where       : ftp.che.utexas.edu:/pub/octave/octave-M.N.tar.Z
Systems     : Compiles and runs on SPARC, RS/6000, DEC/Ultrix,
              i386/Linux and probably most Unix-like systems that have
              a working g++/libg++.
Language    : C/C++/Fortran
Author      : John W. Eaton <jwe@che.utexas.edu>
Version     : 1.0, Feb 17 1994
Description : Matlab-like interactive system for numerical computations
Comments    : Includes C++ classes for matrix manipulation, numerical
              integration, and the solution of systems of nonlinear
              equations, ODEs and DAEs.  Uses standard Fortran
              libraries including Lapack, Linpack, Quadpack, Minpack,
              Odepack, and Dassl.  Distributed under the GPL.

Name        : array.shar
Where       : bellman.control.lth.se:pub/c++/array.shar
Description : This is a C++ class for simple fixed arrays
Author      : Dag Bruck dag@control.lth.se
Version     : July 1992
Comments    : Simple design and implementation was a major development goal.  
              The array class uses assertions to check various error 
              conditions, including index out-of-range and failed memory 
              allocation.  Failed assertions cause program termination, 
              and possibly a core dump.
              This is data-structure type of array, not a numerical
              vector library.  Probably of limited utility (author's
              own comment).

Name        : gtmatrix
Where       : ftp.cerl.gatech.edu:pub/c++/gtmatrix
Author:     : Andy Register <andy@cerl.gatech.edu> 
Comments    : It is still under development so there is no documentation 
              and some functions have not been throughly tested. 
              It is a departure from most matrix libs in that it includes 
              things like UpperTriangular different from Diagonal etc..

Name        : libaip++
Where       : aips2.cv.nrao.edu:pub/aips++/RELEASED/libaips-3
Systems     : CFront 3.0.2 	
Description : Support library for Astronomical Information Processing System
Author      : aips2-request@nrao.edu.
            : AIPS++ Project Office
            : National Radio Astronomy Observatory
            : 520 Edgemont Road
            : Charlottesville, VA 22903-2475 USA
Version     : beta
Comments    : An arbitrary n-dimensional Array<T> class, with Vector<T>,
            : Matrix<T>, and Cube<T> specializations. All the normal arithmetic
            : operations are available (+,-,*,/,+=,-=,*=,/=) in an element by
            : element fashion, as well as the normal "linear algebra"
            : multiplications (dot,cross,matrix multiply). 

Thanks to Andrew Gockel for the next two entries...

Name        : YAMP - Yet Another Matrix Program v1.6
Where       : Compuserve: Borland C++/DOS+ forum; yamp17.zip
Language    : C++
Systems     : MS-DOS (The in ram memory model works in all but the tiny 
              memory model.  The virtual memory model compile under the 
              large and huge memory models of Turbo C++ v1.0, 2.0, 3.0, 
              and 3.1. Borland C/C++ 4.0 and 4.5, Watcom 10, Visual C/C++, 
              and Microsoft C/C++ v7.0 compatability has been added. 
Description : C++ matrix algebra package
Author      : Mark Von Tress Ph.D. (71530.1170@compuserve.com)
Version     : V1.6, 11 Jan 1993
Documents   : Good LaTeX manual;
Comments    : There are five classes of functions in this package:
              display control, IO, subsetting and concatenation,
              elementwise operations, and math functions. 

Name        : Matv V2.0
Where       : Compuserve: Borland C++/DOS+ forum; matv.zip
Language    : C++
Systems     : MS-DOS ( Borland C++ (DOS,  Phar-Lap Dos Extender Lite, 
              Power  Pack and Easywin), Visual C++ (DOS and QuickWin), 
              Symantec C++ (DOS, DOSX, and Winc), Watcom C++ 10.0 (DOS 
              and DOS/4GW extender)   and djgpp (DOS 32-bit protected mode).)
Description : A simple matrix class
Author      : Mark Von Tress Ph.D. (71530.1170@compuserve.com)
Version     : v2, 17 Sept 1994
Documents   : Good ascii manual; 
Comments    : Matv is a simple matrix class. The program is a sketch of a
              redesign of my matrix program YAMP. Matv is useful in its own
              right though. Much the functions as YAMP.


Commercial packages:
--------------------
   M++            Dyad               (phone in the USA (800)366-1573,
                                     (206)637-9427, fax (206)637-9428)
   Linpack++      Rogue Wave         ((800)487-3217, (503)754-3010,
                                     fax (503)757-6650)



-- 

                                                ("`-/")_.-'"``-._
                                                 . . `; -._    )-;-,_`)
                                                (v_,)'  _  )`-.\  ``-'
                                               _.- _..-_/ / ((.'
                                             ((,.-'   ((,/



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:26:19 MET