-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
More documentation on the various ways to construct Stab/Destab/MixedDestab objects #258
Comments
I will be delighted to work in this issue! |
That would be great! It is a pretty difficult balance to strike between too much information on a given page and too many separate pages -- this will need some pedagogical effort, maybe a separate page, maybe a lot of reference to that new page, maybe something else |
Indeed, I understand your point. Striking balance is important so that the reader is not overwhelmed by too much information in one page. I will give proper attention to it. |
On the page about choosing Data Structure, https://quantumsavory.github.io/QuantumClifford.jl/stable/datastructures/#Choosing-Appropriate-Data-Structure Would you like to add a flowchart like this? I can modify it as per your requirements if needed. |
These look promising! Are you using mermaid for them? I would prefer to keep the source for diagrams as part of the documentation, so that it is easy to modify. We already do something like that for QuantumSavory: https://quantumsavory.github.io/QuantumSavory.jl/stable/register_interface/ Using mermaid can also help with making the visualization a bit tighter -- there is a lot of empty space in this one. I would suggest doing first the separation between (Mixed)Stabilizer and (Mixed)Destabilizer and only then dealing with the mixed-vs-nonmixed distinction. MixedDestabilizer is probably the main and most useful datastructure, but it is not included here. I think all of these datastructures support projective measurements, definitely including Stabilizer. Some of the descriptions inside of the bottom rectangles does not make much sense to me right now -- "handles commuting operators" and "requires user to check for consistency" and "no canonicalization needed". Explicit descriptions of what these datastructures are would be useful. |
Latest Improvements: flowchart TD
A["<code>Tableau Data Structure Selection</code>"]
class A startEnd
A --> B{"Is the state a stabilizer?"}
class A,B startEnd
B -->|Yes| C{"Pure state?"}
B -->|No| D{"Pure state?"}
class B,C,D decision
C -->|Yes| E["<code>Stabilizer</code>"]
E --> E_desc["<code>Pure stabilizer states<br/>Efficient 'project!' operations</code>"]
class E_desc description
C -->|No| F["<code>MixedStabilizer</code>"]
F --> F_desc["<code>Tracks rank of mixed states<br/>'Project!' on non-Stabilizer commuting operators</code>"]
class F_desc description
D -->|Yes| G["<code>Destabilizer</code>"]
G --> G_desc["<code>Pure stabilizer states<br/>Tracks destabilizers<br/>Efficient 'project!' operations</code>"]
class G_desc description
D -->|No| H["<code>MixedDestabilizer<code>"]
H --> H_desc["<code>Tracks destabilizers<br/>Tracks 'logical' operators<br/>Efficient 'project!' operations</code>"]
class H_desc description
|
To be consistent with other member packages, I think it's better to use the default scheme instead of the ones presented. |
A friend asked me over email something that should probably be added to the documentation (after being polished)
My answer was
The text was updated successfully, but these errors were encountered: