Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vitormarquesr/qwalkr

qwalkr: Handle Continuous-Time Quantum Walks with R
https://github.com/vitormarquesr/qwalkr

linear-algebra probability-theory quantum-computing quantum-walk r statistics

Last synced: about 1 month ago
JSON representation

qwalkr: Handle Continuous-Time Quantum Walks with R

Awesome Lists containing this project

README

        

---
output: github_document
---

```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```

# qwalkr qwalkr website

[![R-CMD-check](https://github.com/vitormarquesr/qwalkr/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/vitormarquesr/qwalkr/actions/workflows/R-CMD-check.yaml)
[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental)
[![CRAN status](https://www.r-pkg.org/badges/version/qwalkr)](https://CRAN.R-project.org/package=qwalkr)
[![Downloads](https://cranlogs.r-pkg.org/badges/qwalkr)](https://cran.r-project.org/package=qwalkr)

## Overview

qwalkr is a numerical suite for investigating quantum walks, providing estimates of matrices of interests that help you obtain insight into the evolution of such systems:

**Quantum Walks**

* `ctqwalk()` creates a continuous-time quantum walk.

**Investigate the Hamiltonian**

* `get_eigspace()` obtains the eigenvectors associated with an eigenspace.
* `get_eigproj()` obtains the orthogonal projector associated with an eigenspace.
* `get_eigschur()`obtains the Schur product of orthogonal projectors.
* `act_eigfun()` applies a function to the Hamiltonian.

**Time Evolution**

* `unitary_matrix()` returns the unitary time evolution operator at a given time.
* `mixing_matrix()` returns the mixing matrix at a given time.

**Average Evolution**

* `avg_matrix()` returns the average mixing matrix.
* `gavg_matrix()` returns the generalized average mixing matrix under a probability distribution.

## Installation

You can install the stable version of `qwalkr` from CRAN:

```{r, eval=FALSE}
install.packages("qwalkr")
```

For the development version, you can install from Github like so:

```{r, eval=FALSE}
# install.packages("devtools")
devtools::install_github("vitormarquesr/qwalkr")
```

## Usage

```{r}
library(qwalkr)

K3 <- rbind(c(0, 1, 1),
c(1, 0, 1),
c(1, 1, 0))

w <- ctqwalk(hamiltonian = K3)

w

get_eigproj(w, id=2)

unitary_matrix(w, t=pi/3)

mixing_matrix(w, t=pi/3)

avg_matrix(w)

```
## Getting Help

For further reference on the usability, check the vignette or the website of the package.

If you happen to encounter a bug, please file an issue on GitHub.