What is QLib?
QLib is a Matlab package intended to provide a wide audience within the QIT community with
the tools needed to accelerate research by
- Quickly and efficiently framing and exploring questions
- Forming intuition through the use of visualizations
- Ruling-out or validating hypothesis through the use of optimization
QLib currently covers most, if not all, of the "textbook" primitives and
provides us with a rich toolset with which to advance knowledge in out field
and engage in "experimental theory".
|

The SU(3) Bloch "hyper-sphere"
|
What's in it? What is QLib capable of?
Current capabilities include:
- Objects of interest
- Classical probability distributions
- Pure states
- Density matrices (including special handling of the separable subspace)
- Unitary (U(n) and SU(n) & Hermitian matrices
All of which with arbitrary dimensionality - any number of particles of any dimension
- Entanglement: PT (Peres Horodecki) test, entanglement, concurrence, negativity, tangle, logarithmic negativity, ent. of formation, relative entanglement, robustness, singlet fraction
- Entropy: Shannon, Von Neumann, linear entropy, relative entropy, participation ratio, purity
- Measurement: Orthogonal (collapse or mixture), POVM, weak
- Basic object handling
- Reorder particles, partial trace, partial transpose
- See objects in the regular representation or as tensor with index per particle
- Convert to/from computational base to SU(n)
- Miscellaneous: Schmidt decomposition, famous states, famous gates
- Distance measures: Hilbert-Schmidt, trace distance, fidelity, Kullback-Leibler, Bures, Bures Angle, Fubini-Study
- Miscellaneous: Majorization, mutual information, spins in 3D
- Strong optimization infrastructure
All of the objects above are points in the appropriate parameter space, enabling search, generation of random elements, etc.
- General purpose utilities:
- Linear algebra (e.g. Gram Schmidt, spanning using base matrices)
- Numerics: approximately compare, epsilon tensor, etc, etc
- Graphics: quickly plot out functions
- Demos: Covering many of QLib's capabilities
- Help: Just type "help qlib" for an overview or get help on every individual function
For a full list of features and capabilities, see here.
How do I get it?
Current version: 1.0 (released July 2007)
See here for installation instructions.
|
|
 QLib_v_1_0.zip
|
How do I learn how to use it?
There are several options:
I want more features / I've found a bug / I have this complex project ...
Great!
Let me know. I'll be happy to help any way I can.
Email me at machness@post.tau.ac.il or see my page for contact details.
Alternatively
- Use this link to submit a bug
- Use this link to request a feature
- To discuss all things QLib with your fellow users and myself, use this forum
(registration is necessary to avoid spamming)
Keeping up to date
QLib has a mailing list!
Emails will be kept in strictest confidence and will only used for QLib-related purposes.
You can subscribe by sending an email with the subject "subscribe" to qlib-news@lists.sourceforge.net,
or by going here.
Attribution
If you use QLib in your research, please add an attribution in the form of the following reference:
S. Machnes, quant-ph/0708.0478
Long-term vision
When we were young, we did arithmetic. Now we use calculators.
When we were a little older, we did integrals and multiplied matrices. Now we use Matlab, Mathematica and Maple
It is my hope that within the foreseeable future, we will have the tools to quickly go through the mechanics
of Quantum Information calculations to concentrate on the creative, the novel and the enlightening.
For the community, by the community
My hope is that QLib would evolve into a group effort, maintained, natured and grown by the Quantum Information community, for the benefit of us all.
For that purpose, I have licensed QLib under the GNU Public License, which basically means everybody is free to
use QLib, and should release any enhancements to the package back to the community (of course code used to conduct the research can remain private).
For more information, see here.
Several community tools are already available:
Forums,
bug tracking,
feature requests
and a mailing list.
|
|