Linear-depth quantum circuits for loading Fourier approximations of arbitrary functions

Abstract The ability to efficiently load functions on quantum computers with high fidelity is essential for many quantum algorithms, including those for solving partial differential equations and Monte Carlo estimation. In this work, we introduce the Fourier series loader (FSL) method for preparing quantum states that exactly encode multi-dimensional Fourier series using linear-depth quantum circuits. Specifically, the FSL method prepares a ( Dn )-qubit state encoding the 2 Dn -point uniform discretization of a D -dimensional function specified by a D -dimensional Fourier series. A free parameter, m , which must be less than n , determines the number of Fourier coefficients, <?CDATA $2^{D(m+1)}$?> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> <mml:msup> <mml:mn>2</mml:mn> <mml:mrow> <mml:mi>D</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:mi>m</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo stretchy="false">)</mml:mo> </mml:mrow> </mml:msup> </mml:math> , used to represent the function. The FSL method uses a quantum circuit of depth at most <?CDATA $2(n-2)+\lceil \log_{2}(n-m) \rceil + 2^{D(m+1)+2} -2D(m+1)$?> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> <mml:mrow> <mml:mn>2</mml:mn> <mml:mo stretchy="false">(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>−</mml:mo> <mml:mn>2</mml:mn> <mml:mo stretchy="false">)</mml:mo> <mml:mo>+</mml:mo> <mml:mrow> <mml:mo>⌈</mml:mo> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi>log</mml:mi> </mml:mrow> <mml:mn>2</mml:mn> </mml:msub> <mml:mo stretchy="false">(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>−</mml:mo> <mml:mi>m</mml:mi> <mml:mo stretchy="false">)</mml:mo> </mml:mrow> <mml:mo>⌉</mml:mo> </mml:mrow> <mml:mo>+</mml:mo> <mml:msup> <mml:mn>2</mml:mn> <mml:mrow> <mml:mi>D</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:mi>m</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo stretchy="false">)</mml:mo> <mml:mo>+</mml:mo> <mml:mn>2</mml:mn> </mml:mrow> </mml:msup> <mml:mo>−</mml:mo> <mml:mn>2</mml:mn> <mml:mi>D</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:mi>m</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo stretchy="false">)</mml:mo> </mml:mrow> </mml:math> , which is linear in the number of Fourier coefficients, and linear in the number of qubits ( Dn ) despite the fact that the loaded function’s discretization is over exponentially many (2 Dn ) points. The FSL circuit consists of at most <?CDATA $Dn+2^{D(m+1)+1}-1$?> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> <mml:mi>D</mml:mi> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msup> <mml:mn>2</mml:mn> <mml:mrow> <mml:mi>D</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:mi>m</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo stretchy="false">)</mml:mo> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> </mml:mrow> </mml:msup> <mml:mo>−</mml:mo> <mml:mn>1</mml:mn> </mml:math> single-qubit and <?CDATA $Dn(n+1)/2 + 2^{D(m+1)+1} - 3D(m+1) - 2$?> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> <mml:mi>D</mml:mi> <mml:mi>n</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo stretchy="false">)</mml:mo> <mml:mrow> <mml:mo>/</mml:mo> </mml:mrow> <mml:mn>2</mml:mn> <mml:mo>+</mml:mo> <mml:msup> <mml:mn>2</mml:mn> <mml:mrow> <mml:mi>D</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:mi>m</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo stretchy="false">)</mml:mo> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> </mml:mrow> </mml:msup> <mml:mo>−</mml:mo> <mml:mn>3</mml:mn> <mml:mi>D</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:mi>m</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo stretchy="false">)</mml:mo> <mml:mo>−</mml:mo> <mml:mn>2</mml:mn> </mml:math> two-qubit gates; we present a classical compilation algorithm with runtime <?CDATA $O(2^{3D(m+1)})$?> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> <mml:mi>O</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:msup> <mml:mn>2</mml:mn> <mml:mrow> <mml:mn>3</mml:mn> <mml:mi>D</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:mi>m</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo stretchy="false">)</mml:mo> </mml:mrow> </mml:msup> <mml:mo stretchy="false">)</mml:mo> </mml:math> to determine the FSL circuit for a given Fourier series. The FSL method allows for the highly accurate loading of complex-valued functions that are well-approximated by a Fourier series with finitely many terms. We report results from noiseless quantum circuit simulations, illustrating the capability of the FSL method to load various continuous 1D functions, and a discontinuous 1D function, on 20 qubits with infidelities of less than 10 −6 and 10 −3 , respectively. We also demonstrate the practicality of the FSL method for near-term quantum computers by presenting experiments performed on the Quantinuum H1-1 and H1-2 trapped-ion quantum computers: we loaded a complex-valued function on 3 qubits with a fidelity of over <?CDATA $95\%$?> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> <mml:mn>95</mml:mn> <mml:mi mathvariant="normal">%</mml:mi> </mml:math> , as well as various 1D real-valued functions on up to 6 qubits with classical fidelities ≈99%, and a 2D function on 10 qubits with a classical fidelity ≈94%.