def add_variational_representations(variational_representation_1,
    variational_representation_2, radices):
    """
    Add two decompositions (by variations) as multiradix numbers.

    :param variational_representation_1: first decomposition
    :param variational_representation_2: second decomposition
    :param radices: radices of decomposition
    :return: summation result (decomposition)
    """
    overflow = 0
    result = []
    for digit_1, digit_2, radix in zip(variational_representation_1,
        variational_representation_2, radices):
        result_digit = digit_1 + digit_2 + overflow
        if result_digit < radix:
            overflow = 0
        else:
            result_digit %= radix
            overflow = 1
        result.append(result_digit)
    return result
