code: def returnFalseNegatives(kw, noisePct, n, theta):
    
  
    W = getSparseTensor(kw, n, 1, fixedRange=1.0 / kw)
  
    # Get permuted versions of W and see how many match
    m2 = 10
    inputVectors = getPermutedTensors(W, kw, n, m2, noisePct)
    dot = inputVectors.matmul(W.t())
  
    numMatches = ((dot >= theta).sum()).item()
    pctMatches = numMatches / float(m2)
  
    return pctMatches, numMatches, m2
docs: Generate a weight vector W, with kw non-zero components. Generate 1000
    noisy versions of W and return the match statistics. Noisy version of W is
    generated by randomly setting noisePct of the non-zero components to zero.
  
    :param kw: k for the weight vectors
    :param noisePct: percent noise, from 0 to 1
    :param n:  dimensionality of input vector
    :param theta: threshold for matching after dot product
  
    :return: percent that matched, number that matched, total match comparisons