ismaelfaro / wasm-quantum-simulator

Quantum Simulator in WebAssembly for Classical Developers 💻

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Quantum Simulator in WebAssembly for Classical Developers 💻

License:Apache License 2.0


Languages

Language:TypeScript 89.3%Language:HTML 6.6%Language:JavaScript 4.0%