Medusa  1.1
Coordinate Free Mehless Method implementation
mm::ImplicitOperators< shape_storage_type, matrix_type, rhs_type >::RowOp Class Reference

Detailed Description

template<class shape_storage_type, class matrix_type, class rhs_type>
class mm::ImplicitOperators< shape_storage_type, matrix_type, rhs_type >::RowOp

Class representing an operation on a specific row of the matrix.

This row operations can be summed (with no effect) and assigned to, which sets the right hand side. They enable a syntax like op.lap(i) + 2*op.grad(i, {1, 2}) = 2.3.

Definition at line 79 of file ImplicitOperators_fwd.hpp.

+ Collaboration diagram for mm::ImplicitOperators< shape_storage_type, matrix_type, rhs_type >::RowOp:

Public Member Functions

RowOp operator+ (const RowOp &other) const
 Add two row operations together. More...
 
template<typename derived_t >
RowOp operator+ (const OpBase< derived_t > &right)
 Add normal operation to a row operation by evaluating the former and adding normally. More...
 
void operator= (scalar_t value)
 Assigns given value to the right hand side. More...
 

Friends

class ImplicitOperators
 

Protected Member Functions

 RowOp (ImplicitOperators &op, int row)
 Construct a row operation for a given row. More...
 
int row () const
 Return absolute index of this row operation. More...
 

Protected Attributes

ImplicitOperatorsop
 Reference to underlying operators. More...
 
int row_
 Index of the row to which this operation refers. More...
 

Constructor & Destructor Documentation

◆ RowOp()

template<class shape_storage_type , class matrix_type , class rhs_type >
mm::ImplicitOperators< shape_storage_type, matrix_type, rhs_type >::RowOp::RowOp ( ImplicitOperators op,
int  row 
)
inlineprotected

Construct a row operation for a given row.

Definition at line 85 of file ImplicitOperators_fwd.hpp.

Member Function Documentation

◆ operator+() [1/2]

template<class shape_storage_type , class matrix_type , class rhs_type >
template<typename derived_t >
RowOp mm::ImplicitOperators< shape_storage_type, matrix_type, rhs_type >::RowOp::operator+ ( const OpBase< derived_t > &  right)
inline

Add normal operation to a row operation by evaluating the former and adding normally.

Definition at line 103 of file ImplicitOperators_fwd.hpp.

◆ operator+() [2/2]

template<class shape_storage_type , class matrix_type , class rhs_type >
RowOp mm::ImplicitOperators< shape_storage_type, matrix_type, rhs_type >::RowOp::operator+ ( const RowOp other) const
inline

Add two row operations together.

This does nothing except for checking that both operations refer to the same actual matrix row, catching some programming errors.

Exceptions
Assertionfails if *this and other do not refer to the same matrix row.

Definition at line 95 of file ImplicitOperators_fwd.hpp.

◆ operator=()

template<class shape_storage_type , class matrix_type , class rhs_type >
void mm::ImplicitOperators< shape_storage_type, matrix_type, rhs_type >::RowOp::operator= ( scalar_t  value)
inline

Assigns given value to the right hand side.

Definition at line 106 of file ImplicitOperators_fwd.hpp.

◆ row()

template<class shape_storage_type , class matrix_type , class rhs_type >
int mm::ImplicitOperators< shape_storage_type, matrix_type, rhs_type >::RowOp::row ( ) const
inlineprotected

Return absolute index of this row operation.

Definition at line 87 of file ImplicitOperators_fwd.hpp.

Member Data Documentation

◆ op

template<class shape_storage_type , class matrix_type , class rhs_type >
ImplicitOperators& mm::ImplicitOperators< shape_storage_type, matrix_type, rhs_type >::RowOp::op
protected

Reference to underlying operators.

Definition at line 82 of file ImplicitOperators_fwd.hpp.

◆ row_

template<class shape_storage_type , class matrix_type , class rhs_type >
int mm::ImplicitOperators< shape_storage_type, matrix_type, rhs_type >::RowOp::row_
protected

Index of the row to which this operation refers.

Row offset is not included.

Definition at line 83 of file ImplicitOperators_fwd.hpp.


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