<s> """<STR_LIT>""" <EOL> import numpy as np <EOL> from . _max_len_seq_inner import _max_len_seq_inner <EOL> __all__ = [ '<STR_LIT>' ] <EOL> _mls_taps = { <NUM_LIT:2> : [ <NUM_LIT:1> ] , <NUM_LIT:3> : [ <NUM_LIT:2> ] , <NUM_LIT:4> : [ <NUM_LIT:3> ] , <NUM_LIT:5> : [ <NUM_LIT:3> ] , <NUM_LIT:6> : [ <NUM_LIT:5> ] , <NUM_LIT:7> : [ <NUM_LIT:6> ] , <NUM_LIT:8> : [ <NUM_LIT:7> , <NUM_LIT:6> , <NUM_LIT:1> ] , <EOL> <NUM_LIT:9> : [ <NUM_LIT:5> ] , <NUM_LIT:10> : [ <NUM_LIT:7> ] , <NUM_LIT:11> : [ <NUM_LIT:9> ] , <NUM_LIT:12> : [ <NUM_LIT:11> , <NUM_LIT:10> , <NUM_LIT:4> ] , <NUM_LIT> : [ <NUM_LIT:12> , <NUM_LIT:11> , <NUM_LIT:8> ] , <EOL> <NUM_LIT> : [ <NUM_LIT> , <NUM_LIT:12> , <NUM_LIT:2> ] , <NUM_LIT:15> : [ <NUM_LIT> ] , <NUM_LIT:16> : [ <NUM_LIT:15> , <NUM_LIT> , <NUM_LIT:4> ] , <NUM_LIT> : [ <NUM_LIT> ] , <EOL> <NUM_LIT> : [ <NUM_LIT:11> ] , <NUM_LIT> : [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <NUM_LIT:20> : [ <NUM_LIT> ] , <NUM_LIT> : [ <NUM_LIT> ] , <NUM_LIT> : [ <NUM_LIT> ] , <EOL> <NUM_LIT> : [ <NUM_LIT> ] , <NUM_LIT> : [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <NUM_LIT> : [ <NUM_LIT> ] , <NUM_LIT> : [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> ] , <EOL> <NUM_LIT> : [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <NUM_LIT> : [ <NUM_LIT> ] , <NUM_LIT> : [ <NUM_LIT> ] , <NUM_LIT:30> : [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:7> ] , <EOL> <NUM_LIT> : [ <NUM_LIT> ] , <NUM_LIT:32> : [ <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT:10> ] } <EOL> def max_len_seq ( nbits , state = None , length = None , taps = None ) : <EOL> """<STR_LIT>""" <EOL> if taps is None : <EOL> if nbits not in _mls_taps : <EOL> known_taps = np . array ( list ( _mls_taps . keys ( ) ) ) <EOL> raise ValueError ( '<STR_LIT>' <EOL> % ( known_taps . min ( ) , known_taps . max ( ) ) ) <EOL> taps = np . array ( _mls_taps [ nbits ] , np . intp ) <EOL> else : <EOL> taps = np . unique ( np . array ( taps , np . intp ) ) [ : : - <NUM_LIT:1> ] <EOL> if np . any ( taps < <NUM_LIT:0> ) or np . any ( taps > nbits ) or taps . size < <NUM_LIT:1> : <EOL> raise ValueError ( '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> taps = np . ascontiguousarray ( taps ) <EOL> n_max = ( <NUM_LIT:2> ** nbits ) - <NUM_LIT:1> <EOL> if length is None : <EOL> length = n_max <EOL> else : <EOL> length = int ( length ) <EOL> if length < <NUM_LIT:0> : <EOL> raise ValueError ( '<STR_LIT>' ) <EOL> if state is None : <EOL> state = np . ones ( nbits , dtype = np . int8 , order = '<STR_LIT:c>' ) <EOL> else : <EOL> state = np . array ( state , dtype = bool , order = '<STR_LIT:c>' ) . astype ( np . int8 ) <EOL> if state . ndim != <NUM_LIT:1> or state . size != nbits : <EOL> raise ValueError ( '<STR_LIT>' ) <EOL> if np . all ( state == <NUM_LIT:0> ) : <EOL> raise ValueError ( '<STR_LIT>' ) <EOL> seq = np . empty ( length , dtype = np . int8 , order = '<STR_LIT:c>' ) <EOL> state = _max_len_seq_inner ( taps , state , nbits , length , seq ) <EOL> return seq , state </s>
