QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
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 TridiagonalOperator &)=default
 TridiagonalOperator (TridiagonalOperator &&) noexcept
TridiagonalOperatoroperator= (const TridiagonalOperator &)
TridiagonalOperatoroperator= (TridiagonalOperator &&) noexcept
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

TridiagonalOperator operator+ (const TridiagonalOperator &D)
TridiagonalOperator operator- (const TridiagonalOperator &D)
TridiagonalOperator operator+ (const TridiagonalOperator &D1, const TridiagonalOperator &D2)
TridiagonalOperator operator- (const TridiagonalOperator &D1, const TridiagonalOperator &D2)
TridiagonalOperator operator* (Real a, const TridiagonalOperator &D)
TridiagonalOperator operator* (const TridiagonalOperator &D, Real a)
TridiagonalOperator operator/ (const TridiagonalOperator &D, Real a)

Utilities

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

Operator interface

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

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