Adding a CkArrayIndex constructor that takes a single int.
authorLukasz Wesolowski <wesolwsk@illinois.edu>
Wed, 18 Apr 2012 18:59:53 +0000 (13:59 -0500)
committerLukasz Wesolowski <wesolwsk@illinois.edu>
Wed, 18 Apr 2012 18:59:53 +0000 (13:59 -0500)
The constructor is needed in NDMeshStreamer to allow using int
instead of CkArrayIndex1D for savings in communication volume.
The change removes type safety when using multidimensional
array indices in user code. It should be possible to recover
the type safety using a runtime assert on the number of dimensions
in an index in genereated code, although this still needs to be implemented.

src/ck-core/ckarrayindex.h

index cb2b1927c347dbb2305f1063415c884029c61372..7f71e0729d02dc2654746b6bb694cb33700d74d1 100644 (file)
@@ -67,9 +67,9 @@ class CkArrayIndex: public CkArrayIndexBase
     public:
         /// Default
         CkArrayIndex() { nInts=0; dimension=0; for (int i=0; i<CK_ARRAYINDEX_MAXLEN; i++) index[i] = 0; }
-#ifdef _PIPELINED_ALLREDUCE_
+
        CkArrayIndex(int idx) {init(1,1,idx);};
-#endif
+
         /// Return a pointer to the actual index data
         int *data(void)             {return index; }
         /// Return a const pointer to the actual index data