Jpp  17.3.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JFunctionalMap.hh
Go to the documentation of this file.
1 #ifndef __JTOOLS__JFUNCTIONALMAP__
2 #define __JTOOLS__JFUNCTIONALMAP__
3 
5 #include "JTools/JSpline.hh"
6 #include "JTools/JPolint.hh"
7 #include "JTools/JCollection.hh"
9 #include "JTools/JElement.hh"
10 #include "JTools/JDistance.hh"
11 
12 
13 /**
14  * \author mdejong
15  */
16 
17 namespace JTOOLS {}
18 namespace JPP { using namespace JTOOLS; }
19 
20 namespace JTOOLS {
21 
22 
23  /**
24  * Auxiliary class to define corresponding one-dimensional function interpolator <tt>function_type</tt>.
25  */
26  template<template<class JKey_t, class JValue_t, class JDistance_t> class JFunctionalMap_t>
28 
29 
30  /**
31  * Specialisation of JFunctionalMap for JSplineFunctionalMap.
32  */
33  template<>
35  {
36  /**
37  * Corresponding one-dimensional function interpolator.
38  */
39  template<class JAbscissa_t,
40  class JOrdinate_t,
41  class JResult_t,
42  class JDistance_t = JDistance<JAbscissa_t> >
43  struct function_type :
44  public JSplineFunction1D<JSplineElement2D<JAbscissa_t, JOrdinate_t>, JCollection, JResult_t, JDistance_t>
45  {};
46  };
47 
48 
49  /**
50  * Specialisation of JFunctionalMap for JSplineFunctionalGridMap.
51  */
52  template<>
54  {
55  /**
56  * Corresponding one-dimensional function interpolator.
57  */
58  template<class JAbscissa_t,
59  class JOrdinate_t,
60  class JResult_t,
61  class JDistance_t = JDistance<JAbscissa_t> >
62  struct function_type :
63  public JSplineFunction1D<JSplineElement2D<JAbscissa_t, JOrdinate_t>, JGridCollection, JResult_t, JDistance_t>
64  {};
65  };
66 
67 
68  /**
69  * Specialisation of JFunctionalMap for JPolint0FunctionalMap.
70  */
71  template<>
73  {
74  /**
75  * Corresponding one-dimensional function interpolator.
76  */
77  template<class JAbscissa_t,
78  class JOrdinate_t,
79  class JResult_t,
80  class JDistance_t = JDistance<JAbscissa_t> >
81  struct function_type :
82  public JPolintFunction1D<0, JElement2D<JAbscissa_t, JOrdinate_t>, JCollection, JResult_t, JDistance_t>
83  {};
84  };
85 
86 
87  /**
88  * Specialisation of JFunctionalMap for JPolint1FunctionalMap.
89  */
90  template<>
92  {
93  /**
94  * Corresponding one-dimensional function interpolator.
95  */
96  template<class JAbscissa_t,
97  class JOrdinate_t,
98  class JResult_t,
99  class JDistance_t = JDistance<JAbscissa_t> >
100  struct function_type :
101  public JPolintFunction1D<1, JElement2D<JAbscissa_t, JOrdinate_t>, JCollection, JResult_t, JDistance_t>
102  {};
103  };
104 
105 
106  /**
107  * Specialisation of JFunctionalMap for JPolint2FunctionalMap.
108  */
109  template<>
111  {
112  /**
113  * Corresponding one-dimensional function interpolator.
114  */
115  template<class JAbscissa_t,
116  class JOrdinate_t,
117  class JResult_t,
118  class JDistance_t = JDistance<JAbscissa_t> >
119  struct function_type :
120  public JPolintFunction1D<2, JElement2D<JAbscissa_t, JOrdinate_t>, JCollection, JResult_t, JDistance_t>
121  {};
122  };
123 
124 
125  /**
126  * Specialisation of JFunctionalMap for JPolint3FunctionalMap.
127  */
128  template<>
130  {
131  /**
132  * Corresponding one-dimensional function interpolator.
133  */
134  template<class JAbscissa_t,
135  class JOrdinate_t,
136  class JResult_t,
137  class JDistance_t = JDistance<JAbscissa_t> >
138  struct function_type :
139  public JPolintFunction1D<3, JElement2D<JAbscissa_t, JOrdinate_t>, JCollection, JResult_t, JDistance_t>
140  {};
141  };
142 
143 
144  /**
145  * Specialisation of JFunctionalMap for JPolint0FunctionalGridMap.
146  */
147  template<>
149  {
150  /**
151  * Corresponding one-dimensional function interpolator.
152  */
153  template<class JAbscissa_t,
154  class JOrdinate_t,
155  class JResult_t,
156  class JDistance_t = JDistance<JAbscissa_t> >
157  struct function_type :
158  public JPolintFunction1D<0, JElement2D<JAbscissa_t, JOrdinate_t>, JGridCollection, JResult_t, JDistance_t>
159  {};
160  };
161 
162 
163  /**
164  * Specialisation of JFunctionalMap for JPolint1FunctionalGridMap.
165  */
166  template<>
168  {
169  /**
170  * Corresponding one-dimensional function interpolator.
171  */
172  template<class JAbscissa_t,
173  class JOrdinate_t,
174  class JResult_t,
175  class JDistance_t = JDistance<JAbscissa_t> >
176  struct function_type :
177  public JPolintFunction1D<1, JElement2D<JAbscissa_t, JOrdinate_t>, JGridCollection, JResult_t, JDistance_t>
178  {};
179  };
180 
181 
182  /**
183  * Specialisation of JFunctionalMap for JPolint2FunctionalGridMap.
184  */
185  template<>
187  {
188  /**
189  * Corresponding one-dimensional function interpolator.
190  */
191  template<class JAbscissa_t,
192  class JOrdinate_t,
193  class JResult_t,
194  class JDistance_t = JDistance<JAbscissa_t> >
195  struct function_type :
196  public JPolintFunction1D<2, JElement2D<JAbscissa_t, JOrdinate_t>, JGridCollection, JResult_t, JDistance_t>
197  {};
198  };
199 
200 
201  /**
202  * Specialisation of JFunctionalMap for JPolint3FunctionalGridMap.
203  */
204  template<>
206  {
207  /**
208  * Corresponding one-dimensional function interpolator.
209  */
210  template<class JAbscissa_t,
211  class JOrdinate_t,
212  class JResult_t,
213  class JDistance_t = JDistance<JAbscissa_t> >
214  struct function_type :
215  public JPolintFunction1D<3, JElement2D<JAbscissa_t, JOrdinate_t>, JGridCollection, JResult_t, JDistance_t>
216  {};
217  };
218 }
219 
220 #endif
Type definition of a 2nd degree polynomial interpolation based on a JMap implementation.
The elements in a collection are sorted according to their abscissa values and a given distance opera...
Type definition of a 3rd degree polynomial interpolation based on a JGridMap implementation.
Type definition of a spline interpolation based on a JGridMap implementation.
Template class for distance evaluation.
Definition: JDistance.hh:24
Auxiliary class to define corresponding one-dimensional function interpolator function_type.
Template definition of function object interface in one dimension.
Definition: JFunctional.hh:317
Various implementations of functional maps.
Template class for spline interpolation in 1D.
Definition: JSpline.hh:673
Type definition of a 1st degree polynomial interpolation based on a JGridMap implementation.
Type definition of a 1st degree polynomial interpolation based on a JMap implementation.
General purpose class for a collection of sorted elements.
Type definition of a zero degree polynomial interpolation based on a JGridMap implementation.
Type definition of a 3rd degree polynomial interpolation based on a JMap implementation.
Type definition of a 2nd degree polynomial interpolation based on a JGridMap implementation.
Type definition of a spline interpolation based on a JMap implementation.
Type definition of a zero degree polynomial interpolation based on a JMap implementation.
Template class for polynomial interpolation in 1D.
Definition: JPolint.hh:1003