Skip to content

valmig/libvalmath

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libvalmath: A C++ library for mathematical computations

TABLE OF CONTENTS

Features:

Groebner Bases:

Implementation of the buchberger algorithm to compute the reduced Groebner Basis of an ideal over $\mathbb{Q}$ or $\mathbb{F}_p$.

Implementation of the permuted Groebner-Walk-Algorithm for basis conversion.

Groebner Basis conversion using the Hilbert criterion.

Commutative Algebra:

Computation of zerodimensional radical ideals over $\mathbb{Q}$.

Computation of the real and complex roots of a zerodimensional ideal over $\mathbb{Q}$.

Computation of the Hilbert polynomial of an ideal.

Factorization of univariate polynomials over $\mathbb{Q}$ and $\mathbb{F}_p$.

Linear Algebra:

Implementation of the Gauss Algorithm to solve systems of linear equations.

Solving linear equations over integers via elementary divisors.

Orthogonalization of a vector space via Erhard Schmidt. Computation of the orthogonal space.

Intersection or distance between two affine spaces.

Calculus:

Definition of elementary functions: $exp, log, sin, cos$, … (See analysis.h).

Definition of class implementing a function $\mathbb{R}^n → \mathbb{R}$. (See valfunction.h)

Computing derivations of functions.

Computing zeros, local extrema and inflection points of functions.

Computing real and complex roots of univariate polynomials.

Computation of some stammfunctions.

Approximation of an integral.

Headers:

affinspace.h :

Defines a template class affinspace<T>, that represents a finite dimensional affine space over the field T. Includes the header file LA.h.

analysis.h :

complex.h :

d_array.h :

error.h :

fraction.h :

gaussian.h

Glist.h

ideal_roots.h

integer.h

LA.h

matrix.h

modint.h

modq.h

MyTime.h

n_polynom.h

numbers.h

pol_arithmetic.h :

polfactor.h :

pol.h :

rand.h :

rational.h :

s_expo.h :

s_grobner.h :

s_modinteger.h :

s_polynom.h :

trie.h :

val_basics.h :

val_filesys.h :

val_utils.h :

valfunction.h

vector.h :

Build and Install (On Linux Systems):

After cloning this repository, go to the cloned directory and create a build-directory, e.g. : mkdir build && cd build. Then run ../configure, this will create a Makefile. Finally build and install with make and make install.

Configuration:

You can configure the installation path (default: /usr/local) and the c++-compiler (default: g++), via the command ../configure --prefix=<your/path> --cxx=<your compiler>. For example:

../configure --prefix=~/.local --cxx=clang++

This would set the installation directory to /.local and build the library with the clang++ compiler. If you don’t want to change the defaults, just type ../configure .

Build:

Just type make.

Install:

Type make install or sudo make install (if sudo privileges are required).

Uninstall:

Type make uninstall or sudo make uninstall (if sudo privileges are required).

Using libvalmath (On Linux Systems):

After installing, use the library with the compilation flag ’val-config --cflags’ (for finding the headers) and the linking flag ’val-config --libs’ (to link against the library).

Releases

No releases published

Packages

No packages published