Oberwolfach References on Mathematical Software

56 Search Results

ADOL-C

The package ADOL-C facilitates the evaluation of first and higher derivatives of vector functions that are defined by computer programs written in C or C++. The resulting derivative evaluation routines may be called from C/C++, Fortran, or any other language that can be linked with C. The numerical values of derivative vectors are obtained free of truncation errors at a small multiple of the run time and randomly accessed memory of the given function evaluation program.

More information

ATLAS

The ATLAS (Automatically Tuned Linear Algebra Software) project is an ongoing research effort focusing on applying empirical techniques in order to provide portable performance. At present, it provides C and Fortran77 interfaces to a portably efficient BLAS implementation, as well as a few routines from LAPACK.

More information

Axiom

Axiom is a general purpose Computer Algebra system. It is useful for research and development of mathematical algorithms. It defines a strongly typed, mathematically correct type hierarchy. It has a programming language and a built-in compiler.

More information

CASA

CASA is a special-purpose system for computational algebra and constructive algebraic geometry. The system has been developed since 1990. CASA is the ongoing product of the Computer Algebra Group at the Research Institute for Symbolic Computation (RISC-Linz), the University of Linz, Austria, under the direction of Prof. Winkler. The system is built on the kernel of the widely used computer algebra system Maple.

More information

CGAL

CGAL is a collaborative effort of several sites in Europe and Israel. The goal is to make the most important of the solutions and methods developed in computational geometry available to users in industry and academia in a C++ library. The goal is to provide easy access to useful, reliable geometric algorithms The CGAL library contains: the Kernel with geometric primitives such as points, vectors, lines, predicates for testing things such as relative positions of points, and operations such as intersections and distance calculation, the Basic Library which is a collection of standard data structures and geometric algorithms, such as convex hull in 2D/3D, (Delaunay) triangulation in 2D/3D, planar map, polyhedron, smallest enclosing circle, and multidimensional query structures, the Support Library which offers interfaces to other packages, e.g., for visualisation, and I/O, and other support facilities.

More information

CoCoA

CoCoA is a system for Computations in Commutative Algebra. It is able to perform simple and sophisticated operations on multivaraiate polynomials and on various data related to them (ideals, modules, matrices, rational functions). For example, it can readily compute Grobner bases, syzygies and minimal free resolution, intersection, division, the radical of an ideal, the ideal of zero-dimensional schemes, Poincare' series and Hilbert functions, factorization of polynomials, toric ideals. The capabilities of CoCoA and the flexibility of its use are further enhanced by the dedicated high-level programming language. For convenience, the system offers a textual interface, an Emacs mode, and a graphical user interface common to most platforms.

More information

Fermat

Fermat is a super calculator - computer algebra system, in which the basic items being computed can be rational numbers, modular numbers, elements of finite fields, multivariable polynomials, multivariable rational functions, or multivariable polynomials modulo other polynomials. Fermat is available for Mac OS, Windows, Unix, and Linux. It is shareware. The basic “ground ring" F is the field of rational numbers. One may choose to work modulo a specified integer n, thereby changing the ground ring F from Q to Z/n. On top of this may be attached any number of unevaluated variables t_1, t_2, .. t_n., thereby creating the polynomial ring F[t_1, t_2, .. t_n] and its quotient field, the rational functions. Further, polynomials p, q, .. can be chosen to mod out with, creating the quotient ring F(t_1, t_2, ..)/[p, q, ...]. It is possible to allow Laurent polynomials. Once the computational ring is established in this way, all computations are of elements of this ring.

More information

GAP

GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. GAP provides a programming language, a library of thousands of functions implementing algebraic algorithms written in the GAP language as well as large data libraries of algebraic objects. GAP is used in research and teaching for studying groups and their representations, rings, vector spaces, algebras, combinatorial structures, and more. GAP is developed by international cooperation. The system, including source, is distributed freely under the terms of the GNU General Public License. You can study and easily modify or extend GAP for your special use. The current version is GAP 4, the older version GAP 3 is still available.

More information

GELDA

GELDA is a Fortran77 software package for the numerical integration of general linear differential-algebraic equations (DAE) with variable coefficients of arbitrary index. The implementation of GELDA is based on the construction of the discretization scheme, which first determines all the local invariants and then transforms the linear DAE into an equivalent strangeness-free DAE with the same solution set. The resulting strangeness-free system is allowed to have nonuniqueness in the solution set or inconsistency in the initial values or inhomogeneities. In the case that the DAE is found to be uniquely solvable, GELDA is able to compute a consistent initial value and apply the well-known integration schemes for DAEs. In GELDA the BDF methods and Runge-Kutta schemes are implemented.

