Skip to content

Commit

Permalink
Merge pull request #5 from dmvjs/ke/fix-errors-and-warnings
Browse files Browse the repository at this point in the history
fix errors and warnings and apply formatting
  • Loading branch information
dmvjs committed Jun 16, 2024
2 parents 44e5727 + 20c3e82 commit 62ecb4d
Show file tree
Hide file tree
Showing 25 changed files with 11,074 additions and 8,430 deletions.
7 changes: 4 additions & 3 deletions benchmark/benchmark1.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ var QuantumCircuit = require("../lib/quantum-circuit.js");

console.log("Qubits\tTime ms\tMemory MB");

for(var qubits = 2; qubits <= 25; qubits++) {

for (var qubits = 2; qubits <= 25; qubits++) {
var circ = new QuantumCircuit();

circ.addGate("h", 0, 0);
Expand All @@ -13,5 +12,7 @@ for(var qubits = 2; qubits <= 25; qubits++) {

var heapUsedMB = process.memoryUsage().heapUsed / 1024 / 1024;

console.log(qubits + "\t" + circ.stats.duration + "\t" + heapUsedMB.toFixed(2));
console.log(
qubits + "\t" + circ.stats.duration + "\t" + heapUsedMB.toFixed(2),
);
}
9 changes: 5 additions & 4 deletions benchmark/benchmark2.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@ var QuantumCircuit = require("../lib/quantum-circuit.js");

console.log("Qubits\tTime ms\tMemory MB");

for(var qubits = 2; qubits <= 25; qubits++) {

for (var qubits = 2; qubits <= 25; qubits++) {
var circ = new QuantumCircuit(qubits);

for(var i = 0; i < circ.numQubits; i++) {
for (var i = 0; i < circ.numQubits; i++) {
circ.addGate("h", 0, i);
}

circ.run();

var heapUsedMB = process.memoryUsage().heapUsed / 1024 / 1024;

console.log(qubits + "\t" + circ.stats.duration + "\t" + heapUsedMB.toFixed(2));
console.log(
qubits + "\t" + circ.stats.duration + "\t" + heapUsedMB.toFixed(2),
);
}
23 changes: 12 additions & 11 deletions benchmark/benchmark3.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,33 @@ var QuantumCircuit = require("../lib/quantum-circuit.js");

console.log("Qubits\tTime ms\tMemory MB");

for(var qubits = 2; qubits <= 25; qubits++) {

for (var qubits = 2; qubits <= 25; qubits++) {
var circ = new QuantumCircuit(qubits);

for(var i = 0; i < qubits; i++) {
for (var i = 0; i < qubits; i++) {
circ.addGate("h", -1, i);
var rcount = 0;
for(var x = i + 1; x < qubits; x++) {
for (var x = i + 1; x < qubits; x++) {
rcount++;
circ.addGate("cu1", -1, [x, i], {
params: {
lambda: "pi/" + (1 << rcount)
}
circ.addGate("cu1", -1, [x, i], {
params: {
lambda: "pi/" + (1 << rcount),
},
});
}
}

for(var i = 0; i < Math.floor(qubits / 2); i++) {
circ.addGate("swap", -1, [i, (qubits - i) - 1]);
for (var i = 0; i < Math.floor(qubits / 2); i++) {
circ.addGate("swap", -1, [i, qubits - i - 1]);
}

circ.run();

var heapUsedMB = process.memoryUsage().heapUsed / 1024 / 1024;

console.log(qubits + "\t" + circ.stats.duration + "\t" + heapUsedMB.toFixed(2));
console.log(
qubits + "\t" + circ.stats.duration + "\t" + heapUsedMB.toFixed(2),
);
}

/*
Expand Down
16 changes: 6 additions & 10 deletions example/nodejs/adder.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

var QuantumCircuit = require("../../lib/quantum-circuit.js");


var majority = new QuantumCircuit();
majority.addGate("cx", 0, [2, 1]);
majority.addGate("cx", 1, [2, 0]);
Expand All @@ -25,11 +24,11 @@ adder.addGate("majority", 0, [0, 5, 1]);
adder.addGate("majority", 1, [1, 6, 2]);
adder.addGate("majority", 2, [2, 7, 3]);
adder.addGate("majority", 3, [3, 8, 4]);
adder.addGate("cx", 4, [4, 9]);
adder.addGate("unmaj", 5, [3, 8, 4]);
adder.addGate("unmaj", 6, [2, 7, 3]);
adder.addGate("unmaj", 7, [1, 6, 2]);
adder.addGate("unmaj", 8, [0, 5, 1]);
adder.addGate("cx", 4, [4, 9]);
adder.addGate("unmaj", 5, [3, 8, 4]);
adder.addGate("unmaj", 6, [2, 7, 3]);
adder.addGate("unmaj", 7, [1, 6, 2]);
adder.addGate("unmaj", 8, [0, 5, 1]);

adder.addMeasure(5, "ans", 0);
adder.addMeasure(6, "ans", 1);
Expand All @@ -40,13 +39,11 @@ adder.addMeasure(9, "ans", 4);
console.log("");
console.log("Calculating...");

adder.run([0, 1, 0, 0, 0, 1, 1, 1, 1, 0]);

adder.run([0, 1, 0, 0, 0, 1, 1, 1, 1, 0]);

console.log("");
console.log("Answer:", adder.getCregValue("ans"));


console.log("");
console.log("Final amplitudes:");
adder.print(true);
Expand All @@ -62,4 +59,3 @@ console.log(adder.probabilities());
console.log("");
console.log("Measured:");
console.log(adder.measureAll());

3 changes: 1 addition & 2 deletions example/nodejs/adder_qasm.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const QuantumCircuit = require("../../lib/quantum-circuit.js");
var input = "";
input += "// quantum ripple-carry adder from Cuccaro et al, quant-ph/0410184\n";
input += "OPENQASM 2.0;\n";
input += "include \"qelib1.inc\";\n";
input += 'include "qelib1.inc";\n';

input += "gate majority a,b,c\n";
input += "{\n";
Expand Down Expand Up @@ -70,7 +70,6 @@ adder.run();
console.log("");
console.log("Answer:", adder.getCregValue("ans"));


console.log("");
console.log("Final amplitudes:");
adder.print(true);
Expand Down
70 changes: 37 additions & 33 deletions example/nodejs/all_gates.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,43 +13,47 @@ circuit.appendGate("srn", 0, {});
circuit.appendGate("r2", 0, {});
circuit.appendGate("r4", 0, {});
circuit.appendGate("r8", 0, {});
circuit.appendGate("rx", 0, {"params":{"theta":"pi/3"}});
circuit.appendGate("ry", 0, {"params":{"theta":"pi/3"}});
circuit.appendGate("rz", 0, {"params":{"phi":"pi/3"}});
circuit.appendGate("u1", 0, {"params":{"lambda":"pi/3"}});
circuit.appendGate("u2", 0, {"params":{"phi":"pi/3","lambda":"pi/3"}});
circuit.appendGate("u3", 0, {"params":{"theta":"pi/3","phi":"pi/3","lambda":"pi/3"}});
circuit.appendGate("rx", 0, { params: { theta: "pi/3" } });
circuit.appendGate("ry", 0, { params: { theta: "pi/3" } });
circuit.appendGate("rz", 0, { params: { phi: "pi/3" } });
circuit.appendGate("u1", 0, { params: { lambda: "pi/3" } });
circuit.appendGate("u2", 0, { params: { phi: "pi/3", lambda: "pi/3" } });
circuit.appendGate("u3", 0, {
params: { theta: "pi/3", phi: "pi/3", lambda: "pi/3" },
});
circuit.appendGate("s", 0, {});
circuit.appendGate("t", 0, {});
circuit.appendGate("sdg", 0, {});
circuit.appendGate("tdg", 0, {});
circuit.appendGate("swap", [0,1], {});
circuit.appendGate("srswap", [0,1], {});
circuit.appendGate("iswap", [0,1], {});
circuit.appendGate("xy", [0,1], {"params":{"phi":"pi/3"}});
circuit.appendGate("cx", [0,1], {});
circuit.appendGate("cy", [0,1], {});
circuit.appendGate("cz", [0,1], {});
circuit.appendGate("ch", [0,1], {});
circuit.appendGate("csrn", [0,1], {});
circuit.appendGate("ms", [0,1], {"params":{"theta":"pi/3"}});
circuit.appendGate("yy", [0,1], {"params":{"theta":"pi/3"}});
circuit.appendGate("cr2", [0,1], {});
circuit.appendGate("cr4", [0,1], {});
circuit.appendGate("cr8", [0,1], {});
circuit.appendGate("crx", [0,1], {"params":{"theta":"pi/3"}});
circuit.appendGate("cry", [0,1], {"params":{"theta":"pi/3"}});
circuit.appendGate("crz", [0,1], {"params":{"phi":"pi/3"}});
circuit.appendGate("cu1", [0,1], {"params":{"lambda":"pi/3"}});
circuit.appendGate("cu2", [0,1], {"params":{"phi":"pi/3","lambda":"pi/3"}});
circuit.appendGate("cu3", [0,1], {"params":{"theta":"pi/3","phi":"pi/3","lambda":"pi/3"}});
circuit.appendGate("cs", [0,1], {});
circuit.appendGate("ct", [0,1], {});
circuit.appendGate("csdg", [0,1], {});
circuit.appendGate("ctdg", [0,1], {});
circuit.appendGate("ccx", [0,1,2], {});
circuit.appendGate("cswap", [0,1,2], {});
circuit.appendGate("csrswap", [0,1,2], {});
circuit.appendGate("swap", [0, 1], {});
circuit.appendGate("srswap", [0, 1], {});
circuit.appendGate("iswap", [0, 1], {});
circuit.appendGate("xy", [0, 1], { params: { phi: "pi/3" } });
circuit.appendGate("cx", [0, 1], {});
circuit.appendGate("cy", [0, 1], {});
circuit.appendGate("cz", [0, 1], {});
circuit.appendGate("ch", [0, 1], {});
circuit.appendGate("csrn", [0, 1], {});
circuit.appendGate("ms", [0, 1], { params: { theta: "pi/3" } });
circuit.appendGate("yy", [0, 1], { params: { theta: "pi/3" } });
circuit.appendGate("cr2", [0, 1], {});
circuit.appendGate("cr4", [0, 1], {});
circuit.appendGate("cr8", [0, 1], {});
circuit.appendGate("crx", [0, 1], { params: { theta: "pi/3" } });
circuit.appendGate("cry", [0, 1], { params: { theta: "pi/3" } });
circuit.appendGate("crz", [0, 1], { params: { phi: "pi/3" } });
circuit.appendGate("cu1", [0, 1], { params: { lambda: "pi/3" } });
circuit.appendGate("cu2", [0, 1], { params: { phi: "pi/3", lambda: "pi/3" } });
circuit.appendGate("cu3", [0, 1], {
params: { theta: "pi/3", phi: "pi/3", lambda: "pi/3" },
});
circuit.appendGate("cs", [0, 1], {});
circuit.appendGate("ct", [0, 1], {});
circuit.appendGate("csdg", [0, 1], {});
circuit.appendGate("ctdg", [0, 1], {});
circuit.appendGate("ccx", [0, 1, 2], {});
circuit.appendGate("cswap", [0, 1, 2], {});
circuit.appendGate("csrswap", [0, 1, 2], {});
circuit.appendGate("reset", 0, {});
circuit.addMeasure(0, "c1", 0);

Expand Down
22 changes: 13 additions & 9 deletions example/nodejs/bigadder_qasm.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@ input += "// quantum ripple-carry adder\n";
input += "// 8-bit adder made out of 2 4-bit adders from adder.qasm\n";
input += "// Cuccaro et al, quant-ph/0410184\n";
input += "OPENQASM 2.0;\n";
input += "include \"qelib1.inc\";\n";
input += 'include "qelib1.inc";\n';

input += "gate majority a,b,c\n";
input += "{\n";
input += " cx c,b;\n";
input += " cx c,a;\n";
input += " ccx a,b,c;\n";
input += " cx c,b;\n";
input += " cx c,a;\n";
input += " ccx a,b,c;\n";
input += "}\n";
input += "gate unmaj a,b,c\n";
input += "{\n";
input += " ccx a,b,c;\n";
input += " cx c,a;\n";
input += " cx a,b;\n";
input += " cx c,a;\n";
input += " cx a,b;\n";
input += "}\n";

input += "// add a to b, storing result in b\n";
Expand Down Expand Up @@ -77,7 +77,13 @@ console.log("Answer:", answer, " (" + answer.toString(2) + ")");

console.log("");
console.log("Qubits: " + adder.numQubits);
console.log("Gates: " + adder.numGates(false) + " (" + adder.numGates(true) + " decomposed)");
console.log(
"Gates: " +
adder.numGates(false) +
" (" +
adder.numGates(true) +
" decomposed)",
);
console.log("Time: " + adder.stats.duration + " ms");

console.log("");
Expand All @@ -88,12 +94,10 @@ console.log("");
console.log("Angles:");
console.log(adder.angles());


console.log("");
console.log("Probabilities:");
console.log(adder.probabilities());

console.log("");
console.log("Measured:");
console.log(adder.measureAll());

10 changes: 5 additions & 5 deletions example/nodejs/classical_control.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ var circ = new QuantumCircuit();

circ.addGate("h", -1, 0);
circ.addMeasure(0, "c", 0);
circ.addGate("x", -1, 1, {
condition: {
creg: "c",
value: 1
}
circ.addGate("x", -1, 1, {
condition: {
creg: "c",
value: 1,
},
});

circ.run();
Expand Down
8 changes: 4 additions & 4 deletions example/nodejs/export_qsharp.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ circuit.createCreg("c1", 1);
// circuit.appendGate("cy", [0,1], {});
// circuit.appendGate("cz", [0,1], {});
// circuit.appendGate("ch", [0,1], {});
// circuit.appendGate("csrn", [0,1], {
// condition: {
// circuit.appendGate("csrn", [0,1], {
// condition: {
// creg: "c1",
// value: 7
// }
Expand All @@ -54,7 +54,7 @@ circuit.createCreg("c1", 1);
// circuit.appendGate("ctdg", [0,1], {});
// circuit.appendGate("ccx", [0,1,2], {});
// circuit.appendGate("cswap", [0,1,2], {});
circuit.appendGate("csrswap", [0,1,2], {});
circuit.appendGate("csrswap", [0, 1, 2], {});
// circuit.appendGate("reset", 0, {});
circuit.addMeasure(0, "c1", 0);

Expand All @@ -81,4 +81,4 @@ circuit.addMeasure(0, "c1", 0);

console.log("");
console.log(circuit.exportCirq());
// console.log(circuit.exportQASM())
// console.log(circuit.exportQASM())
2 changes: 1 addition & 1 deletion example/nodejs/inverseqft1_qasm.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ var input = "";

input += "// QFT and measure, version 1";
input += "OPENQASM 2.0;\n";
input += "include \"qelib1.inc\";\n";
input += 'include "qelib1.inc";\n';
input += "qreg q[4];\n";
input += "creg c[4];\n";
input += "h q;\n";
Expand Down
Loading

0 comments on commit 62ecb4d

Please sign in to comment.