annotate include/interpolator.hpp @ 6:188facdd5a60

Still buggy. Need a better way to precompute RBFs.
author Jordi Guitérrez Hermoso <jordigh@gmail.com>
date Sun, 29 Jun 2008 05:00:15 -0500
parents 9d4fda54a41d
children d0076d9b2ef1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
1 #ifndef __INTERPOLATOR_H__
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
2 #define __INTERPOLATOR_H__
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
3
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
4 #include <vector>
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
5 #include <map>
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
6 #include <boost/shared_ptr.hpp>
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
7 #include "bvp.hpp"
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
8 #include "linalg.hpp"
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
9 #include "func.hpp"
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
10 #include "diff_op.hpp"
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
11
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
12 namespace bvp{
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
13 using std::map;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
14 using boost::shared_ptr;
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
15
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
16 template<typename RBF>
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
17 class interpolator : public realfunc{
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
18 public:
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
19
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
20 /** @name Constructors
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
21 *
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
22 * Constructors that take interpolation data perform the
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
23 * interpolation as part of the initialisation, which includes
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
24 * factoring a matrix
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
25 */
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
26 //@{
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
27 ///Does not initialise the interpolator.
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
28 interpolator();
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
29
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
30 ///Interpolate given a BVP
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
31 interpolator(shared_ptr<linear_BVP2> bvp);
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
32
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
33 ///Interpolate given some data points and the value at those points
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
34 interpolator(const map<point, double>& Xi);
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
35
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
36 /** \short Interpolate given a domain, data points and the value
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
37 * at those points
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
38 *
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
39 * Must provide domain information. The values of Xi must match
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
40 * points on the given domain Omega.
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
41 */
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
42 interpolator(shared_ptr<domain> Omega, const map<point, double>& Xi);
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
43 //@}
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
44
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
45 /** @name Interpolation
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
46 *
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
47 * Interpolate again either given new data or a different BVP.
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
48 */
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
49 //@{
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
50 void interpolate(const map<point, double>& Xi);
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
51 void interpolate(shared_ptr<linear_BVP2> bvp);
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
52 //@}
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
53
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
54 /** @name Evaluations and derivatives
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
55 */
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
56 //@{
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
57 ///Evaluation
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
58 double operator()(const point& p) const;
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
59 ///Evaluation
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
60 double at(const point& p) const;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
61
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
62 /// First derivative
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
63 double d(const point& p, size_t k) const;
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
64 /// Second derivatives
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
65 double d2(const point &p, size_t k1, size_t k2) const;
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
66 //@}
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
67
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
68 /** @name Partial redefinitions
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
69 *
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
70 * These functions allow for partial redefinition of the BVP as
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
71 * equired for the additive Schwartz domain decomposition method,
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
72 * a nd for other methods. They do not factor a matrix again.
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
73 */
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
74 //@{
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
75 void set_f(const realfunc &f);
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
76 void set_g(const realfunc &g);
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
77 void set_f(const map<point, double>& f);
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
78 void set_g(const map<point, double>& g);
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
79 //@}
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
80
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
81 /** @name Linear arithmetic operators
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
82 *
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
83 * These functions return a new interpolator. They are pointwise
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
84 * linear operations.
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
85 */
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
86 //@{
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
87 /// Needs two operators on the same domain.
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
88 interpolator<RBF> operator+(const interpolator<RBF>& u) const;
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
89 /// Needs two operators on the same domain.
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
90 interpolator<RBF> operator-(const interpolator<RBF>& u) const;
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
91 /// Returns a scaled interpolator.
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
92 interpolator<RBF> operator*(double a) const;
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
93 /// Returns a scaled interpolator.
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
94 interpolator<RBF> operator/(double a) const;
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
95 //@}
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
96
6
188facdd5a60 Still buggy. Need a better way to precompute RBFs.
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 4
diff changeset
97 //debug
188facdd5a60 Still buggy. Need a better way to precompute RBFs.
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 4
diff changeset
98 mutable map<std::vector<size_t>, matrix> precomp_rbfs;
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
99 private:
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
100 //Once the matrix is defined, this function inverts it.
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
101 void computecoeffs();
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
102
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
103 //Perform the actual interpolation.
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
104 void init(shared_ptr<linear_BVP2> bvp);
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
105
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
106 shared_ptr<linear_BVP2> thebvp;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
107
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
108 //Number of interior points.
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
109 size_t n;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
110 //Number of boundary points.
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
111 size_t m;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
112
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
113 //The matrix to invert.
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
114 matrix M;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
115
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
116 //Is the interpolator ready for use?
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
117 bool initted;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
118 void not_initted(int line, string file) const; //Exception thrower
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
119
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
120 //Coefficients of the RBFs
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
121 linalg::vector coeffs;
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
122 //The RBFS
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
123 std::vector<RBF> rbfs;
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
124 //Their hash
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
125 size_t rbfs_hash;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
126
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
127 size_t hash_value(const std::vector<RBF>& rbfs_in);
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
128
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
129 /** \short Precomputed RBFs
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
130 *
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
131 * For all points on the domain, this stores all the RBFs
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
132 * evaluated at those points, as well as the derivatives on where
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
133 * the RBFs have been evaluated. This is to speed up successive
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
134 * evaluations of the interpolator when the interpolator's domain
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
135 * doesn't change.
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
136 *
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
137 * The keys in this vector are vectors that represent the
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
138 * multindex for the derivative, where missing trailing entries in
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
139 * the vector represents zeros. Thus, an empty vector represents
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
140 * evaluation instead of derivatives.
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
141 */
6
188facdd5a60 Still buggy. Need a better way to precompute RBFs.
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 4
diff changeset
142
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
143
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
144 /// Precomputed values using precomp_rbfs
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
145 mutable map<std::vector<size_t>, map<point, double> > precomp_values;
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
146 map<point, double> precompute_values(const matrix& phis) const;
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
147 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
148
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
149 //For comfortable syntax
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
150 template <typename RBF>
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
151 interpolator<RBF> operator*(double a, const interpolator<RBF>& u)
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
152 {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
153 return u*a;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
154 }
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
155 }
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
156
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
157 #endif