random_non_hermitian

random_non_hermitian(N, M=None, sings=None, K=None, srange=None, sparsity=None, trunc=None)[source]

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

Parameters
  • N (int) – size of matrix

  • M (int) – size of matrix

  • sings (Union(list, tuple, np.ndarray)) – list of N singular values. Overrides K, srange.

  • K (Union(float, list, tuple)) – condition number. Either use only condition number K or list/tuple of (K, lmin). Where lmin specifies the smallest singular value.

  • srange (Union(list, tuple, nd.ndarray)) – [min, max] list for singular value range, min >= 0. (default=[0, 1]).

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

  • trunc (int) – limit of Pauli matrices.

Returns

random matrix

Return type

np.ndarray

Raises:

ValueError: invalid matrix