Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status Coverage Status Licence

A basis-function independent interface library providing the types of integrals needed for electronic structure theory calculations.

Design goals

  • The same interface independent of the type of basis function or the precise integral backend.

More documentation will follow ...


For building gint the following things are required:

  • cmake >= 3.0.0

  • A compiler supporting C++11: clang starting from clang-3.5 and gcc starting from gcc-5 should work.

  • swig >= 2.0.11

  • python >= 3.4, including the development headers

  • The usual build process mentioned below will automatically build the lazyten linear algebra library as well. This requires further

    See for more details about lazyten's dependencies.

  • If gint should be linked with third-party libraries to compute any integrals, the requirements of these will be needed as well. See the section Interfacing with external libraries.

In order to actually use the gint python module once it has been built, the following python packages are required:

On a recent Debian/Ubuntu you can install all these dependencies by running

apt-get install cmake swig python3-dev libopenblas-dev liblapack-dev libarmadillo-dev \

as root.

Building gint

This basic build builds gint along with one or more third-party libraries to compute the integrals as well as tests. The basic sequence of steps is

# Configure inside build directory
mkdir build && cd build
cmake --build .

# Test and install the build
cmake --build . --target install

where ${OPTIONS} is one of the cmake options mentioned in the next section.

Interfacing with external libraries

Currently gint can be build with a couple of external libraries for performing the integral computation.

Gaussians: libint

Edward Valeev's libint library is enabled by passing the option -DGINT_ENABLE_LIBINT=ON to cmake. This will automaticall download, unpack, compile and link to libint.

Next to the dependencies mentioned before, building libint requires:

  • Eigen3
  • BLAS
  • Autoconf
  • GNU Multiprecision library

On Debian/Ubuntu the command

apt-get install libeigen3-dev libopenblas-dev autoconf libgmp-dev

should install all of these.

Gaussians: libcint

The second supported Gaussian integral library is libcint by Qiming Sun. It can be enabled by the option -DGINT_ENABLE_LIBCINT=ON, which will again compile libcint along gint.

Further external dependencies required by libcint:

  • BLAS

Sturmians: sturmint

sturmint is currently not released (but this is planned for the near future). It can be enabled using the option -DGINT_ENABLE_STURMINT=ON.


Integral library multiplexer for electronic structure theory





No packages published