Archive-name: C++-faq/libraries
Comp-lang-c++-archive-name: C++-faq/libraries
Last-modified: 1994/02/19

Here is the latest draft of a list of available C++ libraries I am 
compiling. I intend to post this monthly (unless there are any 

It is also submited to news.answers, and is available for public ftp
(along with all the other Usenet FAQ lists) at (, 
in pub/usenet-by-group/comp.lang.c++/libraries. also has a mail server - send a mail message containing 
"usenet-by-group/comp.answers/C++-faq/libraries" to
If you want to find out more about the mail server, send a message to it
containing "help". 

Marshall Cline's C++ FAQ is also available from rtfm - the files are
called _posting_#1_4, _posting_#2_4, _posting_#3_4 and _posting_#4_4, and
they are in the same directory. 

I have not included a credits list, because it would be nearly as large as
the rest of the file! Many thanks to all those who contributed, and I 
hope you won't be offended that I haven't mentioned you. One recent 
contribution of note is a C++ matrix class listing posted to the net by 
Keith (

Entries are in the order I received them, i.e. totally random. Some future
version might have the entries in alphabetical order, but don't hold your 
breath :-)

If your library isn't mentioned, or you wish to update your entry in this 
list, feel free to mail me the new entry.  Please note that entries will 
be restricted to a couple of paragraphs - if you send me a 100k text file 
giving minute details, I will have to summarise it. It is much easier for 
me if you just send me an entry which is the right size to start with.

Please mail comments, criticisms, additions and amendments to me at However, please DO NOT mail me with requests
for assistance in finding files mentioned in the list. I am unable to 
provide such a service. Definite information such as "file xyz is no 
longer at site xxx" IS welcome - even better if you can tell me an 
alternative site where it can be found. If you are new to the Internet, 
try to find out about tools such as archie, whois, www, gopher etc. I 
recommend the newsgroup "news.answers" for starters.

Libraries available via ftp
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: 

    - depth-first tree and graph search.
    - breadth-first tree and graph search.
    - uniform-cost tree and graph search.
    - best-first search.
    - bidirectional depth-first tree and graph search.
    - bidirectional breadth-first tree and graph search.
    - AND/OR depth tree search.
    - AND/OR breadth tree search.

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.

	ftp from
	in /pub/peter/
	or /pub/peter/aisearch.tar.Z
Source to the Book: Object-Oriented Software in C++

by      Michael A. Smith  (
ref    "Object-Oriented Software in C++", Chapman & Hall,
        London. 1993. ISBN 0 412 55380 5.

	ftp from
	in /pub/mas
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. 

	mail :

	ftp from[]
	in pub/trumphurst/dosuit??.zip
	Also uitbor??.zip for Borland C++ users

Description : C++ version of some of lapack fortran code.
Author      : J. Dongarra, R. Pozo, D. Walker
Version     : 0.9 beta
Comments    : 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)

	ftp from
	in lapack++/*

Description : a C++ class for numerical computation
Author      : Chris Birchenhall (}
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 decompositons
              *  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.

	ftp from (

Author      : Damian McGuckin (
Description : a BLAS in C++

	ftp from
	in pub/C-numanal
Texas Persistant Store

Paul R. Wilson and Sheetal V. Kakkad
Object-Oriented Programming Systems research group (
Computer Sciences Dept., University of Texas at Austin

Texas is a free persistent store that can be used with standard C++ compilers,
and works efficiently with very little modification to most C++ programs.
It runs on several varieties of UNIX and should be very easy to port to most
modern operating systems, such as OS/2, Windows NT, Mach, Windows 4.0, etc.
(If things we hear are correct, Linux will provide the necessary virtual
memory features soon, too, and Texas will be ported about fifteen minutes 
later. :-)

Texas uses "pointer swizzling at page fault time", an address translation
techique that converts pointers from an abstract format to actual virtual
memory addresses when pages are first touched and brought into memory.
(A similar technique, invented independently, is used in the market-leading
persistent store/OODB, ObjectStore from Object Design Inc.)  This allows
Texas to be highly portable, avoiding any assumptions about where a page
of data will be an a process' virtual memory address space; it can also
support very large addresses spaces efficiently on stock 32-bit hardware.
(It could also be used to efficiently provide shared address spaces across
networked heterogenous machines with different hardware address sizes, e.g.,
across 32- and 64-bit machines.)

mailing list :

	ftp from
	in pub/garbage/texas
	More info in pub/garbage/
	and pub/garbage/
wxWindows is a C++ class library for building Motif, Open Look,
Windows 3.1 and NT applications from the same source code. One simple
API is provided for all platforms. wxWindows supports objects such as
frames, subwindows, buttons, list boxes, icons, and bitmaps, and
supports drawing into canvases, PostScript files, Windows printers,
metafiles and bitmaps using the same drawing primitives.

wxWindows provides a hypertext help facility, and a utility for
maintaining documentation in printed and three hypertext formats. It
also provides an interprocess communication API based on DDE, that
works under both Windows 3.1 and UNIX. Documentation is available in
PostScript, RTF, Windows Help, wxHelp and HTML formats.

	Julian Smart
	Artificial Intelligence Applications Institute
	University of Edinburgh
	80 South Bridge
	EH1 1HN
	TEL:   031 650 2746

	ftp from (,
	in directory pub/wxwin.

Universal classes:
	* Tree structured class hierarchy, similar to NIHCL.
	* Classes for general purposes such as arrays, linked lists,
	* Interface classes for UNIX system calls: pipes, select.
	* Event driven simulation.
	* Statistical evaluation.
	* Random number generators and distributions.
Fuzzy logic:
	* Fuzzy sets, fuzzy variables, fuzzy rules and inference
	  engine for building fuzzy controllers and expert systems.
	* Interface classes for DEC's ezd graphics server.

This version of CNCL is known to compile and run on the following
	* SUN SPARCstation, SUNOS 4.1.3, GNU g++ 2.3.3/2.4.5,
	  libg++ 2.3/2.4
	* SUN 3/60, SUNOS 4.1.3, GNU g++ 2.3.3/2.4.5,
	  libg++ 2.3/2.4
	* LINUX 0.99.13, GNU g++ 2.4.5, libc 4.4.1, libc 4.4.4 +
	  libg++ 2.4

Distributed under the GNU Library General Public License.

	Communication Networks
	Aachen University of Technology
	D-52056 Aachen
	Email: (Martin Junius)

	ftp from  (
	in directory pub/CNCL
RTTI implementation

	ftp from (
	in /pub/software/rtti.tar.Z

	Arindam Banerji 

	384 FitzPatrick Hall
	Dept. of Computer Science & Engg. 
	University of Notre Dame
	Notre Dame, IN 46556
Lily (LIsp LibrarY) C++ class library which 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.  

Lily uses the GNU Library General Public License.

Lily works well with GNU g++ version 2.4.5 (and probably earlier releases).

Lily works with Turbo C++ for Windows but not with Turbo C++ (though the
current version hasn't been tested with Turbo C++ for Windows).

Lily does *not* work with AT&T's cfront because cfront does not handle 
temporary objects very well.

	ftp from (
	in /pub/packages/development/libraries/lily-0.1.tar.gz 
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 including gcc,
cfront and Borland's C++ compiler for OS/2. It runs on a wide
variety of Unix platforms and OS/2. There are no plans to support
DOS or Windows at the moment. It comes with a 47 page manual.


	ftp from
	in pub/export/?
GINA++ - An O-O application framework for C++, X11R5, and OSF/Motif

Requires:  AT&T 3.0 based C++ compiler (Sun C++ 2.0.1), X11R5, Motif 1.2
Platforms supported:    Sun Sparc, HP

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: (1) A C++ encapsulation of OSF/Motif providing
easy-to-use mechanisms for deriving new widget classes completely in C++,
(2) Support for object-oriented graphics (rectangles, arrows, circle,
etc), (3) An unlimited undo/redo history mechanism, (4) supporting
classes for data structures (list, arrays, etc), run-time type
information, and a notification mechanism. 

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

Author: Andreas Baecker (, 
	P.O. Box 1316, 
	D-53731 Sankt Augustin

	ftp from
	in /gmd/ginaplus
	in /contrib
Motif++ - Ronald van Loon.
A wrapper-library, that encapsulates Motif widgets in C++ classes. All
resources of these Widgets can now be set through member-functions, while
objects can be used in callback-functions. 

The July 93 release offers:
- Easy configuration (even for non-imake-gurus)
- Full support for X11R4 as well as X11R5
- Full support for Motif 1.1 and Motif 1.2 (including Drag and Drop)
- Support for Xbae widgetset 
- Support for the xpm library
- Percentage widgets
- Generic Widget
- Support for WCL Table Widget
- A library for easy manipulation of Visuals 
- A library that reads PBMPLUS files, as well as providing an extension to 3D
  of the format.
- Lots of demos and testfiles (even somewhat useful programs)
- An article I wrote on the usage of Motif, X and C++, previously posted
  on Usenet.
- all filenames smaller than 14 characters

	X11R4 or any later version
	Motif 1.1 or any later version
	C++ compiler, compatible with cfront 2.0 or later
	a bourne shell (sh, bash, ksh ...) that supports shellfunctions.

	mail "".
	Tel: +31 33 758 293 (if desparate !)

	mailing list :
	subscriptions :

	ftp from 
	in /pub/X11/motif++.28.jul.93.tar.gz
	or from ( 
	in /pub/motif++/motif++.28.jul.93.tar.gz
	or from 
	in /pub/X11/misc/MOTIF.AND.WIDGETS/Motif++.tar.Z 
	or from
	in /packages/motif++/motif++.28.jul.93.tar.gz
OATH (Object-oriented Abstract Type Hierarchy) was designed
as an experiment in increasing object-oriented reuse.
It has a fairly high learning curve, but potentially 
higher gains if you are looking for a more flexible and
robust abstraction.  It is completely unsupported.

	ftp from (
	in pub/oath.tar.Z
COOL (C++ Object-Oriented Library) was designed as an 
experiment in templates and exception handling.  Templates
are implemented via a preprocessor with an advanced macro
capability.  It displays a different set of trade-offs 
from OATH.  It is also completely unsupported.

	ftp from (
	in pub/COOL.tar.Z

NIHCL (National Institute of Health's C++ Library) is
essentially a mapping of part of Smalltalk's library
into C++.  It lies somewhere between OATH and COOL.
It is a little better supported and there is a textbook
by the author, Keith Gorlen, that is fairly good documentation.
However, the Smalltalk hierarchy is not completely 
consistent (IMO) with the C++ strong typing nature.
It is weakly supported.

	ftp from (
	in pub/nihcl.tar.Z
libg++ (GNU's C++ library) 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.

	ftp from (
	in pub/gnu/libg++-*
InterViews is an excellent 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. 

	ftp from
Unidraw is a graphical editor building library based on top
of InterViews.

	ftp from
ET++ is a large GUI library and other C++ tools developed
in Europe.

	ftp from
	in gnu/et++-2.0.tar.Z
LEDA, A Library of Efficient Data Types and Algorithms, by Stefan N"aher
from Germany. It is available for educatioal purposes but its NOT in the
public domain. 

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, such as 
cfront 3.0 and g++ 2.4.5.

	Stefan Naeher
	Max-Planck-Institut fuer Informatik
	Im Stadtwald, 
	6600 Saarbruecken, 

	ftp from (
	in /pub/LEDA/LEDA-<version>.tar.Z
Code from Hansen's C++ Answers book
by      Tony L. Hansen
ref     "The C++ Answer Book", Addison-Wesley, 1990, ISBN 0-302-11497-6

	ftp from
	in c++/answerbook
Code from Coplien's, "Advanced C++ Programming Styles and Idioms"
by      James O. Coplien
ref     "Advanced C++ Programming Styles and Idioms", Addison-Wesley, 1992, ISBN

	ftp from
	in c++/idioms
Brent's univariate minimizer and zero finder.
by      Oleg Kiselyov <,>
ref     G.Forsythe, M.Malcolm, C.Moler, Computer methods for
        mathematical computations.
prec    double
see     c++/serv_cc.shar

	ftp from
	in c++/brent_cc.shar
Radix-2 Fast Fourier Transform
by      Oleg Kiselyov <,>
prec    single/double
see     c++/lin_alg.shar, c++/serv_cc.shar

	ftp from
	in c++/fft.shar
High level vector operations
        Contains the Aitken-Lagrange interpolation over the table of uniform or
        arbitrary mesh, and the Hook-Jeevse multidimensional minimizer.
by      Oleg Kiselyov <,>
prec    single/double
see     c++/lin_alg.shar, c++/serv_cc.shar

	ftp from
	in c++/hl_vector.shar
basic linear algebra classes
by      Oleg Kiselyov <,>
prec    single/double
see     c++/serv_cc.shar

	ftp from
	in c++/lin_alg.shar
A couple of functions that ought to be in the standard
C++ environment;
- Updated G++ class File that allows now for the file name to
  include pipes, say,
    File in_file("zcat aaa.Z |","r");
- Resource facility, or managing global "private" parameters
  that specify various program "options". It helps keep
  reasonable number of arguments in function calls.
by      Oleg Kiselyov <,>

	ftp from
	in c++/serv_cc.shar
C++ implementation of differential algebra
by      Leo Michelotti <>
This is temporarily unavailable while we resolve the question of whether
inclusion of codes from Numerical Recipes makes distribution illegal. 

	ftp from
	in c++/mxyzptlk.shar
ParLib++, Parallel Programming Classes for C++:

	David Greco
P++, Parallel Programming Classes for C++:

	Dan Quinlan
"C* in C++", Parallel Programming Classes for C++:

	Terry Bossomaier
pC++ is a preprocessor for C++ that implements a data parallel
extension. Machines currently supported are CM5, paragon, KSR-1,
sequent, BBNTC2000 (and soon ibm sp1, and cray t3d), as well as in
uniprocessor mode on most workstations.
DoPVM - a class built on PVM, for message passing environments.

	Skip Hartley
The SPLASH c++ class library

(Small Perl-like List And String Handling class library)

SPLASH is a c++ class library that implements many of the Perl
constructs and data types, including extensive regex regular expression 
pattern matching.

For those not familiar with Perl, it is an excellent scripting language
by Larry Wall and is available for most platforms.

This Class library provides List, String, Regular Expression, and text
manipulation handling capabilities based on those provided in Perl.

This is available as a compressed tar file, shar file, .zoo or .zip format
with MSDOS compatible names.


	ftp from
	in pub/morris/splash.tar.Z
	and pub/morris/splash.shar.Z
	and pub/morris/ (DOS)
	and pub/morris/splash.zoo (DOS)
OSE consists of three C++ class libraries, a build environment based on
GNU make, programs for documentation extraction and other miscellaneous

The C++ libraries include generic classes and some UNIX specific classes.
Collection classes use templates compatable with AT&T C++ 3.0. If you
have a C++ compiler which does not support templates, a template
preprocessor supplied with OSE can be used. 

OSE uses a GNU style configure script, making it relatively easy to
install, even on platforms for which it may not yet have been compiled.
For DOS users, a script is provided to create a copy of the C++ libraries
suitable for compilation on that platform. 

To get further information about OSE, without actually fetching the
complete package, either fetch the file "ANNOUNCE" from one of the
ftp sites below, or send mail to:

	ftp from []
	in directory pub/programming/languages/C++/class-libraries/OSE

United States:
	ftp from []
	in directory /pub/ose

	ftp from []
	in directory pub/otc
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.

	fto from
	in ~ftp/pub/COOL.tar.Z
GECOOL 2.1 is a reworking and enhancement of Texas Instrument's "C++
Object Oriented Library" (at in ~ftp/pub/COOL.tar.Z) by some
programmers at General Electric. 

JCOOL's 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.  Of course, this

	ftp from
	in pub/COOL

C++ iostream like library for sockets and pipes.

	ftp from from
	in /public_access/socket++-XX.tar.gz (XX - version no)
	or from []
	in coside/gnu/sockets++.tar.z
PDBlib is a class library written in C++ for modeling a macromolecular
structure at the level of detail (excluding symmetry information) found
in a Protein Data Back (PDB) file. A class is supplied to read a PDB file
into a PDBlib representation. This class is independent of the actual
representation and other forms of input, for example from a relational
database like SESAM, are possible. 

The library is made extensible by a close coupling between intrinsic and
external classes. By writing only to the external classes you will remain
compliant with future versions of the library. 

You don't get source code. This is a temporary situation while we attempt
to centralize bug fixes and additions to the library. If you find this
situation unworkable source code is available by signing a copyright
agreement which is available with the distribution. 


PDBLib.1.0.SGI.tar.Z    Compressed tar file of PDB object classes library
                        and header files for SGI.  AT&T C++ release 2.1 & 3.0

PDBLib.1.0.Sun.tar.Z    Compressed tar file of PDB object classes library
                        and header files for Sun Sparc station.  AT&T C++
                        release 2.1 & 3.0 compatible.

PDBLib.1.0.Cvx.tar.Z    Compressed tar file of PDB object classes library
                        and header files for Convex.  AT&T C++ release 2.1

PDBLib.1.0.Alpha.tar.Z  Compressed tar file of PDB object classes library
                        and header files for Dec 3000 (Alpha AXP) with OSF1.
                        Dec C++ (cxx) release 1.2 compatible.

Address specific programming questions on PDBlib to Weider Chang, the
author of most of the code ( 

Address questions concerning PDBview to Ilya Shindyalov

Address general comments, criticisms, questions about future directions
etc. to Phil Bourne ( 

	ftp from (
	in pub/programs/PDB/PDBlib
molbio++ is a C++ library for molecular biosequence analysis.  Major 
features include:

classes and services for
  reading and writing sequence data in the following formats:
    Genbank Flatfile
    EMBL / SwissProt
    GCG / Wisconsin
    Fasta / Pearson
    NCBI Retrieve Server (read-only)
  limited parsing of fields and features in biosequence files
  storing amino acid or nucleic acid sequences
  iterating over a biosequence
  calculating and storing counts or frequencies of amino acids
    or nucleotides
  device-independent graphics, via GCG's FIGURE program
  translating nucleotide sequences into proteins using
    the universal genetic code or modifications thereof.
  parsing BLAST output
  calculating pI and molecular weight of proteins
  amino acid hydropathy values of Kyte & Doolittle

	ftp from  (
SESAME, by C. Tietz, Neural net software ?

	ftp from
	in /gmd/as/sesame.
TOLKIEN (TOoLKIt for gENetics-based applications).

The tool contains objects for both GA and classifier system applications."
It's in some kind of alpha-status.
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.

	ftp from
	in papagena/game/version1 directory
The Generic Linked List Package is 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.

	ftp from or
	in /pub/TNO/BOUW/Bouwinf/linkedlist0.10.shar
Newmat : a very thorough matrix class

volume34, issue 107 of comp.sources.misc

Author      : Robert Davies (
Comments    : Optimized expression evaluation.  Many decompositions.
Systems     : Unix (g++ 2.3.3 ok), MS-DOS (Borland C++)

People trying to run under Gnu or Watcom should contact the author
for a list of patches.

	ftp from
	in /pub/uunet/usenet/comp.sources.misc/volume34/newmat07
	or from (
	in /micros/pc/oak/cplusplus/
nlmdl : a library for estimation of nonlinear models

Nonlinear maximisation, estimation, includes a real matrix class

Systems     : Unix, MS-DOS (Turbo C++)
Author      : A. Ronald Gallant,

	ftp from
	in /usenet/comp.sources.misc/volume16/nlmdl
	or from (
	in pub/arg/nlmdl
Octave : Matlab-like interactive system for numerical computations

Includes C++ classes for matrix manipulation, numerical integration, and
the solution of systems of nonlinear equations, ODEs and DAEs.
Distributed under the GPL. 

Systems     : Compiles and runs on SPARC, RS/6000, DEC/Ultrix,
              i386/Linux and probably most Unix-like systems that have
              a working g++/libg++.
Author      : John W. Eaton <>

	ftp from
	in /pub/octave/octave-M.N.tar.Z
Andy Register <> has a 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. 

	ftp from
	in pub/c++/gtmatrix
Awesime : a C++ task library explicitly designed for simulation.

Author      : Dirk Grunwald (

	ftp from
	in pub/cs/misc/Awesime
BLAS in C++

Author      : Damian McGuckin (

	ftp from
	in pub/C-numanal/blas.cpp.shar.z
An include file to make complex math look like regular math.

Author      : Leonard Kamlet,
Comments    : 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.

	ftp from
	in pub/C-numanal/
Gnans : Simulation of stochastic and deterministic dynamical systems

System      : SunOS 4.1.x, IRIX, AIX; X11 Release 4-5 incl. Athena Widgets
Author      : Bengt Martensson <>
Comments    : A program (and language) for dynamical systems. Includes
              simple scripting language. Graphical user interface. Copyleft.

	ftp from
	in /pub/gnans
Kalman : A class library for Kalman filtering

Author      : Skip Carter (
Description : A class library for Kalman filtering
Comments    : Contains lumatrix.c++ etc.
Language    : g++ 2.4.2 tested OK.

	ftp from
	in pub/C-numanal/kalman.tar.gz

A C++ Matrix class, including a matrix implementation of the backward
error propagation (backprop) algorithm for training multi-layer, feed-
forward artificial neural networks 
Author      : E. Robert (Bob) Tisdale,
Comments    : A C++ interface to existing C and FORTRAN matrix libraries.
Documents   : LaTeX manual.

	ftp from
	in pub/Matrix.tar.Z
Presto : C++ routines for fine-grained parallel programming (lightweight
threads) on multiprocessors. Tuned for the Sequent machines, but highly
adaptable and customizable. 

Systems : Unix-like OS on (moderate) multiprocessor machines 
Author : Brian N. Bershad, Edward D. Lazowska, Henry M. Levy 

	frp from
	in pub/presto1.0.tar.Z 
Range : C++ class for range arithmetic. 

Associated with article in TOMS, Dec 1992 title "Precise computation
using range arithmetic, via C++" 
Author      : Oliver Aberth and Mark J. Schaefer

	ftp from
	in pub/range/range.tar.Z
SA : library for simulated annealing

Author      : Skip Carter (

	ftp from
	in pub/C-numanal/sa.zoo

A Runge-Kutta like class for integrating systems of Stochastic
Differential Equations 

Author      : Skip Carter,

	ftp from
	in pub/C-numanal/sdeint.tar.z
Simpack : tools for writing simulations with a EECS bias

Author      : Paul A. Fishwick,

	ftp from
	in pub/simdigest/tools/simpack
	See also cis/tech-reports/tr92/

Al Stevens has written a book on the subject called
`Database programming in C++' or something. An article
on the subject was printed in Doctor Dobbs Journal
some time ago.

The nice thing is that Stevens also wrote a C++ library
adding persistence to C++, and the source is available.
The library is called PARODY and compiles under most
DOS-based C++ compilers. A slight rewrite of the GUI-
routines has to be done to make it compile under GNU C.

	ftp from
	in pub/ddj/1992.12/ 
	   pub/ddj/1992.12/parody.dir (directory of zip)
SMURPH : A C++ library which could be useful for building a network
simulator.It comes withextensive documentation and examples.

	ftp from (
	in /pub/smurph*
C++ FEM (Finite Element Method) Library 

In addition to FEM related classes, this library also has:

        1) Some simple garbage collection stuff
        2) An automatic differentiation library
        3) A sparse matrix library

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. 

	Michael Tiller
	University of Illinois (Urbana-Champaign)

	ftp from
	int /pub/C-numanal/femlib-1.1.tar.gz
Ode Object database v2.0

Ode is an object-oriented database based on the C++ database model.
The primary interface to Ode is the database programming language O++
which is based on C++.

Ode is now available to Universities. The current version of Ode runs on
Sun (Sparc) workstations and users must have C++ release 2.0 or a later
release. If you are interested in using Ode and giving us feedback on
your experience with Ode, please send mail to with
the appropriate information. 

	Narain Gehani
	AT&T Bell Labs 3D-414
	600 Mountain Ave
	Murray Hill, NJ 07974

	ftp from
	in dist/ode2.0/2.0.oppbin.tar.Z
C++SIM 1.0  - 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

The simulation package requires the use of a threads package and
currently only works with Sun's lightweight process library or the Gnu
thread package (which *is* included in the distribution). The package has
been used on Sun workstations, and, with the exception of the thread
library requirement, contains no system specific code which should make
porting to other systems relatively easy. The code has been compiled
with Cfront 2.1 and Cfront 3.0.1 and g++ 2.3.3

	ftp from
ADAPTIVE Communication Environment (ACE) C++ IPC wrappers (C++Wrapper).

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 if you'd like to become part of the
mailing list. 

	ftp from ( 
	in gnu/C++_wrappers.tar.Z
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:

* Builds on the C language interface of a database, there is no need
  for a precompiler (like embedded SQL - which is totally unusable in
  combination with C++, at least it was three years ago...)
* Very simple to use. Unlike the native C interfaces of the databases
  it is as simple as embedded SQL or some 4th generation languages.
* Makes applications portable among different SQL databases. The library
  itself is relatively easy to port as the database vendor specific code

	ftp from 
	in /contrib/CB++.0.1.*
OBST - persistent object management system 

The persistent object management system OBST was developed by
Forschungszentrum Informatik (FZI) as a contribution to the STONE

Sites interested in getting information about new OBST developments
are welcome to register in their mailing list by sending a mail with
subject "obst-mailing-list" to

	Forschungszentrum Informatik FZI
	STONE Projekt
	Haid-und-Neu-Strasse 10-14
	D-7500 Karlsruhe 1
	Tel : ++49-721-9654-601
	Fax : ++49-721-9654-609
	Teletex : 721 190 fziKA
	email :

	ftp from []. 
	in /pub/OBST.
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.

	Lehrstuhl f"ur Informatik III
	University of Technology Aachen (RWTH Aachen),
	Ahornstr. 55,
	D-5100 Aachen
	Contact : Dr. Andy Sch"urr (or Richard Breuer), (for technical support)

	ftp from ( 
	in /pub/unix/GRAS522_3
MTL110JE.ZIP -- multithreading class library

DOS PC/Borland C++ specific.

	ftp from
	in /pub/msdos/cplusplus
	in /pc/c
CCL110JE.ZIP -- coroutine class library

DOS PC/Borland C++ specific.

	ftp from
	in /pub/msdos/cplusplus
	in /pc/c
TSR100JE.ZIP -- TSR class library

DOS PC/Borland C++ specific.

	ftp from
	in /pub/msdos/cplusplus
	in /pc/c
XMS200JE.ZIP -- XMS array class library

Wrapper classes to access XMS, UMBs and the HMA, as well as a templated
XMS array class. Test suites and timing programs provided for each class.
Source included. Free. DOS PC/Borland C++ specific. 

	ftp from
	in /pub/msdos/cplusplus
	in /pc/c

Useful ftp sites
If you don't have ftp access, send email to
saying "help".  You will get instructions on how to do ftp via email.

European users might like to try instead.

A major repository of C++ stuff, mostly under the directory tree starting 
at /pub/programming/languages/C++. Includes a product list (from which
some of the information in this document was taken) in various formats in 
sub-directory c++-products.



send mail with the text "send index" or "send index from C++"

The primary Simtel site is, but there are many mirror 
sites all over the world.

Current CUG Library Catalog

The CUG CD-ROM file listing offers the most comprehensive look at the
programming tools and utilities available from CUG. The complete
annotated listing (about 1 megabyte) is available through anonymous ftp
as follows: 

	ftp from
	in /pub/cdrom/cdroms/cug/capsule.txt
source-code newsgroups:  (e.g. usenet/comp.sources.reviewed archives the
        comp.sources.reviewed newsgroup).
Netlib:     email, ftp             email, xnetlib               email, xnetlib for Europe
           (e.g. send email to to access by email) is a mail server useful for Europe. ( in Australia

Libraries for which I don't know an ftp site
DCE++: A C++ API for Programming Distributed Systems

William Leddy, Arjun Khanna (
HaL Computer Systems, Austin, Texas.

DCE++ is a set of ANSI C++ classes that enable the rapid prototyping of
distributed programs. The goal of DCE++ is to provide a platform
independent C++ API to the significant components used in distributed
computing. Namely: RPC, threads, Security and Naming across the widely
used distributed computing platforms such as DCE, ONC and WNT. 

It is expected that by encapsulating platform dependencies inherent in
setting up rpcs, security etc. in DCE++ base classes, program development
time can be drastically reduced. Moreover, a foundation can be provided
for developing *portable* distributed program development tools. 

The second *evaluation* version of DCE++, version 0.4, has been released
on Dec 2'93. The release includes C++ bindings for remote procedure calls
over DCE and ONC. A C++ threads api for programming DCE threads. A C++
threads api for programming DCE distributed Time Service. The release is
available free of charge upon signing a very liberal license agreement. 

The license agreement is obtainable by anonymous ftp from It is
in the directory dce++. The same directory also contains the release
notes for the 0.4 version and plans for 0.5 features. To obtain the code,
please send the signed license agreement to: 

Arjun Khanna, FAX (U.S country code) 512-794-8737
GenTools: A Computational Genomic Tool Suite

The University of Texas System CHPC and collaborators are addressing the
problems of high performance platforms by developing GenTools, an
interactive, distributed, loosely integrated, set of tools for DNA and
protein sequence data analysis, phylogenetic analysis, and restriction
mapping which combines different algorithm implementations, machines, and
databases through a "bio-user" friendly set of graphical user interfaces.

	Sarah Barron
	GenTools Project Leader
	Computational Molecular Biology and Genetics Group
	University of Texas System Center for High Performance Computing
	Balcones Research Center, CMS 1.154
	10100 Burnet Road
	Austin, TX 78758-4497

	Bitnet:    s.barron@uthermes
	Voice:     (512)471-2434
	FAX:       (512)471-2445

Commercial libraries

SOFTPRO TOUCH-GUI C++ class library for OS/2:

SOFTPRO GmbH has announced its new 32bit C++ class library TOUCH-GUI 2.1
for OS/2 2.x. The product contains more than 140 classes which support
windows, menu bars, multi-threading, controls (including all OS/2 2.x
controls: slider, value set, notebook, container), dialog boxes, graphics,
printer control, MDI, DDE, Drag and Drop, loadable resources, and
management of profiles (.INI files). Other features include auxiliary
classes for data manipulation and storage management. Additionally, TOUCH-
GUI 2.1 contains high-level classes like formatted entry fields, tables,
and complete NLS. Furthermore, TOUCH-GUI 2.1 is fully integrated in STAR
CASE++, an OOA/OOD case tool (method: Coad/Yourdon), and Intersolv's PVCS
(a version control system).  

Supported C++ compilers are: Borland, GNU (emx), IBM, and WATCOM

The product includes online (.INF) and printed documentation, a demo
program, and samples. 

Planned availability: April, 1994

TOUCH-GUI 2.1 costs DM 1.720,00 excl. VAT (ca. US $990), the runtime
DLL's may be distributed royalty free. For upgrade prices and special
project licenses (including source code of TOUCH-GUI) contact the
supplier. NOTE: TOUCH-GUI 2.1 single license will be available at a
special price of DM 199,00 excl. VAT (ca. US $120) during 04/01/94 -
06/30/94. Printed documentation is not shipped with the special price
product, it is available for another DM 99,00 excl. VAT (ca. US $60).
However, full online documentation is included. 

	SOFTPRO GmbH, Stadtgrabenstr. 21, 
	D-71032 Boeblingen, 
	Tel.: +49 7031 6606-0 Mr. Frank Fuchs (extension -50)
	Fax: +49 7031 6606-66,

Persistence is supposed to give access to a relational database from 
a C++ object model.

	Persistence Software Inc
	1700 Sourth Amphlett Blvd, Suite 250
	San Mateo, Ca 94402
Tools.h++ is the basic Rogue Wave tools library.

Tools.h++ consists mostly of a large and rich set of concrete classes
that are usable in isolation and do not depend on other classes for their
implementation or semantics. 

Components include Collections, String processing, Time & date handling, File space
manager, B-Tree disk retrieval, bit vectors, virtual I/O streams, caching
managers, virtual arrays, etc. 


	Rogue Wave Software, Inc., 
	1325 NW 9th Street
	OR, 97330
	(503) 754-2311
	Fax: (503) 757-6650
Matrix.h++ includes all the functionality of Math.h++.  For example:
general matrices, vectors, statistics, complex numbers, Fast Forier
Transformation (FFT's), etc.  Matrix.h++ adds specialized matrix classes
such as banded, symmetric, positive-definite, Hermitian, tridiagonal, etc.
Because Matrix.h++ includes Math.h++, it can take advantage of
Math.h++'s highly optimized low-level assembly routines, making it fast
as well as graceful.

Prices range from $199 to $995


	Rogue Wave Software, Inc., 
	1325 NW 9th Street
	OR, 97330
	(503) 754-2311
	Fax: (503) 757-6650
Linpack.h++ is the jewel of C++ math classes.  Linpack.h++ includes all
of Matrix.h++, plus all of the functionality in the original and well-
established Fortran version; including solutions of systems of equations
for a variety of matrix types, solutions of over- and under-determined
systems of equations, incremental least squares solvers, etc.  But,
Linpack.h++ is a tru object-oriented library, not just a C version that
compiles under C++:  the traditional messiness of the Fortran version has
been replaced with high-level, yet efficient, objects that make code far
easier to write and maintain.

Prices range from $299 to $1195


	Rogue Wave Software, Inc., 
	1325 NW 9th Street
	OR, 97330
	(503) 754-2311
	Fax: (503) 757-6650

In addition to Rogue Wave, Empathy offers a good general-purpose
library called Classix.  

I do not have confirmed information, but I have been told that this 
library is no longer available.

USL (UNIX System Laboratories Europe Ltd.)

USL C++ Standard Components include :

Args - argc/argv command line parser.
Bits - bit manipulation to arbitrary-length bitstrings.
Blocks - dynamic arrays.
Array - efficient algorithms for searching, sorting, inserting etc.
Fsm - state machines
Graphs - maintain arbitrary relationships between arbitrary entities.
Graph Algorithms - including searching, cycle and component detection.
ipcstream - inter-process streams.
Lists - doubly-linked lists.
Maps - like arrays, except that the subscripts can be non-integral.
Objections - like UNIX software signals.
Path - facilities for manipulating UNIX path names and UNIX search paths.
Pools - optimise memory allocation.
Regex - regular expressions.
Sets - including Sets, Bags, and pointer sets.
Stopwatch - for timing critical sections of code
Strings - variable-length character strings.
Strstream - iostreams for Strings.
Symbol - efficient symbol table handling & sorting.
Time - Time, Duration (time difference) and Place (geographical location).

Also included are the following tools :

c++filt  - demangles C++ names in standard input.
dem  - demangles C++ names in an argument list.
demangle  - demangles C++ names in a.out for easier debugging.
fs  - a tool and library to help find freestore bugs.
g2++comp  - compiles G2++ record definitions.
hier  - displays the inheritance hierarchy in a program.
incl  - displays the hierarchy of include files used in a program.
publik  - displays the public interface of a class.

	UNIX System Laboratories, Inc.
	190 River Rd.
	N.J, 07901
	Tel: +1 800-828-UNIX
	     +1 908-522-6000

	UNIX System Laboratories Europe Ltd.
	International House
	Ealing Broadway
	London W5 5DB
	Tel: +11-44-81-567-7711

	UNIX System Laboratories Pacific Ltd.
	BR Shiba 1 Bldg. 2-3-18
	Shiba Minato-ku
	Tokyo 105
	Tel: +81-3-5484-8601
Booch Components

Rational markets the C++ Booch objects which are a somewhat bizarre,
but possibly quite innovative, set of library objects.

It appears quite complete (unless you have some specific, uncommon
needs); Booch may have an edge in supporting concurrency. USL may have
more installations and greater maturity.

	Rational OO products
StarView - A Portable C++ Class Library for Graphical User Interfaces

StarView is a portable C++ Class Library for Graphical User Interfaces.
StarView is one of the major parts of our total Object Oriented
programming environment (we call it SOLAR system). 

-   portability between the operating systems MS-DOS, OS/2, Macintosh
    and different UNIX flavours
-   at  least portable between  the  GUI's MS-WINDOWS, MS-Presentation
    Manager, MacApp and OSF/Motif
-   fulfillment of the requirements of the different GUI Style
-   data  exchange and direct communication between the applications in
    homogeneous and heterogeneous networks (groupware approach)

StarView will support the following GUI's / Compilers:

Windows 3.x
        Borland C++
        Zortech C++

Presentation Manager
        Zortech C++

OSF Motif
        Sun C++
        Zortech C++
        Glockenspiel C++

        MPW C++

Author:     Andreas Meyer, STAR DIVISION

	Andreas Jahnke
	Sachsenfeld 4
	D-20097 Hamburg

	Phone: ++49 40 23646 500
	Fax:   ++49 40 23646 550

	Star Division
	2180 Sand Hill Road, Suite 320
	Menlo Park, CA 94025
	(800) 888-8527
	(415) 233-0142 (fax)

Open Dialogue

MacApp (application development toolkit)

ICpak101, ICpak201

NeXTStep (application development toolkit)

CommonView (Iconic user interface)

CommonView Glockenspiel

This is a C++ UI library. In addition, it comes with container classes.
The down-side is that some of the features are not supported across all

	Computer Associates International
	One CA Plaza
	Islandia, NY 11788
	(516) 342-2308
	(516) 342-6947 (fax)

This is a C UI library, but it's written in an object-oriented style and
is type safe for C++ use. The package includes a WYSIWYG GUI builder. 

The tools are, reportedly, pretty full-featured. User-interface items
have extensive abstraction (for example, they have a confirmation-type
dialog that resolves to a push-pin and 'apply' button under openlook, but
'ok', 'apply', 'cancel' buttons under motif). Objects can be positioned
relative to each other (rather than merely absolute position on the
screen). Also, errors are handled with an abstract exception handling
framework. They support internationalization of fonts (at least Japanese),
money, and data formatting. 

Some extra-cool features include memory leak detection and C-language
objects for text (multi-styled, multi-font text with embedded graphics),
list (spreadsheet-like for handling up to 2^31 x 2^31 cells with
customizable displays), and graphics processing. 

	11440 Commerce Park Drive
	Reston, Virginia 22091
	(800) 832-8668
	(703) 758-2711

This is a C-language UI library, but they're type-safe for C++
compatibility. The package includes a GUI builder and an event occurrence

Additional features in the library includes support for international
character sets, portable file system support and nifty C-language classes
for pie-charts, 3d bars, x-y plots, and the like. 

    Graphic Modeling        $995
    Oracle Database Bridge  $395
    ODBC Database Access    $495

	1710 S. Amphlett
	2nd Fl.
	San Mateo, California 94402
	(415) 513-6650
	(415) 349-4908 (fax)

	Machine Independent Software

I believe this is a commercial version of InterViews.

	Quest Windows
Open Interface Version 3.0

This is a C-based UI library, but type-safe for C++ compatibility. The
software also comes with a WYSIWYG GUI builder. 

They include tons of extra widgets like business graphics (bar, pie, and
line charts), images (all standard formats), and hypertext help. 

Other software in Open Interface includes international character support,
multi-font support, full printer support, memory management, file I/O
support as well as Windows DDE support (the latter is, of course, non-

They also have a product called Nexpertobject, which is an expert systems
tool intended for GUI development. 

	Neuron Data
	156 University Avenue,
	Palo Alto, California 94301
	(800) 876-4900
	(415) 321-4488

	Bristol Software

	1550 8th Street S.W. Suite 305
	Calgary, Alberta Canada T2R 1K1
	(403) 244-0995
XVT Portability Toolkit

This is a C-language library of functions (although, you can pay extra
for C++). They have a WYSIWYG GUI builder, but they charge for that, too.

    C++ capability                      $200
    XVT-Design (a WYSIWYG GUI builder)  $1200 ($2900 for non-PC UNIX)
    Source Code                         (call)

	XVT Software Incorporated
	4900 Pearl East Circle
	Box 18750
	Boulder, CO 80308
	(800) 678-7988
	(303) 443-4223 (phone)
	(303) 443-0969 (fax)
zApp V2.0

This is a full C++ class library.

This product contains 200 classes to provide things like DDE support (non-
portable), printer support, logical positioning (top, bottom, etc) of
window items, and true-type font support. Included in their package is 75
pre-defined forms (as well as the usual examples). 

The software comes with zApp Programmer's Guide (330 pages) and zApp
Programmer's Reference (890 pages). 

    Object/Designer $499 (is this a GUI builder?)

	2065 Landings Drive,
	Mountainview, CA 94043
	(800) 3-inmark
	(415) 691-9000
	(415) 691-9099 (fax)
Zinc V3.5

This is a full C++ class library that comes with the Zinc Designer (a
WYSIWYG GUI builder). Their classes include some graphic capabilities, a
rather nice error system, and a portable, if rudimentary, help system.
Also included is the source for the library (and for the Designer!). 

In addition to the usual GUI stuff, Zinc also provides international
character support (an extended version, for extra bux, is in the works),
some container classes, and filesystem portability. They also allow you
to incorporate platform-specific stuff (e.g., system messages) into their
API; but, of course, you're on your own when it comes to porting any

	ZINC Software Incorporated
	405 South 100 East 2nd Floor
	Pleasant Grove, UT 84062
	(800) 638 8665
	(801) 785-8900
	(801) 785-8996 (fax)
	(801) 785-8997 (bbs)
Software Transformation has a cross-platform product which was designed
from the ground up for commercial ISVs, not just MIS shops, and the
technology is supposed to blow away XVT. 

	Software Transformation
OpenUI is another GUI builder

This interface supports C, Pascal, and (ish) COBOL.

	Open Software Associates
	P.O. Box 3599
	Sunnyvale, CA 94088-3599
	(408) 730-2626
NetClasses++, C++ classes for message passing environments:

NetClasses is a set of C++ class libraries that is organized as an object-
oriented software toolkit for distributed, message-passing based

Facilities include :

Transporting objects over a network. NetClasses can transport: Arbitrary
C++ objects derived from PostModern's TransObject class, arbitrary NIH-
derived objects, and NetClasses Typed Objects. 

NetClasses Typed Objects provide an object-oriented data transport in
which the structure and organization of objects is specified externally
in configurable files using a simple, programming language independent
abstract syntax notation, the NetClasses Abstract Syntax Notation (NASN).

Remote method invocations (RMI). Using RMI, an application on machine B
can invoke a method on machine A. RMI makes fault tolerance and
connection management transparent to the application programmer. The RMI
layer is built on top of the distributed services package that is
described below. 

Reading and writeing all three varieties of NetClasses-transportable
objects on streams using machine-independent external representations. 

Currently available on Sun SPARC; currently testing on HP workstations.

NetClasses Development License          $1995
NetClasses Runtime License               $495
NetClasses Source Code License          $7995
(includes 3 runtime licenses)
NetClasses training class               $2000
NetClasses consulting and porting services (ask for quote)

	Qualix Group
	1900 S. Norfolk St. Suite 224
	San Mateo, CA 94403
	1-800-245-UNIX (voice)
	(415) 572-1300 (fax)
	(415) 572-0200 (voice)

This is a C library, though they're type safe for C++ compatibility. A
GUI builder is provided with the library. They're coming out with a C++
class library soon. 

	OPEN Inc.
	655 Southpointe Court, Suite 200
	Colorado Springs, CO 80906
	(719)527-9700 (sales, customer service, tech support)
	(719)576-3835 (fax)

This is a C++ library based on the smalltalk model (all classes come from
one superclass, and they have a smalltalk-like class browser). They do
not have a WYSIWYG GUI builder. 

Additional features include various container classes.

	Liant Software Corp.
	959 Concord St.,
	Framingham, MA 01701 USA
	(800) 237-1873
	(508) 875-2246.
Presentation Services Manager UI library

No WYSIWYG GUI builder exists, but they do include a script language. 

	Lancorp Pty Ltd
	33 Nott St
	Port Melbourne 3207
	+61 3 646 7100 (phone)
	+61 3 646 8610 (fax)
ILOG RULES is a high performance embeddable rule-based inference
engine. It is a forward chaining tool, written in C++ (hence it is
object-oriented and supports inheritance mechanisms) and is also
provided as a C++ library. 

It runs virtually on any Unix platform (e.g., HP97X0, Sun4, RS/6000,
DecStations) as well as on PCs running DOS (with or without MS/Windows)
or OS/2. 

It extends OPS/5 with nested premises (objects as values), rule packets
(logical grouping of rules), a full Truth Maintenance System (TMS) for
efficient non-monotonic reasoning, compilation of rules into C/C++ code,
and an object oriented data-model in C++. ILOG RULES work directly on
user objects, so interfacing is straightforward. C/C++ code may be
included in rule conditions and actions. ILOG RULES is based on the fast
XRETE implementation of the RETE algorithm developed by Thomson-CSF. 

	ILOG, Inc., 
	2073 Landings Drive, 
	Mountain View, 
	CA 94043, 
	tel 415-390-9000, 
	fax 415-390-0946, 

European customers should contact 
	2, av. Gallieni, 
	BP 85, 
	94253 Gentilly CEDEX, 
	tel +33 (1) 46-63-66-66, 
	fax +33 (1) 46-63-15-82, 
ImageSoft's Object/Engineering C++ class library supports simulation.

The library provides a natural approach to solving discrete-event
simulation problems. Modularity is reinforced by implementing the
process objects as concurrent tasks. Support is provided for dynamic
systems; transaction operators; transaction messages; as well as
queuing network thread with polymorphic scheduler (timer for
discrete-event simulation; tracer for simulation run; processes
in discrete-event simulation with services delay;
conventional/unconditional blocking, pre-emption, etc.;
shared queues/links in network with LIFO, FIFO & arbitrary
queuing discipline; producing node and source; consuming node
and sink; generic queuing network nodes and servers.

And full source code is provided together with extensive
documentation, examples and tutorial. There are also an
enourmous number of other class libraries included with
source that are of interest to the scientific and engineering community.

	ImageSoft Inc.
	2 Haven Avenue
	Port Washington, NY 11050
	(516) 767-2233
	(516) 767-9067 (Fax)
	(516) 767-9074 (BBS)
	email: mcdhup!image!object
POET : Object Oriented Database

POET runs on the SPARC, NeXT, DOS, MS-Windows, Novell, OS/2, and
Macintosh. Other ports are in the works. Pricing starts at about $500. 00
for the DOS version, to a little over $1000.00 for the Unix versions. 

	BKS Software
	One Kendall Square
	Suite 2200
	Cambridge, MA 02139
	Phone: 617 / 621 7047
	Fax:   617 / 621 7097

In Germany : BKS Software
             Guerickestr. 27 
             1000 Berlin 10
             Phone: +49 30 / 342 3066
             Fax:   +49 30 / 342 8413

	BKS Software
	4633 Old Ironsides Drive
	Suite 110
	Santa Clara, CA 95054
	Tel:	408 / 748 - 3403
	Fax:	408 / 748 - 9060

European Office:
	BKS Software
	Fo_redder 12
	2000 Hamburg 67
	Tel:	+49 40 / 60 99 011
	Fax:	+49 40 / 60 39 851

UK Office:
	Silicon River, Ltd.
	106-108 Powis Street
	London, SE18 6LU
	Tel:	+44 81 / 317 7777
	Fax:	+44 81 / 316 7778
	BBS:	+44 81 / 317 2310
ORION/ITASCA - Object Oriented Database

	Itasca Systems, Inc.  
	2850 Metro Drive
	Suite 300
	Minneapolis, MN  55425
	Tel: 612-851-3158
	Fax: 612 851 3157

A slightly different address from another poster ...

	Itasca Systems, Inc.
	7850 Metro Parkway
	Minneapolis, Minn 55425 
	Tel: (612) 851-3155
	Technical Contact : Doug Barry (
OS Object Oriented Database

	O2 technology
	Suite 2200
	1 Kendall Square
	Cambridge MA 02139
	Tel: +1 617 621 7041
	Fax: +1 617 577 1209

France : 
	O2 Technology
	7, Rue du Parc de Clagny
	78035 Versailles Cedex
	Tel: +33 1 30 84 77 91
	Fax: +33 1 30 84 77 90
	Contact: Didier Plateau
G-BASE/GTX (MATISSE) Object Oriented Database

	ODB, an Intellitic Intl Co.
	238 Broadway
	Cambridge, MA 02139
	phone: 	(617) 354-4220
	fax:	(617) 547-5420
	Contact: Christina Bernard, Marketing and Communications
OBJECTSTORE Object Oriented Database

email address for their distributor in France:

	Object Design
	Main office	 		 California address
	One New England Executive Park	 101 El Camino Real, Suite 300
	Burlington, MA  01803		 Menlo Park, CA 94025
	Tel: 617-270-9797              (415) 327 - 5191
	Fax: 617-270-3509

UK Office:
	Object Design (UK) Ltd.
	604 Delta Business Park
	Welton Road
	Wiltshire SN5 7XP
	44-793-491177 (fax)
Objectivity/DB Object Oriented Database

Objectivity/DB runs on the SPARC, as well as all sun platforms, all dec
platorms (and operating systems), hp 9000 series (68k and risc), ibm risc,
sgi, and some others, all in a mixed fully distributed and heterogeneous

Objectivity Inc.
	West coast                      East coast
	800 El Camino Real		67 South Bedford Street
	Fourth Floor			Suite 400W
	Menlo Park, CA  94025		Burlington, MA 01803
	Tel: 415-688-8000		Tel: 617 229 5817
	Fax: 415-325-0939		Fax: 617 272 0558

	11050 Strathmore Dr., #316/300B
	Los Angeles, CA  90024
	(310) 208-6117
	(310) 208-5677 fax

	European General Manager : Remy Malan (

For Germany:
	Dr. Matthias Frei
	Micram Microelectronic GmbH & Co. KG
	Universitatsstrabe 142
	4630  Bochum
	ph:	+49  234  97 08-304
	fax:	+49  234  97 08-301

For Sweden, Norway, Finland and Denmark:
	Mr. Kjell Hegerin
	Norsys Technology AB
	Finlandsgatan 12
	Box 1239
	S-164 28 Kista
	phone:	+46 8 750 75 75
	fax:	+46 8 703 92 72

For The United Kingdom:

	Valbecc Object Technology Ltd.
	115 Wilmslow Road
	Handforth, Wilmslow
	Cheshire  SK9 3ER
	United Kingdom
	contact:	Fred Peel
	ph:	+44  625  539903
	fax:	+44  625  539905
ONTOS Object Oriented Database

	Ontologic, Inc.
	Three Burlington Woods
	Burlington, MA  01803
	Tel: 617-272-7110
	Fax: 617-272-8101 

UK distributor:
	Mr. Fred Peel
	115 Wilmslow Road
	Wilmslow, SK9 3ER 
	tel +44 625 539 903
	fax +44 625 539 905
KALA Object Oriented Database

Kala(tm) is a Persistent Data Server managing distributed, shared,
arbitrarily complex and evolving persistent data. Kala is highly
efficient and secure. Kala manages the visibility of persistent data
elements to its clients, thus supporting any types of transactions,
versions, access control, security, configurations. Kala does not
restrict you to any particular model. Kala provides the mechanism, but
imposes no policy.

o Kala is available now on Sun platforms (SunOS / 68K & SPARC). A
  80x86/DOS version is now available to alpha and early beta sites.
  Ports to Windows and MacOS are also likely in the near future. Any
  port is possible as NRE.
o Kala's interface is ANSI C, also callable from C++.

	Penobscot Development Corporation
	50 Princeton Road
	Arlington, MA 02174-8253
	Tel: +1-617-646-7935
	Fax: +1-617-646-5753
	Contact: Sergiu S. Simmel
IDB Object Databases

	Persistent Data Systems
	P.O. box 38415
	Pittsburgh, PA 15238-9929
	Tel: 412-963-1846
	Fax: 412-963-1843
GEMSTONE Object Oriented Database

Briefly, GemStone is a full featured OODBMS with transaction control,
multiple users, multiple platforms supported, client server architecture,
active objects (ie, behavior can occur in the database as well as in the 
application using it), multiple language support, etc.

GemStone is actually quite a bit more than just a data repository - it is a
full-fledged DBMS that is pure OO. You can access the same database just as
easily from C, C++, or SmallTalk, or you can build entire database
applications inside the database server, because it is an active server
that runs methods written in our DML, OPAL, which is a dialect of
SmallTalk. There are also high-level tools to aid application building.

	Servio Corporation
	950 Marina Village Parkway
	Suite 110
	Alameda CA 94501
	Tel: 510-814-6200
	Tel: 800-243-9369
	Fax: 510-814-6227
	Contact :

UK Office:
	Servio-UK Ltd
	Criterion House
	Beauchamp Court
	Victors Way
	EN5 5TZ
	Tel: (81) 447-0800
VERSANT Object Oriented Database

Versant markets a full-function OODBMS together with associated DBA and
application developer tools. Versant is currently available on Sun-3, Sun-4, 
IBM RS/6000, HP 9000/400,700, DEC Ultrix, SGI, NCR, NeXT and Sequent platforms. 
An OS/2 port has just been released. Other platforms will be announced soon.
A Windows/NT port is in progress.

Interfaces to 'C', 'C++' and Smalltalk-80 are supported.

	Versant Object Technology
	4500 Bohannon Drive
	Suite 200
	Menlo Park, CA  94025
	Attn: Mike Mooney
	Tel: 1-800-VERSANT
	Tel: (415) 329-7500
	Fax: (415) 325-2380
	Tel: 415-325-2300
	Fax: 415-325-2380
	Contact: Mary Foussourier,

European Office:
	Versant Europe
	Siriusdreet 2
	P.O. Box 333
	2130 All Hoofddrop
	The Netherlands
	Tel: (31) 2503-66373
	Tel: +31 - (0)2503 - 66851
	Fax: +31 - (0)2503 - 66855

UK Distributor:
	Admiral Software Ltd
	Admiral House
	193-199 London Road
	Surrey GU15 3JT.
	Tel: 0276 692269
	Contact: Kevin Adams
	Contact: Clive Harris

M++ isn't as well known as the RogueWave math.h++ libraries, but it has
been around longer. It has a number of features that distinguish it from
the RogueWave classes, notably improved handling of temporaries. 

M++ was explicitly designed to provide the functionality of an array
language like Matlab or Gauss and it contains the Linpack, Eispack stuff
found in RogueWave's Linpack.h++. 

Dyad Software, also sell modules written in M++ for doing statistical
work, including linear and nonlinear least squares estimation, as well as
optimization, numerical integration, and differential equations. 

	Dyad Software
	6947 Coal Creek Pkwy, Suite 361
	Renton, WA 98059-3159
	206-637-9426 (voice)
	206-637-9428 (fax)
	206-271-9486 (bbs)
Financial and other class libraries

I have no product details at present)

	Greenleaf Software, Inc.
	16479 Dallas Parkway, Suite 570
	Texas 75248

Other Commercial sources of C++ code
The USL UNIX Toolchest is an electronic catalog for browsing and ordering
source software. This catalog provides unsupported software products,
developed within AT&T, for the commercial UNIX world. As you browse
through the online catalog, you'll find descriptions of all the tools,
complete with information on memory and disk requirements, documentation,
and license fees. 

United States and Canada, may access the Toolchest by dialing 1-908-522-
9600(e-7-1) and logging in as "guest". 
Checkout the ISCL CD ROM from ImageSoft, it contains the largest
collection of C++ source code ever compiled in one place. It's available
from ImageSoft ... 

	ImageSoft Inc.
	2 Haven Avenue
	Port Washington, NY 11050
	(516) 767-2233
	(516) 767-9067 (fax)
	(516) 767-9074 (bbs)
	email: mcdhup!image!iscl
This is not a code CD but it has many libraries & some code (all msdos)
brought together into a CD. 

	EMS Professional Software, Specialized Software Libraries
	Baker Enterprises
	20 Ferro Drive
	Sewell, NJ 08080
	Fax: 609-582-9204

Other places to look for details of C++ libraries
The index of resources for numerical computation in C or C++.
ftp from in pub/C-numanal/numcomp-free-c.gz
comp.object FAQ
--------------------------------------------------------- portable-GUI-software FAQ
--------------------------------------------------------- /pub/programming/languages/C++/c++-products/*
ASSET is currently populating a national directory of reusable
software assets, the National Software Reuse Directory (NSRD).  The
concept is to provide a type of 'card catalogue' containing descriptions
of reusable software work products and services.

For more information on supplying listings for the NSRD, please
contact or send information to:

	National Software Reuse Directory
	c/o ASSET
	2611 Cranberry Square
	Morgantown, WV 26505
	voice: (304) 594-9827

For more information on obtaining an ASSET account and accessing the
NSRD, please contact:

	ASSET Account Manager
	2611 Cranberry Square
	Morgantown, WV 26505
	voice: (304) 594-1762
Nikki Locke,Trumphurst Ltd.(PC & Unix consultancy) is NOT affiliated with ANY other sites at