24 #ifndef MT_BASIC_SCALAR_UTILITY_H
25 #define MT_BASIC_SCALAR_UTILITY_H
45 BasicScalar<T> operator+(
const BasicScalar<T>& s,
49 BasicScalar<T> operator+(
const float& x,
50 const BasicScalar<T>& s);
53 BasicScalar<T> operator+(
const BasicScalar<T>& s,
57 BasicScalar<T> operator+(
const double& x,
58 const BasicScalar<T>& s);
61 BasicScalar<T> operator+(
const BasicScalar<T>& s,
65 BasicScalar<T> operator+(
const int& x,
66 const BasicScalar<T>& s);
72 BasicScalar<T> operator-(
const BasicScalar<T>& s,
76 BasicScalar<T> operator-(
const float& x,
77 const BasicScalar<T>& s);
80 BasicScalar<T> operator-(
const BasicScalar<T>& s,
84 BasicScalar<T> operator-(
const double& x,
85 const BasicScalar<T>& s);
88 BasicScalar<T> operator-(
const BasicScalar<T>& s,
92 BasicScalar<T> operator-(
const int& x,
93 const BasicScalar<T>& s);
99 BasicScalar<T> operator*(
const BasicScalar<T>& s,
103 BasicScalar<T> operator*(
const float& x,
104 const BasicScalar<T>& s);
107 BasicScalar<T> operator*(
const BasicScalar<T>& s,
111 BasicScalar<T> operator*(
const double& x,
112 const BasicScalar<T>& s);
115 BasicScalar<T> operator*(
const BasicScalar<T>& s,
119 BasicScalar<T> operator*(
const int& x,
120 const BasicScalar<T>& s);
126 BasicScalar<T> operator/(
const BasicScalar<T>& s,
130 BasicScalar<T> operator/(
const float& x,
131 const BasicScalar<T>& s);
134 BasicScalar<T> operator/(
const BasicScalar<T>& s,
138 BasicScalar<T> operator/(
const double& x,
139 const BasicScalar<T>& s);
142 BasicScalar<T> operator/(
const BasicScalar<T>& s,
146 BasicScalar<T> operator/(
const int& x,
147 const BasicScalar<T>& s);
154 template<
class T>
inline
155 BasicScalar<T> operator+(
const BasicScalar<T>& s,
158 return s + BasicScalar<T>(x);
162 template<
class T>
inline
163 BasicScalar<T> operator+(
const float& x,
164 const BasicScalar<T>& s)
166 return s + BasicScalar<T>(x);
170 template<
class T>
inline
171 BasicScalar<T> operator+(
const BasicScalar<T>& s,
174 return s + BasicScalar<T>(x);
178 template<
class T>
inline
179 BasicScalar<T> operator+(
const double& x,
180 const BasicScalar<T>& s)
182 return s + BasicScalar<T>(x);
186 template<
class T>
inline
187 BasicScalar<T> operator+(
const BasicScalar<T>& s,
190 return s + BasicScalar<T>(x);
194 template<
class T>
inline
195 BasicScalar<T> operator+(
const int& x,
196 const BasicScalar<T>& s)
198 return s + BasicScalar<T>(x);
204 template<
class T>
inline
205 BasicScalar<T> operator-(
const BasicScalar<T>& s,
208 return s - BasicScalar<T>(x);
212 template<
class T>
inline
213 BasicScalar<T> operator-(
const float& x,
214 const BasicScalar<T>& s)
216 return BasicScalar<T>(x) - s;
220 template<
class T>
inline
221 BasicScalar<T> operator-(
const BasicScalar<T>& s,
224 return s - BasicScalar<T>(x);
228 template<
class T>
inline
229 BasicScalar<T> operator-(
const double& x,
230 const BasicScalar<T>& s)
232 return BasicScalar<T>(x) - s;
236 template<
class T>
inline
237 BasicScalar<T> operator-(
const BasicScalar<T>& s,
240 return s - BasicScalar<T>(x);
244 template<
class T>
inline
245 BasicScalar<T> operator-(
const int& x,
246 const BasicScalar<T>& s)
248 return BasicScalar<T>(x) - s;
254 template<
class T>
inline
255 BasicScalar<T> operator*(
const BasicScalar<T>& s,
258 return s * BasicScalar<T>(x);
262 template<
class T>
inline
263 BasicScalar<T> operator*(
const float& x,
264 const BasicScalar<T>& s)
266 return s * BasicScalar<T>(x);
270 template<
class T>
inline
271 BasicScalar<T> operator*(
const BasicScalar<T>& s,
274 return s * BasicScalar<T>(x);
278 template<
class T>
inline
279 BasicScalar<T> operator*(
const double& x,
280 const BasicScalar<T>& s)
282 return s * BasicScalar<T>(x);
286 template<
class T>
inline
287 BasicScalar<T> operator*(
const BasicScalar<T>& s,
290 return s * BasicScalar<T>(x);
294 template<
class T>
inline
295 BasicScalar<T> operator*(
const int& x,
296 const BasicScalar<T>& s)
298 return s * BasicScalar<T>(x);
304 template<
class T>
inline
305 BasicScalar<T> operator/(
const BasicScalar<T>& s,
308 return s / BasicScalar<T>(x);
312 template<
class T>
inline
313 BasicScalar<T> operator/(
const float& x,
314 const BasicScalar<T>& s)
316 return BasicScalar<T>(x) / s;
320 template<
class T>
inline
321 BasicScalar<T> operator/(
const BasicScalar<T>& s,
324 return s / BasicScalar<T>(x);
328 template<
class T>
inline
329 BasicScalar<T> operator/(
const double& x,
330 const BasicScalar<T>& s)
332 return BasicScalar<T>(x) / s;
336 template<
class T>
inline
337 BasicScalar<T> operator/(
const BasicScalar<T>& s,
340 return s / BasicScalar<T>(x);
344 template<
class T>
inline
345 BasicScalar<T> operator/(
const int& x,
346 const BasicScalar<T>& s)
348 return BasicScalar<T>(x) / s;
354 #endif // MT_BASIC_SCALAR_UTILITY_H