ug4
ug::MatrixDiagonalInverse< M, X, Y > Class Template Reference

#include <matrix_diagonal.h>

+ Inheritance diagram for ug::MatrixDiagonalInverse< M, X, Y >:

Public Types

typedef Y codomain_function_type
 
typedef X domain_function_type
 
typedef M matrix_type
 
typedef MatrixOperator< M, X, Y > mo_type
 
- Public Types inherited from ug::ILinearOperator< X, X >
typedef X codomain_function_type
 Range space. More...
 
typedef X domain_function_type
 Domain space. More...
 
- Public Types inherited from ug::IOperator< X, X >
typedef X codomain_function_type
 Range space. More...
 
typedef X domain_function_type
 Domain space. More...
 

Public Member Functions

virtual void apply (Y &f, const X &u)
 
virtual void apply_sub (Y &f, const X &u)
 
virtual void init ()
 init operator More...
 
virtual void init (const X &u)
 init operator depending on a function u More...
 
 MatrixDiagonalInverse (SmartPtr< mo_type > mo)
 
- Public Member Functions inherited from ug::ILinearOperator< X, X >
virtual void apply (X &f, const X &u)=0
 
virtual void apply_sub (X &f, const X &u)=0
 
virtual void prepare (X &u)
 default implementation for IOperator interface More...
 
virtual ~ILinearOperator ()
 virtual destructor More...
 
- Public Member Functions inherited from ug::IOperator< X, X >
virtual ~IOperator ()
 virtual destructor More...
 

Public Attributes

SmartPtr< mo_typem_mo
 

Detailed Description

template<typename M, typename X, typename Y = X>
class ug::MatrixDiagonalInverse< M, X, Y >

Dinv = MatrixDiagonalInverse(mat) creates a LinearOperator which acts like Dinv = diag(mat)^{-1}

Member Typedef Documentation

◆ codomain_function_type

template<typename M , typename X , typename Y = X>
typedef Y ug::MatrixDiagonalInverse< M, X, Y >::codomain_function_type

◆ domain_function_type

template<typename M , typename X , typename Y = X>
typedef X ug::MatrixDiagonalInverse< M, X, Y >::domain_function_type

◆ matrix_type

template<typename M , typename X , typename Y = X>
typedef M ug::MatrixDiagonalInverse< M, X, Y >::matrix_type

◆ mo_type

template<typename M , typename X , typename Y = X>
typedef MatrixOperator<M, X, Y> ug::MatrixDiagonalInverse< M, X, Y >::mo_type

Constructor & Destructor Documentation

◆ MatrixDiagonalInverse()

template<typename M , typename X , typename Y = X>
ug::MatrixDiagonalInverse< M, X, Y >::MatrixDiagonalInverse ( SmartPtr< mo_type mo)
inline

Member Function Documentation

◆ apply()

template<typename M , typename X , typename Y = X>
virtual void ug::MatrixDiagonalInverse< M, X, Y >::apply ( Y &  f,
const X &  u 
)
inlinevirtual

◆ apply_sub()

template<typename M , typename X , typename Y = X>
virtual void ug::MatrixDiagonalInverse< M, X, Y >::apply_sub ( Y &  f,
const X &  u 
)
inlinevirtual

◆ init() [1/2]

template<typename M , typename X , typename Y = X>
virtual void ug::MatrixDiagonalInverse< M, X, Y >::init ( )
inlinevirtual

init operator

This method initializes the operator. Once initialized the 'apply'-method can be called. If the operator is a linearization this function returns false.

Returns
bool success flag

Implements ug::ILinearOperator< X, X >.

References ug::MatrixDiagonalInverse< M, X, Y >::m_mo.

◆ init() [2/2]

template<typename M , typename X , typename Y = X>
virtual void ug::MatrixDiagonalInverse< M, X, Y >::init ( const X &  u)
inlinevirtual

init operator depending on a function u

This method initializes the operator. Once initialized the 'apply'-method can be called. The function u is passed here, since the linear operator may be the linearization of some non-linear operator. Thus, the operator depends on the linearization point. If the operator is not a linearization, this method can be implemented by simply calling init() and forgetting about the linearization point.

Parameters
[in]ufunction (linearization point)
Returns
bool success flag

Implements ug::ILinearOperator< X, X >.

References ug::MatrixDiagonalInverse< M, X, Y >::m_mo.

Member Data Documentation

◆ m_mo


The documentation for this class was generated from the following file: