Available C++ libraries FAQ (2/6)

Contents


Libraries available via FTP (A-L)

ADAPTIVE Communication Environment (ACE) - C++ IPC wrappers

This release contains contains the source code, documentation, and example test drivers for a number of C++ wrapper libraries and higher- level distributed application frameworks developed as part of the ADAPTIVE project at the University of Calfornia, Irvine.

The C++ wrappers encapsulate many of the user-level BSD and System V Release 4 IPC facilities such as sockets, TLI, select and poll, named pipes and STREAM pipes, the mmap family of memory-mapped file commands, System V IPC (i.e., shared memory, semaphores, message queues), and explicit dynamic linking (e.g., dlopen/dlsym/dlclose) using type-secure, object-oriented interfaces.

The higher-level distributed application frameworks integrate and enhance the lower-level C++ wrappers to support the configuration of concurrent network daemons composed of monolithic and/or stackable services

A relatively complete set of documentation and extensive examples are included in the release. A mailing list is available for discussing bug fixes, enhancements, and porting issues regarding ACE. Please send mail to ace-users-request@ics.uci.edu if you'd like to become part of the mailing list.

Added : 01/01/95 Amended : 19/03/97 Licencing : Not known


Aisearch - a package to make writing problem solving programs easier.

Offers the programmer a set of search algorithms that may be used to solve all kind of different problems. The following search algorithms have been implemented: Although this package is meant as a tool for developing problem solving software it is not meant exclusively for programmers that are familiar with the concept of problem representation and search techniques. The document accompanying this package first describes (though condensed) the theory of problem solving in AI and next explains how the search class library must be used. Furthermore, as the source code is richly commented and as also some demo programs are included the package should also prove useful to people that want to get acquainted with the subject.

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


Amulet - User Interface Development Environment

AMULET is a user interface development environment in C++. Code written using Amulet will work with little or no changes on all platforms.

More than just another free "virtual toolkit," Amulet includes many features specifically designed to make the creation of highly-interactive, graphical, direct manipulation user interfaces significantly easier. Based on a proven earlier system, called Garnet, that was in wide use in the Lisp community, Amulet adds a number of important innovations and refinements.

Important features of Amulet include:

Amulet comes with complete documentation including a tutorial.

Operating Systems

Compilers

Added : 29/02/96 Amended : 29/02/96 Licencing : Public Domain

Andy Register's - matrix library

It is still under development so there is no documentatin 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, from Row, from Col, etc.

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


Arjuna - For writing fault-tolerant (distributed) applications

Arjuna provides a set of tools (C++ classes and libraries) for writing fault-tolerant distributed applications using persistent objects, atomic actions, and replication. Included in the system is a C++ stub generator (and associated RPC mechanism) which takes a C++ class definition for an object and generates client and server stub code. Using these stub classes occurs in a relatively transparent manner: the differences between a local and distributed application are typically only a single line.

The system has been ported to a wide range of architectures and C++ compilers, both by the authors and other users, and has been in use for several years.

A comprehensive manual is available with the distribution.

The system has been ported to a wide range of architectures and C++ compilers, both by the authors and other users, and has been in use for several years.

Added : 01/01/95 Amended : 01/01/95 Licencing : Education


AvlTree - C++ AVL tree class implementation

This is a C++ implementation of AVL trees. It is targeted more for teaching purposes than for efficiency.

Operating Systems

Compilers

Added : 19/03/97 Amended : 19/03/97 Licencing : Copyrighted freeware

Awesime - A C++ task library explicitly designed for simulation

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


BLAS in C++

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


Blas.cpp.shar.z

A BLAS in C++

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


Brent's univariate minimizer and zero finder.

Ref: G.Forsythe, M.Malcolm, C.Moler, Computer methods for mathematical computations. Precision - double

Obsolete - now part of the linalg package

Added : 01/01/95 Amended : 30/07/96 Licencing : Not known


BRL10 - Binary Relations Library for C/C++

Binary relations are more directly based on semantic concepts rather than on recordlike structures as traditional (relational, hierarchies, networks, object-oriented) models are.

Binary Relations tend to be more functionally complete in their information processing capability, and more precise in their semantic modelling.

