QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TripleBandLinearOp Class Reference

#include <triplebandlinearop.hpp>

+ Inheritance diagram for TripleBandLinearOp:
+ Collaboration diagram for TripleBandLinearOp:

Public Member Functions

 TripleBandLinearOp (Size direction, const ext::shared_ptr< FdmMesher > &mesher)
 
 TripleBandLinearOp (const TripleBandLinearOp &m)
 
 TripleBandLinearOp (TripleBandLinearOp &&m) noexcept
 
TripleBandLinearOpoperator= (const TripleBandLinearOp &m)
 
TripleBandLinearOpoperator= (TripleBandLinearOp &&m) noexcept
 
 ~TripleBandLinearOp () override=default
 
Array apply (const Array &r) const override
 
Array solve_splitting (const Array &r, Real a, Real b=1.0) const
 
TripleBandLinearOp mult (const Array &u) const
 
TripleBandLinearOp multR (const Array &u) const
 
TripleBandLinearOp add (const TripleBandLinearOp &m) const
 
TripleBandLinearOp add (const Array &u) const
 
void axpyb (const Array &a, const TripleBandLinearOp &x, const TripleBandLinearOp &y, const Array &b)
 
void swap (TripleBandLinearOp &m) noexcept
 
SparseMatrix toMatrix () const override
 
- Public Member Functions inherited from FdmLinearOp
virtual ~FdmLinearOp ()=default
 
virtual array_type apply (const array_type &r) const =0
 
virtual SparseMatrix toMatrix () const =0
 

Protected Member Functions

 TripleBandLinearOp ()=default
 

Protected Attributes

Size direction_
 
std::unique_ptr< Size[]> i0_
 
std::unique_ptr< Size[]> i2_
 
std::unique_ptr< Size[]> reverseIndex_
 
std::unique_ptr< Real[]> lower_
 
std::unique_ptr< Real[]> diag_
 
std::unique_ptr< Real[]> upper_
 
ext::shared_ptr< FdmMeshermesher_
 

Additional Inherited Members

- Public Types inherited from FdmLinearOp
typedef Array array_type
 

Detailed Description

Definition at line 37 of file triplebandlinearop.hpp.

Constructor & Destructor Documentation

◆ TripleBandLinearOp() [1/4]

TripleBandLinearOp ( Size  direction,
const ext::shared_ptr< FdmMesher > &  mesher 
)

Definition at line 30 of file triplebandlinearop.cpp.

+ Here is the call graph for this function:

◆ TripleBandLinearOp() [2/4]

Definition at line 61 of file triplebandlinearop.cpp.

◆ TripleBandLinearOp() [3/4]

Definition at line 78 of file triplebandlinearop.hpp.

+ Here is the call graph for this function:

◆ ~TripleBandLinearOp()

~TripleBandLinearOp ( )
overridedefault

◆ TripleBandLinearOp() [4/4]

TripleBandLinearOp ( )
protecteddefault

Member Function Documentation

◆ operator=() [1/2]

TripleBandLinearOp & operator= ( const TripleBandLinearOp m)

Definition at line 82 of file triplebandlinearop.hpp.

+ Here is the call graph for this function:

◆ operator=() [2/2]

TripleBandLinearOp & operator= ( TripleBandLinearOp &&  m)
noexcept

Definition at line 88 of file triplebandlinearop.hpp.

+ Here is the call graph for this function:

◆ apply()

Array apply ( const Array r) const
overridevirtual

Implements FdmLinearOp.

Definition at line 224 of file triplebandlinearop.cpp.

+ Here is the caller graph for this function:

◆ solve_splitting()

Array solve_splitting ( const Array r,
Real  a,
Real  b = 1.0 
) const

Definition at line 256 of file triplebandlinearop.cpp.

+ Here is the caller graph for this function:

◆ mult()

TripleBandLinearOp mult ( const Array u) const

Definition at line 175 of file triplebandlinearop.cpp.

+ Here is the caller graph for this function:

◆ multR()

TripleBandLinearOp multR ( const Array u) const

Definition at line 191 of file triplebandlinearop.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ add() [1/2]

TripleBandLinearOp add ( const TripleBandLinearOp m) const

Definition at line 160 of file triplebandlinearop.cpp.

◆ add() [2/2]

TripleBandLinearOp add ( const Array u) const

Definition at line 209 of file triplebandlinearop.cpp.

◆ axpyb()

void axpyb ( const Array a,
const TripleBandLinearOp x,
const TripleBandLinearOp y,
const Array b 
)

Definition at line 89 of file triplebandlinearop.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ swap()

void swap ( TripleBandLinearOp m)
noexcept

Definition at line 80 of file triplebandlinearop.cpp.

+ Here is the caller graph for this function:

◆ toMatrix()

SparseMatrix toMatrix ( ) const
overridevirtual

Implements FdmLinearOp.

Definition at line 242 of file triplebandlinearop.cpp.

+ Here is the caller graph for this function:

Member Data Documentation

◆ direction_

Size direction_
protected

Definition at line 69 of file triplebandlinearop.hpp.

◆ i0_

std::unique_ptr<Size[]> i0_
protected

Definition at line 70 of file triplebandlinearop.hpp.

◆ i2_

std::unique_ptr<Size[]> i2_
protected

Definition at line 70 of file triplebandlinearop.hpp.

◆ reverseIndex_

std::unique_ptr<Size[]> reverseIndex_
protected

Definition at line 71 of file triplebandlinearop.hpp.

◆ lower_

std::unique_ptr<Real[]> lower_
protected

Definition at line 72 of file triplebandlinearop.hpp.

◆ diag_

std::unique_ptr<Real[]> diag_
protected

Definition at line 72 of file triplebandlinearop.hpp.

◆ upper_

std::unique_ptr<Real[]> upper_
protected

Definition at line 72 of file triplebandlinearop.hpp.

◆ mesher_

ext::shared_ptr<FdmMesher> mesher_
protected

Definition at line 74 of file triplebandlinearop.hpp.