In the decade since the publication of the first edition of “Explorations in Quantum Computing” the field has blossomed into a rich and diverse body of knowledge, and tremendous progress has been made on building functional quantum computer hardware. Yet I find that a discussion of applications of quantum computers still remains largely confined to Shor’s algorithm for factoring composite integers and Grover’s algorithm for quantum search. As more and more books have been written on quantum computing this standard presentation has been reinforced, thereby overlooking less well known, but arguably more interesting, applications.

In this edition I have tried to survey the field of quantum computing from a fresh perspective, showing how it can be applied to solve problems in a wide range of technical areas including physics, computer science, mathematics, chemistry, simulation, and finance. For sure, many of the newer quantum algorithms have their roots in Shor’s algorithm or Grover’s algorithm, but I think it is important to appreciate how the daughter algorithms have diverged from their parents. Moreover, there are now several quantum transforms known, such as the quantum wavelet and quantum cosine transforms, which show promising complexity properties and yet await exploitation in practical quantum algorithms. The classical versions of these transforms are of widespread utility in classical computing, especially signal and image processing, and I am optimistic that some fresh attention might stimulate others to find good uses for them.

The second edition is organized around four main parts. Part I addresses the question “What is Quantum Computing?” It provides the mathematical framework and physics concepts needed to understand quantum computing, and introduces the first quantum trick—quantum parallelism—and its use within the Deutsch-Jozsa algorithm. I assume the quantum circuit model but discuss several non-standard 2-qubit gates, such as SWAPα, iSWAP, and Berkeley B, that lend themselves more easily to implementation than does CNOT. In addition, I describe how to quantify the entangling power of quantum gates, and several techniques for constructing quantum circuits that achieve arbitrary n-qubit unitary, and non-unitary, operators including numerical, algebraic, and re-use methods, as well as specialized tricks for constructing optimal circuits for 2-qubit unitary operators.