The MathWorks  C/C++ Math Library 

The C/C++Math Library is a component of the MATLAB Compiler. The MATLAB Compiler includes the Compiler, the Math Library and the Graphics Library. The Math library provides the core math and data analysis routines from MATLAB in object library form. You can use the Math library with the MATLAB Compiler to create math functions based on MATLAB in your external applications. Or you can embed the Math library in standalone applications. Submitted: Jan 12, 2000

C++ Matrix Library 

This C++ library is intended for scientists and engineers who need to manipulate a variety of types of matrices using standard matrix operations. Emphasis is on the kind of operations needed in statistical calculations such as least squares, linear equation solve and eigenvalues. It supports the following matrix types: Matrix (rectangular matrix); UpperTriangularMatrix; LowerTriangularMatrix; DiagonalMatrix; SymmetricMatrix; BandMatrix; UpperBandMatrix; LowerBandMatrix; SymmetricBandMatrix; RowVector; ColumnVector. Submitted: Jan 09, 2000

Free code 

Here are bits of code and even a few complete programs you might find useful. Of course, I'd like to hear of any errors you find or corrections or improvements you make. C++ Section: The code here makes up a library of routines that I use frequently. None of them are as good as libraries provided by other sources but they are free, they seem to work with any ANSI C++ compiler, and they seem to work well with each other. Submitted: Jan 11, 2000

LAPACK++ 

LAPACK++ (Linear Algebra PACKage in C++) is a software library for numerical linear algebra that solves systems of linear equations and eigenvalue problems on high performance computer architectures. Submitted: Nov 14, 1999

exmat  The Expression Template Matrix Library 

This is a generic, multiplatform C++ matrix library. It use expression template and metaprogramming to provide specialized code for matrix operations. The specialized code can be as efficient as hand optimized code, and this process is transparent to the user. Therefore user can perform matrix operations in a most natural way e.g. A=B*C+D, but need not to worry about efficiency. The specialization will base on the size and the shape of the matrix. For small and static sized matrix, techniques like full unrolling and lazy evaluation will be applied. For big matrix that cannot fit into the cache, the library will act as a wrapper over other highly optimized library like BLAS. Submitted: Jun 28, 2004

Mathematician 3b 

A Powerful tool that supports differentiation , plotting 2d and 3d graphs (cartesian,spherical polar),number theoretic commands like probabilistic primality and factoring , permutation , partition , and fractionrecurring decimal conversion (The next release will have matrices , eigen vectors , etc. and will give the user much more power !) Submitted: Dec 22, 2004

Polynomial Root Finder 

Polynomial Root Finder is a reliable and fast C program (+ Matlab gateway) for finding all roots of a complex polynomial. Site contains source code as a zipped file. Submitted: Nov 21, 1999

CMAP: Visual Environment for Applied Mathematics 

CMAP is a freeware that offers a comprehensive, compact environment for numerical computation, graphics, and rapid development of computational software. CMAP seamlessly integrates builtin utilities (e.g. the Units Converter, Date Converter, Fraction and Base Converters, and the ExpressionEvaluator) with a wide spectrum of calculus, vector and matrix algebra, numerical methods (e.g. curve fitting, optimization, interpolation, polynomial manipulation, nonlinear equations, ODE), statistics, graphics, finance and visual userinterface elements for application programming. Submitted: Dec 09, 2001

LinAlg 

Basic Linear Algebra and Optimization classlib declares Matrix, Vector, subMatrices, and LAStreams over real domain; contains efficient and foolproof implementations of level 1 and 2 BLAS (elementwise operations and various multiplications), transposition, determinant evaluation, matrix inverse. Submitted: Nov 14, 1999

Matrix2D 

Matrix2D is a free library that implements a set of functions allowing to manage bidimensional matrixes with languages C and C++. Matrix2D contains also several functions of images processing. Submitted: Dec 10, 2002

Matrix11 

This matrix template class can be used to perform common matrix operations in your C++ program like any other builtin data types. Though this class was written in compliance with ANSI/ISO C++ standard, you may encounter some compilation problem, particularly with older version of compilers, because all standard features of namespace, exception and template may not be fully supported in your compiler. In that case you may just want to disable any or all the above features by defining the appropriate macros. Submitted: Feb 15, 2000

CAM 

CAM C++ Class Libraries include: CAM Matrix/ Vector/ Array  C++ classes for matrix, vector and array computations; CAM Graphics Classes  C++ routines capable of creating graphical output from standard C++ (or C) data types; A CAMsymbolicFunction instance implements a double valued function (of an arbitrary number of double arguments) as specified by an initialization character string. Submitted: Nov 14, 1999

Newmat 

Two versions of C++ libraries are available at this site. Newmat09 is a C++ library that is intended for scientists and engineers who need to manipulate a variety of types of matrices using standard matrix operations. Emphasis is on the kind of operations needed in statistical calculations such as least squares, linear equation solve and eigenvalues. Newmat10  beta version: In addition to Newmat09 this version includes numerous little improvements plus new maxima and minima functions and a faster FFT. Submitted: Nov 14, 1999

trig.c 

Several trigonometric functions missing from C. All functions are ANSI C source code. Submitted: Aug 05, 1999

.NET Matrix Library 

The Bluebit .NET Matrix Library provides classes for objectoriented linear algebra in the .NET platform. Submitted: Jan 25, 2005

