Gell-Mann matrix
numqi.gellmann
numqi.gellmann.gellmann_matrix(i, j, d)
get the Gell-Mann matrix wiki-link/Gell-Mann-matrices wiki-link/Generalizations-of-Pauli-matrices github-link/CQuIC/pysme arxiv-link/0806.1174
normalization condition: Tr(Mi Mj)=2 delta_ij
Parameters:
Name | Type | Description | Default |
---|---|---|---|
i
|
int
|
row indices of Gell-Mann matrix, 0<=i<d |
required |
j
|
int
|
column indices of Gell-Mann matrix, 0<=j<d |
required |
d
|
int
|
dimension of Gell-Mann matrix |
required |
Returns:
Name | Type | Description |
---|---|---|
ret |
ndarray
|
Gell-Mann matrix. if |
numqi.gellmann.all_gellmann_matrix(d, /, tensor_n=1, with_I=True)
get all Gell-Mann matrices
Parameters:
Name | Type | Description | Default |
---|---|---|---|
d
|
int
|
dimension of Gell-Mann matrix |
required |
tensor_n
|
int
|
tensor product of Gell-Mann matrices |
1
|
with_I
|
bool
|
include identity matrix or not. if |
True
|
Returns:
Name | Type | Description |
---|---|---|
ret |
ndarray
|
Gell-Mann matrices. Ordering: PauliX, PauliY, PauliZ, I.
if |
numqi.gellmann.matrix_to_gellmann_basis(A)
convert a matrix to Gell-Mann basis
ordering: PauliX, PauliY, PauliZ, I
Parameters:
Name | Type | Description | Default |
---|---|---|---|
A
|
(ndarray, Tensor)
|
matrix, support batch, |
required |
Returns:
Name | Type | Description |
---|---|---|
ret |
(ndarray, Tensor)
|
vector in Gell-Mann basis, |
numqi.gellmann.gellmann_basis_to_matrix(vec)
convert a vector in Gell-Mann basis to a matrix
ordering: PauliX, PauliY, PauliZ, I
Parameters:
Name | Type | Description | Default |
---|---|---|---|
vec
|
(ndarray, Tensor)
|
vector in Gell-Mann basis, |
required |
Returns:
Name | Type | Description |
---|---|---|
ret |
(ndarray, Tensor)
|
matrix, |
numqi.gellmann.dm_to_gellmann_basis(dm, with_rho0=False)
convert density matrix to a vector in Gell-Mann basis
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dm
|
(ndarray, Tensor)
|
density matrix, 2d array (support batch) |
required |
with_rho0
|
bool
|
include rho0 or not. if |
False
|
Returns:
Name | Type | Description |
---|---|---|
ret |
(ndarray, Tensor)
|
real vector in Gell-Mann basis, |
numqi.gellmann.gellmann_basis_to_dm(vec)
convert vector in Gell-Mann basis to a density matrix
Parameters:
Name | Type | Description | Default |
---|---|---|---|
vec
|
(ndarray, Tensor)
|
vector in Gell-Mann basis, |
required |
Returns:
Name | Type | Description |
---|---|---|
ret |
(ndarray, Tensor)
|
density matrix, |
numqi.gellmann.dm_to_gellmann_norm(dm)
get the norm of a density matrix in Gell-Mann basis, For traceless hermitian matrix, the norm is the Frobenius norm divided by sqrt(2)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dm
|
ndarray
|
density matrix, 2d array (support batch) |
required |
Returns:
Name | Type | Description |
---|---|---|
ret |
ndarray
|
norm of dm |
numqi.gellmann.get_density_matrix_distance2(rho, sigma)
Get the distance between two density matrices in Gell-Mann basis. Equivalent to the Frobenius distance over 2.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rho
|
ndarray
|
density matrix, 2d array |
required |
sigma
|
ndarray
|
density matrix, 2d array |
required |
Returns:
Name | Type | Description |
---|---|---|
ret |
float
|
distance |