Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 21 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# monoprop
> because your operators deserve to propagate at escape velocity

[![Documentation](https://github.com/Algorithmiq/monoprop/actions/workflows/docpages.yml/badge.svg)](https://docs.algorithmiq.fi/monoprop)
[![Documentation](https://github.com/Algorithmiq/monoprop/actions/workflows/docpages.yml/badge.svg)](https://docs.monoprop.algorithmiq.tech/)
[![Test monoprop](https://github.com/Algorithmiq/monoprop/actions/workflows/test.yml/badge.svg)](https://github.com/Algorithmiq/monoprop/actions/workflows/test.yml)
[![codecov](https://codecov.io/gh/Algorithmiq/monoprop/graph/badge.svg?token=1GgmPnNUxk)](https://codecov.io/gh/Algorithmiq/monoprop)

Expand All @@ -18,9 +18,20 @@ the operator across cores and across nodes with MPI.

## Benchmarks

Check out the comparison of `monoprop` against other open-source Pauli propagation engines in [benches/third_party]!
![Runtime Benchmark](benches/third_party/pauli_prop/runtime.png)
![Memory Benchmark](benches/third_party/pauli_prop/memory.png)
Check out the comparison of `monoprop` against other open-source Pauli propagation engines:

<p align="center">
<img src="docs/public/benchmarks/pauli_scaling_runtime.png" alt="PP Runtime Benchmark" width="49%" />
<img src="docs/public/benchmarks/pauli_scaling_memory.png" alt="PP Memory Benchmark" width="49%" />
</p>

and against [`MajoranaPropagation.jl`](https://github.com/SparqleSim/MajoranaPropagation.jl):

<p align="center">
<img src="docs/public/benchmarks/majorana_results.png" alt="MP Benchmark" width="50%" />
</p

Head to our [benchmarks page](https://docs.monoprop.algorithmiq.tech/benchmarks) for more details.

📖 **Full documentation:** <https://docs.algorithmiq.fi/monoprop>

Expand All @@ -43,7 +54,9 @@ from monoprop import MajoranaPropagator, ExpGate, Circuit, MajoranaOperator
# Observable m_0 m_1 m_2 m_4, evolved under one Majorana rotation exp(-i θ/2 · M_γ),
# generated by M_γ = i*m_4 m_5.
observable = MajoranaOperator({(0, 1, 2, 4): 1.0}, num_modes=8)
gate = ExpGate(MajoranaOperator({(4, 5): 1j}, num_modes=8)) # Hermitian generator: weight-2 => imaginary coeff
gate = ExpGate(
MajoranaOperator({(4, 5): 1j}, num_modes=8)
) # Hermitian generator: weight-2 => imaginary coeff
circuit = Circuit(gates=[gate], parameters=[0.5]) # one angle value per gate

mp = MajoranaPropagator.from_circuit(circuit, observable, cutoff=16)
Expand All @@ -56,7 +69,9 @@ Qubit (Pauli) operators are simulated with `PauliPropagator`. Here we back-propa
```python
from monoprop import PauliPropagator, ExpGate, Circuit, PauliOperator, Pauli

observable = PauliOperator({"ZZ": 1.0}, num_qubits=2) # num_qubits lives on the observable
observable = PauliOperator(
{"ZZ": 1.0}, num_qubits=2
) # num_qubits lives on the observable
gate = ExpGate(PauliOperator({Pauli("X", 0): 1.0}, num_qubits=2)) # exp(-i θ/2 · X_0)
circuit = Circuit(gates=[gate], parameters=[0.5]) # one angle value per gate

Expand Down
Loading