Quantum Computing and Quantum Communications by Colin P. Williams