diff --git a/README.md b/README.md index 4393c79..585a8a9 100644 --- a/README.md +++ b/README.md @@ -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) @@ -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: + +

+ PP Runtime Benchmark + PP Memory Benchmark +

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

+ MP Benchmark +

@@ -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) @@ -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