Skip to content

Commit

Permalink
Update explanation
Browse files Browse the repository at this point in the history
  • Loading branch information
hanakl committed Dec 10, 2024
1 parent b11a679 commit d7ebad3
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 1 deletion.
2 changes: 2 additions & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ function main()
"Properties and Backgrounds" => "propbackgrounds.md",
"Symbolic Expressions" => "symbolics.md",
"Tagging and Querying" => "tag_query.md",
"Backend Simulatiors" => "backendsimulator.md",
"Discrete Event Simulator" => "discreteeventsimulator.md",
"Visualizations" => "visualizations.md",
],
"How-To Guides" => [
Expand Down
16 changes: 16 additions & 0 deletions docs/src/backendsimulator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# [Backend Simulators](@id backend)

```@meta
DocTestSetup = quote
using QuantumSavory
end
```
QuantumSavory supports two backend simulators: `QuantumClifford` and `QuantumOptics`.

# QuantumClifford - Stabilizer Formalism

QuantumClifford leverages stabilizer states and Clifford gates—highly structured operations that can be simulated more efficiently than arbitrary quantum processes. It uses the tableaux formalism with the destabilizer improvements, as implemented in the [`QuantumClifford`](https://qc.quantumsavory.org/stable/)library. Because these operations remain within the stabilizer subtheory, simulations can often run in polynomial time, enabling very fast computations. However, adding non-Clifford elements breaks this efficiency, making the simulation more complex and slower.

# QuantumOptics - State Vector Formalism

QuantumOptics uses a fully general state vector (wavefunction) representation. This approach, provided by the ['QuantumOptics'](https://qojulia.org/) library, can handle any quantum operation or state without the structural restrictions of stabilizer methods. While this generality is powerful, it quickly becomes computationally expensive as the number of qubits grows—memory and time requirements scale exponentially. Consequently, simulating large systems with the state vector formalism becomes impractically slow compared to stabilizer-based methods.
2 changes: 1 addition & 1 deletion docs/src/howto/repeatergrid/repeatergrid.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ The Swapper Protocol is initialized with a custom predicate function which is th

This predicate function encodes most of the "logic" a local node will be performing.

The custom predicate function shown above is parametrized with `net` and `c_node` along with the keyword argument `low`, when initializing the Swapper Protocol. This predicate function `Int->Bool` selects the target remote nodes for which a swap is appropriate. The arguments are:
The custom predicate function shown above is parameterized with `net` and `c_node` along with the keyword argument `low`, when initializing the Swapper Protocol. This predicate function `Int->Bool` selects the target remote nodes for which a swap is appropriate. The arguments are:

- `net`: The network of register nodes representing the graph structure, an instance of `RegisterNet`.

Expand Down

0 comments on commit d7ebad3

Please sign in to comment.