CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
formulaUnaryMinusEvaluator.h
Go to the documentation of this file.
1 #ifndef CommonTools_Utils_formulaUnaryMinusEvaluator_h
2 #define CommonTools_Utils_formulaUnaryMinusEvaluator_h
3 // -*- C++ -*-
4 //
5 // Package: CommonTools/Utils
6 // Class : formulaUnaryMinusEvaluator
7 //
16 //
17 // Original Author: Christopher Jones
18 // Created: Wed, 23 Sep 2015 17:41:33 GMT
19 //
20 
21 // system include files
22 #include <memory>
23 #include <functional>
24 
25 // user include files
26 #include "formulaEvaluatorBase.h"
27 
28 // forward declarations
29 
30 namespace reco {
31  namespace formula {
33  {
34 
35  public:
36  explicit UnaryMinusEvaluator(std::shared_ptr<EvaluatorBase> iArg):
37  EvaluatorBase(Precedence::kUnaryMinusOperator ),
38  m_arg(std::move(iArg)) {}
39 
40  // ---------- const member functions ---------------------
41  virtual double evaluate(double const* iVariables, double const* iParameters) const override final {
42  return -1. * m_arg->evaluate(iVariables,iParameters) ;
43  }
44 
45  private:
47 
48  const UnaryMinusEvaluator& operator=(const UnaryMinusEvaluator&) = delete;
49 
50  // ---------- member data --------------------------------
51  std::shared_ptr<EvaluatorBase> m_arg;
52  };
53  }
54 }
55 
56 
57 #endif
def move
Definition: eostools.py:510
const UnaryMinusEvaluator & operator=(const UnaryMinusEvaluator &)=delete
virtual double evaluate(double const *iVariables, double const *iParameters) const overridefinal
UnaryMinusEvaluator(std::shared_ptr< EvaluatorBase > iArg)
std::shared_ptr< EvaluatorBase > m_arg