CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
reco::formula::UnaryMinusEvaluator Class Reference

#include "formulaUnaryMinusEvaluator.h"

Inheritance diagram for reco::formula::UnaryMinusEvaluator:
reco::formula::EvaluatorBase

Public Member Functions

std::vector< std::string > abstractSyntaxTree () const final
 
double evaluate (double const *iVariables, double const *iParameters) const final
 
 UnaryMinusEvaluator (std::shared_ptr< EvaluatorBase > iArg)
 
- Public Member Functions inherited from reco::formula::EvaluatorBase
 EvaluatorBase ()
 
 EvaluatorBase (Precedence)
 
unsigned int precedence () const
 
void setPrecedenceToParenthesis ()
 
virtual ~EvaluatorBase ()
 

Private Member Functions

const UnaryMinusEvaluatoroperator= (const UnaryMinusEvaluator &)=delete
 
 UnaryMinusEvaluator (const UnaryMinusEvaluator &)=delete
 

Private Attributes

std::shared_ptr< EvaluatorBasem_arg
 

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 formulaUnaryMinusEvaluator.h.

Constructor & Destructor Documentation

reco::formula::UnaryMinusEvaluator::UnaryMinusEvaluator ( std::shared_ptr< EvaluatorBase iArg)
inlineexplicit
reco::formula::UnaryMinusEvaluator::UnaryMinusEvaluator ( const UnaryMinusEvaluator )
privatedelete

Member Function Documentation

std::vector<std::string> reco::formula::UnaryMinusEvaluator::abstractSyntaxTree ( ) const
inlinefinalvirtual

Implements reco::formula::EvaluatorBase.

Definition at line 44 of file formulaUnaryMinusEvaluator.h.

References m_arg, operator=(), reco::formula::shiftAST(), and UnaryMinusEvaluator().

44  {
45  auto ret = shiftAST(m_arg->abstractSyntaxTree());
46  ret.emplace(ret.begin(), "unary minus");
47  return ret;
48  }
std::vector< std::string > shiftAST(std::vector< std::string > child)
std::shared_ptr< EvaluatorBase > m_arg
double reco::formula::UnaryMinusEvaluator::evaluate ( double const *  iVariables,
double const *  iParameters 
) const
inlinefinalvirtual

Implements reco::formula::EvaluatorBase.

Definition at line 41 of file formulaUnaryMinusEvaluator.h.

References m_arg.

41  {
42  return -1. * m_arg->evaluate(iVariables,iParameters) ;
43  }
std::shared_ptr< EvaluatorBase > m_arg
const UnaryMinusEvaluator& reco::formula::UnaryMinusEvaluator::operator= ( const UnaryMinusEvaluator )
privatedelete

Referenced by abstractSyntaxTree().

Member Data Documentation

std::shared_ptr<EvaluatorBase> reco::formula::UnaryMinusEvaluator::m_arg
private

Definition at line 55 of file formulaUnaryMinusEvaluator.h.

Referenced by abstractSyntaxTree(), and evaluate().