qukit
Version:
[](https://www.npmjs.com/package/qukit) [](https://crates.io/crates/qukit) [](https://opensource.org/lice
36 lines (35 loc) • 1.14 kB
JavaScript
import * as WasmLib from "../pkg/qukit";
export function rotationX(theta, qbits, cControl, sameStep = false) {
if (Array.isArray(qbits)) {
const minLen = Math.min(qbits.length);
if (minLen > 0) {
rotationX(theta, qbits[0], cControl, sameStep);
}
for (let i = 1; i < minLen; i++) {
rotationX(theta, qbits[i], cControl, sameStep);
}
}
else {
if (!Array.isArray(qbits)) {
if (cControl !== null && cControl !== undefined) {
if (sameStep) {
WasmLib.rotation_x_same_step_classically_controlled(theta, qbits, cControl);
}
else {
WasmLib.rotation_x_classically_controlled(theta, qbits, cControl);
}
}
else {
if (sameStep) {
WasmLib.rotation_x_same_step(theta, qbits);
}
else {
WasmLib.rotation_x(theta, qbits);
}
}
}
else {
throw new Error("type mismatch");
}
}
}