  Fault-tolerant Z rotations by pi/2^k are important as they arise in numerous
quantum algorithms, most notably those involving quantum Fourier transforms. We
describe surface code implementations of two recently described methods of
efficiently constructing these rotations. One method uses state distillation to
get low-error (|0> + exp(i pi/2^k)|1>)/sqrt(2) states, with each distillation
level requiring 2^(k+2)-1 input states to produce a single purer output state,
and uses these distilled states to directly implement pi/2^k angle Z rotations.
The other method is indirect, using sequences of single-qubit Clifford and T
gates. We compute and compare the overhead of our surface code implementations
of these two techniques. We find that the approximating sequence overhead is
less than or equal to direct distillation for k > 3 and logical error rates <~
10^-12.
