def METHOD_NAME(
    self, v: List, a: int, b: int, c: int, d: int, x: int, y: int
) -> List:
    """
    The mixing function used in Blake2
    https://datatracker.ietf.org/doc/html/rfc7693#section-3.1
    Parameters
    ----------
    v :
        The working vector to be mixed.
    a, b, c, d :
        Indexes within v of the words to be mixed.
    x, y :
        The two input words for the mixing.
    """
    v[a] = (v[a] + v[b] + x) % self.max_word
    v[d] = ((v[d] ^ v[a]) >> self.R1) ^ (
        (v[d] ^ v[a]) << self.w_R1
    ) % self.max_word
    v[c] = (v[c] + v[d]) % self.max_word
    v[b] = ((v[b] ^ v[c]) >> self.R2) ^ (
        (v[b] ^ v[c]) << self.w_R2
    ) % self.max_word
    v[a] = (v[a] + v[b] + y) % self.max_word
    v[d] = ((v[d] ^ v[a]) >> self.R3) ^ (
        (v[d] ^ v[a]) << self.w_R3
    ) % self.max_word
    v[c] = (v[c] + v[d]) % self.max_word
    v[b] = ((v[b] ^ v[c]) >> self.R4) ^ (
        (v[b] ^ v[c]) << self.w_R4
    ) % self.max_word
    return v