<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>oqft.com</title>
    <link>https://oqft.com/</link>
    <description>Recent content on oqft.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 13 Nov 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://oqft.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Building a QFT Comparison Table for a Paper With One Shell Loop and OQFT</title>
      <link>https://oqft.com/building-a-qft-comparison-table-for-a-paper-with-one-shell-loop-and-oqft/</link>
      <pubDate>Fri, 13 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/building-a-qft-comparison-table-for-a-paper-with-one-shell-loop-and-oqft/</guid>
      <description>&lt;p&gt;A paper or a design review usually wants one table: circuit size against depth and gate count, for a few register sizes and error targets. &lt;code&gt;oqft stats&lt;/code&gt; prints all of it, one size at a time. A short shell loop turns that into a CSV file you can drop into a spreadsheet or a LaTeX table.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;qubits,eps,qft_depth,oqft_depth,qft_gates,oqft_gates&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; n in &lt;span style=&#34;color:#ae81ff&#34;&gt;64&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;256&lt;/span&gt; 1024; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; eps in 0.1 0.01; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    oqft stats -n &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$n&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; --eps &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$eps&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; | awk -v n&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$n&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; -v e&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$eps&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      /^Total gates/ {qg = $3}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      /^Depth/       {qd = $2}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      /^OQFT/        {gsub(&amp;#34;,&amp;#34;, &amp;#34;&amp;#34;); print n &amp;#34;,&amp;#34; e &amp;#34;,&amp;#34; qd &amp;#34;,&amp;#34; $NF &amp;#34;,&amp;#34; qg &amp;#34;,&amp;#34; $6}&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt; &amp;gt; qft-table.csv&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;awk&lt;/code&gt; part picks three lines out of each report: the textbook total from &amp;ldquo;Total gates&amp;rdquo;, the textbook depth from &amp;ldquo;Depth&amp;rdquo;, and both OQFT figures from the line that starts with &amp;ldquo;OQFT&amp;rdquo;. The commas inside that line are stripped so they don&amp;rsquo;t split the CSV.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Choosing an Error Target for a 2048-Qubit OQFT, Each Tenfold Tightening Costs 24 to 32 Layers</title>
      <link>https://oqft.com/choosing-an-error-target-for-a-2048-qubit-oqft-each-tenfold-tightening-costs-24-to-32-layers/</link>
      <pubDate>Fri, 13 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/choosing-an-error-target-for-a-2048-qubit-oqft-each-tenfold-tightening-costs-24-to-32-layers/</guid>
      <description>&lt;p&gt;OQFT asks for one number besides the register size: the error target, &lt;code&gt;--eps&lt;/code&gt;. It&amp;rsquo;s the average squared error you&amp;rsquo;re willing to accept over all inputs. Pick it too loose and Shor&amp;rsquo;s algorithm misses more often. Pick it too tight and you pay in depth. This case study puts numbers on that trade for a 2,048-qubit register, the size a 2048-bit RSA key calls for.&lt;/p&gt;&#xA;&lt;p&gt;We ran &lt;code&gt;oqft stats -n 2048&lt;/code&gt; at four targets, from 0.1 down to 0.0001, and recorded the block width OQFT chose for each.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How Block Width Sets the Error of an Optimistic QFT, Measured on 16 Qubits</title>
      <link>https://oqft.com/how-block-width-sets-the-error-of-an-optimistic-qft-measured-on-16-qubits/</link>
      <pubDate>Fri, 13 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/how-block-width-sets-the-error-of-an-optimistic-qft-measured-on-16-qubits/</guid>
      <description>&lt;p&gt;The block width is the one knob inside an optimistic QFT. Narrow blocks make a shallow circuit that fails often. Wide blocks fail rarely but cost more depth. OQFT normally picks the width for you from the error target, but on a register small enough to simulate you can force it with &lt;code&gt;--block-width&lt;/code&gt; and watch what happens.&lt;/p&gt;&#xA;&lt;p&gt;We took a 16-qubit register, forced every width from 2 to 8, and ran 300 random inputs through the simulator for each, with the same seed every time so the run can be repeated. For each input &lt;code&gt;oqft check&lt;/code&gt; measured the squared error against the exact QFT, and flagged any above 0.1.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How OQFT Was Tested, Matrices, Random Inputs and the Wraparound Edge</title>
      <link>https://oqft.com/how-oqft-was-tested-matrices-random-inputs-and-the-wraparound-edge/</link>
      <pubDate>Fri, 13 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/how-oqft-was-tested-matrices-random-inputs-and-the-wraparound-edge/</guid>
      <description>&lt;p&gt;A circuit generator can produce something that looks fine, loads fine, and computes the wrong thing. The only way to know is to run the circuit and compare. OQFT does that at three levels, and every number below comes from the recorded runs in the repository.&lt;/p&gt;&#xA;&lt;h2 id=&#34;whole-matrices-up-to-10-qubits&#34;&gt;Whole Matrices, Up to 10 Qubits&lt;/h2&gt;&#xA;&lt;p&gt;For registers up to 10 qubits, the tests build the full matrix of each circuit, all 1,024 by 1,024 entries at the top end, and compare every entry with the exact Fourier transform written out by formula. The textbook QFT matches at every size from 1 to 10. The approximate QFT is checked the same way, to confirm its error stays inside a bound that tightens as it keeps more rotations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Loading OQFT Circuits Into Qiskit, the Same CX Count After Transpiling but Less Than a Third of the Depth</title>
      <link>https://oqft.com/loading-oqft-circuits-into-qiskit-the-same-cx-count-after-transpiling-but-less-than-a-third-of-the-depth/</link>
      <pubDate>Fri, 13 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/loading-oqft-circuits-into-qiskit-the-same-cx-count-after-transpiling-but-less-than-a-third-of-the-depth/</guid>
      <description>&lt;p&gt;OQFT writes OpenQASM 3 with three gates from the standard library, &lt;code&gt;h&lt;/code&gt;, &lt;code&gt;cp&lt;/code&gt; and &lt;code&gt;swap&lt;/code&gt;. Anything that reads OpenQASM 3 can take it. Qiskit is the toolkit most people will try first, so this example loads OQFT&amp;rsquo;s output there, checks it, and runs it through Qiskit&amp;rsquo;s transpiler.&lt;/p&gt;&#xA;&lt;p&gt;You need Python with &lt;code&gt;qiskit&lt;/code&gt; and &lt;code&gt;qiskit_qasm3_import&lt;/code&gt;, and &lt;code&gt;oqft&lt;/code&gt; on your PATH.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip install qiskit qiskit_qasm3_import&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://oqft.com/images/oqft-qiskit.png&#34; alt=&#34;Output of the Qiskit example: the 6-qubit oqft QFT equals Qiskit&amp;rsquo;s QFT matrix; the 256-qubit OQFT loads with 9,400 cp, 496 h and 128 swap gates at depth 158; after transpiling, OQFT has 19,184 CX at depth 624 and Qiskit&amp;rsquo;s textbook QFT 19,224 CX at depth 2,044.&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Optimistic Quantum Circuits Explained, Why a QFT That Is Almost Always Right Is Enough</title>
      <link>https://oqft.com/optimistic-quantum-circuits-explained-why-a-qft-that-is-almost-always-right-is-enough/</link>
      <pubDate>Fri, 13 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/optimistic-quantum-circuits-explained-why-a-qft-that-is-almost-always-right-is-enough/</guid>
      <description>&lt;p&gt;Ask a circuit designer for a quantum Fourier transform and they&amp;rsquo;ll want it right on every input. That&amp;rsquo;s the normal bar. A circuit is a fixed piece of hardware, and you can&amp;rsquo;t look inside a quantum state to see which input you got and take a different path. So it has to work for all of them.&lt;/p&gt;&#xA;&lt;p&gt;The trouble is that &amp;ldquo;all of them&amp;rdquo; is expensive. In 2025 a group of researchers from MIT, UC Berkeley and Google asked a different question: what if the circuit only has to be right on almost every input? They called that kind of circuit optimistic, and showed the QFT gets much cheaper under the looser rule.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OQFT Cuts QFT Depth From 4096 to 198 on a 2048-Qubit Register</title>
      <link>https://oqft.com/oqft-cuts-qft-depth-from-4096-to-198-on-a-2048-qubit-register/</link>
      <pubDate>Fri, 13 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/oqft-cuts-qft-depth-from-4096-to-198-on-a-2048-qubit-register/</guid>
      <description>&lt;p&gt;The quantum Fourier transform sits in the middle of Shor&amp;rsquo;s algorithm. Build it the textbook way on 2,048 qubits, the size you&amp;rsquo;d need for a 2048-bit RSA key, and you get about 2.1 million gates stacked 4,096 layers deep. Most of those gates are tiny rotations that barely change anything. The rest still have to wait their turn.&lt;/p&gt;&#xA;&lt;p&gt;OQFT 0.3 builds the other version. The optimistic QFT on the same 2,048 qubits takes 198 layers and about 104,000 gates, and it needs no qubits beyond the register itself. It&amp;rsquo;s right on almost every input. On a small, known slice of inputs it&amp;rsquo;s badly wrong, and that&amp;rsquo;s the deal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OQFT Depth Crossover, the Optimistic QFT Beats the Textbook Circuit From 68 Qubits On</title>
      <link>https://oqft.com/oqft-depth-crossover-the-optimistic-qft-beats-the-textbook-circuit-from-68-qubits-on/</link>
      <pubDate>Fri, 13 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/oqft-depth-crossover-the-optimistic-qft-beats-the-textbook-circuit-from-68-qubits-on/</guid>
      <description>&lt;p&gt;The optimistic QFT is built for big registers. Everyone working with it knows that. The less obvious question is where &amp;ldquo;big&amp;rdquo; starts, because below some size the textbook circuit is simply shallower, and a compiler that swaps in OQFT everywhere would make small circuits worse.&lt;/p&gt;&#xA;&lt;p&gt;So we ran &lt;code&gt;oqft stats&lt;/code&gt; at an error target of 0.01 for every register size from 32 to 80 qubits, plus a few larger ones, and wrote down depth and gate count for both circuits. Depth counts every gate as one layer, with gates on separate qubits sharing a layer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What OQFT Stands For, the Optimistic Quantum Fourier Transform</title>
      <link>https://oqft.com/what-oqft-stands-for-the-optimistic-quantum-fourier-transform/</link>
      <pubDate>Fri, 13 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/what-oqft-stands-for-the-optimistic-quantum-fourier-transform/</guid>
      <description>&lt;p&gt;OQFT is four letters and one idea. The last three, QFT, are the quantum Fourier transform, one of the most used building blocks in quantum computing. The O is the new part: optimistic.&lt;/p&gt;&#xA;&lt;p&gt;The QFT got its name from the Fourier transform, the 200-year-old tool that breaks a signal into the waves it&amp;rsquo;s made of. Joseph Fourier worked it out while studying how heat spreads through metal. Phones, audio files and radio links all lean on its fast digital version. The quantum version does the same job on the amplitudes of a quantum state, and it&amp;rsquo;s what lets Shor&amp;rsquo;s algorithm find the hidden period that cracks a large number into its factors.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://oqft.com/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/about/</guid>
      <description>&lt;p&gt;oqft.com is the home of OQFT, an open source toolkit for the optimistic quantum Fourier transform. It builds the circuit for any register size, writes it out as OpenQASM 3, counts its gates and depth, and checks it on a classical simulator against the exact transform.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-name&#34;&gt;The Name&lt;/h2&gt;&#xA;&lt;p&gt;OQFT stands for &lt;strong&gt;Optimistic Quantum Fourier Transform&lt;/strong&gt;. The quantum Fourier transform, QFT for short, is the step in Shor&amp;rsquo;s factoring algorithm, and in quantum phase estimation, that turns a hidden repeating pattern into a number you can measure. &amp;ldquo;Optimistic&amp;rdquo; is the word the researchers who designed the fast version chose for circuits that are accurate on almost every input but give up on a small, predictable slice of them. The O in front is that trade.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Contact</title>
      <link>https://oqft.com/contact/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/contact/</guid>
      <description>&lt;p&gt;oqft.com would like to hear from:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;People building quantum compilers and toolchains&lt;/strong&gt; who&amp;rsquo;d use an optimistic QFT as a building block.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Researchers&lt;/strong&gt; who want a gate, an export format or a check that OQFT doesn&amp;rsquo;t have yet.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Anyone who found a bug.&lt;/strong&gt; A circuit that doesn&amp;rsquo;t load, a count that looks off, an error you didn&amp;rsquo;t expect.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Write to &lt;strong&gt;&lt;a href=&#34;mailto:info@oqft.com&#34;&gt;info@oqft.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Bug reports are also welcome on &lt;a href=&#34;https://github.com/softdevstudio/oqft/issues&#34;&gt;GitHub&lt;/a&gt;. It helps to include what &lt;code&gt;oqft version&lt;/code&gt; prints, the exact command you ran and what it printed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Download OQFT</title>
      <link>https://oqft.com/download/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/download/</guid>
      <description>&lt;p&gt;The &lt;code&gt;oqft&lt;/code&gt; command is one file with nothing else to install. Each archive below holds it with its license files. The links always point to the latest release.&lt;/p&gt;&#xA;&lt;div style=&#34;overflow-x:auto&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;System&lt;/th&gt;&#xA;          &lt;th&gt;Download&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Linux, x86-64&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/softdevstudio/oqft/releases/latest/download/oqft_linux_amd64.tar.gz&#34;&gt;oqft_linux_amd64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Linux, ARM64&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/softdevstudio/oqft/releases/latest/download/oqft_linux_arm64.tar.gz&#34;&gt;oqft_linux_arm64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;macOS, Apple silicon&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/softdevstudio/oqft/releases/latest/download/oqft_darwin_arm64.tar.gz&#34;&gt;oqft_darwin_arm64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;macOS, Intel&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/softdevstudio/oqft/releases/latest/download/oqft_darwin_amd64.tar.gz&#34;&gt;oqft_darwin_amd64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Windows, x86-64&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/softdevstudio/oqft/releases/latest/download/oqft_windows_amd64.zip&#34;&gt;oqft_windows_amd64.zip&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;em&gt;Checksums are in &lt;a href=&#34;https://github.com/softdevstudio/oqft/releases/latest/download/SHA256SUMS&#34;&gt;SHA256SUMS&lt;/a&gt;. Every release is listed on &lt;a href=&#34;https://github.com/softdevstudio/oqft/releases&#34;&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;install&#34;&gt;Install&lt;/h2&gt;&#xA;&lt;p&gt;On Linux or macOS:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tar -xzf oqft_linux_amd64.tar.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo mv oqft /usr/local/bin/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;oqft version&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The binaries are static, so they run on any Linux distribution. The macOS binaries aren&amp;rsquo;t signed by Apple, so macOS may block the first run. Allow it in System Settings under Privacy &amp;amp; Security, or run &lt;code&gt;xattr -d com.apple.quarantine oqft&lt;/code&gt;. On Windows, unzip the archive and put &lt;code&gt;oqft.exe&lt;/code&gt; in a folder on your PATH.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick Start</title>
      <link>https://oqft.com/quick-start/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/quick-start/</guid>
      <description>&lt;p&gt;This page gets OQFT running and walks through its three commands: &lt;code&gt;gen&lt;/code&gt; writes a circuit, &lt;code&gt;stats&lt;/code&gt; counts it, and &lt;code&gt;check&lt;/code&gt; tests it against the exact transform.&lt;/p&gt;&#xA;&lt;h2 id=&#34;install&#34;&gt;Install&lt;/h2&gt;&#xA;&lt;p&gt;Download the archive for your system from the &lt;a href=&#34;https://oqft.com/download/&#34;&gt;download page&lt;/a&gt;, unpack it and put &lt;code&gt;oqft&lt;/code&gt; on your PATH. Then:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;oqft version&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;write-a-circuit&#34;&gt;Write a Circuit&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;oqft gen&lt;/code&gt; prints a circuit as OpenQASM 3. The textbook QFT on four qubits:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;oqft gen -n &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The optimistic QFT on 128 qubits, with an error target of 0.01, saved to a file:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reference</title>
      <link>https://oqft.com/reference/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://oqft.com/reference/</guid>
      <description>&lt;p&gt;Everything &lt;code&gt;oqft&lt;/code&gt; does, in one page. The &lt;a href=&#34;https://oqft.com/quick-start/&#34;&gt;quick start&lt;/a&gt; has worked examples.&lt;/p&gt;&#xA;&lt;h2 id=&#34;commands&#34;&gt;Commands&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Command&lt;/th&gt;&#xA;          &lt;th&gt;What it does&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;oqft gen&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Writes a circuit as OpenQASM 3 to standard output&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;oqft stats&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Compares gate counts and depth of the textbook and approximate QFT, and the optimistic QFT when &lt;code&gt;--eps&lt;/code&gt; is given&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;oqft check&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Measures each input&amp;rsquo;s error against the exact QFT on a simulator&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;oqft version&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Prints the version&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;oqft help&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Lists the commands&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;oqft-gen&#34;&gt;oqft gen&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;oqft gen --type qft|aqft|oqft -n N [--cutoff K] [--eps E]&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;div style=&#34;overflow-x:auto&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Option&lt;/th&gt;&#xA;          &lt;th&gt;Meaning&lt;/th&gt;&#xA;          &lt;th&gt;Default&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;-n&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Number of qubits. Required&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;--type&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;qft&lt;/code&gt; textbook, &lt;code&gt;aqft&lt;/code&gt; approximate, &lt;code&gt;oqft&lt;/code&gt; optimistic&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;qft&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;--cutoff&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;For &lt;code&gt;aqft&lt;/code&gt;: the largest distance between two qubits that keeps its rotation&lt;/td&gt;&#xA;          &lt;td&gt;2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;--eps&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;For &lt;code&gt;oqft&lt;/code&gt;: the error target, between 0 and 1&lt;/td&gt;&#xA;          &lt;td&gt;0.01&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;oqft-stats&#34;&gt;oqft stats&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;oqft stats -n N [--cutoff K] [--eps E]&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Prints counts of each gate, total gates, two-qubit gates and depth. With &lt;code&gt;--eps&lt;/code&gt; it adds a line for the optimistic QFT at that error target.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
