|
Go to the documentation of this file. 59 double value( double thr) const{ 60 return static_cast<E const * >( this)->value(thr); 67 return static_cast<E& >(*this); 70 operator E const &() const{ 71 return static_cast<E const & >(*this); 80 template< typename E1, typename E2> 81 class difference: public expression<difference<E1,E2>>{ 82 std::shared_ptr<E1> x; 83 std::shared_ptr<E2> y; 85 difference(expression<E1> const & e1, expression<E2> const & e2) 86 : x(std::make_shared<E1>(e1)), y(std::make_shared<E2>(e2)) {} 88 double value( double thr) const{ 89 return x->value(thr) - y->value(thr); 96 template< typename E1, typename E2> 97 class sum: public expression<sum<E1,E2>>{ 98 std::shared_ptr<E1> x; 99 std::shared_ptr<E2> y; 101 sum(expression<E1> const & e1, expression<E2> const & e2) 102 : x(std::make_shared<E1>(e1)), y(std::make_shared<E2>(e2)) {} 104 double value( double thr) const{ 105 return x->value(thr) + y->value(thr); 112 template< typename E1, typename E2> 113 class product: public expression<product<E1,E2>>{ 114 std::shared_ptr<E1> x; 115 std::shared_ptr<E2> y; 117 product(expression<E1> const & e1, expression<E2> const & e2) 118 : x(std::make_shared<E1>(e1)), y(std::make_shared<E2>(e2)) {} 120 double value( double thr) const{ 121 return x->value(thr) * y->value(thr); 128 template< typename E1, typename E2> 129 class ratio: public expression<ratio<E1,E2>>{ 130 std::shared_ptr<E1> x; 131 std::shared_ptr<E2> y; 133 ratio(expression<E1> const & e1, expression<E2> const & e2) 134 : x(std::make_shared<E1>(e1)), y(std::make_shared<E2>(e2)) {} 136 double value( double thr) const{ 137 return x->value(thr) / y->value(thr); 145 class neg: public expression<neg<E>>{ 146 std::shared_ptr<E> x; 148 explicit neg(expression<E> const & e): x(std::make_shared<E>(e)) {} 150 double value( double thr) const{ 151 return -x->value(thr); 159 class double_expr: public expression<double_expr>{ 162 explicit double_expr( double d): x(d) {} 164 double value( double) const{ 170 template< typename E1, typename E2> 171 sum<E1, E2> operator+(expression<E1> const & e1, expression<E2> const & e2){ 172 return sum<E1, E2>{e1, e2}; 175 template< typename E1, typename E2> 176 difference<E1, E2> operator-(expression<E1> const & e1, expression<E2> const & e2){ 177 return difference<E1, E2>{e1, e2}; 180 template< typename E1, typename E2> 181 product<E1, E2> operator*(expression<E1> const & e1, expression<E2> const & e2){ 182 return product<E1, E2>{e1, e2}; 185 template< typename E1, typename E2> 186 ratio<E1, E2> operator/(expression<E1> const & e1, expression<E2> const & e2){ 187 return ratio<E1, E2>{e1, e2}; 191 neg<E> operator-(expression<E> const & e){ 195 template< typename E1> 196 difference<E1, double_expr> operator-(expression<E1> const & e1, double x){ 197 return e1 - double_expr{x}; 200 template< typename E1> 201 sum<E1, double_expr> operator+(expression<E1> const & e1, double x){ 202 return e1 + double_expr{x}; 205 template< typename E1> 206 product<E1, double_expr> operator*(expression<E1> const & e1, double x){ 207 return e1 * double_expr{x}; 210 template< typename E1> 211 ratio<E1, double_expr> operator/(expression<E1> const & e1, double x){ 212 return e1 / double_expr{x}; 215 template< typename E2> 216 sum<double_expr, E2> operator+( double x, expression<E2> const & e2){ 217 return double_expr{x} + e2; 220 template< typename E2> 221 difference<double_expr, E2> operator-( double x, expression<E2> const & e2){ 222 return double_expr{x} - e2; 225 template< typename E2> 226 product<double_expr, E2> operator*( double x, expression<E2> const & e2){ 227 return double_expr{x} * e2; 230 template< typename E2> 231 ratio<double_expr, E2> operator/( double x, expression<E2> const & e2){ 232 return double_expr{x} / e2; 255 struct threshold : public detail::expression<threshold>{ 256 double value( double thr) const{ Definition: alpha_s.hpp:37
Center-of-mass energy of a quark threshold. Definition: threshold.hpp:255
constexpr double e Electric charge of the electron in units of the positron charge. Definition: constants.hpp:70
|