#include <boost/preprocessor/comparison/less.hpp>
#include <boost/preprocessor/logical/and.hpp>
#include <boost/preprocessor/control/if.hpp>
#include <boost/preprocessor/list/at.hpp>
#include <boost/preprocessor/list/cat.hpp>
#include <boost/preprocessor/list/for_each_product.hpp>
#include <boost/preprocessor/logical/or.hpp>
#include <boost/preprocessor/tuple/to_list.hpp>
#include <boost/preprocessor/tuple/eat.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
#include <boost/preprocessor/punctuation/comma.hpp>
#include <boost/preprocessor/facilities/identity.hpp>
#include <boost/preprocessor/stringize.hpp>
Go to the source code of this file.
|
#define | __AdBinaryFunctions_H 1 |
|
#define | AD_BINARY_FUNCTION_COMMENT(O) BOOST_PP_TUPLE_ELEM(5, 2, O) |
|
#define | AD_BINARY_FUNCTION_GRAD(O) BOOST_PP_TUPLE_ELEM(5, 3, O) |
|
#define | AD_BINARY_FUNCTION_HESS(O) BOOST_PP_TUPLE_ELEM(5, 4, O) |
|
#define | AD_BINARY_FUNCTION_NAME(O) BOOST_PP_TUPLE_ELEM(5, 0, O) |
|
#define | AD_BINARY_FUNCTION_SYMBOL(O) BOOST_PP_TUPLE_ELEM(5, 1, O) |
|
#define | AD_BINARY_FUNCTIONS |
|
|
template<class Expr1 , class Expr2 > |
ADExpr< AdFuncPow< ADExpr
< Expr1 >, ADExpr< Expr2 > > > | Feel::Feel::detail::pow (const ADExpr< Expr1 > &expr1, const ADExpr< Expr2 > &expr2) |
|
template<class T , int Nvar, int Order, int Var> |
ADExpr< AdFuncPow< ADType< T,
Nvar, Order, Var >, ADType< T,
Nvar, Order, Var > > > | Feel::Feel::detail::pow (const ADType< T, Nvar, Order, Var > &x, const ADType< T, Nvar, Order, Var > &y) |
|
template<class W , class T , int Nvar, int Order, int Var> |
ADExpr< AdFuncPow< ADType< T,
Nvar, Order, Var >, ADCst< W > > > | Feel::Feel::detail::pow (const ADType< T, Nvar, Order, Var > &x, W y) |
|
#define AD_BINARY_FUNCTIONS |
Value:BOOST_PP_TUPLE_TO_LIST( \
1, \
( \
( ADBinFunPow , pow, "Power function", (expr2_.value() * expr1_.grad(__i) * math::pow(expr1_.value(),expr2_.value()-1)), (expr2_.value() * ( (expr2_.value()-1) * expr1_.grad(__i) * expr1_.grad(__j) * math::pow(expr1_.value(),expr2_.value()-2) + expr1_.hessian(__i,__j) * math::pow(expr1_.value(),expr2_.value()-1))) ) \
) \
) \