Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jvdp1/libsparse
Fortran library to handle sparse matrices
https://github.com/jvdp1/libsparse
sparse-linear-algebra sparse-matrix
Last synced: about 2 months ago
JSON representation
Fortran library to handle sparse matrices
- Host: GitHub
- URL: https://github.com/jvdp1/libsparse
- Owner: jvdp1
- License: mit
- Created: 2018-09-14T22:15:14.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-07-16T14:52:45.000Z (6 months ago)
- Last Synced: 2024-10-16T22:16:33.405Z (3 months ago)
- Topics: sparse-linear-algebra, sparse-matrix
- Language: Fortran
- Homepage:
- Size: 521 KB
- Stars: 16
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](http://glaros.dtc.umn.edu/gkhome/metis/metis/overview).
The library can be built with the compilers `gfortran` and `ifort`.See the brief [documentation](doc/documentation.md) 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:* http://burtleburtle.net/bob/hash/index.html#lookup
* https://didgeridoo.une.edu.au/km/homepage.php
* https://genomeek.wordpress.com/
* https://gist.github.com/n-s-k/522f2669979ed6d0582b8e80cf6c95fd
* https://nce.ads.uga.edu/wiki/lib/exe/fetch.php?media=sparse90.pdf
* https://www.netlib.org/lapack/explore-html/index.html
* https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/755612
* and by many courses related to object-oriented programming and Fortran 2003/2008.
## To be implemented
* Check for symmetric matrix
* Allow the option spainv + single precision
* Full support of 8-byte integers