Base implementation for tridiagonal operator. More...

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

Inheritance diagram for TridiagonalOperator:

List of all members.

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 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)

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
< 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.