CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
reco::formula::FunctionTwoArgsEvaluator Class Reference

#include "formulaFunctionTwoArgsEvaluator.h"

Inheritance diagram for reco::formula::FunctionTwoArgsEvaluator:
reco::formula::EvaluatorBase

Public Member Functions

virtual double evaluate (double const *iVariables, double const *iParameters) const overridefinal
 
template<typename T >
 FunctionTwoArgsEvaluator (std::shared_ptr< EvaluatorBase > iArg1, std::shared_ptr< EvaluatorBase > iArg2, T iFunc)
 
- Public Member Functions inherited from reco::formula::EvaluatorBase
 EvaluatorBase ()
 
 EvaluatorBase (Precedence)
 
unsigned int precedence () const
 
void setPrecedenceToParenthesis ()
 
virtual ~EvaluatorBase ()
 

Private Member Functions

 FunctionTwoArgsEvaluator (const FunctionTwoArgsEvaluator &)=delete
 
const FunctionTwoArgsEvaluatoroperator= (const FunctionTwoArgsEvaluator &)=delete
 

Private Attributes

std::shared_ptr< EvaluatorBasem_arg1
 
std::shared_ptr< EvaluatorBasem_arg2
 
std::function< double(double,
double)> 
m_function
 

Additional Inherited Members

- Public Types inherited from reco::formula::EvaluatorBase
enum  Precedence {
  Precedence::kIdentity = 1, Precedence::kComparison =2, Precedence::kPlusMinus = 3, Precedence::kMultDiv = 4,
  Precedence::kPower = 5, Precedence::kFunction = 6, Precedence::kParenthesis = 7, Precedence::kUnaryMinusOperator = 8
}
 

Detailed Description

Description: [one line class summary]

Usage: <usage>

Definition at line 32 of file formulaFunctionTwoArgsEvaluator.h.

Constructor & Destructor Documentation

template<typename T >
reco::formula::FunctionTwoArgsEvaluator::FunctionTwoArgsEvaluator ( std::shared_ptr< EvaluatorBase iArg1,
std::shared_ptr< EvaluatorBase iArg2,
T  iFunc 
)
inline

Definition at line 37 of file formulaFunctionTwoArgsEvaluator.h.

39  :
40  m_arg1(std::move(iArg1)),
41  m_arg2(std::move(iArg2)),
42  m_function(iFunc)
43  {}
def move
Definition: eostools.py:510
std::function< double(double, double)> m_function
reco::formula::FunctionTwoArgsEvaluator::FunctionTwoArgsEvaluator ( const FunctionTwoArgsEvaluator )
privatedelete

Member Function Documentation

virtual double reco::formula::FunctionTwoArgsEvaluator::evaluate ( double const *  iVariables,
double const *  iParameters 
) const
inlinefinaloverridevirtual

Implements reco::formula::EvaluatorBase.

Definition at line 46 of file formulaFunctionTwoArgsEvaluator.h.

References m_arg1, m_arg2, and m_function.

46  {
47  return m_function( m_arg1->evaluate(iVariables,iParameters),
48  m_arg2->evaluate(iVariables,iParameters) );
49  }
std::function< double(double, double)> m_function
const FunctionTwoArgsEvaluator& reco::formula::FunctionTwoArgsEvaluator::operator= ( const FunctionTwoArgsEvaluator )
privatedelete

Member Data Documentation

std::shared_ptr<EvaluatorBase> reco::formula::FunctionTwoArgsEvaluator::m_arg1
private

Definition at line 57 of file formulaFunctionTwoArgsEvaluator.h.

Referenced by evaluate().

std::shared_ptr<EvaluatorBase> reco::formula::FunctionTwoArgsEvaluator::m_arg2
private

Definition at line 58 of file formulaFunctionTwoArgsEvaluator.h.

Referenced by evaluate().

std::function<double(double,double)> reco::formula::FunctionTwoArgsEvaluator::m_function
private

Definition at line 59 of file formulaFunctionTwoArgsEvaluator.h.

Referenced by evaluate().