36 template<
typename T,
int N>
class IndexTM;
63 template<
typename T,
int N> std::ostream&
operator<<(std::ostream & a_os,
66 template<
typename T,
int N> std::istream&
operator>>(std::istream & a_os,
111 IndexTM(T a_i, T a_j, T a_k, T a_l);
112 IndexTM(T a_i, T a_j, T a_k, T a_l, T a_m);
113 IndexTM(T a_i, T a_j, T a_k, T a_l, T a_m, T a_n);
120 explicit IndexTM(
const T* a_a);
260 for (
int idir = 0; idir <
N; idir++)
262 retval = (retval && ((*this)[idir] <= a_s[idir]));
322 const OP & a_op)
const;
341 int minDir(
bool a_doAbs)
const;
348 int maxDir(
bool a_doAbs)
const;
429 void printOn(std::ostream & a_os)
const;
441 void dumpOn(std::ostream & a_os)
const;
447 friend std::ostream& operator<< <>(std::ostream & a_os,
454 friend std::istream& operator>> <> (std::istream & a_os,
508 for(
int idir = 0; idir <
N; idir++)
533 static bool const m_isInt=
false;
534 static bool const m_isReal=
false;
538 static bool const m_isInt=
true;
539 static bool const m_isReal=
false;
543 static bool const m_isInt=
false;
544 static bool const m_isReal=
true;
576 #endif // include guard const T * dataPtr() const
Definition: IndexTMI.H:202
void dumpOn(std::ostream &a_os) const
Definition: IndexTMI.H:114
bool componentwiseLE(const IndexTM &a_s)
Definition: IndexTM.H:257
IndexTM< T, N > & operatorOpEquals(const IndexTM< T, N > &a_p, const OP &a_op)
Definition: IndexTMI.H:283
#define CH_assert(cond)
Definition: CHArray.H:37
IndexTM()
Definition: IndexTM.H:93
void setAll(T a_val)
Definition: IndexTMI.H:194
IndexTM< T, N > BASISV_TM(int a_dir)
Definition: IndexTMI.H:408
bool operator!=(const IndexTM &a_p) const
Definition: IndexTMI.H:222
IndexTM< T, N > min(const IndexTM< T, N > &a_p1, const IndexTM< T, N > &a_p2)
Definition: IndexTMI.H:394
IndexTM operator-() const
Definition: IndexTMI.H:242
IndexTM< T, N > diagShift(const IndexTM< T, N > &a_p, T a_s)
Definition: IndexTMI.H:388
T integer_factorial(int n) const
Definition: IndexTM.H:489
IndexTM< T, N > scale(const IndexTM< T, N > &a_p, T a_s)
Definition: IndexTMI.H:382
Definition: GenericArithmetic.H:54
T dotProduct(const IndexTM &a_rhs) const
Definition: IndexTMI.H:252
T factorial() const
Definition: IndexTM.H:505
IndexTM< T, N > reflect(const IndexTM< T, N > &a_a, T a_refIx, int a_idir)
Definition: IndexTMI.H:416
IndexTM & reciprocal()
Definition: IndexTMI.H:290
bool lexLT(const IndexTM &a_s) const
Definition: IndexTMI.H:227
IndexTM & diagShift(T a_s)
Definition: IndexTMI.H:377
void setVal(int a_i, T a_val)
Definition: IndexTMI.H:187
IndexTM< T, N > coarsen(const IndexTM< T, N > &a_p, T a_s)
Definition: IndexTMI.H:430
T sum() const
Definition: IndexTMI.H:260
std::ostream & operator<<(std::ostream &a_os, const IndexTM< T, N > &a_iv)
T & operator[](int a_i)
Definition: IndexTMI.H:175
IndexTM copy() const
Definition: IndexTM.H:128
IndexTM & reflect(T a_refIx, int a_idir)
Definition: IndexTMI.H:356
IndexTM operator+() const
Definition: IndexTMI.H:237
std::istream & operator>>(std::istream &a_os, IndexTM< T, N > &a_iv)
bool lexGT(const IndexTM &a_s) const
Definition: IndexTMI.H:232
IndexTM & coarsen(const IndexTM &a_p)
Definition: IndexTMI.H:464
double Real
Definition: REAL.H:33
IndexTM & scale(T a_s)
Definition: IndexTMI.H:351
static const IndexTM Unit
Definition: IndexTM.H:472
IndexTM & min(const IndexTM &a_p)
Definition: IndexTMI.H:337
IndexTM< T, N > max(const IndexTM< T, N > &a_p1, const IndexTM< T, N > &a_p2)
Definition: IndexTMI.H:401
bool operator==(const IndexTM &a_p) const
Definition: IndexTMI.H:217
void linearOut(void *a_outBuf) const
Definition: IndexTMI.H:476
T product() const
Definition: IndexTMI.H:265
bool operatorCompare(const IndexTM< T, N > &a_p, const OP &a_op) const
Definition: IndexTMI.H:270
~IndexTM()
Definition: IndexTM.H:101
bool operator<(const IndexTM &a_s) const
Definition: IndexTM.H:244
void p() const
Definition: IndexTMI.H:109
const T * getVect() const
Definition: IndexTMI.H:212
void const char const int const int * N
Definition: Lapack.H:83
IndexTM & max(const IndexTM &a_p)
Definition: IndexTMI.H:344
IndexTM & shift(int a_coord, T a_s)
Definition: IndexTMI.H:364
void linearIn(const void *a_inBuf)
Definition: IndexTMI.H:471
void printOn(std::ostream &a_os) const
Definition: IndexTMI.H:104
int minDir(bool a_doAbs) const
Definition: IndexTMI.H:301
IndexTM & operator=(const IndexTM &a_rhs)
Definition: IndexTMI.H:169
T m_vect[N]
Definition: IndexTM.H:522
static const IndexTM Zero
Definition: IndexTM.H:467
int maxDir(bool a_doAbs) const
Definition: IndexTMI.H:313