Learn R Programming

⚠️There's a newer version (1.1.1) of this package.Take me there.

qsimulatR

A simple quantum computer simulator in R.

Installation

Install the programming language R if you have not done so yet.

Download the source code, e.g. with

git clone https://github.com/HISKP-LQCD/qsimulatR.git

and go into the newly created directory qsimulatR. Execute:

./install

You might have to install additional packages. Just use install.packages() for any packages recommended in a possible error message.

The install script might not work under Windows. To circumvent this, you can download the source package from github. Then

install.packages("qsimulatR.zip", repos=NULL, type="source")

The library qsimulatR is now available in your R installation and can be loaded with:

library(qsimulatR)

Check for updates regularly. Do so by going into the directory qsimulatR and executing

git pull
./install

Usage

A detailed usage description can be found in qsimulatR.pdf. We provide many useful examples in the R Markdown format in vignettes.

Your first very simple program with qsimulatR might look like this:

library(qsimulatR)

# generate a quantum state with 2 qubits, initialised to |00>
x = qstate(nbits=2)
# display the state
x

# apply the Hadamard gate to the first (right) qubit
y = H(1) * x
y

# apply a controlled NOT
z = CNOT(c(1,2)) * y
z

# draw the resulting circuit
plot(z)

# project onto a single compute basis state
res = measure(z)
# draw the circuit
plot(res$psi)

# perform the measurement many times and plot the outcome
dist = measure(z, rep=1000)
hist(dist)

Copy Link

Version

Install

install.packages('qsimulatR')

Monthly Downloads

191

Version

1.0

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Carsten Urbach

Last Published

December 9th, 2020

Functions in qsimulatR (1.0)

genStateString

genStateString
genComputationalBasis

genComputationalBasis
cnotgate

The CNOT gate
qft

qft
cqft

cqft
plot,qstate,missing-method

plot-qstate
genStateNumber

genStateNumber
swapgate

The SWAP gate
ccqgate

A twice controlled single qubit gate
cqgate

A controlled single qubit gate
X

The X gate
H

The Hadarmard gate
Tgate

The Tgate gate
summary.measurement

Summarize a quantum measurement
sqgate

A single qubit gate
is.bitset

is.bitset
SWAP

The SWAP gate
measure

Method measure
*,ccqgate,qstate-method

times-ccqgate-qstate
truth.table

Method truth.table
hist.measurement

Plot the histogram of a quantum measurement
*,ccnotgate,qstate-method

times-ccnotgate-qstate
Y

The Y gate
export2qiskit

export2qiskit
qstate

The qstate class
*,swapgate,qstate-method

times-swapgate-qstate
*,sqgate,qstate-method

times-sqgate-qstate
cswapgate

The CSWAP gate
qsimulatR

The qsimulatR Package
*,cswapgate,qstate-method

times-cswapgate-qstate
*,cnotgate,qstate-method

times-cnotgate-qstate
*,matrix,qstate-method

times-matrix-qstate
Z

The Z gate
*,complex,qstate-method

times-number-qstate
*,cqgate,qstate-method

times-cqgate-qstate
normalise

normalise
ccnotgate

The CCNOT gate
phase_estimation

phase_estimation
Rx

The Rx gate
CNOT

The CNOT gate
S

The S gate
Rz

The Rz gate
CCNOT

The CCNOT or toffoli gate
Ry

The Ry gate
CSWAP

The CSWAP or Fredkin gate
Id

The identity gate
Ri

The Ri gate