jvdp1 / libsparse

Fortran library to handle sparse matrices

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fortran library to handle sparse matrices

Overview

The Fortran 2003 library libsparse is a library that provides objects to create and handle rectangular and square sparse matrices using different formats:

  • Linked List (LL);

  • COOrdinate storage (COO) (with elements stored using a hashing function);

  • Compressed Row Storage (CRS).

The library is written following an object-oriented approach. It has been tested mainly on small datasets.

Compilation

To build the libsparse you need (at least):

  • at least a Fortran 2008 compliant compiler (GCC Fortran 11 and Intel Fortran classic compilers have been tested successfully);
  • Intel MKL library;
  • Make or CMake or fpm.

The library relies on different libraries, such as BLAS/LAPACK libraries (currently on Intel MKL library), and optionally on PARDISO (at this stage, Intel MKL PARDISO), and on METIS 5.
The library can be built with the compilers gfortran and ifort.

See the brief documentation for more details regarding the compilation.

Documentation

The brief documentation is available in the directory doc (see mainpage.md). An extended documentation can be generated with Doxygen.

Acknowledgements

This library was inspired by several sources:

To be implemented

  • Check for symmetric matrix

  • Allow the option spainv + single precision

  • Full support of 8-byte integers

About

Fortran library to handle sparse matrices

License:MIT License


Languages

Language:Fortran 95.3%Language:CMake 3.7%Language:Makefile 1.0%