More information

GeoGebra

GeoGebra is free and multi-platform dynamic mathematics software for all levels of education that joins geometry, algebra, tables, graphing, statistics and calculus in one easy-to-use package. It has received several educational software awards in Europe and the USA.Quick Facts: * Graphics, algebra and tables are connected and fully dynamic * Easy-to-use interface, yet many powerful features * Authoring tool to create interactive learning materials as web pages * Available in many languages for our millions of users around the world * Free and open source software

More information

GEOMS

GEOMS is a Fortran77 software package for the numerical integration of general model equations (equations of motion) of multibody systems. The code combines a regularization technique with the Runge-Kutta method of type Radau IIa of order 5. This regularization technique reduces the index under preservation of all information of the solution manifold and, therefore, allows a robust numerical integration of the system.

More information

GiANT

GiANT is a graphical interface for working with number fields. It dynamically provides the user with typeset information, diagrams, and drag-and-drop functionality. The result is a level of human-computer interaction which is difficult to achieve in a shell environment. GiANT is written in Java 1.4 and runs on top of the computer algebra system KASH 2.5.

More information

Givaro

In the joint CNRS-INRIA / INPG-UJF project APACHE, Givaro is a C++ library for arithmetic and algebraic computations. Its main features are implementations of the basic arithmetic of many mathematical entities: Primes fields, Extensions Fields, Finite Fields, Finite Rings, Polynomials, Algebraic numbers, Arbitrary precision integers and rationals (C++ wrappers over gmp) It also provides data-structures and templated classes for the manipulation of basic algebraic objects, such as vectors, matrices (dense, sparse, structured), univariate polynomials (and therefore recursive multivariate). It contains different program modules and is fully compatible with the LinBox linear algebra library and the Athapascan environment, which permits parallel programming.

More information

HiFlow³

HiFlow³ is a multi-purpose finite element software providing powerful tools for efficient and accurate solution of a wide range of problems modeled by partial differential equations. Based on object-oriented concepts and the full capabilities of C++ the HiFlow³ project follows a modular and generic approach for building efficient parallel numerical solvers. It provides highly capable modules dealing with the mesh setup, finite element spaces, degrees of freedom, linear algebra routines, numerical solvers, and output data for visualization. Parallelism – as the basis for high performance simulations on modern computing systems – is introduced on two levels: coarse-grained parallelism by means of distributed grids and distributed data structures, and fine-grained parallelism by means of platform-optimized linear algebra back-ends.

More information

HSL

HSL (formerly the Harwell Subroutine Library) is a collection of ISO Fortran codes for large scale scientific computation, written by members of the Numerical Analysis Group and other experts.

More information

IML - Integer Matrix Library

IML is a free library of C source code which implements algorithms for computing exact solutions to dense systems of linear equations over the integers. IML is designed to be used with the ATLAS/BLAS library and GMP bignum library. Written in portable C, IML can be used on both 32-bit and 64-bit machines. It can be called from C++.

More information

ISAAC

ISAAC (Integrated Solution Algorithm for Arbitrary Configurations) is a compressible Euler/Navier-Stokes computational fluid dynamics code. ISAAC includes the capability of calculating the Euler equations for inviscid flow or the Navier-Stokes equations for viscous flows. ISAAC uses a domain decomposition structure to accomodate complex physical configurations. ISAAC can calculate either steady-state or time dependent flow. ISAAC was designed to test turbulence models. Various two equation turbulence models, explicit algebraic Reynolds stress models, and full differential Reynolds stress models are implemented in ISAAC. Several test cases are documented in the User's Guide.

More information

Isabelle

