def m_seq(m):
if m == <NUM_LIT:2>:<EOL><INDENT>taps = np.array([<NUM_LIT:1>, <NUM_LIT:1>, <NUM_LIT:1>])<EOL><DEDENT>elif m == <NUM_LIT:3>:<EOL><INDENT>taps = np.array([<NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:1>])<EOL><DEDENT>elif m == <NUM_LIT:4>:<EOL><INDENT>taps = np.array([<NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:1>])<EOL><DEDENT>elif m == <NUM_LIT:5>:<EOL><INDENT>taps = np.array([<NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:1>])<EOL><DEDENT>elif m == <NUM_LIT:6>:<EOL><INDENT>taps = np.array([<NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:1>])<EOL><DEDENT>elif m == <NUM_LIT:7>:<EOL><INDENT>taps = np.array([<NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>])<EOL><DEDENT>elif m == <NUM_LIT:8>:<EOL><INDENT>taps = np.array([<NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:1>, <NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:1>])<EOL><DEDENT>elif m == <NUM_LIT:9>:<EOL><INDENT>taps = np.array([<NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>])<EOL><DEDENT>elif m == <NUM_LIT:10>:<EOL><INDENT>taps = np.array([<NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>])<EOL><DEDENT>elif m == <NUM_LIT:11>:<EOL><INDENT>taps = np.array([<NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:1>])<EOL><DEDENT>elif m == <NUM_LIT:12>:<EOL><INDENT>taps = np.array([<NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:1>])<EOL><DEDENT>elif m == <NUM_LIT:16>:<EOL><INDENT>taps = np.array([<NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:1>])<EOL><DEDENT>else:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>sr = np.ones(m)<EOL>Q = <NUM_LIT:2>**m - <NUM_LIT:1><EOL>c = np.zeros(Q)<EOL>for n in range(Q):<EOL><INDENT>tap_xor = <NUM_LIT:0><EOL>c[n] = sr[-<NUM_LIT:1>]<EOL>for k in range(<NUM_LIT:1>,m):<EOL><INDENT>if taps[k] == <NUM_LIT:1>:<EOL><INDENT>tap_xor = np.bitwise_xor(tap_xor,np.bitwise_xor(int(sr[-<NUM_LIT:1>]),int(sr[m-<NUM_LIT:1>-k])))<EOL><DEDENT><DEDENT>sr[<NUM_LIT:1>:] = sr[:-<NUM_LIT:1>]<EOL>sr[<NUM_LIT:0>] = tap_xor<EOL><DEDENT>return c<EOL>
Generate an m-sequence ndarray using an all-ones initialization.

Available m-sequence (PN generators) include m = 2,3,...,12, & 16.

Parameters
----------
m : the number of shift registers. 2,3, .., 12, & 16

Returns
-------
c : ndarray of one period of the m-sequence

Notes
-----
The sequence period is 2**m - 1 (2^m - 1).  

Examples
--------
>>> c = m_seq(5)