Available C++ libraries FAQ (3/6)

Contents


Libraries available via FTP (M-Z)

MatClass - a C++ class for numerical computation

Very complete. Documents : Very thorough tex manual, with discussion of design philosophy. Currently the manual does not cover all the features of the I/O.

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


MATCOM - Matlab to C++ translator and matrix library

MATCOM V2 translates Matlab source files (M-Files) to C++ source code. The resulting code is linked with the supplied C++ Matrix class library to create MEX files or stand alone executables.

The C++ code and library can be integrated in products, royalty free, saving the need to translate the algorithm prototype.

Compiled code runs significantly faster than the original interpreted source.

Source code created highly resembles the original code using C++ language features. The compilation is fully automated by a smart project manager.

Matrices of doubles, floats, ints and chars are supported, providing lower memory usage for many applications, especially Signal and Image Processing.

Evaluation version (fully functional, 30 days limited) is available for free download from the Web page. Information packet is also available by e-mail and fax.

An introductory price for MATCOM V2 is 300$ for a single user license, with discounts on quantity and for academic institutes. Prices are valid until Jan 1, 1997.

Operating Systems

Compilers

Added : 05/02/96 Amended : 08/08/96 Licencing : Commercial

Matrix - A C++ Matrix class

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

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


Matthew's Galib - A C++ Genetic Algorithm Library

GAlib is a C++ library that contains a set of genetic algorithm objects. With GAlib you can add genetic algorithm optimization techniques to your program using any data representation and many different genetic algorithm operators. The library includes genomes based upon binary string, array, tree, and list data structures, and you can create your own genomes by simply deriving a new class from the base genome and any data structure that you may be using already. Many scaling, selection, termination, initialization, mutation, and crossover methods are included in the library, and you can override any of the defaults with operators.of your own design.

Operating Systems

Compilers

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

MetaKit - A portable C++ class library for persistent structured data

Store and retrieve structured data. Features: on-demand loading, failsafe commit/rollback, portable and streamable data files, simple API in a few C++ classes.

Comes with hypertext intro, many source code examples including disk catalog and Winsock client/server, and Winhelp API reference guide. No royalties. Link as DLL or LIB, Win32/Win16/Dos libs included. The shareware version is only for Windows and MFC.

Registered users can obtain all library versions, including debug versions, and will be notified of new revisions and updates. Full web/email/fax support.

MetaKit is freely distributable as shareware. It must be registered after the 30-day trial period: US$ 25 for personal/non-profit use. For all other purposes the source code version must be purchased (Windows/MFC $90, all others: Universal $165).

Operating Systems

Compilers

Added : 22/03/96 Amended : 14/11/96 Licencing : Shareware

MIME++ - A class library for creating and parsing messages in MIME format

Features MIME++ should compile with just about any C++ compiler. The system-dependent features, which are few, are oriented toward UNIX systems.

Operating Systems

Compilers

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

molbio++ - A C++ library for molecular biosequence analysis

Major features include: Alex Lin has reported both of the ftp sites unavailable. Further information welcome.

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


Motif++ - 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:

Operating Systems

Compilers

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

MTL110JE.ZIP - Multithreading class library

DOS PC/Borland C++ specific.

Operating Systems

Compilers

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

Newmat - A very thorough matrix class

This library supports classes Matrix, UpperTriangularMatrix, LowerTriangularMatrix, DiagonalMatrix, SymmetricMatrix, BandMatrix, UpperBandMatrix, LowerBandMatrix, SymmetricBandMatrix, RowVector, ColumnVector. Only one element type is supported. It includes the operations *, +, -, concatenation, elementwise product, inverse, transpose, conversion between types, submatrix, determinant, Cholesky decomposition, QR triangularisation, singular value decomposition, symmetric eigenvalue analysis, fast Fourier transform, sort, print, an interface to "Numerical Recipes in C" programs, and an emulation of exceptions.

Compilers

Added : 01/01/95 Amended : 30/07/96 Licencing : Copyrighted freeware

