def turbo_decode(sys_symbols, non_sys_symbols_1, non_sys_symbols_2, trellis,
                 noise_variance, number_iterations, interleaver, L_int = None):
    if L_int is None:
        L_int = zeros(len(sys_symbols))

    L_int_1 = L_int

    # Interleave systematic symbols for input to second decoder
    sys_symbols_i = interleaver.interlv(sys_symbols)

    for iteration_count in xrange(number_iterations):

        # MAP Decoder - 1
        [L_ext_1, decoded_bits] = map_decode(sys_symbols, non_sys_symbols_1,
                                             trellis, noise_variance, L_int_1, 'compute')

        L_ext_1 = L_ext_1 - L_int_1
        L_int_2 = interleaver.interlv(L_ext_1)
        if iteration_count == number_iterations - 1:
            mode = 'decode'
        else:
            mode = 'compute'

        # MAP Decoder - 2
        [L_2, decoded_bits] = map_decode(sys_symbols_i, non_sys_symbols_2,
                                         trellis, noise_variance, L_int_2, mode)
        L_ext_2 = L_2 - L_int_2
        L_int_1 = interleaver.deinterlv(L_ext_2)

    decoded_bits = interleaver.deinterlv(decoded_bits)

    return decoded_bits
Runs the given hive query and returns stdout.
dataset/ETHPy150Open veeresht/CommPy/commpy/channelcoding/turbo.py/turbo_decode--crossover with--dataset/ETHPy150Open spotify/luigi/luigi/contrib/hive.py/run_hive_cmd