code: protected double getSqrdNorm(int i, Vec y, List<Double> qi, List<? extends Vec> vecs, List<Double> cache)
      {
          if(cache == null)
              return Math.pow(vecs.get(i).pNormDist(2.0, y), 2);
          return cache.get(i)+qi.get(0)-2*vecs.get(i).dot(y);
      }
docs: Returns the squared L<sup>2</sup> norm between a point in the cache and one with a provided qi value
  @param i the index in the vector list
  @param y the other vector
  @param qi the acceleration values for the other vector
  @param vecs the list of vectors to make the collection
  @param cache the cache of values for each vector in the collection
  @return the squared norm ||x<sub>i</sub>-y||<sup>2</sup>