<?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>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>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 0.3 Cuts QFT Depth From 4096 to 198 on a 2048-Qubit Register</title>
      <link>https://oqft.com/oqft-0.3-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-0.3-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>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>
