axpby_linop_cdp Derived Type

type, public, extends(abstract_linop_cdp) :: axpby_linop_cdp

Utility type to define a composite linear operator . The definitions of matvec and rmatvec are directly inherited from those used to define A and B.


Components

Type Visibility Attributes Name Initial
class(abstract_linop_cdp), public, allocatable :: A

Underlying linear operators.

class(abstract_linop_cdp), public, allocatable :: B

Underlying linear operators.

complex(kind=dp), public :: alpha

Scaling factors.

complex(kind=dp), public :: beta

Scaling factors.

logical, public :: transA = .false.

Logical flag to control whether and/or need to be transposed.

logical, public :: transB = .false.

Logical flag to control whether and/or need to be transposed.


Type-Bound Procedures

procedure, public, pass(self) :: matvec => axpby_matvec_cdp

procedure, public, pass(self) :: rmatvec => axpby_rmatvec_cdp