コード例 #1
0
ファイル: NxsIndex.java プロジェクト: nhauser/cdma
 @Override
 public IIndex reduce(int dim) {
   if (dim < mIndexArrayData.getRank()) {
     mIndexArrayData.reduce(dim);
   } else {
     mIndexStorage.reduce(dim - mIndexArrayData.getRank());
   }
   return this;
 }
コード例 #2
0
ファイル: NxsIndex.java プロジェクト: nhauser/cdma
  @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));
  }
コード例 #3
0
ファイル: NxsIndex.java プロジェクト: nhauser/cdma
  @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));
  }
コード例 #4
0
ファイル: NxsIndex.java プロジェクト: nhauser/cdma
  @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;
  }
コード例 #5
0
ファイル: NxsIndex.java プロジェクト: nhauser/cdma
  @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);
  }
コード例 #6
0
ファイル: NxsIndex.java プロジェクト: nhauser/cdma
 @Override
 public void setIndexName(int dim, String indexName) {
   if (dim >= mIndexArrayData.getRank()) {
     mIndexStorage.setIndexName(dim, indexName);
   } else {
     mIndexArrayData.setIndexName(dim, indexName);
   }
 }
コード例 #7
0
ファイル: NxsIndex.java プロジェクト: nhauser/cdma
 @Override
 public String getIndexName(int dim) {
   String name;
   if (dim >= mIndexArrayData.getRank()) {
     name = mIndexStorage.getIndexName(dim);
   } else {
     name = mIndexArrayData.getIndexName(dim);
   }
   return name;
 }
コード例 #8
0
ファイル: NxsIndex.java プロジェクト: nhauser/cdma
 @Override
 public int getRank() {
   return mIndexArrayData.getRank() + mIndexStorage.getRank();
 }