A quantum operator algebra domain-specific language and exact diagonalization toolkit for C++11/14/17
libcommute is a C++11/14/17 template library that includes two major parts.
A Domain-Specific Language (DSL) designed to easily construct and manipulate polynomial expressions with quantum-mechanical operators, especially those used in the quantum many-body theory. The most commonly used instances of such expressions are many-body Hamiltonians and operators of physical observables.
A fast intermediate representation of the quantum-mechanical operators that enables their action on state vectors in finite-dimensional Hilbert spaces. This feature provides a basis for writing highly performant Exact Diagonalization (ED) codes without loss of flexibility.