28 #ifndef TABLES_TABVECMATH_H 29 #define TABLES_TABVECMATH_H 35 #include <casacore/casa/aips.h> 36 #include <casacore/casa/BasicMath/Math.h> 37 #include <casacore/tables/Tables/TableVector.h> 38 #include <casacore/tables/Tables/TVecMath.h> 62 template<
class T>
inline 65 template<
class T>
inline 68 template<
class T>
inline 71 template<
class T>
inline 75 template<
class T>
inline 78 template<
class T>
inline 81 template<
class T>
inline 84 template<
class T>
inline 88 template<
class T>
inline 91 template<
class T>
inline 95 template<
class T>
inline 99 template<
class T>
inline 103 template<
class T>
inline 107 template<
class T>
inline 113 template<
class T>
inline 117 template<
class T>
inline 121 template<
class T>
inline 125 template<
class T>
inline 130 template<
class T>
inline 134 template<
class T>
inline 138 template<
class T>
inline 142 template<
class T>
inline 209 const double& exponent);
234 template<
class T>
inline 239 template<
class T>
inline 244 template<
class T>
inline 249 template<
class T>
inline 254 template<
class T>
inline 259 template<
class T>
inline 263 template<
class T>
inline 270 template<
class T>
inline T
293 template<
class T>
inline 298 template<
class T>
inline 302 template<
class T>
inline 315 #define TABVECMATHOPER(NAME,OP,OPA) \ 316 template<class T> inline \ 317 TableVector<T> aips_name2(operato,OP) (const TableVector<T>& tv, \ 319 { return TableVector<T> (aips_name2(tabVecRepvalr,NAME) (tv.tabVec(), \ 321 template<class T> inline \ 322 TableVector<T> aips_name2(operato,OP) (const T& v, \ 323 const TableVector<T>& tv) \ 324 { return TableVector<T> (aips_name2(tabVecRepvall,NAME) (v, \ 326 template<class T> inline \ 327 TableVector<T> aips_name2(operato,OP) (const TableVector<T>& l, \ 328 const TableVector<T>& r) \ 329 { return TableVector<T> (aips_name2(tabVecReptv,NAME) (l.tabVec(), \ 331 template<class T> inline \ 332 void aips_name2(operato,OPA) (TableVector<T>& tv, const T& v) \ 333 { aips_name2(tabVecRepvalass,NAME) (tv.tabVec(), v); } \ 334 template<class T> inline \ 335 void aips_name2(operato,OPA) (TableVector<T>& l, \ 336 const TableVector<T>& r) \ 337 { aips_name2(tabVecReptvass,NAME) (l.tabVec(), r.tabVec()); } 345 #define TABVECMATHFUNC(NAME) \ 346 template<class T> inline \ 347 TableVector<T> NAME (const TableVector<T>& tv) \ 348 { return TableVector<T> (aips_name2(tabVecRep,NAME) (tv.tabVec())); } 349 #define TABVECMATHFUNC2(NAME) \ 350 template<class T> inline \ 351 TableVector<T> NAME (const TableVector<T>& l, \ 352 const TableVector<T>& r) \ 353 { return TableVector<T> (aips_name2(tabVecRep,NAME) (l.tabVec(), \ 376 template<
class T>
inline 381 template<
class T>
inline 383 {
return tabVecRepsum (tv.
tabVec()); }
384 template<
class T>
inline 386 {
return tabVecRepproduct (tv.
tabVec()); }
389 template<
class T>
inline 391 { tabVecRepminmax (min, max, tv.
tabVec()); }
392 template<
class T>
inline 394 { T
Min,
Max; tabVecRepminmax (Min, Max, tv.
tabVec());
return Min; }
395 template<
class T>
inline 397 { T
Min,
Max; tabVecRepminmax (Min, Max, tv.
tabVec());
return Max; }
399 template<
class T>
inline 401 { tabVecRepindgen (tv.
tabVec(), start, inc); }
402 template<
class T>
inline 404 { tabVecRepindgen (tv.
tabVec(), start, 1); }
405 template<
class T>
inline 407 { tabVecRepindgen (tv.
tabVec(), 0, 1); }
410 template<
class T>
inline 412 {
return tabVecRepinnerproduct (l.
tabVec(), r.
tabVec()); }
413 template<
class T>
inline 415 {
return tabVecRepnorm (tv.
tabVec()); }
416 template<
class T>
inline LatticeExprNode log10(const LatticeExprNode &expr)
LatticeExprNode log(const LatticeExprNode &expr)
LatticeExprNode operator/(const LatticeExprNode &left, const LatticeExprNode &right)
TableVector< T > crossProduct(const TableVector< T > &l, const TableVector< T > &r)
T product(const TableVector< T > &tv)
Templated readonly table column vectors.
LatticeExprNode sum(const LatticeExprNode &expr)
LatticeExprNode max(const LatticeExprNode &left, const LatticeExprNode &right)
Functor to get maximum of two values.
LatticeExprNode exp(const LatticeExprNode &expr)
LatticeExprNode floor(const LatticeExprNode &expr)
LatticeExprNode cos(const LatticeExprNode &expr)
Functor to get minimum of two values.
T innerProduct(const TableVector< T > &l, const TableVector< T > &r)
#define TABVECMATHFUNC(NAME)
TabVecRep< T > & tabVec()
Return the TabVecRep reference.
#define TABVECMATHFUNC2(NAME)
Float pow(Float f1, Float f2)
LatticeExprNode tanh(const LatticeExprNode &expr)
LatticeExprNode min(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode sqrt(const LatticeExprNode &expr)
LatticeExprNode tan(const LatticeExprNode &expr)
void indgen(TableVector< T > &tv, Int start, Int inc)
LatticeExprNode atan(const LatticeExprNode &expr)
void minMax(T &min, T &max, const TableVector< T > &tv)
#define TABVECMATHOPER(NAME, OP, OPA)
LatticeExprNode atan2(const LatticeExprNode &left, const LatticeExprNode &right)
Numerical 2-argument functions.
LatticeExprNode operator+(const LatticeExprNode &expr)
Global functions operating on a LatticeExprNode.
LatticeExprNode fmod(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode asin(const LatticeExprNode &expr)
LatticeExprNode sinh(const LatticeExprNode &expr)
LatticeExprNode acos(const LatticeExprNode &expr)
LatticeExprNode operator-(const LatticeExprNode &expr)
T norm(const TableVector< T > &tv)
LatticeExprNode ceil(const LatticeExprNode &expr)
this file contains all the compiler specific defines
MVBaseline operator*(const RotMatrix &left, const MVBaseline &right)
Rotate a Baseline vector with rotation matrix and other multiplications.
LatticeExprNode cosh(const LatticeExprNode &expr)
LatticeExprNode value(const LatticeExprNode &expr)
This function returns the value of the expression without a mask.
LatticeExprNode sin(const LatticeExprNode &expr)
Numerical 1-argument functions.