  Arbitrary exponentially large unitaries cannot be implemented efficiently by
quantum circuits. However, we show that quantum circuits can efficiently
implement any unitary provided it has at most polynomially many nonzero entries
in any row or column, and these entries are efficiently computable. One can
formulate a model of computation based on the composition of sparse unitaries
which includes the quantum Turing machine model, the quantum circuit model,
anyonic models, permutational quantum computation, and discrete time quantum
walks as special cases. Thus we obtain a simple unified proof that these models
are all contained in BQP. Furthermore our general method for implementing
sparse unitaries simplifies several existing quantum algorithms.
