code: public double computeDistanceIVFADC(double[] qVector, String existingVecId) throws Exception {
  		double distance = 0;
  		// find the coarse centroid where the specified id is quantized as well as its pq code
  		int existingCoarseCentroidIndex = getInvertedListId(existingVecId);
  
  		// quantize the given vector to the centroid of the coarse quantizer where the existing vector is
  		// quantized and compute the residual vector
  		double[] residualVectorQuery = computeResidualVector(qVector, existingCoarseCentroidIndex);
  
  		// apply a random transformation if needed
  		if (transformation == TransformationType.RandomRotation) {
  			residualVectorQuery = rr.rotate(residualVectorQuery);
  		} else if (transformation == TransformationType.RandomPermutation) {
  			residualVectorQuery = rp.permute(residualVectorQuery);
  		}
  
  		// compute lookup table
  		double[][] lookUpTable = computeLookupADC(residualVectorQuery);
  
  		if (numProductCentroids <= 256) {
  			byte[] pqCode = getPQCodeByte(existingVecId);
  			for (int m = 0; m < pqCode.length; m++) {
  				// plus 128 because byte range is -128..127
  				distance += lookUpTable[m][pqCode[m] + 128];
  			}
  		} else {
  			short[] pqCode = getPQCodeShort(existingVecId);
  			for (int m = 0; m < pqCode.length; m++) {
  				distance += lookUpTable[m][pqCode[m]];
  			}
  		}
  
  		return distance;
  	}
docs: Utility methods that computes the distance between a query vector and the pq code associated with the
  given id using the IVFADC approach. <br>
  TODO: The computation of the lookUpTable is not needed in this case.
  
  @param qVector
  The query vector
  @param existingVecId
  The id of an already indexed vector
  @return
  @throws Exception