# Efficient implementation of the Clifford group for $n$ qubits

I'm looking for an efficient implementation of the Clifford group $$\mathcal{C}_n$$ of $$n$$ qubits. The Clifford group $$\mathcal{C}_n$$ has stucture $$(2_+^{1+2n} \circ C_8).Sp(2,n)$$, where $$2_+^{1+2n}$$ denotes an extraspecial 2 group of $$+$$ type, $$C_8$$ the cyclic group of order 8, and $$Sp(2n,2)$$ a symplectic group over the binary field. Here "$$\circ$$" means the central product.

The Clifford group $$\mathcal{C}_n$$ can be used for the simulation of quantum computing with $$n$$ qubits and a restricted set of qubit gates in polynomial time, see e.g. [1]. It has a unitary complex representation of dimension $$2^n$$, see e.g. [2]. Quantum theorists use an explicit construction $$\rho$$ of that representation of $$\mathcal{C}_n$$ based on Pauli matrices, see [1]. Vectors in $$\rho$$ are called state vectors. In [1] the group $$\mathcal{C}_n$$ is generated by the qubit gates CNOT, Phase, and Hadamard. These gates operate (repeatedly) on the state vectors starting at a certain unit vector $$e_0 = |0 \ldots 0 \rangle$$. Let $$V_0$$ be the image of $$e_0$$ under the operation of $$\mathcal{C}_n$$ in the state vector space.

I need an implementation of representation $$\rho$$ that supports the following operations:

• Multiplication, inversion, and test for equality in $$\mathcal{C}_n$$.

• Operation of an element of $$\mathcal{C}_n$$ on a state vector in $$V_0$$.

• Output of an entry of the matrix representing an element of $$\mathcal{C}_n$$.

• Output of an entry of a state vector in $$V_0$$.

• Some kind of qubit measurement applied to a state vector in $$V_0$$, as in [1].

Entries of matrices and vectors are with respect to the representation $$\rho$$ in [1]. Runtime should be polynomial in $$n$$.

I have some concrete ideas for such an implementation.

My question is:

Has anybody implemented a similar representation of $$\mathcal{C}_n$$ before?

Note that the representation in [1] implements state vectors in $$V_0$$ (up to a scalar multiple), and operation of $$\mathcal{C}_n$$ on $$V_0$$, but not the computation of entries of group elements or state vectors. In [1] elements of
$$\mathcal{C}_n$$ cannot easily be tested for equality. I also need to distingiush between scalar multiples of a state vector, which is irrelevant in quantum theory.