  The Schur transform is a unitary operator that block diagonalizes the action
of the symmetric and unitary groups on an $n$ fold tensor product $V^{\otimes
n}$ of a vector space $V$ of dimension $d$. Bacon, Chuang and Harrow
\cite{BCH07} gave a quantum algorithm for this transform that is polynomial in
$n$, $d$ and $\log\epsilon^{-1}$, where $\epsilon$ is the precision. In a
footnote in Harrow's thesis \cite{H05}, a brief description of how to make the
algorithm of \cite{BCH07} polynomial in $\log d$ is given using the unitary
group representation theory (however, this has not been explained in detail
anywhere. In this article, we present a quantum algorithm for the Schur
transform that is polynomial in $n$, $\log d$ and $\log\epsilon^{-1}$ using a
different approach. Specifically, we build this transform using the
representation theory of the symmetric group and in this sense our technique
can be considered a "dual" algorithm to \cite{BCH07}. A novel feature of our
algorithm is that we construct the quantum Fourier transform over the so called
\emph{permutation modules}, which could have other applications.
