sparse_mod Module

module~~sparse_mod~~UsesGraph module~sparse_mod sparse_mod module~kinds_mod kinds_mod module~kinds_mod->module~sparse_mod module~array_mod array_mod module~kinds_mod->module~array_mod module~array_mod->module~sparse_mod
Help

Used By

module~~sparse_mod~~UsedByGraph module~sparse_mod sparse_mod module~basicsolvers_mod basicSolvers_mod module~sparse_mod->module~basicsolvers_mod program~testsparse_prg testSparse_prg module~sparse_mod->program~testsparse_prg module~solvers_mod solvers_mod module~sparse_mod->module~solvers_mod module~basicsolvers_mod->program~testsparse_prg module~solvers_mod->program~testsparse_prg
Help


Interfaces

public interface operator(+)

  • private function add_uv(u, v) result(o)

    Arguments

    Type IntentOptional AttributesName
    real(kind=wp), intent(in), dimension(:):: u
    type(spvec_t), intent(in) :: v

    Return Value real(kind=wp), dimension(:), allocatable

  • private function add_vu(v, u) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(spvec_t), intent(in) :: v
    real(kind=wp), intent(in), dimension(:):: u

    Return Value real(kind=wp), dimension(:), allocatable

  • private function add_vv(u, v) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(spvec_t), intent(in) :: u
    type(spvec_t), intent(in) :: v

    Return Value type(spvec_t)

public interface operator(*)

  • private function mul_rv(r, v) result(o)

    Arguments

    Type IntentOptional AttributesName
    real(kind=wp), intent(in) :: r
    type(spvec_t), intent(in) :: v

    Return Value type(spvec_t)

  • private function mul_vr(v, r) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(spvec_t), intent(in) :: v
    real(kind=wp), intent(in) :: r

    Return Value type(spvec_t)

public interface operator(.o.)

  • private function dot_uv(u, v) result(o)

    Arguments

    Type IntentOptional AttributesName
    real(kind=wp), intent(in), dimension(:):: u
    type(spvec_t), intent(in) :: v

    Return Value real(kind=wp)

  • private function dot_vu(v, u) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(spvec_t), intent(in) :: v
    real(kind=wp), intent(in), dimension(:):: u

    Return Value real(kind=wp)

  • private function dot_vv(u, v) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(spvec_t), intent(in) :: u
    type(spvec_t), intent(in) :: v

    Return Value real(kind=wp)

  • private function dot_um(u, A) result(o)

    Arguments

    Type IntentOptional AttributesName
    real(kind=wp), intent(in), dimension(:):: u
    type(sparse_t), intent(in) :: A

    Return Value real(kind=wp), dimension(:), allocatable

  • private function dot_mu(A, u) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(sparse_t), intent(in) :: A
    real(kind=wp), intent(in), dimension(:):: u

    Return Value real(kind=wp), dimension(:), allocatable

  • private function dot_vm(v, A) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(spvec_t), intent(in) :: v
    type(sparse_t), intent(in) :: A

    Return Value type(spvec_t)

  • private function dot_mv(A, v) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(sparse_t), intent(in) :: A
    type(spvec_t), intent(in) :: v

    Return Value type(spvec_t)

  • private function dot_mm(A, B) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(sparse_t), intent(in) :: A
    type(sparse_t), intent(in) :: B

    Return Value type(sparse_t)

public interface matmul

  • private function dot_mu(A, u) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(sparse_t), intent(in) :: A
    real(kind=wp), intent(in), dimension(:):: u

    Return Value real(kind=wp), dimension(:), allocatable

  • private function dot_mv(A, v) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(sparse_t), intent(in) :: A
    type(spvec_t), intent(in) :: v

    Return Value type(spvec_t)

  • private function dot_mm(A, B) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(sparse_t), intent(in) :: A
    type(sparse_t), intent(in) :: B

    Return Value type(sparse_t)

public interface sum

  • private function sum_v(l) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(spvec_t), intent(in), dimension(:):: l

    Return Value type(spvec_t)

public interface minval

  • private function minval_v(v) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(spvec_t), intent(in) :: v

    Return Value real(kind=wp)

  • private function minval_m(A) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(sparse_t), intent(in) :: A

    Return Value real(kind=wp)

public interface maxval

  • private function maxval_v(v) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(spvec_t), intent(in) :: v

    Return Value real(kind=wp)

  • private function maxval_m(A) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(sparse_t), intent(in) :: A

    Return Value real(kind=wp)

public interface transpose

  • private function transpose_m(A) result(o)

    Arguments

    Type IntentOptional AttributesName
    type(sparse_t), intent(in) :: A

    Return Value type(sparse_t)


Derived Types

type, public :: spvec_t

Components

TypeVisibility AttributesNameInitial
integer, public, dimension(:), allocatable:: i
real(kind=wp), public, dimension(:), allocatable:: v

Type-Bound Procedures

procedure, public :: get => get_v
procedure, public :: set => set_v
procedure, public :: add => add_v
procedure, public :: toDense => toDense_v

type, public :: sparse_t

Components

TypeVisibility AttributesNameInitial
integer, public :: N
integer, public :: M
type(spvec_t), public, dimension(:), allocatable:: rows

Type-Bound Procedures

procedure, public :: get => get_m
procedure, public :: set => set_m
procedure, public :: add => add_m
procedure, public :: expand
procedure, public :: getDiagonal
procedure, public :: toDense => toDense_m
procedure, public :: toText => toText_m

Functions

public function newSpvec() result(o)

Arguments

None

Return Value type(spvec_t)

public function newSparse(N, M) result(o)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: N
integer, intent(in) :: M

Return Value type(sparse_t)