Qulib is a library we have been developing in our group for dealing with simple Quantum Information tasks in Mathematica. The idea is based only on very simple (and non-invasive) functions, but which are used all the time and may therefore be useful.

*Some useful features are:*

- Easy functions for taking the partial trace, outer products, kronecker products, etc.

- Functions information-theoretic quantitites, such as von Neumann entropy, concurrence, fidelity, etc.

- Tools for solving Lindblad master equations using vectorization.

- Functions for loading Pauli operators for multiple qubits, bosonic/fermionic operators, etc.

- Properties and algebra of Gaussian states.

- Quantum Metrology with qubits and Gaussian states.

*Download:*

You can download qulib as a

- Mathematica notebook (.nb): contains usage examples.

- Mathematica package (.m): useful for installing qulib.

Installation instructions:

If you want to use the functions in qulib just once, simply download the .nb and run the notebook.

Otherwise, if you want to have qulib installed in Mathematica, so that it’s easier to load it, download the .m file above and save it somewhere you remember.

- Then open Mathematica and type $UserBaseDirectory.

- This should print out a directory such as "/Users/gtlandi/Library/Mathematica”.

- Go to this directory and, in the sub-folder “Kernel", open the file init.m.

- In this file you can put any command that you want to evaluate every time Mathematica is initialized.

- If you want to initialize qulib automatically every time then copy the following command:

*Quiet[Needs["qulib`", "/home/user/folder/qulib.m"]]*

where the directory *"/home/user/folder/qulib.m” *means the path directory where your qulib file is saved. If you don't know what this path is, create and save an empty notebook on the same folder as qulib.m and then type NotebookDirectory[]. This will print out the correct directory.

- If you don't want to initialize qulib every time Mathematica opens, type the following command in the init.m file

*loadQulib[]:=Quiet[Needs["qulib`", "/home/user/qulib.m"]]*

Then, when you want to load qulib, just type *loadQulib[] *in any notebook.