TridiagonalOperator Class Reference
[Finite-differences framework]

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

Inheritance diagram for TridiagonalOperator:

Inheritance graph
[legend]
List of all members.

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.


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
Disposable< ArraySOR (const Array &rhs, Real tol) const
 solve linear system with SOR approach
static Disposable< TridiagonalOperatoridentity (Size size)
 identity instance

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 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)
Utilities
void swap (TridiagonalOperator &)

Protected Attributes

Array diagonal_
Array lowerDiagonal_
Array upperDiagonal_
boost::shared_ptr< TimeSettertimeSetter_

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)

Classes

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