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.