v0.14.0
Public Types | Public Member Functions | Public Attributes | List of all members
EigenMatrix::FirstMatrixDirectiveImpl< E, C > Struct Template Reference

#include <src/ftensor/src/MatrixFunctionTemplate.hpp>

Collaboration diagram for EigenMatrix::FirstMatrixDirectiveImpl< E, C >:
[legend]

Public Types

using Val = typename E::Val
 
using Vec = typename E::Vec
 
using Fun = typename E::Fun
 
template<int N>
using Number = FTensor::Number< N >
 

Public Member Functions

 FirstMatrixDirectiveImpl (E &e)
 
template<int a, int i, int j, int k, int l>
term () const
 
template<int nb, int i, int j, int k, int l>
eval (const Number< nb > &, const Number< i > &, const Number< j > &, const Number< k > &, const Number< l > &) const
 
template<int i, int j, int k, int l>
eval (const Number< 1 > &, const Number< i > &, const Number< j > &, const Number< k > &, const Number< l > &) const
 

Public Attributes

d2MImpl< E, C, d2MCoefficients< E, C > > r
 
Ee
 

Detailed Description

template<typename E, typename C>
struct EigenMatrix::FirstMatrixDirectiveImpl< E, C >

Definition at line 383 of file MatrixFunctionTemplate.hpp.

Member Typedef Documentation

◆ Fun

template<typename E , typename C >
using EigenMatrix::FirstMatrixDirectiveImpl< E, C >::Fun = typename E::Fun

Definition at line 386 of file MatrixFunctionTemplate.hpp.

◆ Number

template<typename E , typename C >
template<int N>
using EigenMatrix::FirstMatrixDirectiveImpl< E, C >::Number = FTensor::Number<N>

Definition at line 388 of file MatrixFunctionTemplate.hpp.

◆ Val

template<typename E , typename C >
using EigenMatrix::FirstMatrixDirectiveImpl< E, C >::Val = typename E::Val

Definition at line 384 of file MatrixFunctionTemplate.hpp.

◆ Vec

template<typename E , typename C >
using EigenMatrix::FirstMatrixDirectiveImpl< E, C >::Vec = typename E::Vec

Definition at line 385 of file MatrixFunctionTemplate.hpp.

Constructor & Destructor Documentation

◆ FirstMatrixDirectiveImpl()

template<typename E , typename C >
EigenMatrix::FirstMatrixDirectiveImpl< E, C >::FirstMatrixDirectiveImpl ( E e)
inline

Definition at line 390 of file MatrixFunctionTemplate.hpp.

390 : r(e), e(e) {}

Member Function Documentation

◆ eval() [1/2]

template<typename E , typename C >
template<int i, int j, int k, int l>
C EigenMatrix::FirstMatrixDirectiveImpl< E, C >::eval ( const Number< 1 > &  ,
const Number< i > &  ,
const Number< j > &  ,
const Number< k > &  ,
const Number< l > &   
) const
inline

Definition at line 413 of file MatrixFunctionTemplate.hpp.

414  {
415  return term<0, i, j, k, l>();
416  }

◆ eval() [2/2]

template<typename E , typename C >
template<int nb, int i, int j, int k, int l>
C EigenMatrix::FirstMatrixDirectiveImpl< E, C >::eval ( const Number< nb > &  ,
const Number< i > &  ,
const Number< j > &  ,
const Number< k > &  ,
const Number< l > &   
) const
inline

Definition at line 405 of file MatrixFunctionTemplate.hpp.

406  {
407  return term<nb - 1, i, j, k, l>() + eval(Number<nb - 1>(), Number<i>(),
408  Number<j>(), Number<k>(),
409  Number<l>());
410  }

◆ term()

template<typename E , typename C >
template<int a, int i, int j, int k, int l>
C EigenMatrix::FirstMatrixDirectiveImpl< E, C >::term ( ) const
inline

Definition at line 394 of file MatrixFunctionTemplate.hpp.

394  {
395  return
396 
397  e.aMM[a][a](i, j, k, l) * e.dfVal(a)
398 
399  +
400 
401  r.eval(typename E::NumberDim(), Number<a>(), i, j, k, l) * 0.5;
402  }

Member Data Documentation

◆ e

template<typename E , typename C >
E& EigenMatrix::FirstMatrixDirectiveImpl< E, C >::e

Definition at line 392 of file MatrixFunctionTemplate.hpp.

◆ r

template<typename E , typename C >
d2MImpl<E, C, d2MCoefficients<E, C> > EigenMatrix::FirstMatrixDirectiveImpl< E, C >::r

Definition at line 391 of file MatrixFunctionTemplate.hpp.


The documentation for this struct was generated from the following file:
EigenMatrix::FirstMatrixDirectiveImpl::eval
C eval(const Number< nb > &, const Number< i > &, const Number< j > &, const Number< k > &, const Number< l > &) const
Definition: MatrixFunctionTemplate.hpp:405
EigenMatrix::FirstMatrixDirectiveImpl::e
E & e
Definition: MatrixFunctionTemplate.hpp:392
EigenMatrix::FirstMatrixDirectiveImpl::term
C term() const
Definition: MatrixFunctionTemplate.hpp:394
a
constexpr double a
Definition: approx_sphere.cpp:30
i
FTensor::Index< 'i', SPACE_DIM > i
Definition: hcurl_divergence_operator_2d.cpp:27
EigenMatrix::FirstMatrixDirectiveImpl::r
d2MImpl< E, C, d2MCoefficients< E, C > > r
Definition: MatrixFunctionTemplate.hpp:391
j
FTensor::Index< 'j', 3 > j
Definition: matrix_function.cpp:19
k
FTensor::Index< 'k', 3 > k
Definition: matrix_function.cpp:20
l
FTensor::Index< 'l', 3 > l
Definition: matrix_function.cpp:21