Jpp  18.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t > Class Template Referenceabstract

Template class for polynomial interpolation in 1D. More...

#include <JPolfit.hh>

Inheritance diagram for JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >:
JTOOLS::JPolfitFunction< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t > JTOOLS::JFunction1D< JElement_t::abscissa_type, JResult_t > JTOOLS::JFunction< JElement_t::abscissa_type, JResultType< JElement_t::ordinate_type >::result_type > JTOOLS::JFunction< JElement_t::abscissa_type, JResult_t > JTOOLS::JFunctional< JElement_t::abscissa_type, JResultType< JElement_t::ordinate_type >::result_type > JTOOLS::JFunctional< JElement_t::abscissa_type, JResult_t >

Public Types

typedef JCollection_t
< JElement_t, JDistance_t > 
collection_type
 
typedef
collection_type::abscissa_type 
abscissa_type
 
typedef
collection_type::ordinate_type 
ordinate_type
 
typedef collection_type::value_type value_type
 
typedef
collection_type::distance_type 
distance_type
 
typedef
collection_type::const_iterator 
const_iterator
 
typedef
collection_type::const_reverse_iterator 
const_reverse_iterator
 
typedef collection_type::iterator iterator
 
typedef
collection_type::reverse_iterator 
reverse_iterator
 
typedef JFunction1D
< abscissa_type, JResult_t > 
function_type
 
typedef
function_type::argument_type 
argument_type
 
typedef function_type::result_type result_type
 
typedef
function_type::JExceptionHandler 
exceptionhandler_type
 
typedef JResultType
< ordinate_type >::result_type 
data_type
 
typedef JFunctional
< JElement_t::abscissa_type,
JResultType
< JElement_t::ordinate_type >
::result_type
functional_type
 
typedef JSupervisor supervisor_type
 
enum  
 
typedef JFunctional
< JElement_t::abscissa_type,
JResult_t > 
functional_type
 
typedef JSupervisor supervisor_type
 

Public Member Functions

 JPolfitFunction1D ()
 Default contructor. More...
 
virtual result_type evaluate (const argument_type *pX) const override
 Recursive interpolation method implementation. More...
 
virtual result_type evaluate (const argument_type *pX) const =0
 Recursive function value evaluation. More...
 
JSupervisor getSupervisor () const
 Get supervisor. More...
 
const JExceptionHandler & getExceptionHandler () const
 Get exception handler. More...
 
void setExceptionHandler (const JSupervisor &supervisor)
 Set the supervisor for handling of exceptions. More...
 
result_type operator() (const argument_type x) const
 Function value evaluation. More...
 
virtual result_type evaluate (const argument_type *pX) const =0
 Recursive function value evaluation. More...
 
JSupervisor getSupervisor () const
 Get supervisor. More...
 
const JExceptionHandler & getExceptionHandler () const
 Get exception handler. More...
 
void setExceptionHandler (const JSupervisor &supervisor)
 Set the supervisor for handling of exceptions. More...
 

Static Public Member Functions

static result_type getValue (const JFunctional &function, const argument_type *pX)
 Recursive function value evaluation. More...
 
static JClass< result_type >
::argument_type 
getValue (typename JClass< result_type >::argument_type value, const argument_type *pX)
 Termination of recursive function value evaluation. More...
 
static result_type getValue (const JFunctional &function, const argument_type *pX)
 Recursive function value evaluation. More...
 
static JClass< result_type >
::argument_type 
getValue (typename JClass< result_type >::argument_type value, const argument_type *pX)
 Termination of recursive function value evaluation. More...
 

Protected Attributes

JSupervisor supervisor
 
JSupervisor supervisor
 

Detailed Description

template<unsigned int N, unsigned int M, class JElement_t, template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
class JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >

Template class for polynomial interpolation in 1D.

This class implements the JFunction1D interface.

Definition at line 149 of file JPolfit.hh.

Member Typedef Documentation

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef JCollection_t<JElement_t, JDistance_t> JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::collection_type

Definition at line 155 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef collection_type::abscissa_type JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::abscissa_type

Definition at line 157 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef collection_type::ordinate_type JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::ordinate_type

Definition at line 158 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef collection_type::value_type JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::value_type

Definition at line 159 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef collection_type::distance_type JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::distance_type

Definition at line 160 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef collection_type::const_iterator JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::const_iterator

Definition at line 162 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef collection_type::const_reverse_iterator JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::const_reverse_iterator

Definition at line 163 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef collection_type::iterator JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::iterator

Definition at line 164 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef collection_type::reverse_iterator JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::reverse_iterator

Definition at line 165 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef JFunction1D<abscissa_type, JResult_t> JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::function_type

Definition at line 167 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef function_type::argument_type JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::argument_type

Definition at line 169 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef function_type::result_type JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::result_type

