docs: protected void accessingRow(int r)
      {
          if (r < 0)
          {
              specific_row_cache_row = -1;
              specific_row_cache_values = null;
              return;
          }
          
          if(cacheMode == CacheMode.ROWS)
          {
              double[] cache = partialCache.get(r);
              if (cache == null)//not present
              {
                  //make a row
                  cache = new double[vecs.size()];
                  Arrays.fill(cache, Double.NaN);
  
                  double[] cache_missed = partialCache.putIfAbsentAndGet(r, cache);
                  if(cache_missed != null)
                      cache = cache_missed;
              }
              specific_row_cache_values = cache;
              specific_row_cache_row = r;
          }
      }