src
CommonTools
Utils
interface
parser
ExpressionBinaryOperatorSetter.h
Go to the documentation of this file.
1
#ifndef CommonTools_Utils_ExpressionBinaryOperatorSetter_h
2
#define CommonTools_Utils_ExpressionBinaryOperatorSetter_h
3
/* \class reco::parser::ExpressionBinaryOperator
4
*
5
* Binary operator expression setter
6
*
7
* \author original version: Chris Jones, Cornell,
8
* adapted by Luca Lista, INFN
9
*
10
* \version $Revision: 1.2 $
11
*
12
*/
13
#include "
CommonTools/Utils/interface/parser/ExpressionBinaryOperator.h
"
14
#include "
CommonTools/Utils/interface/parser/ExpressionStack.h
"
15
#include <cmath>
16
17
namespace
reco
{
18
namespace
parser
{
19
20
template
<
typename
T>
21
struct
power_of
{
22
T
operator()
(
T
lhs,
T
rhs)
const
{
return
pow
(lhs, rhs); }
23
};
24
25
template
<
typename
T>
26
struct
int_div_remainder
{
27
T
operator()
(
T
lhs,
T
rhs)
const
{
return
int
(lhs) %
int
(rhs); }
28
};
29
30
template
<
typename
Op>
31
struct
ExpressionBinaryOperatorSetter
{
32
ExpressionBinaryOperatorSetter
(
ExpressionStack
&
stack
) :
stack_
(
stack
) {}
33
void
operator()
(
const
char
*,
const
char
*)
const
{
34
stack_
.push_back(
ExpressionPtr
(
new
ExpressionBinaryOperator<Op>
(
stack_
)));
35
}
36
37
private
:
38
ExpressionStack
&
stack_
;
39
};
40
}
// namespace parser
41
}
// namespace reco
42
43
#endif
reco::parser::ExpressionBinaryOperator
Definition:
ExpressionBinaryOperator.h:19
reco::parser::ExpressionBinaryOperatorSetter::stack_
ExpressionStack & stack_
Definition:
ExpressionBinaryOperatorSetter.h:38
reco::parser::ExpressionPtr
std::shared_ptr< ExpressionBase > ExpressionPtr
Definition:
ExpressionBase.h:25
ExpressionBinaryOperator.h
reco::parser::ExpressionBinaryOperatorSetter
Definition:
ExpressionBinaryOperatorSetter.h:31
reco::parser::ExpressionStack
std::vector< std::shared_ptr< ExpressionBase > > ExpressionStack
Definition:
ExpressionStack.h:19
createfilelist.int
int
Definition:
createfilelist.py:10
svgfig.stack
stack
Definition:
svgfig.py:559
reco::parser::ExpressionBinaryOperatorSetter::ExpressionBinaryOperatorSetter
ExpressionBinaryOperatorSetter(ExpressionStack &stack)
Definition:
ExpressionBinaryOperatorSetter.h:32
reco::parser::ExpressionBinaryOperatorSetter::operator()
void operator()(const char *, const char *) const
Definition:
ExpressionBinaryOperatorSetter.h:33
reco::parser::int_div_remainder::operator()
T operator()(T lhs, T rhs) const
Definition:
ExpressionBinaryOperatorSetter.h:27
reco::parser::int_div_remainder
Definition:
ExpressionBinaryOperatorSetter.h:26
reco::parser::power_of::operator()
T operator()(T lhs, T rhs) const
Definition:
ExpressionBinaryOperatorSetter.h:22
writedatasetfile.parser
parser
Definition:
writedatasetfile.py:7
reco
fixed size matrix
Definition:
AlignmentAlgorithmBase.h:46
T
long double T
Definition:
Basic3DVectorLD.h:48
ExpressionStack.h
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition:
Power.h:29
reco::parser::power_of
Definition:
ExpressionBinaryOperatorSetter.h:21
Generated for CMSSW Reference Manual by
1.8.14