0.0.1 • Published 8 years ago
qubit.js v0.0.1
qubit.js
A simple quantum computing circuit simulator (working on progress)
Not Finished yet!
Install
node.js
npm install qubit.js
browser
<script src="qubit.min.js"></script>
Build
npm install
./build.sh
Usages
const {QuantumComputing} = require('./lib/qubit.js')
const qc = new QuantumComputing()
qc
.boot(1) // create one qubit register
.x(0) // apply Pauli X Gate to qubit[0]
.measure() // measure all
console.log(qc.toQASM()) // convert to QASM code
console.log(qc.getResult()) // print probabilities
API
- boot(qubitRegsNum, classicRegNum=qubitRegsNum) init quantum computing circuit.
- applySingleBitMatrix(offset, matrix) apply matrix to qubitsoffset.
- applyTwoBitsMatrix(control, target, matrix) apply matrix to qubitscontrol and qubitstarget.
- id(offset || 'all') apply Identity Gate to qubitsoffset or all qubits.
- x(offset || 'all') apply Pauli X Gate to qubitsoffset or all qubits.
- y(offset || 'all') apply Pauli Y Gate to qubitsoffset or all qubits.
- z(offset || 'all') apply Pauli Z Gate to qubitsoffset or all qubits.
- s(offset || 'all') apply Phase Gate to qubitsoffset or all qubits.
- sdg(offset || 'all') apply Phase Gate to qubitsoffset or all qubits.
- t(offset || 'all') apply Phase Gate to qubitsoffset or all qubits.
- tdg(offset || 'all') apply Phase Gate to qubitsoffset or all qubits.
- h(offset || 'all') apply Hadamard Gate to qubitsoffset or all qubits.
- cnot(control, target) apply Controlled Gate to qubitscontrol and qubitstarget.
- cx(control, target) apply Controlled Gate to qubitscontrol and qubitstarget.
- barrier(offsets=[] || 'all') the barrier prevents transformations accross this source line.
- measure(q || 'all', c) measure qubitsq to classicRegc or measure one-to-one.
- getResult() get result after measurement.
- toQASM() convert to
QASM 2.0
code. - executeQASM(code) execute
QASM 2.0 code
.
For more information, read qubit.js source code.
References
A bunch of materials
A gentle introduction to quantum computing
An introduction to quantum computing (<- this one is very nice)
Other similar projects on Github
0.0.1
8 years ago