The Binary Relations Approach was implemented in Binary Relations Library for C/C++. BRL is not a full featured DBMS. It does not support all ideas of the Binary Relations Approach. BRL is however a small, fast and reliable engine.

BRL provides basic tools for using binary relations in C and C++ programs.

Operating Systems

Compilers

Added : 13/11/96 Amended : 13/11/96 Licencing : Non commercial

C* In C++ - Parallel Programming Classes for C++:

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


C++ FEM - (Finite Element Method) Library

In addition to FEM related classes, this library also has: This is an initial release and people should *expect* to have to do some work to get it running on their system. If you have gcc-2.3.3, libg++-2.3[.1], Gnu make and makedepend you shouldn't have too much difficulty however. The code is unsupported, and is distributed under the terms of the GNU Public License.

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : GNU copyleft

C++ implementation of differential algebra

This is temporarily unavailable while we resolve the question of whether inclusion of codes from Numerical Recipes makes distribution illegal.

Available from the netlib mailing list, in c++/mxyzptlk.shar

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


C++Advio - Advanced i/o and arithmetic compression

Portable handling and compression of binary data.

Keywords: pipes, arithmetic coding, start-stop coding, endian i/o, compression

Operating Systems

Compilers

Added : 22/05/96 Amended : 30/07/96 Licencing : Public Domain

C++SIM 1.5.2 - A simulation package written in C++.

C++SIM provides discrete process based simulation similar to that provided by the simulation class and libraries of SIMULA. The linked list manipulation facilities provided by SIMSET are also included in the package, and there is support for a variety of statistics gathering classes.

The simulation package requires the use of a threads package and currently only works with the following:

It has been build on a number of different architectures and C++ compilers, and porting to other systems should be relatively easy.

Added : 01/01/95 Amended : 19/03/97 Licencing : Education


CalcPlus - Interpreter of procedural language

The CalcPlus library is the C++ class library which provides an ability to use your own programming language built into C++ project. Any algorithm or any constant needed by application can be carried out into the special file, when process comes to the key point, it calls function or procedure stored in the text file. Interpreter runs the function and process returns back to C++ code. Library contains the interpreter which understands simple nameless procedural language. Bi-directional communication between C++ and the code for interpreter available.

Version of the language that comes with the library allows to use functions, procedures, blocks, preprocessor, global and local variables and constants, if/for/while statements. Each variable can have value of type: nil, bool, long, float, string, date. Type definitions and arrays are allowed. Functions and procedures may be recursive. New functions written in C++ may be easily added to the language. Syntax of the language can be modified by changing YACC rules. Interpreter is fast enough and may be helpful for many tasks.

Platform independent, YACC required.

Operating Systems

Compilers

Added : 22/05/96 Amended : 22/05/96 Licencing : Shareware

Callbacks - Inter-component callbacks using functors

This library provides a comprehensive, portable, type-safe, efficient, general purpose mechanism for inter-component callbacks using template functors. Full source code and examples.

A complete rationale and description of this mechanism appeared in my article in the February 1995 issue of the C++ Report (now reprinted in 'C++ Gems', SIGS Books). Users are strongly encouraged to read the article before proceeding, as the library has minimal embedded documentation at present.

Operating Systems

Compilers

Added : 03/10/96 Amended : 03/10/96 Licencing : Copyrighted freeware

CB++ - CommonBase Database Access Library for C/C++

This library was written in 1989 as a basis for storing C++ objects in a relational database. The development of such a system was stopped in 1990 because of problems with the MS-DOS environment used in this time. My involvement in various user interface projects here in the institute and otherwhere made it sleep until last week.

Okay, here is it. It is only the database access layer of the projected object storage system but it has some useful features which are provided by commercial tools out there:

Note - Scott R. Chilcote" (scotty@nando.net) reports he can only find the a README file at the site given, and his attempts to mail the author's address given therein fail. (david_r@netvision.net.il) reports he couldn�t find anything at the ftp site.

Added : 01/01/95 Amended : 22/05/96 Licencing : Not known


CBMT - Collaborative BioMolecular Tools

