]> foleosoft.com Git - QAnsel.git/commitdiff
Sun Aug 4 02:44:44 PM EDT 2024
authormiha-q <>
Sun, 4 Aug 2024 18:44:44 +0000 (14:44 -0400)
committermiha-q <>
Sun, 4 Aug 2024 18:44:44 +0000 (14:44 -0400)
examples/toffoli.txt [new file with mode: 0644]
src/index.html
src/src.zip

diff --git a/examples/toffoli.txt b/examples/toffoli.txt
new file mode 100644 (file)
index 0000000..398551d
--- /dev/null
@@ -0,0 +1,243 @@
+qreg q[3];
+creg c[3];
+
+//000
+reset q[0];
+reset q[1];
+reset q[2];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+//ccx
+h q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[1];
+t q[2];
+h q[2];
+cx q[0], q[1];
+t q[0];
+tdg q[1];
+cx q[0], q[1];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+print q;
+
+//001
+set q[0];
+reset q[1];
+reset q[2];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+//ccx
+h q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[1];
+t q[2];
+h q[2];
+cx q[0], q[1];
+t q[0];
+tdg q[1];
+cx q[0], q[1];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+print q;
+
+//010
+reset q[0];
+set q[1];
+reset q[2];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+//ccx
+h q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[1];
+t q[2];
+h q[2];
+cx q[0], q[1];
+t q[0];
+tdg q[1];
+cx q[0], q[1];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+print q;
+
+//011
+set q[0];
+set q[1];
+reset q[2];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+//ccx
+h q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[1];
+t q[2];
+h q[2];
+cx q[0], q[1];
+t q[0];
+tdg q[1];
+cx q[0], q[1];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+print q;
+
+//100
+reset q[0];
+reset q[1];
+set q[2];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+//ccx
+h q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[1];
+t q[2];
+h q[2];
+cx q[0], q[1];
+t q[0];
+tdg q[1];
+cx q[0], q[1];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+print q;
+
+//101
+set q[0];
+reset q[1];
+set q[2];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+//ccx
+h q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[1];
+t q[2];
+h q[2];
+cx q[0], q[1];
+t q[0];
+tdg q[1];
+cx q[0], q[1];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+print q;
+
+//110
+reset q[0];
+set q[1];
+set q[2];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+//ccx
+h q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[1];
+t q[2];
+h q[2];
+cx q[0], q[1];
+t q[0];
+tdg q[1];
+cx q[0], q[1];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+print q;
+
+//111
+set q[0];
+set q[1];
+set q[2];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+//ccx
+h q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[2];
+cx q[1], q[2];
+tdg q[2];
+cx q[0], q[2];
+t q[1];
+t q[2];
+h q[2];
+cx q[0], q[1];
+t q[0];
+tdg q[1];
+cx q[0], q[1];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+print c;
+print q;
+
index 3fea49fdd027a94f55713d294fa0196b09331136..877d18f2f907742f573cfaa627f49e558bd147b4 100644 (file)
                        {
                                ProgramTrack.STATE = [ [], [] ];
                                ProgramTrack.draw();
+                               displayResults([]);
                        },
                        adjust: x =>
                        {
                                                return;
                                        }
                                        var a = document.createElement("a");
-                                       a.href = "data:text/plain," + btoa(escape(JSON.stringify(ProgramTrack.STATE)));
+                                       var obj = { info: "QAnsel v0.4", data: ProgramTrack.STATE };
+                                       a.href = "data:text/plain," + btoa(escape(JSON.stringify(obj)));
                                        a.download = "program.txt";
                                        document.body.appendChild(a);
                                        a.click();
                                        {
                                                $("td[onclick*=adjust]")[i].style.display = "none";
                                        }
+                                       for (var i = 0; i < $("[pidx*='," + ProgramTrack.STATE[0].length + "']").length; i++)
+                                       {
+                                               $("[pidx*='," + ProgramTrack.STATE[0].length + "']")[i].style.display = "none";
+                                       }
                                        $(".main-table")[0].cellPadding = 0;
                                        $(".main-table")[0].cellSpacing = 0;
                                        $(".program-track")[0].cellPadding = 0;
                                                {
                                                        $("td[onclick*=adjust]")[i].style.display = "";
                                                }
+                                               for (var i = 0; i < $("[pidx*='," + ProgramTrack.STATE[0].length + "']").length; i++)
+                                               {
+                                                       $("[pidx*='," + ProgramTrack.STATE[0].length + "']")[i].style.display = "";
+                                               }
                                                $(".main-table")[0].cellPadding = backups[6];
                                                $(".main-table")[0].cellSpacing = backups[7];
                                                $(".program-track")[0].cellPadding = backups[8];
                        {
                                try
                                {
-                                       ProgramTrack.STATE = JSON.parse(unescape(atob(reader.result)));
+                                       var obj = JSON.parse(unescape(atob(reader.result)));
+                                       ProgramTrack.STATE = obj.data;
                                        ProgramTrack.draw();
                                }
                                catch
index 7a927cb15878bd4225997f1f4b861e45f49254f3..8a951c617393a9c20b25f0fb651abe25bc7faebd 100644 (file)
Binary files a/src/src.zip and b/src/src.zip differ