Introduction

HSL.py is a set of Cython/Python interfaces to some of the Harwell Subroutine Library: a collection of state-of-the-art packages for large-scale scientific computation. These packages are written mostly in Fortran and often provide C interfaces but no Python interfaces.

HSL.py provides interfaces to

  • ordering methods:
    • mc21: permute a sparse matrix to put entries on the diagonal (single and double precision);
    • mc60: reduce the profile and wavefront of a sparse symmetric (single and double precision);
  • scaling methods:
    • mc29: calculate scaling factors of a sparse (un)symmetric matrix (single and double precision);
  • linear solvers:
    • ma27: solve sparse symmetric system, not necessarily positive definite (single and double precision);
    • ma57: solve a sparse symmetric system using a multifrontal method (single and double precision).

Dependencies

In order to build previous interfaces, you need to provide source code from the Harwell Subroutine Library. All required packages are available free of charge to academics. Just follow hyperlinks in upper section and fill the licence agreement on their website and you are done!

License

The HSL.py library is released under the GNU Lesser General Public License (LGPL), version 3.