pygsti.algorithms.germselection.test_germs_list_completeness

pygsti.algorithms.germselection.test_germs_list_completeness#

test_germs_list_completeness(model_list, germs_list, score_func, threshold, float_type=None, comm=None, num_gauge_params=None)#

Check to see if the germs_list is amplificationally complete (AC).

Checks for AC with respect to all the Models in model_list, returning the index of the first Model for which it is not AC or -1 if it is AC for all Models.

Parameters:
  • model_list (list) – A list of models to test. Often this list is a neighborhood (“cloud”) of models around a model of interest.

  • germs_list (list) – A list of the germ Circuit objects (the “germ set”) to test for completeness.

  • score_func ({'all', 'worst'}) – Sets the objective function for scoring the eigenvalues. If ‘all’, score is sum(1/eigval_array). If ‘worst’, score is 1/min(eigval_array).

  • threshold (float, optional) – An eigenvalue of jacobian^T*jacobian is considered zero and thus a parameter un-amplified when its reciprocal is greater than threshold. Also used for eigenvector degeneracy testing in twirling operation.

  • float_type (numpy dtype object, optional) – Numpy data type to use for floating point arrays. Automatically resolved based on whether the model’s basis is real-valued. Can be manually specified by user, which can be useful for controlling memory footprint.

  • comm (mpi4py.MPI.Comm, optional) – When not None, an MPI communicator for distributing the computation across multiple processors.

  • num_gauge_params (int, optional (default None)) – A optional kwarg for specifying the number of gauge parameters. Specifying this if already precomputed can save on computation.

Returns:

The index of the first model in model_list to fail the amplficational completeness test. Returns -1 if germ set is AC for all tested models.

Return type:

int