CBMT provides a number of easy-to-use fundamental classes for biologists, chemists and crystallographers. They include: Molecular Structure, Sequence, Standard Formats (PDB, CIF, GCG, etc), Geometry, Statistics, TextParsing, and a single container class (a dynamic Array). All documentation is in HTML, and member functions have *.c examples. I hope that the system can be extended as a communal effort and am piloting this idea in the C++ course at the Globewide Network Academy

Version 1.3 will be posted shortly including an experimental script language (generated automatically from the *.h files) providing support for persistent objects manipulatable by other languages such as tcl or csh.

Added : 01/01/95 Amended : 01/01/95 Licencing : Non commercial


CCL110JE.ZIP - Coroutine class library

DOS PC/Borland C++ specific.

Operating Systems

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known

CDBFile - C++ library to handle dBASE III files

CDBFile is a C++ object-oriented package for programmers who need to manipulate dBASE III files in their programs. It enables you to perform many operations on an existing DBF file: reading/writing to it, accessing its values, sorting the records, adding/deleting records, etc. It comes with full text and postscript documentation, and commented source code. A demonstration program, TestDBF, shows the various possibilities of the CDBFile library, and its source file, testdbf.cpp, demonstrates how to implement CDBFile within a program. CDBFile was designed to be as portable as possible: you should be able to compile it under "as is" any DOS/Windows C++ compiler; porting it to Un*x/Linux should also require little effort.

Since CDBFile is distributed under the GNU Public License for libraries, I hope that programmers will like it and suggest or implement enhance- ments and additional features to that piece of software.

Operating Systems

Added : 19/03/97 Amended : 19/03/97 Licencing : GNU copyleft

CGI++ - A C++ Library for CGI Programming

CGI++ combines an easy and intuitive 'look and feel' with a powerful and rich object-oriented implementation. Features include:

Shareware. Distributed as source code; modification permitted Free download/unlimited trial; license payable for installation on a WWW or Intranet server. Developer arrangements available for products incorporating the Library.

Nick Kew is also author and keeper of the CGI programming FAQ - archived as /www/cgi-faq at RTFM.

Operating Systems

Compilers

Added : 19/03/97 Amended : 19/03/97 Licencing : Shareware

CmdLine - command-line option and argument parsing framework

CmdLine is a full-featured C++ class framework for parsing options and arguments from the command line. Abstract and concrete classes are provided for the command-line, options, arguments, and argument iterators, and the user may add their own specialized argument/option types using subclasses.

Operating Systems

Compilers

Added : 19/03/97 Amended : 19/03/97 Licencing : Copyrighted freeware

CNCL - ComNets Class Library

Universal classes: Simulation: Fuzzy logic: EZD:

Operating Systems

Compilers

Added : 01/01/95 Amended : 08/08/96 Licencing : GNU copyleft

Conical - C++ classes for building neural networks

CONICAL is a cross-platform library of C++ classes for building biologically realistic simulations of neurons or small neural networks. Its capabilities are similar to large Unix-based packages such as GENESIS and NEURON, but produces simulations which are smaller, faster, and easily imbedded in other applications.

CONICAL is still under development, but documentation is fairly complete and includes both introductory material and demo programs.

Operating Systems

Compilers

Added : 30/07/96 Amended : 30/07/96 Licencing : Education

COOL - Texas Instrument's "C++ Object Oriented Library".

COOL includes classes like AVL_Tree, Association, Bignum, Binary_Tree, Bit_Set, Complex, Date_Time, Envelope, Gen_String, Handle, Hash_Table, Iterator, List, M_Vector, Matrix, N_Tree, Pair, Quaternion, Queue, Random, Range, Rational, Regexp, Set, Shared, Stack, String, Timer, Value, Vector.

COOL uses a special "template" syntax which is preprocessed by a special cpp (distributed with COOL). This enables it to be used with compilers which do not support templates.

Added : 01/01/95 Amended : 05/02/96 Licencing : Not known


CSLIB - Database library for C++ developers

A series of C++ classes in combination with a program generator is used to build databases with automatically updated indexes, access to fields, support for DATE fields, exporting to dBASE and so on. It also contains classes for variable-length records, virtual heaps, btrees etc. Some helpful utilities are included as well. CSLIB produces stand-alone executables. It is NOT just an interface to some central database server.

Evaluation version.

Operating Systems

Compilers