Definition at line 170 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
typedef function_type::JExceptionHandler JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::exceptionhandler_type

Definition at line 171 of file JPolfit.hh.

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t , class JDistance_t >
typedef JResultType<ordinate_type>::result_type JTOOLS::JPolfitFunction< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::data_type
inherited

Definition at line 63 of file JPolfit.hh.

typedef JFunctional<JElement_t::abscissa_type , JResultType< JElement_t::ordinate_type >::result_type > JTOOLS::JFunction< JElement_t::abscissa_type , JResultType< JElement_t::ordinate_type >::result_type >::functional_type
inherited

Definition at line 306 of file JFunctional.hh.

typedef JSupervisor JTOOLS::JFunctional< JElement_t::abscissa_type , JResultType< JElement_t::ordinate_type >::result_type >::supervisor_type
inherited

Definition at line 89 of file JFunctional.hh.

typedef JFunctional<JElement_t::abscissa_type , JResult_t> JTOOLS::JFunction1D< JElement_t::abscissa_type , JResult_t >::functional_type
inherited

Definition at line 322 of file JFunctional.hh.

typedef JSupervisor JTOOLS::JFunctional< JElement_t::abscissa_type , JResult_t >::supervisor_type
inherited

Definition at line 89 of file JFunctional.hh.

Member Enumeration Documentation

anonymous enum
inherited

Constructor & Destructor Documentation

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t = typename JElement_t::ordinate_type, class JDistance_t = JDistance<typename JElement_t::abscissa_type>>
JTOOLS::JPolfitFunction1D< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::JPolfitFunction1D ( )
inline

Default contructor.

Definition at line 177 of file JPolfit.hh.

178  {}

Member Function Documentation

template<unsigned int N, unsigned int M, class JElement_t , template< class, class > class JCollection_t, class JResult_t , class JDistance_t >
virtual result_type JTOOLS::JPolfitFunction< N, M, JElement_t, JCollection_t, JResult_t, JDistance_t >::evaluate ( const argument_type pX) const
inlineoverridevirtualinherited

Recursive interpolation method implementation.

Parameters
pXpointer to abscissa values
Returns
function value

Definition at line 86 of file JPolfit.hh.

87  {
88  using namespace std;
89  using namespace JPP;
90 
91  if (this->size() <= 1u) {
92  return this->getExceptionHandler().action(JFunctionalException("JPolfitFunction<>::evaluate() not enough data."));
93  }
94 
95  const argument_type x = *pX;
96 
97  const_iterator p = this->lower_bound(x);
98 
99  if ((p == this->begin() && this->getDistance(x, (p++)->getX()) > distance_type::precision) ||
100  (p == this->end() && this->getDistance((--p)->getX(), x) > distance_type::precision)) {
101 
102  return this->getExceptionHandler().action(MAKE_EXCEPTION(JValueOutOfRange, "abscissa out of range "
103  << STREAM("?") << x << " <> "
104  << STREAM("?") << this->begin() ->getX() << ' '
105  << STREAM("?") << this->rbegin()->getX()));
106  }
107 
108  ++pX; // next argument value
109 
110 
111  int n = std::min((int) (N + 1), (int) this->size()); // number of points to interpolate
112 
113  for (int i = n/2; i != 0 && p != this->end(); --i, ++p) {} // move p to begin of data
114  for (int i = n ; i != 0 && p != this->begin(); --i, --p) {}
115 
116  buffer.clear();
117 
118  for (const_iterator q = p; n != 0; ++q, --n) {
119  buffer.push_back(make_pair(this->getDistance(p->getX(), q->getX()), function_type::getValue(q->getY(), pX)));
120  }
121 
122  const JLegendre<result_type, M> g1(buffer.begin(), buffer.end());
123 
124  return g1(this->getDistance(p->getX(), x));
125  }
collection_type::const_iterator const_iterator
Definition: JPolfit.hh:58
double getDistance(const JFirst_t &first, const JSecond_t &second)
Get distance between objects.
const int n
Definition: JPolint.hh:697
static result_type getValue(const JFunctional &function, const argument_type *pX)
Recursive function value evaluation.
Definition: JFunctional.hh:107
Auxiliary data structure for handling std::ostream.
#define MAKE_EXCEPTION(JException_t, A)
Make exception.
Definition: JException.hh:687
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
Definition: JMuonPostfit.sh:40
std::vector< std::pair< abscissa_type, result_type > > buffer
Definition: JPolfit.hh:134
function_type::argument_type argument_type
Definition: JPolfit.hh:66
double u[N+1]
Definition: JPolint.hh:776
Double_t g1(const Double_t x)
Function.
Definition: JQuantiles.cc:25
virtual result_type JTOOLS::JFunctional< JElement_t::abscissa_type , JResultType< JElement_t::ordinate_type >::result_type >::evaluate ( const argument_type pX) const
pure virtualinherited

