UNPKG

quaco.js

Version:

A lightweight modular Quantum Computing Simulator in JavaScript. Supports qubits, quantum gates, entanglement, circuits, algorithms, and visualization.

53 lines (46 loc) 1.35 kB
// src/Simulator.js import { Circuit } from './Circuit.js'; /** * High-level Quantum Circuit Simulator. * Helps create, run, and visualize circuits easily. */ export class Simulator { constructor(numQubits) { this.numQubits = numQubits; this.circuit = new Circuit(numQubits); } /** * Add a single-qubit gate. * @param {Complex[][]} gateMatrix * @param {number} targetQubit */ addGate(gateMatrix, targetQubit) { this.circuit.addGate(gateMatrix, targetQubit); } /** * Add a CNOT gate. * @param {number} controlQubit * @param {number} targetQubit */ addCNOT(controlQubit, targetQubit) { this.circuit.addCNOT(controlQubit, targetQubit); } /** * Execute the circuit for a given number of shots. * @param {number} shots * @returns {object} measurement results (histogram) */ run(shots = 1) { return this.circuit.run(shots); } /** * Displays the histogram of results nicely. * @param {object} results */ static displayHistogram(results) { console.log("\nMeasurement Results Histogram:"); for (const [state, count] of Object.entries(results)) { console.log(`${state}: ${count}`); } } }