MatrixMemoryPool_lr Derived Type

type, public :: MatrixMemoryPool_lr

A memory pool datatype that can be reused for matrix matrix multiplication. this is to prevent excessive alloc/dealloc.


Contents


Components

Type Visibility Attributes Name Initial
integer, public :: columns

Shape of matrix: columns

integer, public :: rows

Shape of matrix: rows

type(Triplet_r), public, DIMENSION(:), ALLOCATABLE :: pruned_list

storage for actual values added to the matrix.

real(kind=NTREAL), public, DIMENSION(:,:), ALLOCATABLE :: value_array

storage for potential values added to the matrix.

logical, public, DIMENSION(:,:), ALLOCATABLE :: dirty_array

true if an element has been pushed to this part of the matrix.

integer, public, DIMENSION(:,:), ALLOCATABLE :: hash_index

Storage space for indices, hashed.

integer, public, DIMENSION(:,:), ALLOCATABLE :: inserted_per_bucket

Internal storage space for amount of items added to a bucket.

integer, public :: hash_size

Size of the buckets.