From 3bcd5700fabfb0b1149e4c5ce0e9635c896865f5 Mon Sep 17 00:00:00 2001
From: miha-q <>
Date: Wed, 31 Jul 2024 20:45:25 -0400
Subject: [PATCH] math fix
---
src/bytecode.h | 10 +-
src/gui.html | 39 ++-
src/imports/istina-editor.js | 9 +-
src/kernel.c | 6 +-
src/kernel_cpu.c | 6 +-
src/kernel_gpu.c | 513 ++++++++++++++++++-----------------
6 files changed, 307 insertions(+), 276 deletions(-)
diff --git a/src/bytecode.h b/src/bytecode.h
index 25c106b..9a53a2f 100644
--- a/src/bytecode.h
+++ b/src/bytecode.h
@@ -74,7 +74,7 @@ static float PhaseT[] =
static float PhaseSdg[] =
{
1, 0, 0, 0,
- 0, 0, 0, 1,
+ 0, 0, 0, -1,
};
// 1/sqrt(2) - 1/sqrt(2)i
@@ -84,14 +84,6 @@ static float PhaseTdg[] =
0, 0, R,-R,
};
-static float ControlledNOT[] =
-{
- 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,
-};
-
const char* qansel_instruction_to_string(unsigned char instr);
void qansel_rand_init();
float qansel_rand_s(float s);
diff --git a/src/gui.html b/src/gui.html
index bbc6648..09ff992 100644
--- a/src/gui.html
+++ b/src/gui.html
@@ -206,6 +206,7 @@
case "T": ret += ifblk + "t q[" + j + "];\n"; break;
case "Sâ ": ret += ifblk + "sdg q[" + j + "];\n"; break;
case "Tâ ": ret += ifblk + "tdg q[" + j + "];\n"; break;
+ case "RST": ret += ifblk + "reset q[" + j + "];\n"; break;
default:
if (instr.includes("ð"))
{
@@ -407,11 +408,11 @@
});
document.body.addEventListener("mouseup", e =>
{
- ProgramTrack.draw();
if ($(".program-drag")[0].style.visibility == "hidden")
{
return;
}
+ ProgramTrack.draw();
$(".program-drag")[0].style.visibility = "hidden";
ProgramTrack.DRAG = "";
var elem = document.elementFromPoint(e.clientX, e.clientY);
@@ -494,6 +495,42 @@
}
resultsChart.update();
}
+ $("#run")[0].addEventListener("click", () =>
+ {
+ var key = "public:7e69f36a1a89ea70ec4a420fb9b830c420ab93e14e9a2f6da68bc1d355c611ef:foleosoft.com/qansel";
+ EstoulsAPI.username = key.split(":")[0];
+ EstoulsAPI.apikey = key.split(":")[1];
+ EstoulsAPI.endpoint = "https://" + key.split(":")[2];
+ EstoulsAPI.request(IstinaEditor.getText()).then(x =>
+ {
+ if (x.success && x.response.trim().length > 0)
+ {
+ var lines = x.response.trim().split("\n");
+ var type = lines[0].split("\t").length;
+ var results = [];
+ console.clear();
+ console.log(type);
+ console.log(lines);
+ if (type == 3)
+ {
+ for (var i = 0; i < lines.length; i++)
+ {
+ results[results.length] = parseInt(lines[i].split("\t")[1]);
+ }
+ displayResults(results);
+ }
+
+ }
+ else if (x.success && x.response.trim().length == 0)
+ {
+ IstinaEditor.setText(x.response);
+ }
+ else
+ {
+ IstinaEditor.setText(x.response);
+ }
+ }).catch(x => alert("ERR(2)" + x));
+ });