Source code for toqito.state_props.l1_norm_coherence

"""Computes the l1-norm of coherence of a quantum state."""

import numpy as np

from toqito.matrix_ops import to_density_matrix


[docs] def l1_norm_coherence(rho: np.ndarray) -> float: r"""Compute the l1-norm of coherence of a quantum state [@Rana_2017_Log]. The \(\ell_1\)-norm of coherence of a quantum state \(\rho\) is defined as \[ C_{\ell_1}(\rho) = \sum_{i \not= j} \left|\rho_{i,j}\right|, \] where \(\rho_{i,j}\) is the \((i,j)^{th}\)-entry of \(\rho\) in the standard basis. The \(\ell_1\)-norm of coherence is the sum of the absolute values of the sum of the absolute values of the off-diagonal entries of the density matrix `rho` in the standard basis. This function was adapted from QETLAB. Examples: The largest possible value of the \(\ell_1\)-norm of coherence on \(d\)-dimensional states is \(d-1\), and is attained exactly by the "maximally coherent states": pure states whose entries all have the same absolute value. ```python exec="1" source="above" from toqito.state_props import l1_norm_coherence import numpy as np # Maximally coherent state. v = np.ones((3,1))/np.sqrt(3) print(l1_norm_coherence(v)) ``` Args: rho: A matrix or vector. Returns: The l1-norm coherence of `rho`. """ rho = to_density_matrix(rho) return np.sum(np.sum(np.abs(rho))) - np.trace(rho)