pygsti.algorithms.germselection.minamide_style_inverse_trace

pygsti.algorithms.germselection.minamide_style_inverse_trace#

minamide_style_inverse_trace(update, orig_e, U, proj_U, force_rank_increase=False)#

This function performs a low-rank update to the components of the pseudo inverse of a matrix relevant to the calculation of that matrix’s updated trace. It takes as input a symmetric update of the form: A@A.T, in other words a symmetric rank-decomposition of the update matrix. Since the update is symmetric we only pass as input one half (i.e. we only need A, since A.T in numpy is treated simply as a different view of A). We also pass in the original spectrum as well as a projector onto the complement of the column space of the original matrix’s eigenvector matrix.

Based on an update formula for psuedoinverses by minamide combined with a result on updating compact SVDs by M. Brand.

input:

updatendarray

symmetric low-rank update to perform. This is the first half the symmetric rank decomposition s.t. update@update.T= the full update matrix.

orig_endarray

Spectrum of the original matrix. This is a 1-D array.

proj_Undarray

Projector onto the complement of the column space of the original matrix’s eigenvectors.

updated_tracefloat

Value of the trace of the updated pseudoinverse matrix.

updated_rankint

total rank of the updated matrix.

rank_increase_flagbool

a flag that is returned to indicate is a candidate germ failed to amplify additional parameters. This indicates things short circuited and so the scoring function should skip this germ.