Armadillo is a C++ linear algebra library (matrix maths) aiming towards a good balance between speed and ease of use. The API is deliberately similar to Matlab's. Integer, floating point, and complex numbers are supported, as well as a subset of trigonometric and statistics functions. Various matrix decompositions are provided through optional integration with LAPACK and ATLAS numerics libraries. A delayed evaluation approach, based on template meta-programming, is used (during compile time) to combine several operations into one and reduce or eliminate the need for temporaries.
The Java Algebra System (JAS) is an object oriented, type safe, multi-threaded approach to computer algebra. JAS provides a well designed software library using generic types for algebraic computations implemented in the Java programming language. The library can be used as any other Java software package, or it can be used interactively or interpreted through a Jython or JRuby front end. The focus at the moment is on commutative and solvable polynomials, power-series, multivariate polynomial factorization, Gröbner bases, and applications.
Mathomatic is a portable, general-purpose computer algebra system (CAS) that can solve, differentiate, simplify, combine, and compare algebraic equations, perform standard, complex number, modular, and polynomial arithmetic, etc. It does some calculus and is very easy to compile/install, learn, and use. The symbolic math application with a simple command-line interface is designed to be a colorful algebra calculator that is reliable, responsive, and convenient to use. The symbolic math library is lightweight and easy to include in other software, due to being written entirely in C with no additional dependencies.
Botan is a crypto library written in C++. It provides a variety of cryptographic algorithms, including common ones such as AES, MD5, SHA, HMAC, RSA, Diffie-Hellman, DSA, and ECDSA, as well as many others that are more obscure or specialized. It also offers SSL/TLS (client and server), X.509v3 certificates and CRLs, and PKCS #10 certificate requests. A message processing system that uses a filter/pipeline metaphor allows for many common cryptographic tasks to be completed with just a few lines of code. Assembly and SIMD optimizations for common CPUs offers speedups for critical algorithms like AES and SHA-1.
SHOGUN is a machine learning toolbox whose focus is on large scale kernel methods and especially on Support Vector Machines (SVM). It provides a generic SVM object interfacing to several different SVM implementations, all making use of the same underlying, efficient kernel implementations. Apart from SVMs and regression, SHOGUN also features a number of linear methods like Linear Discriminant Analysis (LDA), Linear Programming Machine (LPM), (Kernel) Perceptrons, and algorithms to train hidden Markov models. SHOGUN can be used from within C++, Matlab, R, Octave, and Python.
Class Library for Numbers (CLN) is a library for computations with all kinds of numbers. Its rich set of number classes includes integers, rational numbers, floating-point numbers, complex numbers, modular integers, and univariate polynomials. It implements elementary functions (also with unlimited precision), logical functions, and transcendental functions. It is designed for memory and speed efficiency as well as interoperability.
Frink is a calculating tool and programming language designed to help you in the real world. It tracks units of measurement throughout all calculations and ensures that answers are correct. It converts between systems of measurement, and has a huge library of physical data. It is both a simple calculator for quick calculations and a full-fledged programming language for large tasks. It draws high-quality graphics, handles conversions between time zones, currencies, and historical values of the U.S. dollar and the British pound, translates between several languages, does date/time math, and more.
DOLFIN is the C++ interface of the FEniCS project for the Automation of Computational Mathematical Modeling (ACMM), providing a consistent PSE (Problem Solving Environment) for solving ordinary and partial differential equations. Key features include a simple, consistent and intuitive object-oriented API; automatic and efficient evaluation of variational forms through FFC; automatic and efficient assembly of linear systems; and support for general families of finite elements.
CCruncher is a project for quantifying portfolio credit risk using the copula approach. It is a framework consisting of two elements: a technical document that explains the theory, and a software program that implements it. CCruncher evaluates the portfolio credit risk by sampling the portfolio loss distribution and computing the Expected Loss (EL), Value at Risk (VaR), and Expected Shortfall (ES) statistics. The portfolio losses are obtained simulating the default times of obligors and simulating the EADs and LGDs of their assets.