Simint - Vectorized Electron Repulsion Integrals

Simint Logo


Simint is a vectorized implementation of the Obara-Saika (OS) method of calculating electron repulsion integrals. Speedup is gained by vectorizing the primitive loop of the OS algorithm, with additional vectorization and optimizations left to the compiler.

Currently, Simint is limited to calculating ERI up to AM=7. It is not necessary to compile up to that high of angular momentum; a lower angular momentum can be selected at compile time with the SIMINT_MAXAM cmake option.

Simint is capable of calculating ERI with the angular momentum in any order. That is, it is possible to calculate (ds|ds) and (sd|ds) directly, without permutation of the resulting integrals.

As of v0.4, primitive screening is available. See the example for how to enable or disable it. GCC support has also been added.

See also for information about the Intel Parallel Computing Center at Georgia Tech

The C++ source code for the generator is available on GitHub at


Pritchard, Benjamin P. and Chow, Edmond Journal of Computational Chemistry 2016, 37, pp 2537-2546 10.1002/jcc.24483


Released under the 3-clause BSD License. See LICENSE for details.


Simint (currently) uses intrinsics for the Intel compiler. As such, it will not work with other compilers, although such a feature is planned.

See the README for details


This library is still somewhat experimental, and currently supports only integrals up to AM=7. The functionality has been benchmarked and validated against several other integral packages. It is believed to be correct, however, as with all software, bugs are always possible.

Last update: 2017-03-28 (see CHANGELOG for details)