NiHu  2.0
integral_operator_expression.hpp File Reference

Arithmetics of integral operators. More...

#include "fmm_operator.hpp"
#include "local_operator.hpp"
#include "util/matrix_traits.hpp"
#include "util/plain_type.hpp"
#include "util/product_type.hpp"
#include <type_traits>
#include <utility>
Include dependency graph for integral_operator_expression.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  NiHu::fmm::integral_operator_expression< Derived >
 the base class of every integral operator More...
 
struct  NiHu::fmm::integral_operator_expression_traits< Derived >
 the traits structure of an integral operator More...
 
struct  NiHu::fmm::is_integral_operator_expression< C >
 metafunction to determine if C is an integral operator expression More...
 
class  NiHu::fmm::integral_operator_sum< Lhs, Rhs >
 the sum of two integral operators More...
 
struct  NiHu::fmm::is_local_operator< integral_operator_sum< LhsDerived, RhsDerived > >
 
class  NiHu::fmm::integral_operator_diff< Lhs, Rhs >
 the difference of two integral operators More...
 
struct  NiHu::fmm::is_local_operator< integral_operator_diff< LhsDerived, RhsDerived > >
 
class  NiHu::fmm::integral_operator_scaled< Lhs, Scalar >
 scalar times an integral operator More...
 
struct  NiHu::fmm::is_local_operator< integral_operator_scaled< LhsDerived, Scalar > >
 
class  NiHu::fmm::integral_operator_src_concatenated< Lhs, Rhs >
 source-concatenation of two integral operators More...
 
struct  NiHu::fmm::is_local_operator< integral_operator_src_concatenated< LhsDerived, RhsDerived > >
 
class  NiHu::fmm::integral_operator_expression< Derived >
 the base class of every integral operator More...
 
struct  NiHu::fmm::integral_operator_expression_traits< integral_operator_sum< Lhs, Rhs > >
 traits of the sum of two integral operators More...
 
struct  NiHu::fmm::integral_operator_expression_traits< integral_operator_diff< Lhs, Rhs > >
 traits of the difference of two integral operators More...
 
class  NiHu::fmm::integral_operator_sum< Lhs, Rhs >
 the sum of two integral operators More...
 
class  NiHu::fmm::integral_operator_diff< Lhs, Rhs >
 the difference of two integral operators More...
 
struct  NiHu::fmm::integral_operator_expression_traits< integral_operator_scaled< Lhs, Scalar > >
 Traits of the scaled integral operator. More...
 
class  NiHu::fmm::integral_operator_scaled< Lhs, Scalar >
 scalar times an integral operator More...
 
struct  NiHu::fmm::integral_operator_expression_traits< integral_operator_src_concatenated< Lhs, Rhs > >
 Traits of the source concatenated integral operator. More...
 
class  NiHu::fmm::integral_operator_src_concatenated< Lhs, Rhs >
 source-concatenation of two integral operators More...
 

Functions

template<class Lhs , class Rhs , typename std::enable_if< is_integral_operator_expression< Lhs >::value &is_integral_operator_expression< Rhs >::value, int >::type = 0>
integral_operator_sum< Lhs, Rhs > NiHu::fmm::operator+ (Lhs &&lhs, Rhs &&rhs)
 factory function to create the sum of two integral operators More...
 
template<class Lhs , class Rhs , typename std::enable_if< is_integral_operator_expression< Lhs >::value &is_integral_operator_expression< Rhs >::value, int >::type = 0>
integral_operator_diff< Lhs, Rhs > NiHu::fmm::operator- (Lhs &&lhs, Rhs &&rhs)
 factory function to create the difference of two integral operators More...
 
template<class Lhs , class Scalar , typename std::enable_if< is_integral_operator_expression< Lhs >::value, int >::type = 0>
integral_operator_scaled< Lhs, Scalar > NiHu::fmm::operator* (Lhs &&lhs, Scalar &&c)
 factory function to create the scaled integral operator More...
 
template<class Scalar , class Rhs , typename std::enable_if< is_integral_operator_expression< Rhs >::value, int >::type = 0>
integral_operator_scaled< Rhs, Scalar > NiHu::fmm::operator* (Scalar &&c, Rhs &&rhs)
 factory function to create the scaled integral operator More...
 
template<class Lhs , class Rhs >
auto NiHu::fmm::src_concatenate (Lhs &&lhs, Rhs &&rhs)
 

Detailed Description

Arithmetics of integral operators.

Definition in file integral_operator_expression.hpp.

Function Documentation

◆ operator*() [1/2]

template<class Lhs , class Scalar , typename std::enable_if< is_integral_operator_expression< Lhs >::value, int >::type = 0>
integral_operator_scaled<Lhs, Scalar> NiHu::fmm::operator* ( Lhs &&  lhs,
Scalar &&  c 
)

factory function to create the scaled integral operator

Template Parameters
Lhsthe left hand side derived type
Scalarthe scalar type
Returns
the scaled operator

Definition at line 173 of file integral_operator_expression.hpp.

◆ operator*() [2/2]

template<class Scalar , class Rhs , typename std::enable_if< is_integral_operator_expression< Rhs >::value, int >::type = 0>
integral_operator_scaled<Rhs, Scalar> NiHu::fmm::operator* ( Scalar &&  c,
Rhs &&  rhs 
)

factory function to create the scaled integral operator

Template Parameters
Scalarthe scalar type
Rhsthe left hand side derived type
Returns
the scaled operator

Definition at line 186 of file integral_operator_expression.hpp.

◆ operator+()

template<class Lhs , class Rhs , typename std::enable_if< is_integral_operator_expression< Lhs >::value &is_integral_operator_expression< Rhs >::value, int >::type = 0>
integral_operator_sum<Lhs, Rhs> NiHu::fmm::operator+ ( Lhs &&  lhs,
Rhs &&  rhs 
)

factory function to create the sum of two integral operators

Template Parameters
Lhsthe left hand side derived type
Rhsthe right hand side derived type
Returns
the sum of the operators

Definition at line 146 of file integral_operator_expression.hpp.

◆ operator-()

template<class Lhs , class Rhs , typename std::enable_if< is_integral_operator_expression< Lhs >::value &is_integral_operator_expression< Rhs >::value, int >::type = 0>
integral_operator_diff<Lhs, Rhs> NiHu::fmm::operator- ( Lhs &&  lhs,
Rhs &&  rhs 
)

factory function to create the difference of two integral operators

Template Parameters
Lhsthe left hand side derived type
Rhsthe right hand side derived type
Returns
the difference of the operators

Definition at line 160 of file integral_operator_expression.hpp.