Weight-1 binary addressing code (arXiv:1712.07067).

This highly non-linear code works for a number of modes that is an integer power of two. It encodes all possible vectors with Hamming weight 1, which corresponds to all states with total occupation one. The amount of qubits saved here is maximal: for a given argument 'exponent', we find n_modes = 2 ^ exponent, n_qubits = exponent.

This code is highly non-linear and might produce a lot of terms.

exponent int

exponent for the number of modes n_modes = 2 ^ exponent

Returns (BinaryCode): the weight one binary addressing BinaryCode