NIHCL - (National Institute of Health's C++ Library)

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

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


nlmdl - A library for estimation of nonlinear models

Nonlinear maximisation, estimation, includes a real matrix class

Operating Systems

Compilers

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

O-Matrix - RAD environment for scientific and engineering applications

Harmonic Software has released O-Matrix 3.1 for Windows, a RAD environment (Rapid Application Development), for scientific and engineering applications. The new version of O-Matrix includes extensive capabilities for developing visually-oriented, easy-to-use technical applications. This enables the development of user-friendly applications significantly faster than traditional visually-oriented compilers and with performance that is dramatically faster than typical interpreted matrix languages. In addition O-Matrix version 3.1 includes an improved user interface for more productive application development and simplified interactive usage. Many functions have been added including routines for Kalman filtering, wavelet analysis and advanced statistics.

Operating Systems

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

OATH - Object oriented Abstract Type Hierarchy

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

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


Objtran and Objdce

Objtran is a set of C++ class libraries that provide a higher-level abstraction for programmers developing applications using OSF's DCE and Transarc's Encina. Objtran actually consists of two separate libraries -- Objdce and Objtran.

Objdce makes it easier to write DCE applications by abstracting some of the more complex aspects of DCE. A class is included that can manage an RPC server, interacting with the DCE Name Service and Security Service as desired. Another class manages a client's binding to a server and encapsulates Name Service lookups. Other classes allow the programmer to use threads and various forms of mutual-exclusion locks, report errors consistently, utilize Access Control Lists, handle timestamps from the DCE Time Service, and perform UUID manipulation.

Objtran is built on top of Objdce, and adds support for the Encina distributed transaction service. It is intended to be used with C++ programs instead of the "Transactional C" macro package. It fully encapsulates the Encina TRAN and TRPC facilities with a few easy-to-use classes. It also provides an efficient recovery service for proper control of distributed transactions, and has support for the TM/XA service, allowing interoperability with XA-compliant databases. Support for the Encina Monitor is being implemented so programs may, with very few code changes, use either the smaller and more efficient bare Objtran environment or the more sophisticated Monitor.

This software is Copyright 1993-1994 by Citibank, N.A. Permission is granted to use, copy, modify and distribute the software and its documentation without fee. The software is distributed with no warranty of any kind.

Added : 01/01/95 Amended : 01/01/95 Licencing : Copyrighted freeware


OBST - Persistent object management system

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

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 stone@fzi.de.

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


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.

Operating Systems

Compilers

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

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.

Operating Systems

Compilers

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

ooMPEG - Berkeley MPEG decoder

A reentrant, multi-threaded version of the Berkeley MPEG decoder

Operating Systems

Added : 05/02/96 Amended : 05/02/96 Licencing : Non commercial

Options - command-line option parsing library

Options is a full-featured C++ class library for parsing options on the command-line. It uses the getopt() style of option parsing but provides a lot more features and has configurable behavior.es.

Operating Systems

Compilers

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

OSE - C++ Library and Build Environment

OSE is a development environment for C/C++ programmers. The major components of OSE are a generic C++ class library, documentation tools and build environment. The C++ class library includes support for error handling, error message logging, error recovery, program debugging, memory management, resource management, object containment, strings and symbols, pattern matching, operating system interfacing, simulation and event driven systems. OSE can be used with all major C++ compilers and UNIX platforms as well as Windows NT and Windows 95. OSE has been integrated for use with the ObjectStore OODBMS from Object Design.

OSE was a winner at CODA '94, the ComputerWorld Object Developer Awards, held in conjunc! tion with ObjectWorld in Sydney, Australia. The category in which OSE was successful was "Best implementation of a reuseable development environment for company deployment".

Operating Systems

Compilers

Added : 22/05/96 Amended : 22/05/96 Licencing : Copyright (other)

P++ - Parallel Programming Classes for C++

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


paintlib - Image file decoding

Paintlib is a C++ class library for image file decoding and manipulation. It currently supports the TGA, TIFF, JPEG/JFIF, Windows BMP, and Mac PICT formats. Data source and destination formats can be tailored as nessesary. Additionally, format-independent but fast bitmap manipulation classes are available.

Although there are a few Windows-specific functions, the library is portable. Makefiles are included for Microsoft Visual C++ (Win32) and GNU C++ (DOS and SunOS). Prerequisite is a C++-compiler with standard C libraries and support for exception handling. The library also requires support for 32-bit memory addressing.

Operating Systems

Compilers

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

ParLib++ - Parallel Programming Classes for C++:

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


PARODY - C++ DATABASE LIBRARY

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.

Operating Systems

Compilers

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

pC++ - A preprocessor for C++ that implements a data parallel extension

Operating Systems

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

PDBlib - Library for modeling a macromolecular structure

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.

The following files are available :

Operating Systems

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : Copyright (other)

Presto - C++ routines for lightweight threads on multiprocessors.

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

Operating Systems

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

Radix-2 - Fast Fourier Transform

Radix-2 DFT of a real or complex sequence, or sin/cos/complex Fourier integral of an evenly tabulated function.

The input can be either real or complex with/without zero padding, the full complex transform or only real/im/abs_value part of it can be obtained.

Test drivers and test run outputs are included, too. Commented.

Needs LinAlg.shar, v3.2

Operating Systems

Compilers

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

Range - C++ class for range arithmetic.

Associated with article in TOMS, Dec 1992 title "Precise computation using range arithmetic, via C++".

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


RTTI implementation

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


RTTI library

Till RTTI becomes a part of regular compilers these RTTI libraries provide an excellent tool for the same purpose.

The library is claimed to be portable. No licence restrictions.

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


SA - Library for simulated annealing

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


Sdeint

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

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


SESAME - Neural net software ?

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


simC - C/C++ function library for discrete simulation

SimC is a function library for C/C++, providing support facilities for discrete and combined discrete-continuous simulation including set operations and data collection.

Operating Systems

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

SIMEX - Helps develop discrete-event simulation models

Provides classes that help a user develop discrete-event simulation models, with an emphasis on epidemiology and biology.

Classes for random number generation, event and process management, user interface (commandline arguments, TTY, or Tcl/TK), aggregate statistics, basic data structures (list, strings, weighted ordered sets). Many examples.

Operating Systems

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : Copyrighted freeware

Simpack - Tools for writing simulations with a EECS bias

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


SMURPH - A C++ library which could be useful for building a network simulator

It comes with extensive documentation and examples.

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


SOCKET++ - C++ iostream like library for sockets and pipes

Filename is socket++-XX.tar.gz (XX - version no).

ameasures@cix.compulink.co.uk (Alastair Measures) reports :-

An archie search (Imperial archie server) yielded the following:

Have excluded the RPM based files from this list. In the actual event I found the latest edition seemed to be 1.11 which didn't seem too keen to clean compile on this 'ere RedHat4.0 Linux.... Having installed an RPM I found the documentation a bit faulty ... so back to the C API�

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


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

File names are splashxxx.tar.Z or splashxxx.zip where xxx is the version number, currently 190 (for version 1.90). Also look for updates in the same directory.

Operating Systems

Added : 01/01/95 Amended : 19/03/97 Licencing : Public Domain

td.lib - C/C++ Programmers time, date, and cal lib (adtd)

td.lib v2 is a small time and date library for C/C++ programmers. It contains practical time and date functions that overcome the limitations of the ANSI standard functions that ship with Borland, and Microsoft C++ compilers. Unlike the standard functions, td.lib allows the programmer to perform a variety of calculations using dates and times from Jan. 1, 1 A.D. to Dec. 31, 32766 and the ability to format and print the output of such calculations using ANSI format specifiers. Designed with the beginning programmer in mind, td.lib is easy to use and simplifies the process of coding time/date routines. The library is fully ANSI compliant and can be used with any standard C/C++ compiler. The source is freely available (mail the author).

Special requirements: IBM compatible 386 PC.

Operating Systems

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

Texas Persistant Store

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

Operating Systems

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

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.

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


TSR100JE.ZIP - TSR class library

DOS PC/Borland C++ specific.

Operating Systems

Compilers

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

Types 1.0

Types is a Shareware library used to support the creation of reusable software components in C++.

Full source code and documentation and examples are included.

Types provides:Garbage Collector,recursive data estructures,encode and decode of polymorfic objects,encode and decoding to and from files or memory using external or local data representation, exceptions,...

Types also include some classes implemented using types a double linked list, stack, btree, storage class, string and others.

You can use and XDR representation for encode and decode objects this feature enable your data to be ported to other plataforms.

Operating Systems

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : Shareware

Unibase Framework - toolkit designed to simplify network programming

The UniBase Framework is a platform-independent toolkit designed to simplify network programming. You use standard iostream-derived communication streams with standard io operators, instead of messy connect() and listen() calls. You can leverage on ALL the code you already have using standard fstreams and iostreams with little or no modification and make your program NETWORKED today!

Unix versions due soon.

Free for any purpose, with little requirements (see details at the downloading home page listed below).

Operating Systems

Compilers

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

Unidraw - A graphical editor building library

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

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


valarray<Troy>

Attempts at providing the functionality described in Chapter 26 of the draft C++ standard. None of the releases stick perfectly to the specifications of the proposed standard. Version 2.0 is a very deliberate step away from the draft as released in April 1995 for public comments in the USA: it is used as a proof of concept to support a revision of the original specs.

Some characteristics:

Operating Systems

Compilers

Added : 01/01/95 Amended : 22/05/96 Licencing : Non commercial

wxWindows - C++ class library for building Motif, Open Look, Windows 3.1 and NT applications

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, Edinburgh, Scotland, EH1 1HN, TEL: 031 650 2746

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


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.

Operating Systems

Compilers

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

XRLCAD - CXrL CAD toolset

This package contains a C++ class library to manipulate Structure (as in Calma/CIF) hierarchies. There is also loaders for CIF and Calma, as well as output drivers for these formats. A bunch of demo programs are included which I wrote when I was testing the library, and these programs turned out be quite useful tools.

The library is still in its infancy, but it's reasonably solid; in a few months I'll take another look at it and probably overhaul it.

Operating Systems

Compilers

Added : 01/01/95 Amended : 01/01/95 Licencing : Copyrighted freeware

YACL - Yet Another Class Library

YACL is a freely available C++ class library that includes GUI classes based on the Model-View-Controller paradigm. The class protocols are designed in a platform independent manner, and are implemented under Motif 1.2 as well as under Microsoft Windows and OS/2. This makes it possible to maintain a single code base for an application that runs on all three platforms. YACL also includes a suite of container and data storage classes for general-purpose programming.

Operating Systems

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

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.