Skip to content

Latest commit

 

History

History
27 lines (19 loc) · 1.09 KB

README.md

File metadata and controls

27 lines (19 loc) · 1.09 KB

Basic library for sparse linear algebra routines.

Parallel capabilities through OpenMP and MPI (use flags USEMPI, USEOPENMP at compilation).

Debug mode checks vectors and matrices before performing any operations (eg. correct sizes, protects accessing out-of-bounds entries, etc.). Use flag NDEBUG to skip all checks: faster, but doesn't check anything.

I made this library from scratch for class projects and for fun. Obviously not the best option out there, and possibly buggy.

Included classes and methods:

Vector: -set, get, copy, display routines. -vector addition and scalar multiplication, serial and parallel versions

SparseMatrix: -build using newline, append, and finalize -change non-zero entries after finalized(slow),(zero entries can't be changed) -get entries(slow) -matrix-vector multiplication and daxpy, serial and parallel versions -preprocess matrix to increase efficiency of parallel operations -ConjugateGradient solver, serial and parallel versions, preconditioned or non-preconditioned

TriangularMatrix: -direct linear solver

Preconditioner: -compute Jacobi or ILU preconditioners