  This paper presents a fast algorithm for projecting a given function to the
set of shift orthogonal functions (i.e. set containing functions with unit
$L^2$ norm that are orthogonal to their prescribed shifts). The algorithm can
be parallelized easily and its computational complexity is bounded by
$O(M\log(M))$, where $M$ is the number of coefficients used for storing the
input. To derive the algorithm, a particular class of basis called Shift
Orthogonal Basis Functions are introduced and some theory regarding them is
developed.
