|
|
Go to the documentation of this file. 1 #ifndef PhysicsTools_Utilities_SimplifyRatio_h
2 #define PhysicsTools_Utilities_SimplifyRatio_h
14 #include <boost/mpl/if.hpp>
15 #include <type_traits>
29 template <
int n,
typename A,
bool positive = (n >= 0)>
86 template <TYPT2,
bool parametric = (Parametric<A>::value == 1) || (Parametric<B>::value == 1)>
100 template <TYPT3,
bool parametric = (Parametric<A>::value == 1)>
143 template <
typename Prod,
bool simplify = Prod::value>
151 template <
typename Prod>
159 template <
typename F,
typename G,
typename H>
166 inline static const A&
a(
const F&
f,
const G&
g,
const H&
h) {
return f; }
167 inline static const B&
b(
const F&
f,
const G&
g,
const H&
h) {
return g; }
168 inline static const C&
c(
const F&
f,
const G&
g,
const H&
h) {
return h; }
177 inline static const A&
a(
const F&
f,
const G&
g,
const H&
h) {
return f; }
178 inline static const B&
b(
const F&
f,
const G&
g,
const H&
h) {
return h; }
179 inline static const C&
c(
const F&
f,
const G&
g,
const H&
h) {
return g; }
188 inline static const A&
a(
const F&
f,
const G&
g,
const H&
h) {
return g; }
189 inline static const B&
b(
const F&
f,
const G&
g,
const H&
h) {
return h; }
190 inline static const C&
c(
const F&
f,
const G&
g,
const H&
h) {
return f; }
209 template <
typename Prod,
bool simplify = Prod::value>
217 template <
typename Prod>
225 template <
typename F,
typename G,
typename H>
232 inline static const A&
a(
const F&
f,
const G&
g,
const H&
h) {
return f; }
233 inline static const B&
b(
const F&
f,
const G&
g,
const H&
h) {
return g; }
234 inline static const C&
c(
const F&
f,
const G&
g,
const H&
h) {
return h; }
243 inline static const A&
a(
const F&
f,
const G&
g,
const H&
h) {
return f; }
244 inline static const B&
b(
const F&
f,
const G&
g,
const H&
h) {
return h; }
245 inline static const C&
c(
const F&
f,
const G&
g,
const H&
h) {
return g; }
254 inline static const A&
a(
const F&
f,
const G&
g,
const H&
h) {
return g; }
255 inline static const B&
b(
const F&
f,
const G&
g,
const H&
h) {
return h; }
256 inline static const C&
c(
const F&
f,
const G&
g,
const H&
h) {
return f; }
281 template <TYPT3,
bool simplify = false>
RatioStruct< typename Prod::C, typename Prod::AB > type
static const A & a(const F &f, const G &g, const H &h)
AuxSumRatio< A, B, C, ratio1::value or ratio2::value > aux
static const B & b(const F &f, const G &g, const H &h)
static type combine(const typename Prod::A &a, const typename Prod::B &b, const typename Prod::C &c)
TEMPL(T2) struct Divides B
#define RATIO_RULE(TMPL, T1, T2, RES, COMB)
static const C & c(const F &f, const G &g, const H &h)
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
typedef DIFF(PROD(A, B1), PRIMIT(X, PROD(A1, B1))) type
static const C & c(const F &f, const G &g, const H &h)
static const B & b(const F &f, const G &g, const H &h)
static type combine(const typename Prod::A &a, const typename Prod::B &b, const typename Prod::C &c)
static const B & b(const F &f, const G &g, const H &h)
static const C & c(const F &f, const G &g, const H &h)
static const A & a(const F &f, const G &g, const H &h)
static const A & a(const F &f, const G &g, const H &h)
typedef POWER(A, NUM(n)) arg
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
const Numerical< n > & num()
RatioStruct< typename Prod::AB, typename Prod::C > type
static type combine(const typename Prod::A &a, const typename Prod::B &b, const typename Prod::C &c)
AuxProductRatio< prod >::type type
static const C & c(const F &f, const G &g, const H &h)
Power< A, typename Difference< B, C >::type >::type type
::boost::mpl::if_< prod1, prod1, typename ::boost::mpl::if_< prod2, prod2, prod0 >::type >::type prod
static type combine(const A &_1, const B &_2)
Product< typename Prod::AB, typename Prod::C >::type type
Ratio< typename Prod::AB, typename Prod::C >::type type
Minus< typename Ratio< A, Numerical< -n > >::type >::type type
static const B & b(const F &f, const G &g, const H &h)
static type combine(const arg1 &_1, const arg2 &_2)
static const B & b(const F &f, const G &g, const H &h)
RatioStruct< arg1, arg2 > type
RatioStruct< typename Sum< A, B >::type, typename Sum< B, A >::type > type
TEMPL(T1) struct Divides0
static const C & c(const F &f, const G &g, const H &h)
static const A & a(const F &f, const G &g, const H &h)
static type combine(const H &h, const ProductStruct< F, G > &fg)
AuxProductRatio2< prod >::type type
static const A & a(const F &f, const G &g, const H &h)
static const std::string B
static const C & c(const F &f, const G &g, const H &h)
#define COMBINE(A, B, RES)
::boost::mpl::if_< prod1, prod1, typename ::boost::mpl::if_< prod2, prod2, prod0 >::type >::type prod
static const B & b(const F &f, const G &g, const H &h)
static type combine(const ProductStruct< F, G > &fg, const H &h)
RatioStruct< SumStruct< A, B >, C > type
Power< A, B >::type pow(const A &a, const B &b)
RatioStruct< A, Numerical< n > > type
static const A & a(const F &f, const G &g, const H &h)
static type combine(const typename Prod::A &a, const typename Prod::B &b, const typename Prod::C &c)
Sum< typename Ratio< A, C >::type, typename Ratio< B, C >::type >::type type
typedef PROD(F, SUM(RATIO(A, F), RATIO(B, F))) type
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g