Beispiel #1
0
  @Override
  public void setStride(long[] stride) {
    if (stride.length != getRank()) {
      throw new IllegalArgumentException();
    }
    int iRank = mIndexArrayData.getRank();

    // Set the stride for the storage arrays
    mIndexStorage.setStride(java.util.Arrays.copyOfRange(stride, iRank, stride.length));

    // Get the number of cells in storage arrays
    long[] iStride = mIndexStorage.getStride();
    long current = iStride[0] * mIndexStorage.getShape()[0];

    // Divide the stride by number of cells contained in storage arrays
    iStride = new long[iRank];
    for (int i = iRank; i > 0; i--) {
      iStride[i - 1] = stride[i - 1] / current;
      if (iStride[i - 1] == 0) {
        iStride[i - 1] = 1;
      }
    }

    mIndexArrayData.setStride(iStride);
  }
Beispiel #2
0
 @Override
 public void setIndexName(int dim, String indexName) {
   if (dim >= mIndexArrayData.getRank()) {
     mIndexStorage.setIndexName(dim, indexName);
   } else {
     mIndexArrayData.setIndexName(dim, indexName);
   }
 }
Beispiel #3
0
 @Override
 public IIndex reduce(int dim) {
   if (dim < mIndexArrayData.getRank()) {
     mIndexArrayData.reduce(dim);
   } else {
     mIndexStorage.reduce(dim - mIndexArrayData.getRank());
   }
   return this;
 }
Beispiel #4
0
  @Override
  public void setShape(int[] shape) {
    if (shape.length != getRank()) {
      throw new IllegalArgumentException();
    }
    mIndexArrayData.setShape(java.util.Arrays.copyOfRange(shape, 0, mIndexArrayData.getRank()));

    mIndexStorage.setShape(
        java.util.Arrays.copyOfRange(shape, mIndexArrayData.getRank(), shape.length));
  }
Beispiel #5
0
 @Override
 public String getIndexName(int dim) {
   String name;
   if (dim >= mIndexArrayData.getRank()) {
     name = mIndexStorage.getIndexName(dim);
   } else {
     name = mIndexArrayData.getIndexName(dim);
   }
   return name;
 }
Beispiel #6
0
  @Override
  public void setOrigin(int[] origin) {
    if (origin.length != getRank()) {
      throw new IllegalArgumentException();
    }
    mIndexArrayData.setOrigin(java.util.Arrays.copyOfRange(origin, 0, mIndexArrayData.getRank()));

    mIndexStorage.setOrigin(
        java.util.Arrays.copyOfRange(origin, mIndexArrayData.getRank(), origin.length));
  }
Beispiel #7
0
  @Override
  public IIndex set(int[] index) {
    if (index.length != getRank()) {
      throw new IllegalArgumentException();
    }
    mIndexArrayData.set(java.util.Arrays.copyOfRange(index, 0, mIndexArrayData.getRank()));

    mIndexStorage.set(java.util.Arrays.copyOfRange(index, mIndexArrayData.getRank(), index.length));

    return this;
  }
Beispiel #8
0
 public int[] getCurrentCounterStorage() {
   return mIndexStorage.getCurrentCounter();
 }
Beispiel #9
0
 public int[] getCurrentCounterMatrix() {
   return mIndexArrayData.getCurrentCounter();
 }
Beispiel #10
0
 public long currentElementStorage() {
   return mIndexStorage.currentElement();
 }
Beispiel #11
0
 public long currentElementMatrix() {
   return mIndexArrayData.currentElement();
 }
Beispiel #12
0
 public List<IRange> getRangeList() {
   ArrayList<IRange> list = new ArrayList<IRange>();
   list.addAll(mIndexArrayData.getRangeList());
   list.addAll(mIndexStorage.getRangeList());
   return list;
 }
Beispiel #13
0
 @Override
 public String toString() {
   return mIndexArrayData.toString() + "\n" + mIndexStorage;
 }
Beispiel #14
0
 @Override
 public String toStringDebug() {
   return (mIndexArrayData.toStringDebug() + mIndexStorage.toStringDebug());
 }
Beispiel #15
0
 @Override
 public long[] getStride() {
   return concat(mIndexArrayData.getStride(), mIndexStorage.getStride());
 }
Beispiel #16
0
 @Override
 public long getSize() {
   long sizeArrayData = mIndexArrayData.getSize();
   return (sizeArrayData == 0 ? 1 : sizeArrayData) * mIndexStorage.getSize();
 }
Beispiel #17
0
 @Override
 public int[] getOrigin() {
   return concat(mIndexArrayData.getOrigin(), mIndexStorage.getOrigin());
 }
Beispiel #18
0
 @Override
 public int getRank() {
   return mIndexArrayData.getRank() + mIndexStorage.getRank();
 }
Beispiel #19
0
 @Override
 public int[] getCurrentCounter() {
   return concat(mIndexArrayData.getCurrentCounter(), mIndexStorage.getCurrentCounter());
 }
Beispiel #20
0
 @Override
 public long lastElement() {
   return mIndexArrayData.lastElement() * mIndexStorage.getSize() + mIndexStorage.lastElement();
 }
Beispiel #21
0
 @Override
 public IIndex reduce() {
   mIndexArrayData.reduce();
   mIndexStorage.reduce();
   return this;
 }