Recursive function value evaluation.

Parameters
pXpointer to abscissa values
Returns
function value
static result_type JTOOLS::JFunctional< JElement_t::abscissa_type , JResultType< JElement_t::ordinate_type >::result_type >::getValue ( const JFunctional< JElement_t::abscissa_type, JResultType< JElement_t::ordinate_type >::result_type > &  function,
const argument_type pX 
)
inlinestaticinherited

Recursive function value evaluation.

Parameters
functionfunction
pXpointer to abscissa values

Definition at line 107 of file JFunctional.hh.

109  {
110  return function.evaluate(pX);
111  }
static JClass<result_type>::argument_type JTOOLS::JFunctional< JElement_t::abscissa_type , JResultType< JElement_t::ordinate_type >::result_type >::getValue ( typename JClass< result_type >::argument_type  value,
const argument_type pX 
)
inlinestaticinherited

Termination of recursive function value evaluation.

Parameters
valueresult
pXpointer to abscissa values

Definition at line 121 of file JFunctional.hh.

123  {
124  return value;
125  }
JSupervisor JTOOLS::JFunctional< JElement_t::abscissa_type , JResultType< JElement_t::ordinate_type >::result_type >::getSupervisor ( ) const
inlineinherited

Get supervisor.

Returns
supervisor

Definition at line 266 of file JFunctional.hh.

const JExceptionHandler& JTOOLS::JFunctional< JElement_t::abscissa_type , JResultType< JElement_t::ordinate_type >::result_type >::getExceptionHandler ( ) const
inlineinherited

Get exception handler.

Returns
exception handler

Definition at line 277 of file JFunctional.hh.

void JTOOLS::JFunctional< JElement_t::abscissa_type , JResultType< JElement_t::ordinate_type >::result_type >::setExceptionHandler ( const JSupervisor &  supervisor)
inlineinherited

Set the supervisor for handling of exceptions.

Parameters
supervisorsupervisor

Definition at line 288 of file JFunctional.hh.

result_type JTOOLS::JFunction1D< JElement_t::abscissa_type , JResult_t >::operator() ( const argument_type  x) const
inlineinherited

Function value evaluation.

Parameters
xargument value
Returns
function value

Definition at line 333 of file JFunctional.hh.

334  {
335  return this->evaluate(&x);
336  }
virtual result_type evaluate(const argument_type *pX) const =0
Recursive function value evaluation.
virtual result_type JTOOLS::JFunctional< JElement_t::abscissa_type , JResult_t >::evaluate ( const argument_type pX) const
pure virtualinherited

Recursive function value evaluation.

Parameters
pXpointer to abscissa values
Returns
function value
static result_type JTOOLS::JFunctional< JElement_t::abscissa_type , JResult_t >::getValue ( const JFunctional< JElement_t::abscissa_type, JResult_t > &  function,
const argument_type pX 
)
inlinestaticinherited

Recursive function value evaluation.

Parameters
functionfunction
pXpointer to abscissa values

Definition at line 107 of file JFunctional.hh.

109  {
110  return function.evaluate(pX);
111  }
static JClass<result_type>::argument_type JTOOLS::JFunctional< JElement_t::abscissa_type , JResult_t >::getValue ( typename JClass< result_type >::argument_type  value,
const argument_type pX 
)
inlinestaticinherited

Termination of recursive function value evaluation.

Parameters
valueresult
pXpointer to abscissa values

Definition at line 121 of file JFunctional.hh.

123  {
124  return value;
125  }
JSupervisor JTOOLS::JFunctional< JElement_t::abscissa_type , JResult_t >::getSupervisor ( ) const
inlineinherited

Get supervisor.

Returns
supervisor

Definition at line 266 of file JFunctional.hh.

267  {
268  return supervisor;
269  }
const JExceptionHandler& JTOOLS::JFunctional< JElement_t::abscissa_type , JResult_t >::getExceptionHandler ( ) const
inlineinherited

Get exception handler.

Returns
exception handler

Definition at line 277 of file JFunctional.hh.

278  {
279  return *supervisor;
280  }
void JTOOLS::JFunctional< JElement_t::abscissa_type , JResult_t >::setExceptionHandler ( const JSupervisor &  supervisor)
inlineinherited

Set the supervisor for handling of exceptions.

Parameters
supervisorsupervisor

Definition at line 288 of file JFunctional.hh.

Member Data Documentation

JSupervisor JTOOLS::JFunctional< JElement_t::abscissa_type , JResultType< JElement_t::ordinate_type >::result_type >::supervisor
protectedinherited

Definition at line 295 of file JFunctional.hh.

JSupervisor JTOOLS::JFunctional< JElement_t::abscissa_type , JResult_t >::supervisor
protectedinherited

Definition at line 295 of file JFunctional.hh.


The documentation for this class was generated from the following file: