CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

funct::Master< F > Struct Template Reference

#include <FunctClone.h>

List of all members.

Public Member Functions

void add () const
double get (size_t i, double x) const
double get (size_t i) const
 Master (const F &f)
double operator() () const
double operator() (double x) const
size_t size () const

Private Member Functions

void clear () const
void reset () const
void update () const
void update (double x) const

Private Attributes

const boost::shared_ptr< F > f_
std::vector< bool > toBeUpdated_
double value_

Detailed Description

template<typename F>
struct funct::Master< F >

Definition at line 10 of file FunctClone.h.


Constructor & Destructor Documentation

template<typename F>
funct::Master< F >::Master ( const F &  f) [inline]

Definition at line 11 of file FunctClone.h.

                       : f_(new F(f)), toBeUpdated_(1, true) { 
    }

Member Function Documentation

template<typename F>
void funct::Master< F >::add ( ) const [inline]

Definition at line 19 of file FunctClone.h.

References funct::Master< F >::size(), and funct::Master< F >::toBeUpdated_.

                     {
      toBeUpdated_.resize(size() + 1, true);
    }
template<typename F>
void funct::Master< F >::clear ( void  ) const [inline, private]

Definition at line 37 of file FunctClone.h.

References lumiContext::fill, and funct::Master< F >::toBeUpdated_.

Referenced by funct::Master< F >::update().

                       {
      std::fill(toBeUpdated_.begin(), toBeUpdated_.end(), false);
    }
template<typename F>
double funct::Master< F >::get ( size_t  i) const [inline]
template<typename F>
double funct::Master< F >::get ( size_t  i,
double  x 
) const [inline]
template<typename F>
double funct::Master< F >::operator() ( double  x) const [inline]

Definition at line 16 of file FunctClone.h.

References x.

                                      {
      return get(0, x);
    }
template<typename F>
double funct::Master< F >::operator() ( ) const [inline]

Definition at line 13 of file FunctClone.h.

                              {
      return get(0);
    }
template<typename F>
void funct::Master< F >::reset ( void  ) const [inline, private]

Definition at line 34 of file FunctClone.h.

References lumiContext::fill, and funct::Master< F >::toBeUpdated_.

                       {
      std::fill(toBeUpdated_.begin(), toBeUpdated_.end(), true);
    }
template<typename F>
size_t funct::Master< F >::size ( void  ) const [inline]

Definition at line 22 of file FunctClone.h.

References funct::Master< F >::toBeUpdated_.

Referenced by funct::Master< F >::add().

{ return toBeUpdated_.size(); }
template<typename F>
void funct::Master< F >::update ( double  x) const [inline, private]

Definition at line 44 of file FunctClone.h.

References funct::Master< F >::clear(), funct::Master< F >::value_, and x.

                                {
      clear();
      value_ = (*f_)(x);
    }
template<typename F>
void funct::Master< F >::update ( void  ) const [inline, private]

Definition at line 40 of file FunctClone.h.

References funct::Master< F >::clear(), and funct::Master< F >::value_.

Referenced by funct::Master< F >::get().

                        {
      clear();
      value_ = (*f_)();
    }

Member Data Documentation

template<typename F>
const boost::shared_ptr<F> funct::Master< F >::f_ [private]

Definition at line 48 of file FunctClone.h.

template<typename F>
std::vector<bool> funct::Master< F >::toBeUpdated_ [mutable, private]
template<typename F>
double funct::Master< F >::value_ [mutable, private]

Definition at line 49 of file FunctClone.h.

Referenced by funct::Master< F >::get(), and funct::Master< F >::update().