Added : 19/03/97 Amended : 19/03/97 Licencing : Not known

CSock C++ Socketing Library - An advanced wrapper for Windows socketing

An advanced wrapper for Windows socketing. Uses newer C++ language extensions to shred the amount of code required for socketing applications.

All the standard Windows socketing wrapper classes usually implemented, and then:

$20.00 U.S. shareware license entitles registered users to updates through version 2.99. FTP functionality is already partially complete.

Distributed as source code. Should work with any compiler that supports exceptions, templates and new cast operators.

Operating Systems

Compilers

Added : 13/11/96 Amended : 13/11/96 Licencing : Shareware

Cvmath.cc - An include file to make complex math look like regular math.

The file uses a lot of operator overloading, so that if x=a+ib and y=c+id, the code for multiplying the two together looks like z = x*y; Also, the file includes nrutil from Numerical Recipes, and adds the complex versions for vectors and matrices.

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


DiamondBase - Add Relational Database functionality to your C++ programs

DiamondBase is a library of C++ routines and utilities that allow you to add Relational Database functionality to your C++ programs. It is written entirely in C++, and great pains have been taken to ensure it compiles under a variety of compilers. It comes with a 47 page manual.

Operating Systems

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known

Diffpack - Quick prototyping of simulators solving partial differential equations by FEM

Diffpack is a large and comprehensive C++ package aiming at quick prototyping of simulators solving partial differential equations by FEM. Under development at SINTEF Applied Mathematics and the University of Oslo, Norway.

Version 1.0 of Diffpack is released for free non-commerical use and is distributed by netlib. For further details refer to the Diffpack WWW home page

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


Doctor Matrix - Matrix and vector algebra package for C++

Doctor Matrix is a matrix and vector algebra package for C++. It allows the C++ programmer to perform calculations on matrices and vectors within C++ programs. Over 50 functions are supported, including ranking, determinant calculation, matrix addition and multiplication, inversion, and more. Comprehensive documentation provides instructions for use of all functions and mathematical definitions of their purpose. Shareware version is limited to DOS programming in Borland C++ and for Tiny or Small memory models.

Special requirements: The Shareware version supports compilation only under Tiny or Small memory models. Borland C++ compiler recommended.

Operating Systems

Compilers

Added : 19/03/97 Amended : 19/03/97 Licencing : Shareware

DoPVM - A class built on PVM, for message passing environments.

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


DOSTmUit - DOS Text Mode User Interface Toolkit

Enables C++ programmers to add a CUA-compliant user interface to their DOS programs without getting involved in screen coordinates and other messy details. The programmer merely states which interface objects are required, and how they are to be placed on the screen in relation to each other. Those familiar with the ET++ toolkit for the X windows system under Unix will get the general idea.

Includes a class documentation facility (DocClass) which will generate a large text file from the source code giving details of every class, structure, enum and extern in the toolkit. This program will also work on your own C++ source code. Source is provided.

Operating Systems

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : Non commercial

Drat - A C++ interface to the curses library

Drat contains several classes for interfacing with the UNIX curses library, including menus with callback's, and other common forms.

Added : 05/02/96 Amended : 05/02/96 Licencing : Not known


ET++ - A large GUI library and other C++ tools developed in Europe

The Authors are both with Taligent now.

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


FFTPACK++ - C++ version of FFTPACK

FFT_Pack is a C++ wrapper for FFTPACK complex routines using LAPACK++ Matrix and Vector classes. FFTPACK routines were converted to C using f2c and also modified to use double precision complex using -r8 to f2c.

Most of this code was lifted directly from GNU OCTAVE v1.1.0, hence the copyright notice at the top.

The forward FFT takes you to freq domain (ala direction == -1), and backward the other way.

Passing LaVectorComplex/Double or LaGenMatComplex/Double with one dimension set to 1 will implicitly perform 1D FFT on the data.

The members of the FFT_Pack class are declared static, since they really need no private member storage. There are two types of transform routines: ones that return a new complex matrix and the ones that change the matrix in place.

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : GNU copyleft

GAGS - C++ class library for Genetic algorithms

It includes classes for chromosomes and populations.

