Version 1.3 of NTPoly is now available. This new version contains a number of improvements based on the help of Victor Yu of Duke University.

New Solvers:

  • Canonical Purification of the Density Matrix
  • Higher order solvers for the Square Root

Code Quality:

  • Cmake installation script
  • Removal of directory dependencies from CMake
  • MPI Module for systems that don’t support “USE MPI”
  • Git Ignore files for examples


  • Example of how to link to NTPoly from a Cmake project
  • Clarifications about convergence of overlap matrix vs. density matrix

Bug Fixes:

  • Process grid construction checks
  • Process grid destructor (prevent communicator leak)
  • Fixed yaml formatting bugs

A number of these changes were motivated by making NTPoly available as part of the ELSI project. While I’ve tried my best to make NTPoly easy to integrate into your code, ELSI takes things one step further by providing an easy to use common interface for many different solvers. If you’re developing an electronic structure code, I definitely recommend you check it out.