QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.20
Classes | Public Types | Public Member Functions | Friends | List of all members
TridiagonalOperator Class Reference

Base implementation for tridiagonal operator. More...

#include <ql/methods/finitedifferences/tridiagonaloperator.hpp>

+ Inheritance diagram for TridiagonalOperator:

Classes

class  TimeSetter
 encapsulation of time-setting logic More...
 

Public Types

typedef Array array_type
 

Public Member Functions

 TridiagonalOperator (Size size=0)
 
 TridiagonalOperator (const Array &low, const Array &mid, const Array &high)
 
 TridiagonalOperator (const Disposable< TridiagonalOperator > &)
 
TridiagonalOperatoroperator= (const Disposable< TridiagonalOperator > &)
 
Inspectors
Size size () const
 
bool isTimeDependent () const
 
const ArraylowerDiagonal () const
 
const Arraydiagonal () const
 
const ArrayupperDiagonal () const
 
Modifiers
void setFirstRow (Real, Real)
 
void setMidRow (Size, Real, Real, Real)
 
void setMidRows (Real, Real, Real)
 
void setLastRow (Real, Real)
 
void setTime (Time t)
 

Friends

Disposable< TridiagonalOperatoroperator+ (const TridiagonalOperator &)
 
Disposable< TridiagonalOperatoroperator- (const TridiagonalOperator &)
 
Disposable< TridiagonalOperatoroperator+ (const TridiagonalOperator &, const TridiagonalOperator &)
 
Disposable< TridiagonalOperatoroperator- (const TridiagonalOperator &, const TridiagonalOperator &)
 
Disposable< TridiagonalOperatoroperator* (Real, const TridiagonalOperator &)
 
Disposable< TridiagonalOperatoroperator* (const TridiagonalOperator &, Real)
 
Disposable< TridiagonalOperatoroperator/ (const TridiagonalOperator &, Real)
 

Operator interface

Disposable< ArrayapplyTo (const Array &v) const
 apply operator to a given array
 
Disposable< ArraysolveFor (const Array &rhs) const
 solve linear system for a given right-hand side
 
void solveFor (const Array &rhs, Array &result) const
 
Disposable< ArraySOR (const Array &rhs, Real tol) const
 solve linear system with SOR approach
 
static Disposable< TridiagonalOperatoridentity (Size size)
 identity instance
 

Utilities

Size n_
 
Array diagonal_
 
Array lowerDiagonal_
 
Array upperDiagonal_
 
Array temp_
 
ext::shared_ptr< TimeSettertimeSetter_
 
void swap (TridiagonalOperator &)
 

Detailed Description

Base implementation for tridiagonal operator.

Warning:
to use real time-dependant algebra, you must overload the corresponding operators in the inheriting time-dependent class.

Member Function Documentation

◆ solveFor()

void solveFor ( const Array rhs,
Array result 
) const

solve linear system for a given right-hand side without result Array allocation. The rhs and result parameters can be the same Array, in which case rhs will be changed