Library:binary chromosome representation. Genetic operators: mutation, xOver (n-pt and uniform), remove/reinsert. Selection operator: steady state, tournament, roulette wheel. Perl and/or tcl/tk graphic front-end. Graphics through gnuplot. Training from file.

Application generator: it needs only an ANSI-C definition of the fitness function. It's parsed, and a program that runs a GA on it is generated.

Operating Systems

Compilers

Added : 08/02/96 Amended : 08/02/96 Licencing : Copyrighted freeware

GAME - Parallel Genetic Algorithms Theory and Applications

Edited by: J. Stender
Publisher: IOS Press
Frontiers in Artificial Intelligence and Applications series
1993, 225 pp; hard cover; w/ disk
ISBN: 90 5199 087 1
Price: $85, 59 pounds sterling

The first version of the GAME Virtual Machine software and two examples that come with the book can be obtained also by ftp.

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


GECOOL 2.1 - A reworking and enhancement of Texas Instrument's "C++ Object Oriented Library"

By some programmers at General Electric.

Also available is JCOOL. Its main difference from COOL and GECOOL is that it uses real C++ templates instead of a similar syntax that is preprocessed by a special 'cpp' distributed with COOL and GECOOL.

Some users behind "firewalls" have had difficulty accessing the ftp site.

Added : 01/01/95 Amended : 05/02/96 Licencing : Not known


Generic Linked List Package

A package to define, create, update query and delete one or more (nodes of) linked lists, to sort linked lists, and so on. The user doesn't have to take care of allocating a number of bytes for a node, inserting on the right place, deleting and freeing a node and so on.

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


GINA++ - An O-O application framework for C++, X11R5, and OSF/Motif

GINA++ (The Generic INteractive Application for C++) is an object- oriented application framework that facilitates the development of applications with a graphical user interface. It is written in C++ and uses OSF/Motif and X for the user interface parts. GINA++ comes as a library of C++ classes, 10 small to medium demo applications, and it is fully documented.

Components of GINA++ are:

The classes of GINA++ constitute an executable program - the generic application - which possesses the basic functionality and the user interface components common to all interactive graphical applications, but lacks any application-specific behavior. The predefined functionality and behavior is inherited by deriving subclasses from the existing GINA++ classes. Application specific behavior is implemented by adding new classes and member functions. Differences to the standard application are coded by refining virtual member functions inherited from GINA++.

Operating Systems

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known

Gnans - Simulation of stochastic and deterministic dynamical systems

A program (and language) for dynamical systems. Includes simple scripting language. Graphical user interface.

Operating Systems

Added : 01/01/95 Amended : 01/01/95 Licencing : GNU copyleft

Grail - Symbolic computation with finite-state machines and regular expressions

Supports conversion of FSM to RE and back and also conversion to and from finite languages. Supports many algebraic operations on FSM and RE. All objects are templates, so you can parameterize FSM or RE to use any C++ class or base type as its alphabet type (hence, Mealy machines are supported by using ordered pairs as the alphabet type).

Compilers

Added : 22/05/96 Amended : 22/05/96 Licencing : Education

GRAS - A Graph-Oriented Database System for SE Applications

Copyright (C) 1987-1992 Lehrstuhl Informatik III, RWTH Aachen This library is free software under the terms of the GNU Library General Public License.

The system GRAS with interfaces for the programming languages Modula-2 and C is available as public domain software for Sun3/Sun4 workstations (the GRAS system itself is implemented in Modula-2 and consists of many layers which might be reusable for the implementation of other systems):

There are several files contain documentation, sources, binaries, and libraries. All binaries are for Sun/4 machines. Sun/3 binaries are shipped only if explicitly requested.

Operating Systems

Added : 01/01/95 Amended : 01/01/95 Licencing : GNU copyleft

Grayscale Image Processing

Enhanced grayscale image processing class library and verification code, source code

Keywords: image arithmetics, median filtration, morphological filtration, convolution, lazy image, TIFF, plasma fractals, nondeterministic filter, class library

Operating Systems

Compilers

Added : 22/05/96 Amended : 19/03/97 Licencing : Public Domain

Hans Boehms GC - Hans Boehms free Garbage Collector

Implements much of the Detlefs/Ellis C++ GC proposal.

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


High level vector operations

