random_hermitian

random_hermitian(N, eigs=None, K=None, eigrange=None, sparsity=None, trunc=None)[source]

Generate random hermitian (sparse) matrix with given properties. Sparsity is achieved by truncating Pauli matrices. Sparsity settings alternate the eigenvalues due to truncation.

Parameters
  • N (int) – size of matrix

  • eigs (Union(list, tuple, np.ndarray)) – list of N eigenvalues. Overrides K, eigrange

  • K (Union(float, list, tuple)) – condition number. Either use only condition number K or list/tuple of (K, lmin) or (K, lmin, sgn). Where lmin is the smallest eigenvalue and sign +/- 1 specifies if eigenvalues can be negative.

  • eigrange (Union(list, tuple, nd.ndarray)) – [min, max] list for eigenvalue range. (default=[0, 1])

  • trunc (int) – limit for number of Pauli matrices.

  • sparsity (float) – sparsity of matrix. Overrides trunc.

Returns

hermitian matrix

Return type

np.ndarray

Raises

ValueError – invalid matrix