Jpp
JSpline.hh
Go to the documentation of this file.
1 #ifndef __JTOOLS__JSPLINE__
2 #define __JTOOLS__JSPLINE__
3 
4 #include <utility>
5 
6 #include "JMath/JZero.hh"
7 #include "JLang/JException.hh"
8 #include "JLang/JClass.hh"
9 #include "JTools/JFunctional.hh"
10 #include "JTools/JDistance.hh"
11 #include "JTools/JResult.hh"
12 #include "JTools/JMapCollection.hh"
13 
14 
15 /**
16  * \author mdejong
17  */
18 
19 namespace JTOOLS {}
20 namespace JPP { using namespace JTOOLS; }
21 
22 namespace JTOOLS {
23 
24  using JLANG::JNoValue;
28 
29 
30  /**
31  * Auxiliary class to define first derivates of the spline function at the two extrema.
32  */
33  template<class JOrdinate_t>
34  class JSplineBounds {
35  public:
36 
37  typedef JOrdinate_t ordinate_type;
39 
40 
41  /**
42  * Default constructor.
43  */
45  fp_at_xmin(false, ordinate_type()),
46  fp_at_xmax(false, ordinate_type())
47  {}
48 
49 
50  /**
51  * Constructor.
52  *
53  * \param fpAtXmin 1st derivative at minimal abscissa value
54  * \param fpAtXmax 1st derivative at maximal abscissa value
55  */
57  argument_type fpAtXmax) :
58  fp_at_xmin(true, fpAtXmin),
59  fp_at_xmax(true, fpAtXmax)
60  {}
61 
62 
63  /**
64  * Set first derivative of function at minimal abscissa value.
65  *
66  * \param fp 1st derivative
67  */
69  {
70  fp_at_xmin.first = true;
71  fp_at_xmin.second = fp;
72  }
73 
74 
75  /**
76  * Set first derivative of function at maximal abscissa value.
77  *
78  * \param fp 1st derivative
79  */
81  {
82  fp_at_xmax.first = true;
83  fp_at_xmax.second = fp;
84  }
85 
86 
87  /**
88  * Has first derivative of function at minimal abscissa value.
89  *
90  * \return true if 1st derivative is set; else false
91  */
92  const bool& hasFirstDerivativeAtXmin() const
93  {
94  return fp_at_xmin.first;
95  }
96 
97 
98  /**
99  * Has first derivative of function at maximal abscissa value.
100  *
101  * \return true if 1st derivative is set; else false
102  */
103  const bool& hasFirstDerivativeAtXmax() const
104  {
105  return fp_at_xmax.first;
106  }
107 
108 
109  /**
110  * Get first derivative of function at minimal abscissa value.
111  *
112  * \return 1st derivative
113  */
115  {
116  if (fp_at_xmin.first)
117  return fp_at_xmin.second;
118  else
119  throw JNoValue("JSplineBounds: missing 1st derivative.");
120  }
121 
122 
123  /**
124  * Get first derivative of function at maximal abscissa value.
125  *
126  * \return 1st derivative
127  */
129  {
130  if (fp_at_xmax.first)
131  return fp_at_xmax.second;
132  else
133  throw JNoValue("JSplineBounds: missing 1st derivative.");
134  }
135 
136  protected:
139  };
140 
141 
142  /**
143  * Helper method for JSplineBounds.
144  *
145  * \param fpAtXmin 1st derivative at minimal abscissa value
146  * \param fpAtXmax 1st derivative at maximal abscissa value
147  * \return spline bounds
148  */
149  template<class JOrdinate_t>
150  inline JSplineBounds<JOrdinate_t> make_spline_bounds(const JOrdinate_t fpAtXmin,
151  const JOrdinate_t fpAtXmax)
152  {
153  return JSplineBounds<JOrdinate_t>(fpAtXmin, fpAtXmax);
154  }
155 
156 
157  /**
158  * Template base class for spline interpolations.
159  *
160  * This class partially implements the JFunctional interface.
161  *
162  * Note that the data structure of the elements in the collection should have the additional methods:
163  * <pre>
164  * ordinate_type getU() const;
165  * void setU(ordinate_type u);
166  * </pre>
167  * to get and set the second derivatives, respectively.
168  *
169  * Spline interpolation code is taken from reference:
170  * Numerical Recipes in C++, W.H. Press, S.A. Teukolsky, W.T. Vetterling and B.P. Flannery,
171  * Cambridge University Press.
172  */
173  template<class JElement_t, template<class, class> class JCollection_t, class JDistance_t>
175  public JCollection_t<JElement_t, JDistance_t>,
176  public virtual JFunctional<>
177  {
178  public:
179 
180  typedef JCollection_t<JElement_t, JDistance_t> collection_type;
181 
182  typedef typename collection_type::abscissa_type abscissa_type;
183  typedef typename collection_type::ordinate_type ordinate_type;
184  typedef typename collection_type::value_type value_type;
185 
186  typedef typename collection_type::const_iterator const_iterator;
187  typedef typename collection_type::const_reverse_iterator const_reverse_iterator;
188  typedef typename collection_type::iterator iterator;
189  typedef typename collection_type::reverse_iterator reverse_iterator;
190 
192 
193 
194  /**
195  * Determination of second derivatives with specified bounds.
196  *
197  * \param bounds 1st derivatives at two extrema.
198  */
200  {
201  const int numberOfElements = this->size();
202 
203  using namespace std;
204 
205  if (numberOfElements > 2) {
206 
207  std::vector<double> buffer(numberOfElements);
208 
209  if (bounds.hasFirstDerivativeAtXmin()) {
210 
211  iterator j = this->begin();
212  iterator i = j++;
213 
214  const double dx = this->getDistance(i->getX(), j->getX());
215  const ordinate_type dy = (j->getY() - i->getY());
216 
217  buffer[0] = -0.5;
218 
219  i->setU((3.0/dx) * (dy/dx - bounds.getFirstDerivativeAtXmin()));
220 
221  } else {
222 
223  buffer[0] = 0.0;
224 
225  this->begin()->setU(JMATH::zero);
226  }
227 
228  int index = 1;
229 
230  for (iterator k = this->begin(), i = k++, j = k++; k != this->end(); ++i, ++j, ++k, ++index) {
231 
232  const abscissa_type x1 = i->getX();
233  const abscissa_type x2 = j->getX();
234  const abscissa_type x3 = k->getX();
235 
236  const ordinate_type& y1 = i->getY();
237  const ordinate_type& y2 = j->getY();
238  const ordinate_type& y3 = k->getY();
239 
240  const double sig = this->getDistance(x1, x2) / this->getDistance(x1, x3);
241  const double h = sig * buffer[index-1] + 2.0;
242 
243  buffer[index] = (sig - 1.0) / h;
244 
245  j->setU((y3 - y2) / this->getDistance(x2, x3) -
246  (y2 - y1) / this->getDistance(x1, x2));
247 
248  j->setU((6.0 * j->getU() / this->getDistance(x1, x3) - sig * i->getU()) / h);
249  }
250 
251 
252  if (bounds.hasFirstDerivativeAtXmax()) {
253 
254  reverse_iterator j = this->rbegin();
255  reverse_iterator i = j++;
256 
257  index = numberOfElements - 2;
258 
259  const double dx = this->getDistance(i->getX(), j->getX());
260  const ordinate_type dy = (j->getY() - i->getY());
261 
262  i->setU((3.0/dx) * (bounds.getFirstDerivativeAtXmax() - dy/dx));
263 
264  i->setU((i->getU() - 0.5*j->getU()) / (0.5*buffer[index] + 1.0));
265 
266  } else {
267 
268  this->rbegin()->setU(JMATH::zero);
269  }
270 
271 
272  reverse_iterator j = this->rbegin();
273  reverse_iterator i = j++;
274 
275  index = numberOfElements - 2;
276 
277  for ( ; j != this->rend(); ++i, ++j, --index) {
278  j->setU(j->getU() + i->getU() * buffer[index]);
279  }
280 
281  } else {
282 
283  for (iterator i = this->begin(); i != this->end(); ++i) {
284  i->setU(JMATH::zero);
285  }
286  }
287  }
288 
289 
290  protected:
291  /**
292  * Default constructor.
293  */
295  {}
296 
297 
298  /**
299  * Determination of second derivatives with no bounds.
300  */
301  virtual void do_compile()
302  {
304  }
305  };
306 
307 
308  /**
309  * Template definition for functional collection with spline interpolation.
310  */
311  template<class JElement_t,
312  template<class, class> class JCollection_t,
313  class JResult_t,
314  class JDistance_t>
316 
317 
318  /**
319  * Template specialisation for functional collection with spline interpolation.
320  */
321  template<class JElement_t, template<class, class> class JCollection_t, class JDistance_t>
322  class JSplineFunction<JElement_t,
323  JCollection_t,
324  typename JResultType<typename JElement_t::ordinate_type>::result_type,
325  JDistance_t> :
326  public JSplineCollection<JElement_t, JCollection_t, JDistance_t>,
327  public JFunction<typename JElement_t::abscissa_type,
328  typename JResultType<typename JElement_t::ordinate_type>::result_type>
329  {
330  public:
331 
333 
334  typedef typename collection_type::abscissa_type abscissa_type;
335  typedef typename collection_type::ordinate_type ordinate_type;
336  typedef typename collection_type::value_type value_type;
337  typedef typename collection_type::distance_type distance_type;
338 
339  typedef typename collection_type::const_iterator const_iterator;
340  typedef typename collection_type::const_reverse_iterator const_reverse_iterator;
341  typedef typename collection_type::iterator iterator;
342  typedef typename collection_type::reverse_iterator reverse_iterator;
343 
346 
350 
351 
352  /**
353  * Default constructor.
354  */
356  {}
357 
358 
359  /**
360  * Recursive interpolation method implementation.
361  *
362  * \param pX pointer to abscissa values
363  * \return function value
364  */
365  virtual result_type evaluate(const argument_type* pX) const
366  {
367  if (this->size() <= 1u) {
368  return this->getExceptionHandler().action(JFunctionalException("JSplineFunction<>::evaluate() not enough data."));
369  }
370 
371  const argument_type x = *pX;
372 
373  const_iterator p = this->lower_bound(x);
374 
375  if ((p == this->begin() && this->getDistance(x, (p++)->getX()) > distance_type::precision) ||
376  (p == this->end() && this->getDistance((--p)->getX(), x) > distance_type::precision)) {
377 
378  return this->getExceptionHandler().action(JValueOutOfRange("JSplineFunction::evaluate() x out of range."));
379  }
380 
381  const_iterator q = p--;
382 
383  const double dx = this->getDistance(p->getX(), q->getX());
384  const double a = this->getDistance(x, q->getX()) / dx;
385  const double b = 1.0 - a;
386 
387  return a * p->getY() + b * q->getY()
388  - a*b * ((a + 1.0)*p->getU() + (b + 1.0)*q->getU()) * dx*dx/6;
389  }
390  };
391 
392 
393  /**
394  * Template specialisation for spline interpolation method with returning JResultDerivative data structure.
395  */
396  template<class JElement_t, template<class, class> class JCollection_t, class JDistance_t>
397  class JSplineFunction<JElement_t,
398  JCollection_t,
399  JResultDerivative<typename JResultType<typename JElement_t::ordinate_type>::result_type>,
400  JDistance_t> :
401  public JSplineCollection<JElement_t, JCollection_t, JDistance_t>,
402  public JFunction<typename JElement_t::abscissa_type,
403  JResultDerivative<typename JResultType<typename JElement_t::ordinate_type>::result_type> >
404  {
405  public:
406 
408 
409  typedef typename collection_type::abscissa_type abscissa_type;
410  typedef typename collection_type::ordinate_type ordinate_type;
411  typedef typename collection_type::value_type value_type;
412  typedef typename collection_type::distance_type distance_type;
413 
414  typedef typename collection_type::const_iterator const_iterator;
415  typedef typename collection_type::const_reverse_iterator const_reverse_iterator;
416  typedef typename collection_type::iterator iterator;
417  typedef typename collection_type::reverse_iterator reverse_iterator;
418 
421 
425 
427 
428 
429  /**
430  * Default constructor.
431  */
433  {}
434 
435 
436  /**
437  * Recursive interpolation method implementation.
438  *
439  * \param pX pointer to abscissa values
440  * \return function value
441  */
442  virtual result_type evaluate(const argument_type* pX) const
443  {
444  if (this->size() <= 1u) {
445  return this->getExceptionHandler().action(JFunctionalException("JSplineFunction<>::evaluate() not enough data."));
446  }
447 
448  const argument_type x = *pX;
449 
450  const_iterator p = this->lower_bound(x);
451 
452 
453  if ((p == this->begin() && this->getDistance(x, (p++)->getX()) > distance_type::precision) ||
454  (p == this->end() && this->getDistance((--p)->getX(), x) > distance_type::precision)) {
455 
456  return this->getExceptionHandler().action(JValueOutOfRange("JSplineFunction::evaluate() x out of range."));
457  }
458 
459  const_iterator q = p--;
460 
461  const double dx = this->getDistance(p->getX(), q->getX());
462  const double a = this->getDistance(x, q->getX()) / dx;
463  const double b = 1.0 - a;
464 
465  result.f = a * p->getY() + b * q->getY()
466  - a*b * ((a + 1.0)*p->getU() + (b + 1.0)*q->getU()) * dx*dx/6;
467 
468  result.fp = (q->getY() - p->getY() + (p->getU()*(1.0 - 3*a*a) -
469  q->getU()*(1.0 - 3*b*b)) * dx*dx/6) / dx;
470 
471  return result;
472  }
473 
474 
475  private:
477  };
478 
479 
480  /**
481  * Template specialisation for spline interpolation method with returning JResultPDF data structure.
482  *
483  * Note that the data structure of the elements in the collection should have the additional methods:
484  * <pre>
485  * ordinate_type getIntegral() const;
486  * void setIntegral(ordinate_type v);
487  * </pre>
488  * to get and set the integral values, respectively.
489  */
490  template<class JElement_t, template<class, class> class JCollection_t, class JDistance_t>
491  class JSplineFunction<JElement_t,
492  JCollection_t,
493  JResultPDF<typename JResultType<typename JElement_t::ordinate_type>::result_type>,
494  JDistance_t> :
495  public JSplineCollection<JElement_t, JCollection_t, JDistance_t>,
496  public JFunction<typename JElement_t::abscissa_type,
497  JResultPDF<typename JResultType<typename JElement_t::ordinate_type>::result_type> >
498  {
499  public:
500 
502 
503  typedef typename collection_type::abscissa_type abscissa_type;
504  typedef typename collection_type::ordinate_type ordinate_type;
505  typedef typename collection_type::value_type value_type;
506  typedef typename collection_type::distance_type distance_type;
507 
508  typedef typename collection_type::const_iterator const_iterator;
509  typedef typename collection_type::const_reverse_iterator const_reverse_iterator;
510  typedef typename collection_type::iterator iterator;
511  typedef typename collection_type::reverse_iterator reverse_iterator;
512 
515 
519 
521 
522 
523  /**
524  * Default constructor.
525  */
527  {}
528 
529 
530  /**
531  * Determination of second derivatives with specified bounds.
532  *
533  * \param bounds 1st derivatives at two extrema.
534  */
536  {
537  if (this->size() >= 2u) {
538 
539  collection_type::compile(bounds);
540 
541  this->begin()->setIntegral(JMATH::zero);
542 
543  for (iterator j = this->begin(), i = j++; j != this->end(); ++i, ++j) {
544 
545  const double dx = this->getDistance(i->getX(), j->getX());
546  const ordinate_type y = i->getY() + j->getY();
547  const ordinate_type z = i->getU() + j->getU();
548 
549  const ordinate_type v = dx * 0.50 * y;
550  const ordinate_type w = dx * 0.25 * z*dx*dx/6;
551 
552  j->setIntegral(i->getIntegral() + v - w);
553  }
554  }
555  }
556 
557 
558  /**
559  * Recursive interpolation method implementation.
560  *
561  * \param pX pointer to abscissa values
562  * \return function value
563  */
564  virtual result_type evaluate(const argument_type* pX) const
565  {
566  if (this->size() <= 1u) {
567  return this->getExceptionHandler().action(JFunctionalException("JSplineFunction<>::evaluate() not enough data."));
568  }
569 
570  const argument_type x = *pX;
571 
572  const_iterator p = this->lower_bound(x);
573 
574  if (p == this->begin() && this->getDistance(x, (p++)->getX()) > distance_type::precision) {
575 
576  try {
577 
578  result = this->getExceptionHandler().action(JValueOutOfRange("JSplineFunction1D<>::operator() x < xmin."));
579 
580  // overwrite integral values
581 
582  result.v = 0;
583  result.V = this->rbegin()->getIntegral();
584 
585  } catch(const JValueOutOfRange& exception) {
586  throw exception;
587  }
588 
589  return result;
590 
591  } else if (p == this->end() && this->getDistance((--p)->getX(), x) > distance_type::precision) {
592 
593  try {
594 
595  result = this->getExceptionHandler().action(JValueOutOfRange("JSplineFunction1D<>::operator() x > xmax."));
596 
597  // overwrite integral values
598 
599  result.v = this->rbegin()->getIntegral();
600  result.V = this->rbegin()->getIntegral();
601 
602  } catch(const JValueOutOfRange& exception) {
603  throw exception;
604  }
605 
606  return result;
607  }
608 
609  const_iterator q = p--;
610 
611  const double dx = this->getDistance(p->getX(), q->getX());
612  const double a = this->getDistance(x, q->getX()) / dx;
613  const double b = 1.0 - a;
614 
615  result.f = a * p->getY() + b * q->getY()
616  - a*b * ((a + 1.0)*p->getU() + (b + 1.0)*q->getU()) * dx*dx/6;
617 
618  result.fp = (q->getY() - p->getY() + (p->getU()*(1.0 - 3*a*a) -
619  q->getU()*(1.0 - 3*b*b)) * dx*dx/6) / dx;
620 
621  result.v = p->getIntegral()
622  + 0.5*dx * (p->getY() - 0.5*p->getU()*dx*dx/6)
623  - 0.5*dx * ((a*a*p->getY() - b*b*q->getY()) +
624  (p->getU() * a*a*(0.5*a*a - 1.0) -
625  q->getU() * b*b*(0.5*b*b - 1.0)) * dx*dx/6);
626 
627  result.V = this->rbegin()->getIntegral();
628 
629  return result;
630  }
631 
632 
633  protected:
634  /**
635  * Determination of second derivatives with no bounds.
636  */
637  virtual void do_compile()
638  {
640  }
641 
642 
643  private:
645  };
646 
647 
648  /**
649  * Template class for spline interpolation in 1D
650  *
651  * This class implements the JFunction1D interface.
652  */
653  template<class JElement_t,
654  template<class, class> class JCollection_t,
655  class JResult_t = typename JElement_t::ordinate_type,
658  public JSplineFunction<JElement_t, JCollection_t, JResult_t, JDistance_t>,
659  public JFunction1D<typename JElement_t::abscissa_type, JResult_t>
660  {
661  public:
662 
664 
668  typedef typename collection_type::distance_type distance_type;
669 
674 
676 
680 
681 
682  /**
683  * Default contructor.
684  */
686  {}
687  };
688 
689 
690  /**
691  * Functional map with spline interpolation.
692  */
693  template<class JKey_t,
694  class JValue_t,
695  template<class, class, class> class JMap_t,
696  class JResult_t,
697  class JDistance_t = JDistance<JKey_t> >
698  class JSplineMap :
699  public JMap_t<JKey_t, JValue_t, JDistance_t>,
700  public JFunction<JKey_t, JResult_t>
701  {
702  public:
703 
704  typedef JMap_t<JKey_t, JValue_t, JDistance_t> collection_type;
706 
711 
716 
719  typedef typename function_type::JExceptionHandler exceptionhandler_type;
720 
725 
726 
727  /**
728  * Default constructor.
729  */
731  {}
732 
733 
734  /**
735  * Recursive interpolation method implementation.
736  *
737  * \param pX pointer to abscissa values
738  * \return function value
739  */
740  virtual result_type evaluate(const argument_type* pX) const
741  {
742  const argument_type x = *pX;
743 
744  ++pX; // next argument value
745 
746  const_iterator p = this->begin();
747 
748  for (typename JSplineFunction1D_t::iterator q = buffer.begin(); q != buffer.end(); ++q, ++p) {
749  q->getY() = JFunction<argument_type, data_type>::getValue(p->getY(), pX);
750  }
751 
752  buffer.compile();
753 
754  return buffer(x);
755  }
756 
757 
758  private:
759  /**
760  * Function compilation.
761  */
762  virtual void do_compile()
763  {
764  buffer.clear();
765 
766  for (iterator i = this->begin(); i != this->end(); ++i) {
767  buffer.put(i->getX(), data_type());
768  }
769  }
770 
771 
773  };
774 
775 
776  /**
777  * Conversion of data points to integral values.
778  *
779  * The integration includes the use of 2nd derivatives of the data points of the input spline interpolating function.
780  *
781  * \param input collection
782  * \param output mappable collection
783  * \return integral
784  */
785  template<class JElement_t,
786  template<class, class> class JCollection_t,
787  class JResult_t,
788  class JDistance_t>
789  inline typename JElement_t::ordinate_type
791  typename JMappable<JElement_t>::map_type& output)
792  {
793  typedef typename JElement_t::ordinate_type ordinate_type;
795 
797 
798  if (input.getSize() > 1) {
799 
800  output.put(input.begin()->getX(), V);
801 
802  for (const_iterator j = input.begin(), i = j++; j != input.end(); ++i, ++j) {
803 
804  const double dx = input.getDistance(i->getX(), j->getX());
805  const ordinate_type y = i->getY() + j->getY();
806  const ordinate_type z = i->getU() + j->getU();
807  const ordinate_type v = dx * 0.50 * y;
808  const ordinate_type w = dx * 0.25 * z*dx*dx/6;
809 
810  V += v - w;
811 
812  output.put(j->getX(), V);
813  }
814  }
815 
816  return V;
817  }
818 
819 
820  /**
821  * Conversion of data points to integral values.
822  *
823  * The integration directly uses the integral values of the input spline interpolating function.
824  *
825  * \param input collection
826  * \param output mappable collection
827  * \return integral
828  */
829  template<class JElement_t,
830  template<class, class> class JCollection_t,
831  class JDistance_t>
832  inline typename JElement_t::ordinate_type
833  integrate(const JSplineFunction1D<JElement_t, JCollection_t, JResultPDF<typename JElement_t::ordinate_type>, JDistance_t>& input,
834  typename JMappable<JElement_t>::map_type& output)
835  {
836  typedef typename JElement_t::ordinate_type ordinate_type;
839 
840  if (input.getSize() > 1) {
841 
842  for (const_iterator i = input.begin(); i != input.end(); ++i) {
843  output.put(i->getX(), i->getIntegral());
844  }
845 
846  return input.rbegin()->getIntegral();
847  }
848 
849  return JMATH::zero;
850  }
851 }
852 
853 #endif
JTOOLS::JCollection< JElement2D< JKey_t, JValue_t >, JDistance_t >::distance_type
JDistance_t distance_type
Definition: JCollection.hh:83
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::value_type
collection_type::value_type value_type
Definition: JSpline.hh:411
JException.hh
JTOOLS::JSplineMap::distance_type
collection_type::distance_type distance_type
Definition: JSpline.hh:710
JTOOLS::JGridCollection< JElement2D< JKey_t, JValue_t >, JDistance_t >::iterator
collection_type::iterator iterator
Definition: JGridCollection.hh:43
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::collection_type
JSplineCollection< JElement_t, JCollection_t, JDistance_t > collection_type
Definition: JSpline.hh:501
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::data_type
JResultType< ordinate_type >::result_type data_type
Definition: JSpline.hh:344
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::result
result_type result
Definition: JSpline.hh:476
JTOOLS::JSplineCollection::const_iterator
collection_type::const_iterator const_iterator
Definition: JSpline.hh:186
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::abscissa_type
collection_type::abscissa_type abscissa_type
Definition: JSpline.hh:503
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::compile
void compile(const JSplineBounds< ordinate_type > &bounds)
Determination of second derivatives with specified bounds.
Definition: JSpline.hh:535
JTOOLS::JSplineCollection::value_type
collection_type::value_type value_type
Definition: JSpline.hh:184
JTOOLS::JSplineMap::value_type
collection_type::value_type value_type
Definition: JSpline.hh:709
JTOOLS::pX
pX
Definition: JPolint.hh:625
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::exceptionhandler_type
function_type::JExceptionHandler exceptionhandler_type
Definition: JSpline.hh:518
JTOOLS::w
data_type w[N+1][M+1]
Definition: JPolint.hh:708
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::const_reverse_iterator
collection_type::const_reverse_iterator const_reverse_iterator
Definition: JSpline.hh:509
JTOOLS::JSplineBounds::setFirstDerivativeAtXmax
void setFirstDerivativeAtXmax(argument_type fp)
Set first derivative of function at maximal abscissa value.
Definition: JSpline.hh:80
JTOOLS::JMappableCollection
Template interface definition for associative collection of elements.
Definition: JMappableCollection.hh:30
JTOOLS::JSplineMap::buffer
JSplineFunction1D_t buffer
Definition: JSpline.hh:772
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::collection_type
JSplineCollection< JElement_t, JCollection_t, JDistance_t > collection_type
Definition: JSpline.hh:332
JTOOLS::JSplineMap::JSplineFunction1D_t
JSplineFunction1D< JSplineElement2D< argument_type, data_type >, JMapCollection< JMap_t >::template collection_type, result_type > JSplineFunction1D_t
Definition: JSpline.hh:724
JZero.hh
JTOOLS::JSplineBounds::fp_at_xmax
std::pair< bool, ordinate_type > fp_at_xmax
Definition: JSpline.hh:138
JLANG::JNoValue
Exception for missing value.
Definition: JException.hh:198
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::ordinate_type
collection_type::ordinate_type ordinate_type
Definition: JSpline.hh:335
JTOOLS::JSplineMap
Functional map with spline interpolation.
Definition: JSpline.hh:698
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::result_type
function_type::result_type result_type
Definition: JSpline.hh:348
JTOOLS::u
double u[N+1]
Definition: JPolint.hh:706
JTOOLS::JFunction
Template definition of function object interface in multidimensions.
Definition: JFunctional.hh:303
JTOOLS::JGridCollection< JElement2D< JKey_t, JValue_t >, JDistance_t >::const_reverse_iterator
collection_type::const_reverse_iterator const_reverse_iterator
Definition: JGridCollection.hh:42
JTOOLS::JSplineMap::const_reverse_iterator
collection_type::const_reverse_iterator const_reverse_iterator
Definition: JSpline.hh:713
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::abscissa_type
collection_type::abscissa_type abscissa_type
Definition: JSpline.hh:334
JTOOLS::JSplineFunction1D::value_type
collection_type::value_type value_type
Definition: JSpline.hh:667
JLANG::JClass::argument_type
JArgument< T >::argument_type argument_type
Definition: JClass.hh:82
std::vector< double >
JTOOLS::JResultType
Auxiliary class to evaluate result type.
Definition: JFunctional.hh:377
JTOOLS::JFunctional<>::result_type
JResult_t result_type
Definition: JFunctional.hh:87
JTOOLS::JSplineFunction1D::const_reverse_iterator
collection_type::const_reverse_iterator const_reverse_iterator
Definition: JSpline.hh:671
JTOOLS::JSplineCollection::do_compile
virtual void do_compile()
Determination of second derivatives with no bounds.
Definition: JSpline.hh:301
JResult.hh
JTOOLS::j
int j
Definition: JPolint.hh:634
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::ordinate_type
collection_type::ordinate_type ordinate_type
Definition: JSpline.hh:504
JTOOLS::JSplineFunction1D::result_type
function_type::result_type result_type
Definition: JSpline.hh:678
JTOOLS::JSplineBounds::argument_type
JLANG::JClass< ordinate_type >::argument_type argument_type
Definition: JSpline.hh:38
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::data_type
JResultType< ordinate_type >::result_type data_type
Definition: JSpline.hh:513
JTOOLS::JSplineCollection::ordinate_type
collection_type::ordinate_type ordinate_type
Definition: JSpline.hh:183
JTOOLS::JSplineCollection::const_reverse_iterator
collection_type::const_reverse_iterator const_reverse_iterator
Definition: JSpline.hh:187
JTOOLS::JSplineMap::JSplineMap
JSplineMap()
Default constructor.
Definition: JSpline.hh:730
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::result
result_type result
Definition: JSpline.hh:644
JTOOLS::JMappableCollection::put
void put(typename JClass< key_type > ::argument_type key, typename JClass< mapped_type >::argument_type value)
Put pair-wise element (key,value) into collection.
Definition: JMappableCollection.hh:76
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::exceptionhandler_type
function_type::JExceptionHandler exceptionhandler_type
Definition: JSpline.hh:349
JTOOLS::JSplineCollection::collection_type
JCollection_t< JElement_t, JDistance_t > collection_type
Definition: JSpline.hh:180
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::abscissa_type
collection_type::abscissa_type abscissa_type
Definition: JSpline.hh:409
JTOOLS::JResultPDF
Data structure for result including value, first derivative and integrals of function.
Definition: JResult.hh:335
JTOOLS::JGridCollection< JElement2D< JKey_t, JValue_t >, JDistance_t >::reverse_iterator
collection_type::reverse_iterator reverse_iterator
Definition: JGridCollection.hh:44
JTOOLS::JResultDerivative
Data structure for result including value and first derivative of function.
Definition: JResult.hh:41
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::evaluate
virtual result_type evaluate(const argument_type *pX) const
Recursive interpolation method implementation.
Definition: JSpline.hh:442
JTOOLS::JSplineCollection::abscissa_type
collection_type::abscissa_type abscissa_type
Definition: JSpline.hh:182
JTOOLS::JFunctional::getValue
static result_type getValue(const JFunctional &function, const argument_type *pX)
Recursive function value evaluation.
Definition: JFunctional.hh:107
JTOOLS::JFunctional< JKey_t, JResultDerivative< JResultType< JValue_t >::result_type > >::argument_type
JKey_t argument_type
Definition: JFunctional.hh:84
JTOOLS::JSplineBounds
Auxiliary class to define first derivates of the spline function at the two extrema.
Definition: JSpline.hh:34
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JAAnetToolkit.hh:37
JTOOLS::JSplineFunction1D::ordinate_type
collection_type::ordinate_type ordinate_type
Definition: JSpline.hh:666
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::argument_type
function_type::argument_type argument_type
Definition: JSpline.hh:347
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::result_type
function_type::result_type result_type
Definition: JSpline.hh:517
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::evaluate
virtual result_type evaluate(const argument_type *pX) const
Recursive interpolation method implementation.
Definition: JSpline.hh:564
JTOOLS::JSplineCollection::reverse_iterator
collection_type::reverse_iterator reverse_iterator
Definition: JSpline.hh:189
JTOOLS::JSplineMap::do_compile
virtual void do_compile()
Function compilation.
Definition: JSpline.hh:762
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::reverse_iterator
collection_type::reverse_iterator reverse_iterator
Definition: JSpline.hh:511
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::do_compile
virtual void do_compile()
Determination of second derivatives with no bounds.
Definition: JSpline.hh:637
JTOOLS::JFunctional<>::getExceptionHandler
const JExceptionHandler & getExceptionHandler() const
Get exception handler.
Definition: JFunctional.hh:277
JTOOLS::JSplineMap::const_iterator
collection_type::const_iterator const_iterator
Definition: JSpline.hh:712
JTOOLS::JSplineCollection::compile
void compile(const JSplineBounds< ordinate_type > &bounds)
Determination of second derivatives with specified bounds.
Definition: JSpline.hh:199
JTOOLS::JFunction1D
Template definition of function object interface in one dimension.
Definition: JFunctional.hh:317
JTOOLS::JSplineFunction1D::reverse_iterator
collection_type::reverse_iterator reverse_iterator
Definition: JSpline.hh:673
JTOOLS::JSplineFunction1D
Template class for spline interpolation in 1D.
Definition: JSpline.hh:657
JTOOLS::JSplineCollection
Template base class for spline interpolations.
Definition: JSpline.hh:174
JTOOLS::JSplineFunction
Template definition for functional collection with spline interpolation.
Definition: JSpline.hh:315
JTOOLS::JSplineBounds::JSplineBounds
JSplineBounds(argument_type fpAtXmin, argument_type fpAtXmax)
Constructor.
Definition: JSpline.hh:56
JTOOLS::JSplineFunction1D::distance_type
collection_type::distance_type distance_type
Definition: JSpline.hh:668
JTOOLS::JSplineFunction1D::function_type
JFunction1D< abscissa_type, JResult_t > function_type
Definition: JSpline.hh:675
JTOOLS::JSplineBounds::getFirstDerivativeAtXmax
ordinate_type getFirstDerivativeAtXmax() const
Get first derivative of function at maximal abscissa value.
Definition: JSpline.hh:128
JTOOLS::JSplineMap::abscissa_type
collection_type::abscissa_type abscissa_type
Definition: JSpline.hh:707
JTOOLS::JMapCollection
Template class to define the corresponding JCollection for a given template JMap.
Definition: JMapCollection.hh:20
JTOOLS::result
return result
Definition: JPolint.hh:695
JTOOLS::JSplineMap::exceptionhandler_type
function_type::JExceptionHandler exceptionhandler_type
Definition: JSpline.hh:719
JTOOLS::JSplineBounds::fp_at_xmin
std::pair< bool, ordinate_type > fp_at_xmin
Definition: JSpline.hh:137
JTOOLS::JSplineMap::result_type
function_type::result_type result_type
Definition: JSpline.hh:718
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::value_type
collection_type::value_type value_type
Definition: JSpline.hh:505
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::iterator
collection_type::iterator iterator
Definition: JSpline.hh:341
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::evaluate
virtual result_type evaluate(const argument_type *pX) const
Recursive interpolation method implementation.
Definition: JSpline.hh:365
JTOOLS::JSplineMap::reverse_iterator
collection_type::reverse_iterator reverse_iterator
Definition: JSpline.hh:715
JMATH::getDistance
double getDistance(const JFirst_t &first, const JSecond_t &second)
Get distance between objects.
Definition: JMathToolkit.hh:116
JLANG::JValueOutOfRange
Exception for accessing a value in a collection that is outside of its range.
Definition: JException.hh:162
std::pair< bool, ordinate_type >
JLANG::JFunctionalException
Exception for a functional operation.
Definition: JException.hh:126
JTOOLS::JSplineFunction1D::JSplineFunction1D
JSplineFunction1D()
Default contructor.
Definition: JSpline.hh:685
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::iterator
collection_type::iterator iterator
Definition: JSpline.hh:510
JTOOLS::JFunction::argument_type
functional_type::argument_type argument_type
Definition: JFunctional.hh:307
JTOOLS::JSplineBounds::setFirstDerivativeAtXmin
void setFirstDerivativeAtXmin(argument_type fp)
Set first derivative of function at minimal abscissa value.
Definition: JSpline.hh:68
JTOOLS::v
data_type v[N+1][M+1]
Definition: JPolint.hh:707
JTOOLS::JGridCollection< JElement2D< JKey_t, JValue_t >, JDistance_t >::const_iterator
collection_type::const_iterator const_iterator
Definition: JGridCollection.hh:41
JTOOLS::JSplineCollection::JSplineCollection
JSplineCollection()
Default constructor.
Definition: JSpline.hh:294
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::argument_type
function_type::argument_type argument_type
Definition: JSpline.hh:516
JTOOLS::JSplineFunction1D::abscissa_type
collection_type::abscissa_type abscissa_type
Definition: JSpline.hh:665
JTOOLS::JSplineFunction1D::argument_type
function_type::argument_type argument_type
Definition: JSpline.hh:677
JTOOLS::JSplineBounds::hasFirstDerivativeAtXmin
const bool & hasFirstDerivativeAtXmin() const
Has first derivative of function at minimal abscissa value.
Definition: JSpline.hh:92
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::function_type
JFunction< abscissa_type, JResultDerivative< data_type > > function_type
Definition: JSpline.hh:420
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::JSplineFunction
JSplineFunction()
Default constructor.
Definition: JSpline.hh:355
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::argument_type
function_type::argument_type argument_type
Definition: JSpline.hh:422
JTOOLS::JSplineFunction1D::iterator
collection_type::iterator iterator
Definition: JSpline.hh:672
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::value_type
collection_type::value_type value_type
Definition: JSpline.hh:336
JTOOLS::JSplineMap::collection_type
JMap_t< JKey_t, JValue_t, JDistance_t > collection_type
Definition: JSpline.hh:704
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::JSplineFunction
JSplineFunction()
Default constructor.
Definition: JSpline.hh:432
JMapCollection.hh
JTOOLS::JGridMap::const_iterator
collection_type::const_iterator const_iterator
Definition: JGridMap.hh:40
JTOOLS::JSplineBounds::getFirstDerivativeAtXmin
ordinate_type getFirstDerivativeAtXmin() const
Get first derivative of function at minimal abscissa value.
Definition: JSpline.hh:114
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::distance_type
collection_type::distance_type distance_type
Definition: JSpline.hh:337
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::const_iterator
collection_type::const_iterator const_iterator
Definition: JSpline.hh:414
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::function_type
JFunction< abscissa_type, data_type > function_type
Definition: JSpline.hh:345
JTOOLS::JSplineFunction1D::exceptionhandler_type
function_type::JExceptionHandler exceptionhandler_type
Definition: JSpline.hh:679
JFunctional.hh
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::const_iterator
collection_type::const_iterator const_iterator
Definition: JSpline.hh:339
JTOOLS::JFunction::result_type
functional_type::result_type result_type
Definition: JFunctional.hh:308
std
Definition: jaanetDictionary.h:36
JTOOLS::JGridCollection< JElement2D< JKey_t, JValue_t >, JDistance_t >::ordinate_type
collection_type::ordinate_type ordinate_type
Definition: JGridCollection.hh:38
JTOOLS::JSplineMap::argument_type
function_type::argument_type argument_type
Definition: JSpline.hh:717
JTOOLS::JSplineMap::function_type
JFunction< JKey_t, JResult_t > function_type
Definition: JSpline.hh:705
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::reverse_iterator
collection_type::reverse_iterator reverse_iterator
Definition: JSpline.hh:417
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::const_iterator
collection_type::const_iterator const_iterator
Definition: JSpline.hh:508
JTOOLS::JSplineBounds::JSplineBounds
JSplineBounds()
Default constructor.
Definition: JSpline.hh:44
JTOOLS::JSplineMap::data_type
JResultType< ordinate_type >::result_type data_type
Definition: JSpline.hh:721
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::reverse_iterator
collection_type::reverse_iterator reverse_iterator
Definition: JSpline.hh:342
JTOOLS::JDistance
Template class for distance evaluation.
Definition: JDistance.hh:24
JLANG::JDivisionByZero
Exception for division by zero.
Definition: JException.hh:270
JTOOLS::make_spline_bounds
JSplineBounds< JOrdinate_t > make_spline_bounds(const JOrdinate_t fpAtXmin, const JOrdinate_t fpAtXmax)
Helper method for JSplineBounds.
Definition: JSpline.hh:150
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::data_type
JResultType< ordinate_type >::result_type data_type
Definition: JSpline.hh:419
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::collection_type
JSplineCollection< JElement_t, JCollection_t, JDistance_t > collection_type
Definition: JSpline.hh:407
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::exceptionhandler_type
function_type::JExceptionHandler exceptionhandler_type
Definition: JSpline.hh:424
JTOOLS::JSplineFunction< JElement_t, JCollection_t, typename JResultType< typename JElement_t::ordinate_type >::result_type, JDistance_t >::const_reverse_iterator
collection_type::const_reverse_iterator const_reverse_iterator
Definition: JSpline.hh:340
JClass.hh
JTOOLS::JSplineMap::ordinate_type
collection_type::ordinate_type ordinate_type
Definition: JSpline.hh:708
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::result_type
function_type::result_type result_type
Definition: JSpline.hh:423
JTOOLS::JSplineCollection::iterator
collection_type::iterator iterator
Definition: JSpline.hh:188
JMATH::zero
static const JZero zero
Function object to assign zero value.
Definition: JZero.hh:94
JTOOLS::JGridCollection< JElement2D< JKey_t, JValue_t >, JDistance_t >::abscissa_type
collection_type::abscissa_type abscissa_type
Definition: JGridCollection.hh:37
JTOOLS::JSplineMap::iterator
collection_type::iterator iterator
Definition: JSpline.hh:714
JTOOLS
Auxiliary classes and methods for multi-dimensional interpolations and histograms.
Definition: JAbstractCollection.hh:9
JTOOLS::JElement2D
2D Element.
Definition: JElement.hh:44
JTOOLS::JGridMap::iterator
collection_type::iterator iterator
Definition: JGridMap.hh:42
JTOOLS::JSplineMap::evaluate
virtual result_type evaluate(const argument_type *pX) const
Recursive interpolation method implementation.
Definition: JSpline.hh:740
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::iterator
collection_type::iterator iterator
Definition: JSpline.hh:416
JTOOLS::JFunctional
Template definition of function object interface.
Definition: JFunctional.hh:32
JTOOLS::JFunction1D::argument_type
functional_type::argument_type argument_type
Definition: JFunctional.hh:323
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::function_type
JFunction< abscissa_type, JResultPDF< data_type > > function_type
Definition: JSpline.hh:514
JTOOLS::JFunction1D::result_type
functional_type::result_type result_type
Definition: JFunctional.hh:324
JTOOLS::JSplineFunction1D::const_iterator
collection_type::const_iterator const_iterator
Definition: JSpline.hh:670
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::distance_type
collection_type::distance_type distance_type
Definition: JSpline.hh:412
JTOOLS::JSplineFunction1D::collection_type
JSplineCollection< JElement_t, JCollection_t, JDistance_t > collection_type
Definition: JSpline.hh:663
JTOOLS::JSplineBounds::hasFirstDerivativeAtXmax
const bool & hasFirstDerivativeAtXmax() const
Has first derivative of function at maximal abscissa value.
Definition: JSpline.hh:103
JDistance.hh
JTOOLS::JFunctional::JExceptionHandler
Exception handler for functional object.
Definition: JFunctional.hh:131
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::JSplineFunction
JSplineFunction()
Default constructor.
Definition: JSpline.hh:526
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultPDF< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::distance_type
collection_type::distance_type distance_type
Definition: JSpline.hh:506
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::ordinate_type
collection_type::ordinate_type ordinate_type
Definition: JSpline.hh:410
JTOOLS::integrate
JElement_t::ordinate_type integrate(const JSplineFunction1D< JElement_t, JCollection_t, JResultPDF< typename JElement_t::ordinate_type >, JDistance_t > &input, typename JMappable< JElement_t >::map_type &output)
Conversion of data points to integral values.
Definition: JSpline.hh:833
JTOOLS::JSplineFunction< JElement_t, JCollection_t, JResultDerivative< typename JResultType< typename JElement_t::ordinate_type >::result_type >, JDistance_t >::const_reverse_iterator
collection_type::const_reverse_iterator const_reverse_iterator
Definition: JSpline.hh:415
JTOOLS::JSplineBounds::ordinate_type
JOrdinate_t ordinate_type
Definition: JSpline.hh:37