Skip to content
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

Implement bases whose elements have finite trace #11

Merged
merged 26 commits into from
Mar 2, 2020

Conversation

thangleiter
Copy link
Member

Having an operator basis whose only traceless element is proportional to the identity is not strictly necessary (it only simplifies a few calculations). However, giving up this restriction allows for separating different subspaces using the bases.

When dealing with different subspaces, one might want to generate an
operator basis that completely separates into elements that live
exclusively on the one and elements that live exclusively on the other
subspace. This is not possible when forcing all operator bases to have
an identity element (and thus the remaining elements traceless). The
core feature affected by this change is the way a complete basis is
generated from partial orthogonal elements. A switch now controls
whether a traceless or non-traceless is generated. Additionally, the
checks at the end of _full_from_partial() have been removed. The n
elements from which the basis is constructed now are the first n of
the final basis.

Including non-traceless bases also shone light on a bug in
calculate_error_transfer_matrix for a single qubit and the Pauli basis,
which did not include contributions from identity elements in case of a
cross-correlated spectrum. This induces non-unitality.
This is a major time sink in the calculation of the control matrix using
calculate_control_matrix_from_scratch(). Computing real and imaginary
part separately and writing to a preallocated array should make the
whole calculation faster by a factor of two.
In this case, additional terms need to be considered.
@thangleiter thangleiter merged commit 7c7e8c1 into master Mar 2, 2020
@thangleiter thangleiter deleted the feature/traceless_basis branch March 2, 2020 09:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant