From b1a9b1b9b2f04efd6dc39bd2a02c544d34d1259c Mon Sep 17 00:00:00 2001 From: Prefetch Date: Sun, 1 Jan 2023 16:40:56 +0100 Subject: Change license, add Makefile, add image caching control --- .../know/concept/bernstein-vazirani-algorithm/index.md | 3 ++- source/know/concept/bloch-sphere/index.md | 3 ++- source/know/concept/deutsch-jozsa-algorithm/index.md | 6 ++++-- source/know/concept/dispersive-broadening/index.md | 3 ++- source/know/concept/fabry-perot-cavity/index.md | 3 ++- source/know/concept/feynman-diagram/index.md | 15 ++++++++++----- source/know/concept/metacentric-height/index.md | 3 ++- source/know/concept/modulational-instability/index.md | 3 ++- source/know/concept/optical-wave-breaking/index.md | 9 ++++++--- source/know/concept/quantum-fourier-transform/index.md | 6 ++++-- source/know/concept/quantum-gate/index.md | 9 ++++++--- .../know/concept/random-phase-approximation/index.md | 12 ++++++++---- source/know/concept/repetition-code/index.md | 15 ++++++++++----- source/know/concept/rutherford-scattering/index.md | 6 ++++-- source/know/concept/self-energy/index.md | 9 ++++++--- source/know/concept/self-phase-modulation/index.md | 3 ++- source/know/concept/self-steepening/index.md | 3 ++- source/know/concept/shors-algorithm/index.md | 3 ++- source/know/concept/simons-algorithm/index.md | 3 ++- source/know/concept/step-index-fiber/index.md | 6 ++++-- source/know/concept/toffoli-gate/index.md | 18 ++++++++++++------ 21 files changed, 94 insertions(+), 47 deletions(-) (limited to 'source/know/concept') diff --git a/source/know/concept/bernstein-vazirani-algorithm/index.md b/source/know/concept/bernstein-vazirani-algorithm/index.md index 85017dc..5f224dc 100644 --- a/source/know/concept/bernstein-vazirani-algorithm/index.md +++ b/source/know/concept/bernstein-vazirani-algorithm/index.md @@ -36,7 +36,8 @@ However, the Bernstein-Vazirani algorithm allows a quantum computer to do it with only a single query. It uses the following circuit: -{% include image.html file="bernstein-vazirani-circuit.png" width="52%" alt="Bernstein-Vazirani circuit" %} +{% include image.html file="bernstein-vazirani-circuit.png" width="52%" + alt="Bernstein-Vazirani circuit" %} Where $$U_f$$ is a phase oracle, whose action is defined as follows, diff --git a/source/know/concept/bloch-sphere/index.md b/source/know/concept/bloch-sphere/index.md index 0ca6f1b..99ac45d 100644 --- a/source/know/concept/bloch-sphere/index.md +++ b/source/know/concept/bloch-sphere/index.md @@ -13,7 +13,8 @@ In quantum mechanics, particularly quantum information, the **Bloch sphere** is an invaluable tool to visualize qubits. All pure qubit states are represented by a point on the sphere's surface: -{% include image.html file="sketch-full.png" width="67%" alt="Bloch sphere" %} +{% include image.html file="sketch-full.png" width="67%" + alt="Bloch sphere" %} The $$x$$, $$y$$ and $$z$$-axes represent the components of a spin-1/2-alike system, and their extremes are the eigenstates of the Pauli matrices: diff --git a/source/know/concept/deutsch-jozsa-algorithm/index.md b/source/know/concept/deutsch-jozsa-algorithm/index.md index 5f2f268..44b06ad 100644 --- a/source/know/concept/deutsch-jozsa-algorithm/index.md +++ b/source/know/concept/deutsch-jozsa-algorithm/index.md @@ -41,7 +41,8 @@ In other words, we only need to determine if $$f(0) = f(1)$$ or $$f(0) \neq f(1) To do this, we use the following quantum circuit, where $$U_f$$ is the oracle we query: -{% include image.html file="deutsch-circuit.png" width="48%" alt="Deutsch circuit" %} +{% include image.html file="deutsch-circuit.png" width="48%" + alt="Deutsch circuit" %} Due to unitarity constraints, the action of $$U_f$$ is defined to be as follows, @@ -141,7 +142,8 @@ We are promised that $$f(x)$$ is either constant or balanced; other possibilities are assumed to be impossible. This algorithm is then implemented by the following quantum circuit: -{% include image.html file="deutsch-jozsa-circuit.png" width="52%" alt="Deutsch-Jozsa circuit" %} +{% include image.html file="deutsch-jozsa-circuit.png" width="52%" + alt="Deutsch-Jozsa circuit" %} There are $$N$$ qubits in initial state $$\Ket{0}$$, and one in $$\Ket{1}$$. For clarity, the oracle $$U_f$$ works like so: diff --git a/source/know/concept/dispersive-broadening/index.md b/source/know/concept/dispersive-broadening/index.md index 9642737..55a31e6 100644 --- a/source/know/concept/dispersive-broadening/index.md +++ b/source/know/concept/dispersive-broadening/index.md @@ -62,7 +62,8 @@ This phenomenon is illustrated below for our example of a Gaussian pulse with parameter values $$T_0 = 1\:\mathrm{ps}$$, $$P_0 = 1\:\mathrm{kW}$$, $$\beta_2 = -10 \:\mathrm{ps}^2/\mathrm{m}$$ and $$\gamma = 0$$: -{% include image.html file="simulation-full.png" width="100%" alt="Dispersive broadening simulation results" %} +{% include image.html file="simulation-full.png" width="100%" + alt="Dispersive broadening simulation results" %} The **instantaneous frequency** $$\omega_\mathrm{GVD}(z, t)$$, which describes the dominant angular frequency at a given point in the time domain, diff --git a/source/know/concept/fabry-perot-cavity/index.md b/source/know/concept/fabry-perot-cavity/index.md index c013f1d..c88e62d 100644 --- a/source/know/concept/fabry-perot-cavity/index.md +++ b/source/know/concept/fabry-perot-cavity/index.md @@ -19,7 +19,8 @@ We divide the $$x$$-axis into three domains: left $$L$$, center $$C$$, and right The cavity $$C$$ has length $$\ell$$ and is centered on $$x = 0$$. Let $$n_L$$, $$n_C$$ and $$n_R$$ be the respective domains' refractive indices: -{% include image.html file="sketch-full.png" width="70%" alt="Cavity structure" %} +{% include image.html file="sketch-full.png" width="70%" + alt="Cavity structure" %} diff --git a/source/know/concept/feynman-diagram/index.md b/source/know/concept/feynman-diagram/index.md index ace8dbc..1f1c957 100644 --- a/source/know/concept/feynman-diagram/index.md +++ b/source/know/concept/feynman-diagram/index.md @@ -38,7 +38,8 @@ Let the subscript $$I$$ refer to the and $$\mathcal{T}\{\}$$ denote the [time-ordered product](/know/concept/time-ordered-product/): -{% include image.html file="fermion-light.png" width="60%" alt="Fermion line diagram" %} +{% include image.html file="fermion-light.png" width="60%" + alt="Fermion line diagram" %} $$\begin{aligned} = i \hbar G_{s_2 s_1}^0(\vb{r}_2, t_2; \vb{r}_1, t_1) @@ -58,7 +59,8 @@ Less common is a **heavy fermion line**, representing a causal Green's function $$G$$ for the entire Hamiltonian $$\hat{H}$$, where the subscript $$H$$ refers to the [Heisenberg picture](/know/concept/heisenberg-picture/): -{% include image.html file="fermion-heavy.png" width="60%" alt="Heavy fermion line diagram" %} +{% include image.html file="fermion-heavy.png" width="60%" + alt="Heavy fermion line diagram" %} $$\begin{aligned} = i \hbar G_{s_2 s_1}(\vb{r}_2, t_2; \vb{r}_1, t_1) @@ -72,7 +74,8 @@ which we assume to be instantaneous, i.e. time-independent hence it starts and ends at the same time, and no arrow is drawn: -{% include image.html file="boson.png" width="60%" alt="Boson/interaction line diagram" %} +{% include image.html file="boson.png" width="60%" + alt="Boson/interaction line diagram" %} $$\begin{aligned} = \frac{1}{i \hbar} W_{s_2 s_1}(\vb{r}_2, t_2; \vb{r}_1, t_1) @@ -94,7 +97,8 @@ $$\begin{aligned} One-body (time-dependent) operators $$\hat{V}$$ in $$\hat{H}_1$$ are instead represented by a special vertex: -{% include image.html file="impurity.png" width="35%" alt="One-body perturbation (e.g. impurity) diagram" %} +{% include image.html file="impurity.png" width="35%" + alt="One-body perturbation (e.g. impurity) diagram" %} $$\begin{aligned} = \frac{1}{i \hbar} V_s(\vb{r}, t) @@ -171,7 +175,8 @@ Working in Fourier space allows us to simplify calculations. Consider the following diagram and the resulting expression, where $$\tilde{\vb{r}} = (\vb{r}, t)$$, and $$\tilde{\vb{k}} = (\vb{k}, \omega)$$: -{% include image.html file="example.png" width="40%" alt="Example: fermion-fermion interaction" %} +{% include image.html file="example.png" width="40%" + alt="Example: fermion-fermion interaction" %} $$\begin{aligned} &= (i \hbar)^3 \sum_{s s'} \!\!\iint \dd{\tilde{\vb{r}}} \dd{\tilde{\vb{r}}'} diff --git a/source/know/concept/metacentric-height/index.md b/source/know/concept/metacentric-height/index.md index 3d81d44..97afff6 100644 --- a/source/know/concept/metacentric-height/index.md +++ b/source/know/concept/metacentric-height/index.md @@ -26,7 +26,8 @@ does not coincide with the origin in general, as is illustrated in the following sketch of our choice of coordinate system: -{% include image.html file="sketch-full.png" width="75%" alt="Boat's coordinate system" %} +{% include image.html file="sketch-full.png" width="75%" + alt="Boat's coordinate system" %} Here, $$B$$ is the **center of buoyancy**, equal to the center of mass of the volume of water displaced by the boat diff --git a/source/know/concept/modulational-instability/index.md b/source/know/concept/modulational-instability/index.md index f1c246c..d646503 100644 --- a/source/know/concept/modulational-instability/index.md +++ b/source/know/concept/modulational-instability/index.md @@ -185,7 +185,8 @@ $$\begin{aligned} = \sqrt{P_0} \sech\!\Big(\frac{t}{T_0}\Big) \end{aligned}$$ -{% include image.html file="simulation-full.png" width="100%" alt="Modulational instability simulation results" %} +{% include image.html file="simulation-full.png" width="100%" + alt="Modulational instability simulation results" %} Where $$L_\mathrm{NL} = 1/(\gamma P_0)$$ is the characteristic length of nonlinear effects. Note that no noise was added to the simulation; diff --git a/source/know/concept/optical-wave-breaking/index.md b/source/know/concept/optical-wave-breaking/index.md index 3509bc2..1b6b558 100644 --- a/source/know/concept/optical-wave-breaking/index.md +++ b/source/know/concept/optical-wave-breaking/index.md @@ -34,7 +34,8 @@ Shortly before the slope would become infinite, small waves start "falling off" the edge of the pulse, hence the name *wave breaking*: -{% include image.html file="frequency-full.png" width="100%" alt="Instantaneous frequency profile evolution" %} +{% include image.html file="frequency-full.png" width="100%" + alt="Instantaneous frequency profile evolution" %} Several interesting things happen around this moment. To demonstrate this, spectrograms of the same simulation @@ -51,7 +52,8 @@ After OWB, a train of small waves falls off the edges, which eventually melt together, leading to a trapezoid shape in the $$t$$-domain. Dispersive broadening then continues normally: -{% include image.html file="spectrograms-full.png" width="100%" alt="Spectrograms of pulse shape evolution" %} +{% include image.html file="spectrograms-full.png" width="100%" + alt="Spectrograms of pulse shape evolution" %} We call the distance at which the wave breaks $$L_\mathrm{WB}$$, and want to predict it analytically. @@ -189,7 +191,8 @@ $$\begin{aligned} This prediction for $$L_\mathrm{WB}$$ appears to agree well with the OWB observed in the simulation: -{% include image.html file="simulation-full.png" width="100%" alt="Optical wave breaking simulation results" %} +{% include image.html file="simulation-full.png" width="100%" + alt="Optical wave breaking simulation results" %} Because all spectral broadening up to $$L_\mathrm{WB}$$ is caused by SPM, whose $$\omega$$-domain behaviour is known, diff --git a/source/know/concept/quantum-fourier-transform/index.md b/source/know/concept/quantum-fourier-transform/index.md index 1c68ad0..217596b 100644 --- a/source/know/concept/quantum-fourier-transform/index.md +++ b/source/know/concept/quantum-fourier-transform/index.md @@ -172,13 +172,15 @@ The quantum circuit to execute the mentioned steps is illustrated below, excluding the swapping part to get the right order. Here, $$R_m$$ means $$R_\phi$$ with $$\phi = 2 \pi / 2^m$$: -{% include image.html file="qft-circuit-noswap.png" width="100%" alt="QFT circuit, without final swap" %} +{% include image.html file="qft-circuit-noswap.png" width="100%" + alt="QFT circuit, without final swap" %} Again, note how the inputs $$\Ket{x_j}$$ and outputs $$\Ket{k_j}$$ are in the opposite order. The complete circuit, including the swapping at the end, therefore looks like this: -{% include image.html file="qft-circuit-swap.png" width="85%" alt="QFT circuit, including final swap" %} +{% include image.html file="qft-circuit-swap.png" width="85%" + alt="QFT circuit, including final swap" %} For each of the $$n$$ qubits, $$\mathcal{O}(n)$$ gates are applied, so overall the QFT algorithm is $$\mathcal{O}(n^2)$$. diff --git a/source/know/concept/quantum-gate/index.md b/source/know/concept/quantum-gate/index.md index e8ff579..9704e53 100644 --- a/source/know/concept/quantum-gate/index.md +++ b/source/know/concept/quantum-gate/index.md @@ -204,7 +204,8 @@ but not always in the basis of $$\Ket{0}_1$$, $$\Ket{1}_1$$, $$\Ket{0}_2$$ and $ With that said, the first two-qubit gate is $$\mathrm{SWAP}$$, which simply swaps $$\Ket{\psi_1}$$ and $$\Ket{\psi_2}$$: -{% include image.html file="swap.png" width="22%" alt="SWAP gate diagram" %} +{% include image.html file="swap.png" width="22%" + alt="SWAP gate diagram" %} $$\begin{aligned} \boxed{ @@ -231,7 +232,8 @@ $$\begin{aligned} Next, there is the **controlled NOT gate** $$\mathrm{CNOT}$$, which "flips" (applies $$X$$ to) $$\Ket{\psi_2}$$ if $$\Ket{\psi_1}$$ is true: -{% include image.html file="cnot.png" width="22%" alt="CNOT gate diagram" %} +{% include image.html file="cnot.png" width="22%" + alt="CNOT gate diagram" %} $$\begin{aligned} \boxed{ @@ -256,7 +258,8 @@ More generally, from every one-qubit gate $$U$$, we can define a two-qubit **controlled U gate** $$\mathrm{CU}$$, which applies $$U$$ to $$\Ket{\psi_2}$$ if $$\Ket{\psi_1}$$ is true: -{% include image.html file="cu.png" width="22%" alt="CU gate diagram" %} +{% include image.html file="cu.png" width="22%" + alt="CU gate diagram" %} $$\begin{aligned} \boxed{ diff --git a/source/know/concept/random-phase-approximation/index.md b/source/know/concept/random-phase-approximation/index.md index 0d0b428..03fd302 100644 --- a/source/know/concept/random-phase-approximation/index.md +++ b/source/know/concept/random-phase-approximation/index.md @@ -71,17 +71,20 @@ leaving only the single most divergent one at each order $$n$$, i.e. the ones where all $$n$$ interaction lines carry the same momentum and energy: -{% include image.html file="self-energy.png" width="92%" alt="RPA self-energy definition" %} +{% include image.html file="self-energy.png" width="92%" + alt="RPA self-energy definition" %} Where we have defined the **screened interaction** $$W^\mathrm{RPA}$$, denoted by a double wavy line: -{% include image.html file="interaction.png" width="95%" alt="RPA screened interaction definition" %} +{% include image.html file="interaction.png" width="95%" + alt="RPA screened interaction definition" %} Rearranging the above sequence of diagrams quickly leads to the following [Dyson equation](/know/concept/dyson-equation/): -{% include image.html file="dyson.png" width="55%" alt="Dyson equation for screened interaction" %} +{% include image.html file="dyson.png" width="55%" + alt="Dyson equation for screened interaction" %} In Fourier space, this equation's linear shape means it is algebraic, so we can write it out: @@ -98,7 +101,8 @@ with an internal wavevector $$\vb{q}$$, fermionic frequency $$i \omega_m^F$$, an Abbreviating $$\tilde{\vb{k}} \equiv (\vb{k}, i \omega_n^B)$$ and $$\tilde{\vb{q}} \equiv (\vb{q}, i \omega_n^F)$$: -{% include image.html file="pairbubble.png" width="45%" alt="Internal variables of pair-bubble diagram" %} +{% include image.html file="pairbubble.png" width="45%" + alt="Internal variables of pair-bubble diagram" %} We isolate the Dyson equation for $$W^\mathrm{RPA}$$, which reveals its physical interpretation as a *screened* interaction: diff --git a/source/know/concept/repetition-code/index.md b/source/know/concept/repetition-code/index.md index 89e6f4d..fa039a3 100644 --- a/source/know/concept/repetition-code/index.md +++ b/source/know/concept/repetition-code/index.md @@ -77,7 +77,8 @@ $$\begin{aligned} Such a transformation is easy to achieve with the following sequence of [quantum gates](/know/concept/quantum-gate/): -{% include image.html file="bit-flip-encode.png" width="32%" alt="Bit flip code encoder" %} +{% include image.html file="bit-flip-encode.png" width="32%" + alt="Bit flip code encoder" %} So, a little while after encoding the state $$\Ket{\psi}$$ like that, a bit flip occurs on the 2nd qubit: @@ -180,7 +181,8 @@ without affecting $$\ket{\overline{\psi}}$$ itself, by applying $$\mathrm{CNOT}$$s to some ancillary qubits and then measuring those: -{% include image.html file="bit-flip-detect.png" width="62%" alt="Bit flip code decoder" %} +{% include image.html file="bit-flip-detect.png" width="62%" + alt="Bit flip code decoder" %} The two measurements, respectively representing $$ZZI$$ and $$IZZ$$, yield $$\Ket{1}$$ if a bit flip definitely occurred, @@ -231,14 +233,16 @@ $$\begin{aligned} = \alpha \Ket{+\!+\!+} + \beta \Ket{-\!-\!-} \end{aligned}$$ -{% include image.html file="phase-flip-encode.png" width="40%" alt="Phase flip code encoder" %} +{% include image.html file="phase-flip-encode.png" width="40%" + alt="Phase flip code encoder" %} A phase flip along the $$Z$$-axis corresponds to a bit flip along the $$X$$-axis $$\Ket{+} \to \Ket{-}$$. In this case, the stabilizers are $$XXI$$ and $$IXX$$, and the error detection circuit is as follows: -{% include image.html file="phase-flip-detect.png" width="70%" alt="Phase flip code decoder" %} +{% include image.html file="phase-flip-detect.png" width="70%" + alt="Phase flip code decoder" %} This system protects us against all single-qubit phase flips, but not against bit flips. @@ -281,7 +285,8 @@ This encoding is achieved by the following quantum circuit, which simply consists of the phase flip encoder, followed by 3 copies of the bit flip encoder: -{% include image.html file="shor-code-encode.png" width="55%" alt="Shor code encoder" %} +{% include image.html file="shor-code-encode.png" width="55%" + alt="Shor code encoder" %} We thus use 9 physical qubits to store 1 logical qubit. Fortunately, more efficient schemes exist. diff --git a/source/know/concept/rutherford-scattering/index.md b/source/know/concept/rutherford-scattering/index.md index 6f5a21f..edf391c 100644 --- a/source/know/concept/rutherford-scattering/index.md +++ b/source/know/concept/rutherford-scattering/index.md @@ -19,7 +19,8 @@ Let 2 be initially at rest, and 1 approach it with velocity $$\vb{v}_1$$. Coulomb repulsion causes 1 to deflect by an angle $$\theta$$, and pushes 2 away in the process: -{% include image.html file="two-body-full.png" width="50%" alt="Two-body repulsive 'collision'" %} +{% include image.html file="two-body-full.png" width="50%" + alt="Two-body repulsive 'collision'" %} Here, $$b$$ is called the **impact parameter**. Intuitively, we expect $$\theta$$ to be larger for smaller $$b$$. @@ -67,7 +68,8 @@ then by comparing $$t > 0$$ and $$t < 0$$ we can see that $$v_x$$ is unchanged for any given $$\pm t$$, while $$v_y$$ simply changes sign: -{% include image.html file="one-body-full.png" width="60%" alt="Equivalent one-body deflection" %} +{% include image.html file="one-body-full.png" width="60%" + alt="Equivalent one-body deflection" %} From our expression for $$\vb{r}$$, we can find $$\vb{v}$$ by differentiating with respect to time: diff --git a/source/know/concept/self-energy/index.md b/source/know/concept/self-energy/index.md index f233466..4120011 100644 --- a/source/know/concept/self-energy/index.md +++ b/source/know/concept/self-energy/index.md @@ -204,7 +204,8 @@ that exactly $$2^m m!$$ diagrams at each order are topologically equivalent, so we are left with non-equivalent diagrams only. Let $$G(b,a) = G_{ba}$$: -{% include image.html file="expansion.png" width="90%" alt="Full expansion of G in Feynman diagrams" %} +{% include image.html file="expansion.png" width="90%" + alt="Full expansion of G in Feynman diagrams" %} A **reducible diagram** is a Feynman diagram that can be cut in two valid diagrams @@ -215,7 +216,8 @@ At last, we define the **self-energy** $$\Sigma(y,x)$$ as the sum of all irreducible terms in $$G(b,a)$$, after removing the two external lines from/to $$a$$ and $$b$$: -{% include image.html file="definition.png" width="90%" alt="Definition of self-energy" %} +{% include image.html file="definition.png" width="90%" + alt="Definition of the self-energy" %} Despite its appearance, the self-energy has the semantics of a line, so it has two endpoints over which to integrate if necessary. @@ -234,7 +236,8 @@ Thanks to this recursive structure, you can convince youself that $$G(b,a)$$ obeys a [Dyson equation](/know/concept/dyson-equation/) involving $$\Sigma(y, x)$$: -{% include image.html file="dyson.png" width="95%" alt="Dyson equation in Feynman diagrams" %} +{% include image.html file="dyson.png" width="95%" + alt="Dyson equation in Feynman diagrams" %} This makes sense: in the "normal" Dyson equation we have a one-body perturbation instead of $$\Sigma$$, diff --git a/source/know/concept/self-phase-modulation/index.md b/source/know/concept/self-phase-modulation/index.md index 931e10b..bc5a103 100644 --- a/source/know/concept/self-phase-modulation/index.md +++ b/source/know/concept/self-phase-modulation/index.md @@ -69,7 +69,8 @@ $$\begin{aligned} A(z, t) = \sqrt{P_0} \exp\!\Big(\!-\!\frac{t^2}{2 T_0^2}\Big) \exp\!\bigg( i \gamma z P_0 \exp\!\Big(\!-\!\frac{t^2}{T_0^2}\Big) \bigg) \end{aligned}$$ -{% include image.html file="simulation-full.png" width="100%" alt="Self-phase modulation simulation results" %} +{% include image.html file="simulation-full.png" width="100%" + alt="Self-phase modulation simulation results" %} The **instantaneous frequency** $$\omega_\mathrm{SPM}(z, t)$$, which describes the dominant angular frequency at a given point in the time domain, diff --git a/source/know/concept/self-steepening/index.md b/source/know/concept/self-steepening/index.md index fd48e0f..f96c020 100644 --- a/source/know/concept/self-steepening/index.md +++ b/source/know/concept/self-steepening/index.md @@ -126,7 +126,8 @@ $$L_\mathrm{shock} = 0.847\,\mathrm{m}$$, which turns out to be accurate, although the simulation breaks down due to insufficient resolution: -{% include image.html file="simulation-full.png" width="100%" alt="Self-steepening simulation results" %} +{% include image.html file="simulation-full.png" width="100%" + alt="Self-steepening simulation results" %} Unfortunately, self-steepening cannot be simulated perfectly: as the pulse approaches $$L_\mathrm{shock}$$, its spectrum broadens to infinite diff --git a/source/know/concept/shors-algorithm/index.md b/source/know/concept/shors-algorithm/index.md index 5ae5077..678d5d2 100644 --- a/source/know/concept/shors-algorithm/index.md +++ b/source/know/concept/shors-algorithm/index.md @@ -48,7 +48,8 @@ The period $$s$$ is the smallest integer satisfying $$f(x) = f(x+s)$$. To do this, the following $$2q$$-qubit quantum circuit is used, with $$q$$ chosen so that $$N^2 \le 2^q < 2 N^2$$: -{% include image.html file="shors-circuit.png" width="70%" alt="Shor's circuit" %} +{% include image.html file="shors-circuit.png" width="70%" + alt="Shor's circuit" %} Here, $$\mathrm{QFT}_q$$ refers to the $$q$$-qubit [quantum Fourier transform](/know/concept/quantum-fourier-transform/), diff --git a/source/know/concept/simons-algorithm/index.md b/source/know/concept/simons-algorithm/index.md index 294912b..63bb808 100644 --- a/source/know/concept/simons-algorithm/index.md +++ b/source/know/concept/simons-algorithm/index.md @@ -52,7 +52,8 @@ A quantum computer needs to query $$f$$ only $$\mathcal{O}(n)$$ times, although the exact number varies due to the algorithm's probabilistic nature. It uses the following circuit: -{% include image.html file="simons-circuit.png" width="52%" alt="Simon's circuit" %} +{% include image.html file="simons-circuit.png" width="52%" + alt="Simon's circuit" %} The XOR oracle $$U_f$$ implements $$f$$, and has the following action for $$n$$-bit $$a$$ and $$b$$: diff --git a/source/know/concept/step-index-fiber/index.md b/source/know/concept/step-index-fiber/index.md index 210a339..2d049a1 100644 --- a/source/know/concept/step-index-fiber/index.md +++ b/source/know/concept/step-index-fiber/index.md @@ -269,7 +269,8 @@ $$\begin{aligned} \end{cases} \end{aligned}$$ -{% include image.html file="bessel-full.png" width="100%" alt="First few solutions to Bessel's equation" %} +{% include image.html file="bessel-full.png" width="100%" + alt="First few solutions to Bessel's equation" %} Looking at these solutions with our constraints for $$R_o$$ in mind, we see that for $$\mu > 0$$ none of the solutions decay @@ -429,7 +430,8 @@ An example graphical solution of the transcendental equation is illustrated below for a fiber with $$V = 5$$, where red and blue respectively denote the left and right-hand side: -{% include image.html file="transcendental-full.png" width="100%" alt="Graphical solution of transcendental equation" %} +{% include image.html file="transcendental-full.png" version="2" width="100%" + alt="Graphical solution of transcendental equation" %} For the ground state the light is well-confined in the core, but for higher modes it increasingly leaks into the cladding, diff --git a/source/know/concept/toffoli-gate/index.md b/source/know/concept/toffoli-gate/index.md index 9a99e69..23dc81e 100644 --- a/source/know/concept/toffoli-gate/index.md +++ b/source/know/concept/toffoli-gate/index.md @@ -16,29 +16,35 @@ of which it returns $$A$$ and $$B$$ unchanged, and flips $$C$$ only if both $$A$$ and $$B$$ are true. In circuit logic diagrams, its representation is: -{% include image.html file="toffoli.png" width="19%" alt="Toffoli gate symbol" %} +{% include image.html file="toffoli.png" width="19%" + alt="Toffoli gate symbol" %} This gate is reversible because $$A$$ and $$B$$ are preserved, and it is universal because we can make a NAND gate from it: -{% include image.html file="nand.png" width="38%" alt="NAND gate made of Toffoli gate" %} +{% include image.html file="nand.png" width="38%" + alt="NAND gate made of Toffoli gate" %} A NAND is enough to implement every conceivable circuit. That said, we can efficiently implement NOT, AND, and XOR using a single Toffoli gate too. Note that NOT is a special case of NAND: -{% include image.html file="not.png" width="32%" alt="NOT gate made of Toffoli gate" %} +{% include image.html file="not.png" width="32%" + alt="NOT gate made of Toffoli gate" %} -{% include image.html file="and.png" width="35%" alt="AND gate made of Toffoli gate" %} +{% include image.html file="and.png" width="35%" + alt="AND gate made of Toffoli gate" %} -{% include image.html file="xor.png" width="35%" alt="XOR gate made of Toffoli gate" %} +{% include image.html file="xor.png" width="35%" + alt="XOR gate made of Toffoli gate" %} Using these, we can, as an example, make an OR gate from three Toffoli gates, thanks to the fact that $$A \lor B = \neg (\neg A \land \neg B)$$, i.e. OR is NAND of NOT $$A$$ and NOT $$B$$: -{% include image.html file="or.png" width="50%" alt="OR gate made of Toffoli gates" %} +{% include image.html file="or.png" width="50%" + alt="OR gate made of Toffoli gates" %} Thanks to its reversibility and universality, the Toffoli gate is interesting for quantum computing. -- cgit v1.2.3