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

ImplicitOperators & op
 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: