To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
The Appendix contains additional interesting material. Specifically, it contains a detailed description of the implementation of the sparse simulation infrastructure, including failed and successful attempts at optimization.
This chapter discusses quantum noise and techniques for quantum error correction, a necessity for quantum computing. It discusses bit-flip errors, phase-flip errors, and their combination. The formalism of quantum operations is introduced, along with the operator-sum representation, and Krauss operators. With this, the chapter discusses the depolarization channel and imprecise gates, as well as (briefly) amplitude and phase damping. For error correction, repetition codes are introduced to motivate Shor’s 9-qubit error correction technique.
This introduction to quantum computing from a classical programmer's perspective is meant for students and practitioners alike. Over 25 fundamental algorithms are explained with full mathematical derivations and classical code for simulation, using an open-source code base developed from the ground up in Python and C++. After presenting the basics of quantum computing, the author focuses on algorithms and the infrastructure to simulate them efficiently, beginning with quantum teleportation, superdense coding, and Deutsch-Jozsa. Coverage of advanced algorithms includes the quantum supremacy experiment, quantum Fourier transform, phase estimation, Shor's algorithm, Grover's algorithm with derivatives, quantum random walks, and the Solovay–Kitaev algorithm for gate approximation. Quantum simulation is explored with the variational quantum eigensolver, quantum approximate optimization, and the Max-Cut and Subset-Sum algorithms. The book also discusses issues around programmer productivity, quantum noise, error correction, and challenges for quantum programming languages, compilers, and tools, with a final section on compiler techniques for transpilation.
In this chapter, we study general incidence bounds in R^d. As a warm-up, we first derive an incidence bound for curves in R^3. The main result of this chapter is a general point-variety incidence bound in R^d. This result relies on another polynomial partitioning theorem, for the case where the points are on a constant-degree variety. The proof of this partitioning theorem relies on Hilbert polynomials. In particular, we use Hilbert polynomials to derive a polynomial ham sandwich theorem for points on a variety.
This chapter consists of basic real algebraic geometry. In Chapter 2 we studied basic properties of curves in the plane. We now generalize these properties to arbitrary varieties in any real space and introduce additional properties.
We begin the chapter by briefly discussing polynomial ideals. We then study the dimension of a real variety, connected components, irreducible components, tangent spaces, singular points, regular points, and other properties. We discuss why there is no one well-behaved definition for the degree of a real variety. We also study the projection of real varieties and partitioning polynomials in higher dimensions.
We begin our study of geometric incidences by surveying the field and deriving a few first bounds. In this chapter we only discuss classical discrete geometry, from before the discovery of the new polynomial methods. This makes the current chapter rather different than the rest of the book (outrageously, it even includes some graph theory). We also learn basic tricks that are used throughout the book, such as double counting, applying the Cauchy–Schwarz inequality, and dyadic decomposition.
Topics that are discussed in this chapter: the Szemerédi–Trotter theorem, a proof of this theorem that relies on the crossing lemma, the unit distances problem, the distinct distances problem, a problem about unit area triangles, the sum-product problem, rich point, point-line duality.
In Chapter 6 we saw several applications of polynomial methods in finite fields. In this chapter, we continue our study of finite fields, by studying point-line incidences in a finite plane. Much less is known about incidences over finite fields and many incidence problems become more difficult in this case. Unlike incidences over the reals, there is no one main technique that leads to most of the current best bounds. Instead, each bound that we derive in this chapter requires a rather different set of tools.
For the proofs in this chapter, we introduce tools such as the projective plane, eigenvalues of a graph, and more. We also use finite field incidence bounds to study the finite field sum-product problem.
After seeing some basics of incidence theory, we wish to discuss how polynomial methods are used to study incidences. For that, we first need a basic introduction to algebraic geometry over the reals. In this chapter we focus mainly on the plane, postponing the treatment of higher dimensions to Chapter 4. This allows us to discuss several planar results in Chapter 3, before dealing with more involved algebraic geometry.
We begin the chapter by introducing varieties and their properties. We then focus on curves in the plane and their properties: degree, irreducible components, connected components, intersections, and more. We conclude the chapter with a polynomial proof of Pascal’s theorem, due to Plücker.
We started our study of the distinct distances problem in Section 1.6. The mathematicians Elekes and Sharir used to discuss this problem. Around the turn of the millennium, Elekes discovered a reduction from this problem to a problem about intersections of helices in R^3. Elekes said that, if something happens to him, then Sharir should publish their ideas.
Elekes passed away in 2008 and, as requested, Sharir then published their ideas. Before publishing, Sharir simplified the reduction so that it led to a problem about intersections of parabolas in R^3. Sharing the reduction with the general community had surprising consequences. Hardly any time had passed before Guth and Katz managed to apply the reduction to almost completely solve the distinct distances problem.
In this chapter we study the reduction of Elekes, Sharir, Guth, and Katz. This reduction is based on parameterizing rotations of the plane as points in R^3. As a warmup, we begin with a problem about distinct distances between two lines.