40 #define PI2 6.28318530717958623
42 #define HASH(A) {(int)(myhash((A)/PI2)/Step)}
43 #define MYHASH(A) {((int)((((A)<0)?(((A)+1-(int)(A))*PI2):(((A)-(int)(A))*PI2))/Step))}
47 if (arg < 0)
return (arg+1-(
int)arg)*
PI2;
48 return (arg-(
int)arg)*
PI2;
55 template <
class T>
class CExp
76 inline double f(
register T
arg)
78 if (arg < 0)
return (arg+1-(
int)arg)*
PI2;
79 return (arg-(
int)arg)*
PI2;
89 if (arg < 0)
return (
int)((arg+1-(int)arg)*
Size);
90 return (
int)((arg-(int)arg)*
Size);
93 #define MYHASH2(A) {A<0 ? (int)(A+1-(int)A)*Size:(int)(A-(int)A)*Size}
94 #define MYHASH3(a) ((a < 0) ? ((a)-(int)(a)+1)*PI2 : ((a)-(int)(a))*PI2)
A 1-D Specialization of the Array class.
LatticeExprNode arg(const LatticeExprNode &expr)
double myhash(register double arg)
std::complex< T > operator()(T &arg)
LatticeExprNode cos(const LatticeExprNode &expr)
LatticeExprNode abs(const LatticeExprNode &expr)
Numerical 1-argument functions which result in a real number regardless of input expression type...
casacore::Vector< T > RTable
int myhash2(register double arg)
{return (int)(myhash(arg/PI2)/Step);}
LatticeExprNode fmod(const LatticeExprNode &left, const LatticeExprNode &right)
void reim(T &arg, T &re, T &im)
casacore::Vector< T > ITable
Call this inline as f(arg/PI2)
LatticeExprNode sin(const LatticeExprNode &expr)
Numerical 1-argument functions.