def find_acc_cut_point(native, loan):
    """
    Calculate cut_point that will give highest accuracy for entropies.
    Use case is for entropies estimated from a single (native) entropy model.

    Parameters
    ----------
    native : [float]
        List of entropies from native distribution.
    loan : [float]
        List of entropies from loan distribution.

    Returns
    -------
    cut_point : float
        Critical value to test native versus loan word.
        Native if entropy <= cut_point else loan.

    Note
    ----
        Entropies are all non-negative and the algorithm used makes use
        of that fact.

    """
    abs_entropies = sorted([-s for s in native] + loan, key=abs)

    # All values > 0 are presumed correct at start.
    cut_point = 0
    correct = len(loan)
    correct_max = correct

    for value in abs_entropies:
        correct += 1 if value < 0 else -1
        if correct > correct_max:
            correct_max = correct
            cut_point = value

    cut_point = abs(cut_point)
    return cut_point