Loading...
Searching...
No Matches
form_expr_variational.h

Go to the source code of this file.

## Classes

struct | is_form_expr_v2_variational_arg< T >
class | form_expr_v2_variational_unary< UnaryFunction, Expr >
struct | is_form_expr_v2_variational_arg< form_expr_v2_variational_unary< F, Expr > >
class | form_expr_v2_variational_binary< BinaryFunction, Expr1, Expr2 >
struct | is_form_expr_v2_variational_arg< form_expr_v2_variational_binary< F, Expr1, Expr2 > >
class | form_expr_v2_variational_binary_field< BinaryFunction, Expr1, Expr2 >
struct | form_expr_v2_variational_binary_field< BinaryFunction, Expr1, Expr2 >::evaluate_switch< This, ValueType, Arg1, Arg1Tag, Arg2, Arg2Tag >
struct | is_form_expr_v2_variational_arg< form_expr_v2_variational_binary_field< F, Expr1, Expr2 > >
struct | is_form_expr_v2_variational_binary_field< Expr1, Expr2, Sfinae >
struct | is_form_expr_v2_variational_binary_field< Expr1, Expr2, typename std::enable_if< is_field_expr_v2_variational_arg< Expr1 >::value &&is_field_expr_v2_variational_arg< Expr2 >::value >::type >
class | form_expr_v2_variational_binary_binded< BinaryFunction, NLExpr, VFExpr >
struct | is_form_expr_v2_variational_arg< form_expr_v2_variational_binary_binded< F, Expr1, Expr2 > >
struct | is_form_expr_v2_variational_binary_multiplies_divides_left< Expr1, Expr2, Sfinae >
struct | is_form_expr_v2_variational_binary_multiplies_divides_left< Expr1, Expr2, typename std::enable_if< is_field_expr_v2_nonlinear_arg< Expr1 >::value &&! is_rheolef_arithmetic< Expr1 >::value &&is_form_expr_v2_variational_arg< Expr2 >::value >::type >
struct | is_form_expr_v2_variational_binary_multiplies_divides_right< Expr1, Expr2 >

## Namespaces

namespace | rheolef
| This file is part of Rheolef.
namespace | rheolef::details

## Macros

#define | _RHEOLEF_make_form_expr_v2_variational_unary(FUNCTION, FUNCTOR)
#define | _RHEOLEF_form_expr_v2_variational_binary(FUNCTION, FUNCTOR)
#define | _RHEOLEF_form_expr_v2_variational_binary_field(FUNCTION, FUNCTOR)
#define | _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_left(FUNCTION, FUNCTOR)
#define | _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_right(FUNCTION, FUNCTOR)
#define | _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides(FUNCTION, FUNCTOR)
#define | _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_left(FUNCTION, FUNCTOR)
#define | _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_right(FUNCTION, FUNCTOR)
#define | _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant(FUNCTION, FUNCTOR)

## Functions

