Mathematics and Scientific Computation

Resource

  • Wolfram MathWorld : The Web's Most Extensive Mathematics Resource
  • PlanetMath : a virtual community which aims to help make mathematical knowledge more accessible
  • zbMATH : the first resource for mathematics
  • Encyclopedia of Mathematics : an open access resource designed specifically for the mathematics community

General-Purpose Library

  • GSL : the GNU Scientific Library, a numerical library for C and C++ programmers
  • PETSc : a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations
  • Colt : a set of Open Source Libraries for High Performance Scientific and Technical Computing in Java
  • AForge.NET : an open source C# framework designed for developers and researchers in the fields of Computer Vision and Artificial Intelligence - image processing, neural networks, genetic algorithms, fuzzy logic, machine learning, robotics, etc.
  • Theano : a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently
  • Math.NET : an opensource initiative to build and maintain toolkits covering fundamental mathematics, targetting advanced but also every day needs of .Net developers

General-Purpose Tool

  • Sage : a free open-source mathematics software system
  • SpeQ Mathematics : a small, extensive mathematics program with a simple, intuitive interface
  • GeoGebra : an interactive geometry, algebra, statistics and calculus application, intended for learning and teaching mathematics and science from primary school
  • Desmos : A beautiful, free, online graphing calculator
  • Mathway : Free math problem solver
  • Frink : a practical calculating tool and programming language designed to make physical calculations simple (It tracks units of measure (feet, meters, kilograms, watts, etc.) through all calculations, allowing you to mix units of measure transparently)

Computer Algebra System (CAS)

  • Maxima : a system for the manipulation of symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, and sets, lists, vectors, matrices, and tensors
  • YACAS : Yet Another Computer Algebra System, an easy to use, general purpose Computer Algebra System, a program for symbolic manipulation of mathematical expressions
  • Mathomatic : a portable, command-line, educational CAS and calculator software
  • Mathics : A free, light-weight alternative to Mathematica, a free, general-purpose online computer algebra system featuring Mathematica-compatible syntax and functions

Linear Algebra

  • BLAS : Basic Linear Algebra Subprograms
  • LAPACK : Linear Algebra PACKage
  • ATLAS : Automatically Tuned Linear Algebra Software
    • GATLAS : GPU Automatically Tuned Linear Algebra Software
  • Eigen : a C++ template library for linear algebra
  • Armadillo : a C++ linear algebra library
  • CVM Class Library
  • JAMA : a Java Matrix Package
  • SuperLU : a general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations
  • SuiteSparse : a suite of sparse matrix packages
  • TAUCS : a Library of Sparse Linear Solvers
  • MAGMA : Matrix Algebra on GPU and Multicore Architectures
  • CULA : a set of GPU-accelerated linear algebra libraries
  • ViennaCL : a free open-source linear algebra library for computations on many-core architectures (GPUs, MIC) and multi-core CPUs

Geometry

  • CGAL : Computational Geometry Algorithms Library, efficient and reliable geometric algorithms in the form of a C++ library
  • OpenMesh : a generic and efficient data structure for representing and manipulating polygonal meshes
  • Boost.Geometry and Boost.Polygon
  • PCL : the Point Cloud Library, a standalone, large scale, open project for 2D/3D image and point cloud processing

Graph Theory

  • BGL : the Boost Graph Library
  • GraphLab : a graph-based, high performance, open source distributed computation framework written in C++
  • GraphChi : Disk-based large-scale graph computation
  • JGraphT : a free Java graph library that provides mathematical graph-theory objects and algorithms
  • LEMON : Library for Efficient Modeling and Optimization in Networks, a C++ template library providing efficient implementations of common data structures and algorithms with focus on combinatorial optimization tasks connected mainly with graphs and networks
  • g2o : A General Framework for Graph Optimization, an open-source C++ framework for optimizing graph-based nonlinear error functions
  • TORO : a Tree-based netwORk Optimizer, an optimization approach for constraint-network

Optimization

  • GLPK : GNU Linear Programming Kit
  • Clp : COIN-OR linear programming, an open-source linear programming solver written in C++
  • SCIP : Solving Constraint Integer Programs, the fastest non-commercial solvers for mixed integer programming (MIP) and mixed integer nonlinear programming (MINLP)
    • SoPlex : an optimization package for solving linear programming problems (LPs) based on an advanced implementation of the primal and dual revised simplex algorithm
  • Ceres Solver : an open source C++ library for modeling and solving large, complicated optimization problems
  • levmar : Levenberg-Marquardt nonlinear least squares algorithms in C/C++
  • LINPACK : a collection of Fortran subroutines that analyze and solve linear equations and linear least-squares problems
  • NLopt : a free/open-source library for nonlinear optimization
  • Uncoptim : a C++ library for unconstrained optimization
  • Ipopt : Interior Point OPTimizer, a software package for large-scale nonlinear optimization
  • OPT++ : an Object-Oriented Nonlinear Optimization Library
  • minpack : a software for solving nonlinear equations and nonlinear least squares problems
  • COIN-OR : the Computational Infrastructure for Operations Research project, an initiative to spur the development of open-source software for the operations research community
  • The NEOS Server : a free internet-based service for solving numerical optimization problems

Decision Theory

  • SPUDD : Stochastic Planning using Decision Diagrams
  • MADP Toolbox : The Multiagent decision process Toolbox, a free C++ software toolbox for scientific research in decision-theoretic planning and learning in multiagent systems (MASs)
  • Markov Decision Process (MDP) Toolbox for Matlab
  • hmdp : a C++ library and tools for solving Markov Decision Processes (MDPs) with hybrid discrete and/or continuous state-spaces