1id: variable_polar_decoder_sc_list_def 2label: POLAR Decoder SC List Definition 3flags: [ show_id ] 4 5parameters: 6- id: ndim 7 label: Parallelism 8 dtype: enum 9 default: '0' 10 options: ['0', '1', '2'] 11- id: dim1 12 label: Dimension 1 13 dtype: int 14 default: '1' 15 hide: ${ ('none' if (int(ndim) >= 1) else 'all') } 16- id: dim2 17 label: Dimension 2 18 dtype: int 19 default: '4' 20 hide: ${ ('none' if (int(ndim) >= 2) else 'all') } 21- id: max_list_size 22 label: Maximum List Size (L) 23 dtype: int 24- id: block_size 25 label: Block size (N) 26 dtype: int 27- id: num_info_bits 28 label: '#Info Bits (K)' 29 dtype: int 30- id: frozen_bit_positions 31 label: Frozen Bit Positions 32 dtype: int_vector 33- id: frozen_bit_values 34 label: Frozen Bit Values 35 dtype: int_vector 36value: ${ fec.polar_decoder_sc_list.make(max_list_size, block_size, num_info_bits, 37 frozen_bit_positions, frozen_bit_values) } 38 39templates: 40 imports: from gnuradio import fec 41 var_make: |- 42 % if int(ndim)==0: 43 self.${id} = ${id} = fec.polar_decoder_sc_list.make(${max_list_size},\ 44 ${block_size}, ${num_info_bits}, ${frozen_bit_positions}, ${frozen_bit_values})\ 45 % elif int(ndim)==1: 46 self.${id} = ${id} = list(map((lambda a: fec.polar_decoder_sc_list.make(${max_list_size},\ 47 ${block_size}, ${num_info_bits}, ${frozen_bit_positions}, ${frozen_bit_values})),\ 48 range(0, ${dim1}))) 49 % else: 50 self.${id} = ${id} = list(map((lambda b: list(map((lambda \ 51 a: fec.polar_decoder_sc_list.make(${max_list_size}, ${block_size}, ${num_info_bits},\ 52 ${frozen_bit_positions}, ${frozen_bit_values})), range(0, ${dim2})))), range(0,\ 53 ${dim1}))) 54 % endif 55 56file_format: 1 57