| _RHEOLEF_make_form_expr_v2_variational_unary (operator+, details::unary_plus) _RHEOLEF_make_form_expr_v2_variational_unary(operator-
| _RHEOLEF_form_expr_v2_variational_binary (operator+, details::plus) _RHEOLEF_form_expr_v2_variational_binary(operator-
| _RHEOLEF_form_expr_v2_variational_binary_field (operator*, details::multiplies) _RHEOLEF_form_expr_v2_variational_binary_field(dot
details::dot_ | _RHEOLEF_form_expr_v2_variational_binary_field (ddot, details::ddot_) _RHEOLEF_form_expr_v2_variational_binary_field(dddot
| _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides (operator*, details::multiplies) _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_right(operator/
details::divides | _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides (dot, details::dot_) _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides(ddot
details::divides details::ddot_ | _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides (dddot, details::dddot_) namespace details
| _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant (operator*, details::multiplies) _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_right(operator/
details::divides | _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant (dot, details::dot_) _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant(ddot

## Macro Definition Documentation

## _RHEOLEF_make_form_expr_v2_variational_unary

#define _RHEOLEF_make_form_expr_v2_variational_unary | ( |  | FUNCTION,
|  |  | FUNCTOR )

Value:
template<class Expr> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_arg<Expr>::value \
,details::form_expr_v2_variational_unary< \
FUNCTOR \
,Expr \
> \
>::type \
FUNCTION (const Expr& expr) \
{ \
return details::form_expr_v2_variational_unary <FUNCTOR,Expr> (FUNCTOR(), expr); \
}

Definition at line 153 of file form_expr_variational.h.

## _RHEOLEF_form_expr_v2_variational_binary

#define _RHEOLEF_form_expr_v2_variational_binary | ( |  | FUNCTION,
|  |  | FUNCTOR )

Value:
template <class Expr1, class Expr2> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_arg <Expr1>::value \
&& details::is_form_expr_v2_variational_arg <Expr2>::value \
,details::form_expr_v2_variational_binary< \
FUNCTOR \
,Expr1 \
,Expr2 \
> \
>::type \
FUNCTION (const Expr1& expr1, const Expr2& expr2) \
{ \
return details::form_expr_v2_variational_binary \
<FUNCTOR, Expr1, Expr2> \
(FUNCTOR(), expr1, expr2); \
}

Definition at line 322 of file form_expr_variational.h.

## _RHEOLEF_form_expr_v2_variational_binary_field

#define _RHEOLEF_form_expr_v2_variational_binary_field | ( |  | FUNCTION,
|  |  | FUNCTOR )

Value:
template <class Expr1, class Expr2> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_binary_field <Expr1,Expr2>::value \
,details::form_expr_v2_variational_binary_field< \
FUNCTOR \
,Expr1 \
,Expr2 \
> \
>::type \
FUNCTION (const Expr1& expr1, const Expr2& expr2) \
{ \
return details::form_expr_v2_variational_binary_field \
<FUNCTOR, Expr1, Expr2> \
(FUNCTOR(), expr1, expr2); \
}

Definition at line 631 of file form_expr_variational.h.

## _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_left

#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_left | ( |  | FUNCTION,
|  |  | FUNCTOR )

Value:
template<class Expr1, class Expr2> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_binary_multiplies_divides_left <Expr1,Expr2>::value \
,details::form_expr_v2_variational_binary_binded< \
FUNCTOR \
,typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr1>::type \
,Expr2 /* vf */ \
> \
>::type \
FUNCTION (const Expr1& expr1, const Expr2& expr2) \
{ \
typedef typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr1>::type wrap1_t; \
return details::form_expr_v2_variational_binary_binded \
<FUNCTOR, wrap1_t, Expr2> \
(FUNCTOR(), wrap1_t(expr1), expr2); \
}

Definition at line 797 of file form_expr_variational.h.

## _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_right

#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_right | ( |  | FUNCTION,
|  |  | FUNCTOR )

Value:
template<class Expr1, class Expr2> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_binary_multiplies_divides_right <Expr1,Expr2>::value \
,details::form_expr_v2_variational_binary_binded< \
details::swapper<FUNCTOR> \
, typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr2>::type \
,Expr1 /* vf */ \
> \
>::type \
FUNCTION (const Expr1& expr1, const Expr2& expr2) \
{ \
typedef typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr2>::type wrap2_t; \
return details::form_expr_v2_variational_binary_binded \
<details::swapper<FUNCTOR>, wrap2_t, Expr1> \
(details::swapper<FUNCTOR>(FUNCTOR()), wrap2_t(expr2), expr1); \
}

Definition at line 817 of file form_expr_variational.h.

## _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides

#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides | ( |  | FUNCTION,
|  |  | FUNCTOR )

Value:
_RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_left (FUNCTION,FUNCTOR) \
_RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_right (FUNCTION,FUNCTOR)
_RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_left
#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_left(FUNCTION, FUNCTOR)
Definition form_expr_variational.h:797

Definition at line 836 of file form_expr_variational.h.

## _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_left

#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_left | ( |  | FUNCTION,
|  |  | FUNCTOR )

Value:
template<class Expr1, class Expr2> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_binary_multiplies_divides_constant_left <Expr1,Expr2>::value \
,details::form_expr_v2_variational_unary< \
details::binder_first <FUNCTOR, Expr1> \
,Expr2 /* vf */ \
> \
>::type \
FUNCTION (const Expr1& expr1, const Expr2& expr2) \
{ \
return details::form_expr_v2_variational_unary \
<details::binder_first <FUNCTOR,Expr1>, Expr2> \
(details::binder_first <FUNCTOR,Expr1> (FUNCTOR(), expr1), expr2); \
}

Definition at line 876 of file form_expr_variational.h.

## _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_right

#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_right | ( |  | FUNCTION,
|  |  | FUNCTOR )

Value:
template<class Expr1, class Expr2> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_binary_multiplies_divides_constant_right <Expr1,Expr2>::value \
,details::form_expr_v2_variational_unary< \
details::binder_second <FUNCTOR, Expr2> \
,Expr1 /* vf */ \
> \
>::type \
FUNCTION (const Expr1& expr1, const Expr2& expr2) \
{ \
return details::form_expr_v2_variational_unary \
<details::binder_second <FUNCTOR,Expr2>, Expr1> \
(details::binder_second <FUNCTOR,Expr2> (FUNCTOR(), expr2), expr1); \
}

Definition at line 894 of file form_expr_variational.h.

## _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant

#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant | ( |  | FUNCTION,
|  |  | FUNCTOR )

Value:
_RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_left (FUNCTION,FUNCTOR) \
_RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_right (FUNCTION,FUNCTOR)
_RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_left
#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_left(FUNCTION, FUNCTOR)
Definition form_expr_variational.h:876

Definition at line 912 of file form_expr_variational.h.