From d7ebad365f0f8291a79ffd4bfebf70b08615d252 Mon Sep 17 00:00:00 2001 From: hanakl Date: Tue, 10 Dec 2024 08:02:32 -0800 Subject: [PATCH] Update explanation --- docs/make.jl | 2 ++ docs/src/backendsimulator.md | 16 ++++++++++++++++ docs/src/howto/repeatergrid/repeatergrid.md | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/make.jl b/docs/make.jl index 22ef6f8a..80e5fa61 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -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" => [ diff --git a/docs/src/backendsimulator.md b/docs/src/backendsimulator.md index e69de29b..887cca37 100644 --- a/docs/src/backendsimulator.md +++ b/docs/src/backendsimulator.md @@ -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. \ No newline at end of file diff --git a/docs/src/howto/repeatergrid/repeatergrid.md b/docs/src/howto/repeatergrid/repeatergrid.md index 5f96d907..648aa076 100644 --- a/docs/src/howto/repeatergrid/repeatergrid.md +++ b/docs/src/howto/repeatergrid/repeatergrid.md @@ -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`.