UNPKG

qukit

Version:

[![Npm](https://badgen.net/npm/v/qukit)](https://www.npmjs.com/package/qukit) [![Crates](https://badgen.net/crates/v/qukit)](https://crates.io/crates/qukit) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/lice

46 lines (45 loc) 1.55 kB
import * as WasmLib from "./pkg/qukit"; export function measurement(qbits, cbits, basis = "z", sameStep = false) { if (Array.isArray(qbits) && Array.isArray(cbits)) { const minLen = Math.min(qbits.length, cbits.length); if (minLen > 0) { measurement(qbits[0], cbits[0], basis, sameStep); } for (let i = 1; i < minLen; i++) { measurement(qbits[i], cbits[i], basis, sameStep); } } else { if (!Array.isArray(qbits) && !Array.isArray(cbits)) { if (sameStep) { switch (basis) { case "x": WasmLib.measurement_x_same_step(qbits, cbits); break; case "y": WasmLib.measurement_y_same_step(qbits, cbits); break; case "z": WasmLib.measurement_z_same_step(qbits, cbits); break; } } else { switch (basis) { case "x": WasmLib.measurement_x(qbits, cbits); break; case "y": WasmLib.measurement_y(qbits, cbits); break; case "z": WasmLib.measurement_z(qbits, cbits); break; } } } else { throw new Error("type mismatch"); } } }