docs: protected VectorApproximation calculateFullApproximation(DBID id, V dv) {
      int[] approximation = new int[dv.getDimensionality()];
      for(int d = 0; d < splitPartitions.length; d++) {
        double[] split = daFiles.get(d).getSplitPositions();
        final double val = dv.doubleValue(d);
        final int lastBorderIndex = split.length - 1;
  
        // Value is below data grid
        if(val < split[0]) {
          approximation[d] = 0;
          if(id != null) {
            LOG.warning("Vector outside of VAFile grid!");
          }
        } // Value is above data grid
        else if(val > split[lastBorderIndex]) {
          approximation[d] = lastBorderIndex - 1;
          if(id != null) {
            LOG.warning("Vector outside of VAFile grid!");
          }
        } // normal case
        else {
          // Search grid position
          int pos = Arrays.binarySearch(split, val);
          pos = (pos >= 0) ? pos : ((-pos) - 2);
          approximation[d] = pos;
        }
      }
      return new VectorApproximation(id, approximation);
    }