Go to the documentation of this file. 1 #ifndef PhysicsTools_Utilities_SimplifyTrigonometric_h
2 #define PhysicsTools_Utilities_SimplifyTrigonometric_h
108 static constexpr
int p =
n <
m ?
n :
m;
Sum< typename Product< Numerical< n >, typename Sin2< A >::type >::type, typename Product< Numerical< m >, typename Cos2< A >::type >::type >::type type
static type combine(const A &a, const B &b)
#define COS_RULE(TMPL, T, RES, COMB)
Product< typename Power< typename Cos< A >::type, B >::type, typename Power< typename Tan< A >::type, B >::type >::type type
TEMPL(T2) struct Divides B
Sum< typename Sum< typename Product< Numerical< n - p >, typename Sin2< A >::type >::type, typename Product< Numerical< m - p >, typename Cos2< A >::type >::type >::type, Numerical< p > >::type type
RatioStruct< typename Sin< A >::type, typename Cos< A >::type > type
static type combine(const typename Product< Numerical< m >, typename Cos2< A >::type >::type &_1, const typename Product< Numerical< n >, typename Sin2< A >::type >::type &_2)
Sum< typename Product< Numerical< n >, typename Sin2< A >::type >::type, typename Product< Numerical< m >, typename Cos2< A >::type >::type >::type type
typedef POWER(A, NUM(n)) arg
#define SIN_RULE(TMPL, T, RES, COMB)
#define TAN_RULE(TMPL, T, RES, COMB)
Sin< T >::type sin(const T &t)
Cos< T >::type cos(const T &t)
Product< typename Sin< A >::type, typename Cos< A >::type >::type type
Power< typename Sin< A >::type, B >::type type
Tan< T >::type tan(const T &t)
#define PROD_RULE(TMPL, T1, T2, RES, COMB)
TEMPL(T1) struct Divides0
static type combine(const typename Cos2< A >::type &_1, const typename Sin2< A >::type &_2)
#define COMBINE(A, B, RES)
Product< typename Cos< A >::type, typename Tan< A >::type >::type type
Power< A, B >::type pow(const A &a, const B &b)
Sum< typename Sin2< A >::type, typename Cos2< A >::type >::type type
RatioStruct< typename Sin< A >::type, typename Tan< A >::type > type
typedef PROD(F, SUM(RATIO(A, F), RATIO(B, F))) type