CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Namespaces | Functions
SimplifyProduct.h File Reference
#include "PhysicsTools/Utilities/interface/Product.h"
#include "PhysicsTools/Utilities/interface/Fraction.h"
#include "PhysicsTools/Utilities/interface/DecomposePower.h"
#include "PhysicsTools/Utilities/interface/ParametricTrait.h"
#include "PhysicsTools/Utilities/interface/Simplify_begin.h"
#include "PhysicsTools/Utilities/interface/Simplify_end.h"

Go to the source code of this file.

Classes

struct  funct::AuxProduct< Prod, simplify >
 
struct  funct::AuxProduct< Prod, false >
 
struct  funct::Product< PROD_S(F, G), H >::prod0
 
struct  funct::Product< PROD_S(F, G), H >::prod1
 
struct  funct::Product< PROD_S(F, G), H >::prod2
 
struct  funct::Product< PROD_S(F, G), H >
 
struct  funct::SimplifyPowerProduct< TYPT3, parametric >
 
struct  funct::SimplifyPowerProduct< A, B, C, false >
 

Namespaces

 funct
 

Functions

typedef funct::MINUS_S (A) arg
 
 funct::NUM (n))
 
funct::NUM (1) >
 
 funct::POWER_S (A, NUM(n))>
 
 funct::POWER_S (A, C) >
 
 funct::POWER_S (A, B) >
 
 funct::PROD_RULE (TYPT3, A, PROD_S(B, C), PROD(PROD(A, B), C),(_1 *_2._1)*_2._2)
 
 funct::PROD_RULE (TYPT1, NUM(0), A, NUM(0), num< 0 >())
 
 funct::PROD_RULE (TYPN1, NUM(0), NUM(n), NUM(0), num< 0 >())
 
 funct::PROD_RULE (TYPT2, NUM(0), PROD_S(A, B), NUM(0), num< 0 >())
 
 funct::PROD_RULE (TYPT1, NUM(1), A, A, _2)
 
 funct::PROD_RULE (TYPN1, NUM(1), NUM(n), NUM(n), _2)
 
 funct::PROD_RULE (TYPN2, NUM(1), FRACT_S(n, m), FRACT_S(n, m), _2)
 
 funct::PROD_RULE (TYP0, NUM(1), NUM(1), NUM(1), num< 1 >())
 
 funct::PROD_RULE (TYPT1, NUM(-1), A, MINUS_S(A),-_2)
 
 funct::PROD_RULE (TYPN1, NUM(-1), NUM(n), NUM(-n), num<-n >())
 
 funct::PROD_RULE (TYPT2, NUM(1), PROD_S(A, B), PROD_S(A, B), _2)
 
 funct::PROD_RULE (TYPT2, A, MINUS_S(B), MINUS(PROD(A, B)),-(_1 *_2._))
 
 funct::PROD_RULE (TYPN1T1, NUM(n), MINUS_S(A), MINUS(PROD(NUM(n), A)),-(_1 *_2._))
 
 funct::PROD_RULE (TYPT3, PROD_S(A, B), MINUS_S(C), MINUS(PROD(PROD(A, B), C)),-(_1 *_2._))
 
 funct::PROD_RULE (TYPT1, NUM(1), MINUS_S(A), MINUS(A), _2)
 
 funct::PROD_RULE (TYPT2, MINUS_S(A), MINUS_S(B), PROD(A, B), _1._ *_2._)
 
 funct::PROD_RULE (TYPT2, MINUS_S(A), B, MINUS(PROD(A, B)),-(_1._ *_2))
 
 funct::PROD_RULE (TYPT3, A, RATIO_S(B, C), RATIO(PROD(A, B), C),(_1 *_2._1)/_2._2)
 
 funct::PROD_RULE (TYPN1T2, NUM(n), RATIO_S(A, B), RATIO(PROD(NUM(n), A), B),(_1 *_2._1)/_2._2)
 
 funct::PROD_RULE (TYPT2, NUM(1), RATIO_S(A, B), RATIO(A, B), _2)
 
 funct::PROD_RULE (TYPT2, NUM(0), RATIO_S(A, B), NUM(0), num< 0 >())
 
 funct::PROD_RULE (TYPN1T1, A, NUM(n), PROD(NUM(n), A), _2 *_1)
 
 funct::PROD_RULE (TYPN1T2, PROD_S(A, B), NUM(n), PROD(PROD(NUM(n), A), B),(_2 *_1._1)*_1._2)
 
 funct::PROD_RULE (TYPT4, PROD_S(A, B), PROD_S(C, D), PROD(PROD(PROD(A, B), C), D),(_1 *_2._1)*_2._2)
 
 funct::PROD_RULE (TYPN3T1, FRACT_S(n, m), RATIO_S(A, NUM(k)), PROD(FRACT(n, m+k), A),(fract< n, m+k >()*_2._1))
 
 funct::PROD_RULE (TYPN1T2, RATIO_S(A, B), NUM(n), RATIO(PROD(NUM(n), A), B),(_2 *_1._1)/_1._2)
 
 funct::PROD_RULE (TYPT3, RATIO_S(A, B), C, RATIO(PROD(A, C), B),(_1._1 *_2)/_1._2)
 
 funct::PROD_RULE (TYP0, NUM(0), NUM(1), NUM(0), num< 0 >())
 
 funct::PROD_RULE (TYPT4, RATIO_S(A, B), RATIO_S(C, D), RATIO(PROD(A, C), PROD(B, D)),(_1._1 *_2._1)/(_1._2 *_2._2))
 
 funct::PROD_RULE (TYPN1, NUM(n), NUM(n), NUM(n *n), num< n *n >())
 
 funct::PROD_RULE (TYPT4, RATIO_S(A, B), PROD_S(C, D), RATIO(PROD(PROD(A, C), D), B),((_1._1 *_2._1)*_2._2)/_1._2)
 
 funct::PROD_S (A, B)>
 
 funct::TEMPL (T1) struct Divides0
 
 funct::TEMPL (T2) struct Divides
 
 funct::TEMPL (N1T1) struct Divides< POWER_S(A
 
 funct::TEMPL (T3) struct Divides< PROD_S(A