Skip to content

Latest commit

 

History

History
55 lines (42 loc) · 1.25 KB

README.md

File metadata and controls

55 lines (42 loc) · 1.25 KB

WebAssembly quantum-simulator

Quantum Simulator in WebAssembly for Classical Developers 💻

This is a very basic implementation of a Quantum Simulator in 200 lines of AssemblyScript to learn the basic component. Allow to create your Quantum circuits with the basic Quantum Gates, and you can execute it using plain python

more info about AssemblyScript: https://www.assemblyscript.org/introduction.html

Components

  • Quantum Circuit Class:
    • Quantum Gates: x, rx, ry, rz, z, y, h, cx
  • Quanrtum Simulator Class:
    • imput: Qcircuit
    • outputs:
      • statevector
      • counts
      • memory

Example:

Modify the assembly/qengine.ts after line 200 to add your circuit

    let qc = new QuantumCircuit(qubits);
    
    qc.h(0)
    qc.cx(0,1)

    let qs = new QuantumSimulator(qc);
    qs.run()
    let result = qs.statevector()

Run:

Install dependencies

npm install

Compile to WASM

npm run asbuild 

Run

 npm start

TODO:

references

Inspired in MicroQiskit python implementation https://github.com/qiskit-community/MicroQiskit by James Wootton