Blitz++ 

A C++ class library for scientific computing which provides performance on par with Fortran 77/90. Submitted: Jan 04, 2000

Mathomatic 

Mathomatic is a small, portable, general purpose CAS (Computer Algebra System) that can solve, simplify, and combine algebraic equations. It does some calculus and is very easy to use. Written entirely in C. Submitted: Apr 05, 2005

CwMtx 

The Cooperware matrix library is a C++ library that provides classes for performing matrix and vector operations commonly used in science and engineering. A special features is a class implementing quaternion math. Submitted: Jan 09, 2000

ARPACK ++ 

ARPACK++ is an objectoriented version of the ARPACK package. ARPACK is a C++ template library for solving largescale standard and generalized eigenvalue problems. Submitted: Nov 14, 1999

apfloat 

Apfloat is a high performance arbitrary precision package. That means you can do calculations involving millions of digits with it. It uses Number Theoretic Transforms. It's simple to use. It's fast. It's freeware. Submitted: Jan 17, 2000

QL linear algebra 

Template based C++ classes and routines for linear algebra. Matrix storage types : (dense, packed (tri, sym, herm), banded) all row/col major, compressed diagonal. Vector with STL container type methods. BLAS interface routines. Submitted: Jul 30, 2005

MAPC 

A C++ library for manipulating algebraically defined points and curves in the plain. It represents points and curves exactly and makes use of several techniques for increasing the efficiency of manipulating the points. MAPC provides classes for representing and manipulating: multivariate polynomials with floating piont, multiprecision integer, or multiprecision rational coefficients; algebraic numbers represented as the roots of polynomials within an interval; 1 or 2D points whose coordinates are defined as either algebraic or rational numbers; sections of algebraic plane curves; and 1 and 2D boxes. Algorithms are implemented which provide functions for: rapidly finding the sign of a determinant of arbitrary size with entries that are arbitrary sized integers; isolating all intersections of two algebraic plane curves in a region; and decomposing a plane algebraic curve into monotonic subsections. Submitted: Jan 11, 2000

Geomview 

Geomview is the Geometry Center's own popular interactive viewer for three and higher dimensional geometry. A manual, tutorial and source codes are available for download. Submitted: Nov 26, 1999

PARI 

PARI is a system capable of handling complex numbertheoretic and algebraic problems. The predefined types are integers (up to 300000 decimal digits), reals (same for the relative precision), elements of Z/nZ, rational numbers, complex numbers, padic numbers, quadratic numbers, polynomials, power series, algebraic extensions, rational functions, binary quadratic forms, vectors, matrices. PARI can be used as a library, but possesses also a powerful calculator mode which gives instant access to all the types and functions. The source uses more than 32000 lines of code, mainly in C. Submitted: Nov 23, 1999

LiDIA 

LiDIA is a C++ library for computational number theory which provides a collection of highly optimized implementations of various multiprecision data types and timeintensive algorithms. LiDIA is developed by the LiDIA Group at the Darmstadt University of Technology. Submitted: Nov 23, 1999

Paul Hsieh's Square Root page 

Several interesting methods of computing an integer square root. Submitted: Jan 14, 2000

Scientific Joker 

An application about Game Theory to create, to storage and to solve extensive and strategic form game. Found mixed strategies equilibria also. Use Joker to teach your student, use Joker to solve your game or use Joker to write your article. Building upon a C++ class library named SGDK. Submitted: Nov 21, 2000

Fast Robust Predicates for Computational Geometry 

C subroutines to compute orientation and incircle tests on floatingpoint inputs. Adaptive floating point arithmetic evaluates only to the precision required to return the correct yes or no answer. Submitted: Nov 26, 1999

LINK 

LINK is a software system designed to be a generalpurpose, extendible computing environment in which discrete mathematical objects representing real world problems can be easily manipulated and visualized. A Windows95/NT executable file and other source files are available. Submitted: Nov 26, 1999

NumPy 

NumPy is a nickname for a package of Numerical Extensions to Python. These extensions add two powerful new types to Python, a new sequence type which implements multidimensional arrays efficiently (multiarray), and a new type of function called a universal function (ufunc) which works efficiently on the new arrays and other sequence types. Submitted: Nov 14, 1999

GiNaC is Not a CAS 

The name GiNaC is an iterated and recursive abbreviation for GiNaC is Not a CAS, where CAS stands for Computer Algebra System. It has been developed to become a replacement engine for xloops which is up to now powered by the Maple CAS. Its design is revolutionary in a sense that contrary to other CAS it does not try to provide extensive algebraic capabilities and a simple programming language but instead accepts a given language (C++) and extends it by a set of algebraic capabilities. Submitted: Feb 14, 2000

KANT / KASH 

KANT is a software package for mathematicians interested in algebraic number theory. KANT is a tool for sophisticated computations in number fields and in global function fields. With KASH you are able to use the powerful KANT V4 functions within a shell. The KANT functions are accessible through a userfriendly shell named KASH (KAnt SHell). Submitted: Nov 23, 1999

JQuest Math Inc 

Welcome to JQuest Math Inc. We provide tools to make math easier and more enjoyable. So far we offer products both to teachers and students for a few different uses. All of our programs are free and available for download. Submitted: Feb 02, 2007