Contains the Aitken-Lagrange interpolation over the table of uniform or arbitrary mesh, and the Hook-Jeevse multidimensional minimizer. Precision single/double.

Obsolete - now part of the Lin-alg package.

Added : 01/01/95 Amended : 30/07/96 Licencing : Not known


InterViews - GUI class library developed by Stanford University

Make sure you get v3.1 or later. This library contains excellent examples of multiple inheritance used profitably. I understand that InterViews development will not continue past the current version; author Mark Linton is concentrating his efforts on the X Consortium Fresco project, which should show up in X11R6.

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


ISC366.ZIP - Interrupt Service Class (v. 3.66)

Allows hooking of interrupts (software and hardware) into classes, comes with classes for staying resident, for serial communication (interrupt driven), and like-wise classes. Comes with full source code!

Operating Systems

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : Public Domain

Kalman - A class library for Kalman filtering

Contains lumatrix.c++ etc.

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known

Lapack++ - C++ version of some of lapack fortran code

Developmental version of proposed C++ version of lapack. Contains blas.h++ etc, but needs Fortran library to link.

Documents : Overview paper (9 pages postscript), release notes (7 page ps)

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known


LEDA, - A Library of Efficient Data Types and Algorithms

Provides basic data-types like lists, stacks, queues, trees, sets, partitions, priority queues and a few others. These are parameterizable classes, you may add your own datatype and have a priority queue ... An important datatype is a graph, these are also parameterizable and there are useful algorithms for them like shortest path, transitive closure, matching, maximum flow, spanning tree and others, we have implemented a few algorithms for dealing with perfect graphs, but these ar not part of the standard library. The latest part deals with computational geometry.

It can be used with C++ compilers which understand templates

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : Education

libg++ - (GNU's C++ library)

Libg++ is probably only relevant if you are using g++; and if so, you already know about it. It does have some good implementations of bignum's and of regular expressions and strings.

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : Not known

Lily (LIsp LibrarY) - Gives C++ programmers the capability to write LISP-style code

I think Lily will be useful in academia for instructors who want to teach artificial intelligence techniques with C++. The garbage collection mechanism employed by Lily is slow which will make it unattractive for commercial use.

Documentation is minimal. The "Lily User's Guide" (in file lily.txt) provides a good overview of the architecture of Lily -- the document is unfinished. All of the example programs are from Winston's book "LISP Second Edition" so you will be much better off if you have a copy. Steele's "Common LISP" describes the behavior of the LISP functions.

Operating Systems

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : GNU copyleft

LinAlg.shar - basic linear algebra classes and applications

basic linear algebra classes and applications (SVD, interpolation, multivariate optimization)

The package contains declarations of Matrix, Vector, subMatrix over the real domain, and *efficient* and fool-proof implementations of level 1 & 2 BLAS (element-wise operations + various multiplications), transpositions and determinant evaluation/inversion. There are operations on a single row/col/diagonal of a matrix.

The "new style" of returning matrices (via LazyMatrix) and filling them out.

New in the Jan 1996 version: extended to include singular value decomposition (SVD) and its applications to (a regularized) solution of simultaneous linear equations (with possibly rectangular matrices) and (pseudo)matrix inverse.

This version of LinAlg.shar also includes Aitken-Lagrange interpolation over the table of uniform or arbitrary mesh, and a Hook-Jeevse local multidimensional minimizer, formerly of hl_vector.shar package.

Matrix/Vector/etc classes are expanded with new methods.

More attention to Matrix/Vector promises.

The code is made cross-platform compatible (compiles both under UNIX and on a Mac).

See LinAlg.h for the complete list of classes and functions, and vmatrix.cc, vvector.cc, etc. test drivers as to how the features can be used. See README for hints.

Operating Systems

Compilers

Added : 22/05/96 Amended : 30/07/96 Licencing : Public Domain

Trumphurst Home Page
C++ Usenet Newsgroup

Mail amendments or additions to this list
A Web form for submissions to this list
Mail the author for permission to distribute

Copyright (c) 1997 Nikki Locke, Trumphurst Ltd.
Permission is granted to distribute over the Internet without charge. The author's permission is required (and usually given) to distribute in any other way, including on CD.