TABLE OF CONTENTS


ABINIT/m_sparse_matrix [ Modules ]

[ Top ] [ Modules ]

NAME

 m_sparse_matrix

FUNCTION

  This module implement several sparse matrix data structure and matrix-vector product
  including LIL_mat: for constructing CSR matrix
  CSR_mat : for m-v product.
  dense matrix and COO_mat: for reference. Maybe dense matrix will be used if dipdip is considered?
 Datatypes:
  * lnode: a node in linked list
  * llist: linked list
  * LIL_mat: linked list sparse matrix
  * dense_mat: dense matrix (to have compatible syntax with sparse matrices so it's easy to test.)
  * COO_mat : COO matrix
  * CSR_mat : CSR matrix
 Subroutines:

  * dense_mat_initialize
  * dense_mat_finalize
  * dense_mat_mv
  * dense_mat_spmv 
  * dense_mat_insert

  * LIL_mat_initialize
  * LIL_mat_finalize
  * LIL_mat_insert : insert value to LIL matrix
  * mat_to_LIL_mat: dense->LIL
  * LIL_mat_to_mat: LIL->dense
  * LIL_mat_to_COO: LIL->COO
  * LIL_mat_to_CSR: LIL->CSR

  * CSR_mat_initialize: 
  * CSR_mat_finalize:
  * CSR_mat_mv : matrix-vector product

  * COO_mat_initialize
  * COO_mat_finalize TODO hexu: not yet!
  * COO_mat_mv

COPYRIGHT

 Copyright (C) 2010-2018 ABINIT group (hexu)
 This file is distributed under the terms of the
 GNU General Public Licence, see ~abinit/COPYING
 or http://www.gnu.org/copyleft/gpl.txt .
 For the initials of contributors, see ~abinit/doc/developers/contributors.txt .

SOURCE

53 ! This file implement several sparse matrix format and matrix vector product.
54 ! Dense matrix is also here for test.
55 ! Dense_mat
56 ! LIL_mat
57 ! COO_mat
58 ! CSR_mat
59 ! LIL mat is use only for constructing matrix, therefore there is no mat-vec production.
60 ! No good to use COO in this implementation. (perhaps)
61 ! CSR mat is better used for matrix-vector product.
62 ! Dense_mat is better if matrix is dense or small.
63 ! Dense<->LIL->CSR and LIL->COO translations are possible.
64 
65 ! A distributed counterpart of the module is m_sparse_matrix_distributed. (TODO: To be implemented)
66 #if defined HAVE_CONFIG_H
67 #include "config.h"
68 #endif
69 #include "abi_common.h"
70 
71 module m_sparse_matrix
72   use defs_basis
73   use m_errors
74   use m_abicore
75   implicit none