MatrixMapsModule Module

A Module For Simplfiying Per Element Operations on Matrices.



Contents


Interfaces

public interface MapTripletList

  • private subroutine MapTripletList_r(inlist, outlist, proc, num_slices_in, my_slice_in)

    Given a triplet list, apply this procedure to each element.

    Arguments

    Type IntentOptional AttributesName
    type(TripletList_r), intent(in) :: inlist

    The matrix to apply the procedure to.

    type(TripletList_r), intent(inout) :: outlist

    The matrix where each element has had proc called on it.

    public function proc(row, column, val) result(valid)

    The procedure to apply to each element.

    Arguments
    Type IntentOptional AttributesName
    integer, intent(inout) :: row

    The row value of an element.

    integer, intent(inout) :: column

    The column value of an element.

    real(kind=NTREAL), intent(inout) :: val

    The actual value of an element.

    Return Value logical

    Set this to false to filter an element.

    integer, intent(in), optional :: num_slices_in

    How many process slices to do this mapping on (default is 1)

    integer, intent(in), optional :: my_slice_in

    What process slice this process should compute (default is 0).

  • private subroutine MapTripletList_c(inlist, outlist, proc, num_slices_in, my_slice_in)

    Given a triplet list, apply this procedure to each element.

    Arguments

    Type IntentOptional AttributesName
    type(TripletList_c), intent(in) :: inlist

    The matrix to apply the procedure to.

    type(TripletList_c), intent(inout) :: outlist

    The matrix where each element has had proc called on it.

    public function proc(row, column, val) result(valid)

    The procedure to apply to each element.

    Arguments
    Type IntentOptional AttributesName
    integer, intent(inout) :: row

    The row value of an element.

    integer, intent(inout) :: column

    The column value of an element.

    complex(kind=NTCOMPLEX), intent(inout) :: val

    The actual value of an element.

    Return Value logical

    Set this to false to filter an element.

    integer, intent(in), optional :: num_slices_in

    How many process slices to do this mapping on (default is 1)

    integer, intent(in), optional :: my_slice_in

    What process slice this process should compute (default is 0).

  • private subroutine MapTripletListArray_r(inlist, outlist, proc, supp_in, num_slices_in, my_slice_in)

    Given a triplet list, apply this procedure to each element.

    Arguments

    Type IntentOptional AttributesName
    type(TripletList_r), intent(in) :: inlist

    The matrix to apply the procedure to.

    type(TripletList_r), intent(inout) :: outlist

    The matrix where each element has had proc called on it.

    public function proc(row, column, val, supp_in) result(valid)

    The procedure to apply to each element.

    Arguments
    Type IntentOptional AttributesName
    integer, intent(inout) :: row

    The row value of an element.

    integer, intent(inout) :: column

    The column value of an element.

    real(kind=NTREAL), intent(inout) :: val

    The actual value of an element.

    real(kind=NTREAL), intent(in), DIMENSION(:):: supp_in

    Any supplementary data you need to pass the map can packed here.

    Return Value logical

    Set this to false to filter an element.

    real(kind=NTREAL), intent(in), DIMENSION(:):: supp_in

    Any supplementary data you need to pass the map can packed here.

    integer, intent(in), optional :: num_slices_in

    How many process slices to do this mapping on (default is 1)

    integer, intent(in), optional :: my_slice_in

    What process slice this process should compute (default is 0).

  • private subroutine MapTripletListArray_c(inlist, outlist, proc, supp_in, num_slices_in, my_slice_in)

    Given a triplet list, apply this procedure to each element.

    Arguments

    Type IntentOptional AttributesName
    type(TripletList_c), intent(in) :: inlist

    The matrix to apply the procedure to.

    type(TripletList_c), intent(inout) :: outlist

    The matrix where each element has had proc called on it.

    public function proc(row, column, val, supp_in) result(valid)

    The procedure to apply to each element.

    Arguments
    Type IntentOptional AttributesName
    integer, intent(inout) :: row

    The row value of an element.

    integer, intent(inout) :: column

    The column value of an element.

    complex(kind=NTCOMPLEX), intent(inout) :: val

    The actual value of an element.

    complex(kind=NTCOMPLEX), intent(in), DIMENSION(:):: supp_in

    Any supplementary data you need to pass the map can packed here.

    Return Value logical

    Set this to false to filter an element.

    complex(kind=NTCOMPLEX), intent(in), DIMENSION(:):: supp_in

    Any supplementary data you need to pass the map can packed here.

    integer, intent(in), optional :: num_slices_in

    How many process slices to do this mapping on (default is 1)

    integer, intent(in), optional :: my_slice_in

    What process slice this process should compute (default is 0).


Subroutines

public subroutine MapMatrix_psr(inmat, outmat, proc)

Given a distributed matrix, apply this procedure to each element (real).

Arguments

Type IntentOptional AttributesName
type(Matrix_ps), intent(in) :: inmat

The matrix to apply the procedure to.

type(Matrix_ps), intent(inout) :: outmat

The matrix where each element has had proc called on it.

public function proc(row, column, val) result(valid)

The procedure to apply to each element.

Arguments
Type IntentOptional AttributesName
integer, intent(inout) :: row

The row value of an element.

integer, intent(inout) :: column

The column value of an element.

real(kind=NTREAL), intent(inout) :: val

The actual value of an element.

Return Value logical

Set this to false to filter an element.

public subroutine MapMatrix_psc(inmat, outmat, proc)

Given a distributed matrix, apply this procedure to each element (complex).

Arguments

Type IntentOptional AttributesName
type(Matrix_ps), intent(in) :: inmat

The matrix to apply the procedure to.

type(Matrix_ps), intent(inout) :: outmat

The matrix where each element has had proc called on it.

public function proc(row, column, val) result(valid)

The procedure to apply to each element.

Arguments
Type IntentOptional AttributesName
integer, intent(inout) :: row

The row value of an element.

integer, intent(inout) :: column

The column value of an element.

complex(kind=NTCOMPLEX), intent(inout) :: val

The actual value of an element.

Return Value logical

Set this to false to filter an element.