Isabelle is a popular generic theorem prover developed at Cambridge University and TU Munich. Existing logics like Isabelle/HOL provide a theorem proving environment ready to use for sizable applications. Isabelle may also serve as framework for rapid prototyping of deductive systems. It comes with a large library including Isabelle/HOL (classical higher-order logic), Isabelle/HOLCF (Scott's Logic for Computable Functions with HOL), Isabelle/FOL (classical and intuitionistic first-order logic), and Isabelle/ZF (Zermelo-Fraenkel set theory on top of FOL).

More information

KANT

KASH/KANT is a computer algebra system for sophisticated computations in algebraic number fields and global function fields. It has been developed under the project leadership of Prof. Dr. M. Pohst at Technische Universität Berlin.

More information

Kenzo

Kenzo is a program for effective algebraic topology

More information

KnotPlot

KnotPlot is a program to visualize and manipulate knots in three and four dimensions. Knots can be loaded from a database of almost 1000 knots and links or sketched by hand in three dimensions. Also, knots may be constructed via the Conway notation or using a tangle calculator. A number of special knot types (torus knots, knot chains, Lissajous knots) may be created on the fly. Finally, new knots can be created from old knots using a number of transformations.

More information

LAPACK

LAPACK is written in Fortran77 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision.

More information

LiDIA

LiDIA is a C++ library for computational number theory which provides a collection of highly optimized implementations of various multiprecision data types and time-intensive algorithms.

More information

LiE

LiE is the name of a software package that enables mathematicians and physicists to perform computations of a Lie group theoretic nature. It focuses on the representation theory of complex semisimple (reductive) Lie groups and algebras, and on the structure of their Weyl groups and root systems. LiE does not compute directly with elements of the Lie groups and algebras themselves; it rather computes with weights, roots, characters and similar objects.

More information

LinBox

LinBox is a C++ template library for exact, high-performance linear algebra computation with dense, sparse, and structured matrices over the integers and over finite fields. LinBox has the following top-level functions: solve linear system, matrix rank, determinant, minimal polynomial, characteristic polynomial, Smith normal form and trace. A good collection of finite field and ring implementations is provided, for use with numerous black box matrix storage schemes.

More information

M4RI

M4RI is a library for fast arithmetic with dense matrices over F2.

More information

Macaulay 2

Macaulay 2 is a software system devoted to supporting research in algebraic geometry and commutative algebra, whose development has been funded by the National Science Foundation.

More information

Magma

Magma is a large, well-supported software package designed to solve computationally hard problems in algebra, number theory, geometry and combinatorics. It provides a mathematically rigorous environment for computing with algebraic, number-theoretic, combinatoric and geometric objects.

More information

Maple

Maple is an environment for scientific and engineering problem-solving, mathematical exploration, data visualization and technical authoring.

More information

Mathematica

Mathematica seamlessly integrates a numeric and symbolic computational engine, graphics system, programming language, documentation system, and advanced connectivity to other applications.

More information

Mathomatic

Mathomatic is a free, portable, general-purpose CAS (Computer Algebra System) and calculator software that can symbolically solve, simplify, combine, and compare equations, perform complex number and polynomial arithmetic, etc. It does some calculus and is very easy to use.

More information

Matlab

MATLAB is a high-level language and interactive environment that enables you to perform computationally intensive tasks faster than with traditional programming languages such as C, C++, and Fortran.

More information

Maxima

Maxima is a system for the manipulation of symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, and vectors, matrices, and tensors. Maxima produces high precision results by using exact fractions and arbitrarily long floating point representations, and can plot functions and data in two and three dimensions.

More information

MuPad

MuPAD is a mathematical expert system for doing symbolic and exact algebraic computations as well as numerical calculations with almost arbitrary accuracy. For example, the number of significant digits can be chosen freely. Apart from a vast variety of mathematical libraries the system provides tools for high quality visualization of 2- and 3-dimensional objects. On Microsoft Windows, Apple Macintosh and Linux systems, MuPAD offers a flexible notebook concept for creating mathematical documents combining texts, graphics, formulas, computations and mathematical visualizations and animations. On Microsoft Windows MuPAD further supports the technologies OLE, ActiveX Automation, DCOM, RTF and HTML. Thus it offers a natural integration in Office applications like Word or PowerPoint as well as others.

More information

Normaliz

Normaliz is a tool for computations in affine monoids, vector configurations, lattice polytopes, and rational cones. Its input data can be specified in terms of a system of generators or vertices or a system of linear homogeneous Diophantine equations, inequalities and congruences or a binomial ideal. Normaliz computes the dual cone of a rational cone (in other words, given generators, Normaliz computes the defining hyperplanes, and vice versa), a placing (or lexicographic) triangulation of a vector configuration (resulting in a triangulation of the cone generated by it), the Hilbert basis of a rational cone, the lattice points of a lattice polytope, the normalization of an affine monoid, the Hilbert (or Ehrhart) series and the Hilbert (or Ehrhart) (quasi) polynomial under a Z-grading (for example, for rational polytopes), NEW: generalized (or weighted) Ehrhart series and Lebesgue integrals of polynomials over rational polytopes via NmzIntegrate, a description of the cone and lattice under consideration by a system of inequalities, equations and congruences

More information

NTL

NTL is a high-performance, portable C++ library providing data structures and algorithms for manipulating signed, arbitrary length integers, and for vectors, matrices, and polynomials over the integers and over finite fields.

More information

Octave

GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language. Octave has extensive tools for solving common numerical linear algebra problems, finding the roots of nonlinear equations, integrating ordinary functions, manipulating polynomials, and integrating ordinary differential and differential-algebraic equations. It is easily extensible and customizable via user-defined functions written in Octave's own language, or using dynamically loaded modules written in C++, C, Fortran, or other languages.

More information

PARI/GP

PARI/GP is a widely used computer algebra system designed for fast computations in number theory (factorizations, algebraic number theory, elliptic curves...), but also contains a large number of other useful functions to compute with mathematical entities such as matrices, polynomials, power series, algebraic numbers, etc., and a lot of transcendental functions. PARI is also available as a C library to allow for faster computations.

More information

PLTMG

PLTMG is a package for solving elliptic partial differential equations in general regions of the plane. It is based on continuous piecewise linear triangular finite elements, and features adaptive local mesh refinement, multigraph iteration, and pseudo-arclength continuation options for parameter dependencies. It also provides options for solving several classes of optimal control and obstacle problems. The package includes an initial mesh generator and several graphics packages. Support for the Bank-Holst parallel adaptive meshing strategy is also provided. PLTMG is provided as Fortran (and a little C) source code, in both single and double precision versions. The code has interfaces to X-Windows, MPI, and Michael Holst's OpenGL image viewer SG. The X-Windows, MPI, and SG interfaces require libraries that are NOT provided as part of the PLTMG package.

More information

PolyBoRi

The core of PolyBoRi is a C++ library, which provides high-level data types for Boolean polynomials and monomials, exponent vectors, as well as for the underlying polynomial rings and subsets of the powerset of the Boolean variables. As a unique approach, binary decision diagrams are used as internal storage type for polynomial structures. On top of this C++-library we provide a Python interface. This allows parsing of complex polynomial systems, as well as sophisticated and extendable strategies for Gröbner base computation. PolyBoRi features a powerful reference implementation for Gröbner basis computation.

More information

polymake

polymake is an object-oriented system for experimental discrete mathematics. The typical working cycle of a polymake user starts with the construction of an object of interest, auch as a convex polytope, a finite simplicial complex, a graph, etc. It is then possible to ask the system for some of the object's properties or for some form of visualization. Further steps might include more elaborate constructions based on previously defined objects. Each class of polymake objects comes with a set of rules which describe how a new property of an object can be derived from previously known ones. It is a key feature that the user can extend or modify the set of rules, add further properties or even new classes of objects (with entirely new rule bases). The functions provided include: several convex hull algorithms, face lattices of convex polytopes, Voronoi diagrams and Delaunay decompositions (in arbitrary dimensions), simplicial homology (with integer coefficients), simplicial cup and cap products, intersection forms of triangulated 4-manifolds. Several forms of (interactive) visualization via interfaces to Geomview, JavaView and other programs.

More information

QPA = Quivers and Path Algebras

QPA provides software for doing computations over finite dimensional quotients of path algebras. QPA has data structures for quivers, quotients of path algebras, and modules, homomorphisms and complexes of modules over quotients of path algebras. It has implementations for computing homomorphism spaces, projective resolutions, extension groups, generators of Ext-algebras, almost split sequences and more.

More information

RCWA

RCWA is a package for the computer algebra system GAP. It provides implementations of algorithms and methods for computing in certain infinite permutation groups. The class of groups which RCWA in principle can deal with includes the finite groups, the free groups of finite rank, the free products of finitely many finite groups, certain infinite simple groups, certain divisible torsion groups and groups of many further types. It is closed under taking direct products and under taking wreath products with finite groups and with the infinite cyclic group (Z,+).

More information

Reduce

REDUCE is an interactive system for general algebraic computations of interest to mathematicians, scientists and engineers. It has been produced by a collaborative effort involving many contributors. It is often used as an algebraic calculator for problems that are possible to do by hand. However, REDUCE is designed to support calculations that are not feasible by hand. Many such calculations take a significant time to set up and can run for minutes, hours or even days on the most powerful computers.

More information

Risa/Asir

Risa/Asir is a general computer algebra system and also a tool for various computation in mathematics and engineering. The development of Risa/Asir started in 1989 at FUJITSU. Binaries have been freely available since 1994 and now the source code is also free. Currently Kobe distribution is the most active branch of its development. We characterize Risa/Asir as follows: (1) An environment for large scale and efficient polynomial computation. (2) A platform for parallel and distributed computation based on OpenXM protocols.

More information

Sage

SAGE is a framework for number theory, algebra, and geometry computation. It is open source and freely available under the terms of the GNU General Public License (GPL). SAGE is a Python library with a customized interpreter. It is written in Python, C++, and C (via Pyrex). Python (http://www.python.org) is an open source object-oriented interpreted language, with a large number of libraries, e.g., for numerical analysis, which are available to users of SAGE. Python can also be accessed in library mode from C/C++ programs. SAGE provides an interface to several important open source libraries, including Cremona’s MWRANK library for computing with elliptic curves, the PARI library (pari.math.u-bordeaux.fr) for number theory, Shoup’s number theory library NTL (http://www.shoup.net/ntl/), SINGULAR (http://www.singular.uni-kl.de) for commutative algebra, GAP (http://www.gap-system.org) for group theory and combinatorics, and maxima (http://maxima.sourceforge.net) for symbolic computation and calculus.

More information

Scilab

Scilab is a numerical computation system similiar to Matlab or Simulink. Scilab includes hundreds of mathematical functions, and programs from various languages (such as C or Fortran) can be added interactively. It has sophisticated data structures (including lists, polynomials, rational functions, and linear systems), an interpreter, and a high-level programming language. Scilab has been designed to be an open system where the user can define new data types and operations on these data types by using overloading. A number of toolboxes are available with the system.

More information

SingSurf

An online Java applet for calculation of singular algebraic surfaces.

More information

SINGULAR

SINGULAR is a Computer Algebra system for polynomial computations in commutative algebra, algebraic geometry, and singularity theory. SINGULAR's main computational objects are ideals and modules over a large variety of baserings. The baserings are polynomial rings over a field (e.g., finite fields, the rationals, floats, algebraic extensions, transcendental extensions), or localizations thereof, or quotient rings with respect to an ideal. SINGULAR features fast and general implementations for computing Groebner and standard bases, including e.g. Buchberger's algorithm and Mora's Tangent Cone algorithm. Furthermore, it provides polynomial factorizations, resultant, characteristic set and gcd computations, syzygy and free-resolution computations, and many more related functionalities. Based on an easy-to-use interactive shell and a C-like programming language, SINGULAR's internal functionality is augmented and user-extendible by libraries written in the SINGULAR programming language. A general and efficient implementation of communication links allows SINGULAR to make its functionality available to other programs.

More information

Steenrod

Steenrod is a Maple package for doing computations in the mod 2 Steenrod algebra. It computes the product and coproduct of elements, converts between various bases, computes the action of the elements on polynomials, and does several other specialized calculations related to the mod 2 Steenrod algebra.

More information

Surfer

Surfer is a programme to visualize real algebraic surfaces in an intuitive and fast way

More information

SYMMETRICA

Symmetrica is a program developed by Lehrstuhl Mathematik II of the University of Bayreuth. It has routines to handle the following topics: ordinary representation theory of the symmetric group and related groups, ordinary representation theory of the classical groups, modular representation theory of the symmetric group, projective representation theory of the symmetric group, combinatorics of tableaux, symmetric functions and polynomials, commutative and non commutative Schubert polynomials, operations of finite groups, ordinary representation theory of Hecke algebras of type An

More information

SymPy

SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.

More information

SYNAPS

SYNAPS (Symbolic and Numeric APplicationS) is a library developed in C++. The aim of this open source project is to provide a coherent and efficient library for symbolic and numeric computation. It implements data-structures and classes for the manipulation of basic objects, such as (dense, sparse, structured) vectors, matrices, univariate and multivariate polynomials. It also provides fundamental methods such as algebraic number manipulation tools, different types of univariate and multivariate polynomial root solvers, resultant computations, ...

More information

The Tensor Library

TTL (The Tensor Library) facilitates the translation of tensor expressions into C++ without compromising speed. A Tensor here can be any multidimensional array, including vectors and matrices. Expressions including several indices can be written in C++, removing the need for explicit loops. Expression templates and similar techniques are used to achieve this goal.

More information

Theorema

The Theorema project aims at extending current computer algebra systems by facilities for supporting mathematical proving. The present early-prototype version of the Theorema software system is implemented in Mathematica . The system consists of a general higher-order predicate logic prover and a collection of special provers that call each other depending on the particular proof situations. The individual provers imitate the proof style of human mathematicians and produce human-readable proofs in natural language presented in nested cells. The special provers are intimately connected with the functors that build up the various mathematical domains. The long-term goal of the project is to produce a complete system which supports the mathematician in creating interactive textbooks, i.e. books containing, besides the ordinary passive text, active text representing algorithms in executable format, as well as proofs which can be studied at various levels of detail, and whose routine parts can be automatically generated. This system will provide a uniform (logic and software) framework in which a working mathematician, without leaving the system, can get computer-support while looping through all phases of the mathematical problem solving cycle.

More information