code: public DataBuffer getIncludedIndices() {
  
          if (isScalar()) {
              return Nd4j.createBuffer(new int[] {0, 0});
          }
  
          List<Integer> ind = new ArrayList<>();
  
          for (int i = 0; i < values.length(); i++) {
              boolean isIn = true;
              int idxNotFixed = 0;
              int[] idx = getUnderlyingIndicesOf(i).asInt(); // TODO change for getIndicesOf(i)
  
              for (int dim = 0; dim < idx.length; dim++) {
                  if (flags()[dim] == 1) {
                      if (sparseOffsets()[dim] != idx[dim]) {
                          isIn = false;
                          break;
                      }
                  } else {
                      int lowerBound = sparseOffsets()[dim];
                      long upperBound = sparseOffsets()[dim] + shape()[idxNotFixed];
                      if (!(idx[dim] >= lowerBound && idx[dim] < upperBound)) {
                          isIn = false;
                          break;
                      }
                      idxNotFixed++;
                  }
              }
              if (isIn) {
                  int notFixedDim = 0;
                  for (int dim = 0; dim < idx.length; dim++) {
                      if (flags()[dim] == 0) {
                          if (shape()[notFixedDim] == 1) {
                              ind.add(0);
                              notFixedDim++;
                          } else {
                              ind.add(idx[dim] - sparseOffsets()[dim]);
                          }
                      }
                  }
              }
          }
          return Nd4j.createBuffer(Ints.toArray(ind));
      }
docs: Return a copy of the indices included in the view.
  /!\ Change this DataBuffer won't change the ndarray!
  @return an array containing the virtual indexes of the values (think about views).