array index: All indices (1D..6D) now use base class init()
authorRamprasad Venkataraman <ramv@illinois.edu>
Tue, 7 Jun 2011 17:01:19 +0000 (12:01 -0500)
committerRamprasad Venkataraman <ramv@illinois.edu>
Wed, 8 Jun 2011 15:37:43 +0000 (10:37 -0500)
src/ck-core/ckarray.h

index 09f5d7977b787872e027d837d0f1a241c9c2566c..d430e0eebee97c87d24d0bc8e8baa9036832c7d8 100644 (file)
@@ -76,76 +76,39 @@ inline void operator|(PUP::er &p,CkIndexMax &i) {
 /// Simple ArrayIndex classes: the key is just integer indices.
 class CkArrayIndex1D : public CkArrayIndex {
 public:
-       CkArrayIndex1D() { nInts=1; dimension=1; }
+       CkArrayIndex1D() {}
        // CkIndex1D is an int, so that conversion is automatic
-       CkArrayIndex1D(int i0) {
-               index[0]=i0;nInts=1;dimension=1;
-       }
+       CkArrayIndex1D(int i0) { init(1, 1, i0); }
 };
 class CkArrayIndex2D : public CkArrayIndex {
 public:
-       CkArrayIndex2D() { nInts=2; dimension=2; }
-       CkArrayIndex2D(int i0,int i1) {
-               index[0]=i0;index[1]=i1;nInts=2;dimension=2;
-       }
-       CkArrayIndex2D(CkIndex2D idx) {
-           index[0]=idx.x; index[1] = idx.y; nInts = 2; dimension = 2;
-       }
+       CkArrayIndex2D() {}
+       CkArrayIndex2D(int i0,int i1) { init(2, 2, i0, i1); }
+       CkArrayIndex2D(CkIndex2D idx) { init(2, 2, idx.x, idx.y); }
 };
 class CkArrayIndex3D : public CkArrayIndex {
 public:
-       CkArrayIndex3D() { nInts=3; dimension=3; }
-       CkArrayIndex3D(int i0,int i1,int i2) {
-               index[0]=i0;index[1]=i1;index[2]=i2;nInts=3;dimension=3;
-       }
-       CkArrayIndex3D(CkIndex3D idx) {
-               index[0]=idx.x;index[1]=idx.y;index[2]=idx.z;nInts=3;dimension=3;
-       }
+       CkArrayIndex3D() {}
+       CkArrayIndex3D(int i0,int i1,int i2) { init(3, 3, i0, i1, i2); }
+       CkArrayIndex3D(CkIndex3D idx) { init(3, 3, idx.x, idx.y, idx.z); }
 };
 class CkArrayIndex4D : public CkArrayIndex {
 public:
-       CkArrayIndex4D(){ nInts=2; dimension=4; }
-       CkArrayIndex4D(short int i0,short int i1,short int i2,short int i3) {
-               indexShorts[0]=i0;indexShorts[1]=i1;indexShorts[2]=i2;indexShorts[3]=i3;nInts=2;dimension=4;
-       }
-       CkArrayIndex4D(CkIndex4D idx) {
-           indexShorts[0]=idx.w;
-           indexShorts[1]=idx.x;
-           indexShorts[2]=idx.y;
-           indexShorts[3]=idx.z;
-           nInts=2;dimension=4;
-       }
+       CkArrayIndex4D(){}
+       CkArrayIndex4D(short int i0,short int i1,short int i2,short int i3) { init(2, 4, i0, i1, i2, i3); }
+       CkArrayIndex4D(CkIndex4D idx) { init(2, 4, idx.w, idx.x, idx.y, idx.z); }
 };
 class CkArrayIndex5D : public CkArrayIndex {
 public:
-       CkArrayIndex5D(){ nInts=3; dimension=5; }
-       CkArrayIndex5D(short int i0,short int i1,short int i2,short int i3,short int i4) {
-               indexShorts[0]=i0;indexShorts[1]=i1;indexShorts[2]=i2;indexShorts[3]=i3;indexShorts[4]=i4;nInts=3;dimension=5;
-        }
-       CkArrayIndex5D(CkIndex5D idx) {
-           indexShorts[0]=idx.v;
-           indexShorts[1]=idx.w;
-           indexShorts[2]=idx.x;
-           indexShorts[3]=idx.y;
-           indexShorts[4]=idx.z;
-           nInts=3;dimension=5;
-       }
+       CkArrayIndex5D() {}
+       CkArrayIndex5D(short int i0,short int i1,short int i2,short int i3,short int i4) { init(3, 5, i0, i1, i2, i3, i4); }
+       CkArrayIndex5D(CkIndex5D idx) { init(3, 5, idx.v, idx.w, idx.x, idx.y, idx.z); }
 };
 class CkArrayIndex6D : public CkArrayIndex {
 public:
-       CkArrayIndex6D(){ nInts=3; dimension=6; }
-       CkArrayIndex6D(short int i0,short int i1,short int i2,short int i3,short int i4,short int i5) {
-               indexShorts[0]=i0;indexShorts[1]=i1;indexShorts[2]=i2;indexShorts[3]=i3;indexShorts[4]=i4;indexShorts[5]=i5;nInts=3;dimension=6;
-       }
-       CkArrayIndex6D(CkIndex6D idx) {
-           indexShorts[0]=idx.x1;
-           indexShorts[1]=idx.y1;
-           indexShorts[2]=idx.z1;
-           indexShorts[3]=idx.x2;
-           indexShorts[4]=idx.y2;
-           indexShorts[5]=idx.z2;
-           nInts=3;dimension=6;
-       }
+       CkArrayIndex6D(){}
+       CkArrayIndex6D(short int i0,short int i1,short int i2,short int i3,short int i4,short int i5) { init(3, 6, i0, i1, i2, i3, i4, i5); }
+       CkArrayIndex6D(CkIndex6D idx) { init(3, 6, idx.x1, idx.y1, idx.z1, idx.x2, idx.y2, idx.z2); }
 };
 
 /** A slightly more complex array index: the key is an object