Stellar Decomposition¶
Returns the core and operator triples for the formal stellar decomposition. |
|
Physical stellar decomposition rho = rho_core >> channel. |
|
Returns |
formal_stellar_triples¶
- mrmustard.physics.stellar.formal_stellar_triples(triple, M)[source]¶
Returns the core and operator triples for the formal stellar decomposition. It decomposes any block Bargmann triple into two triples where the first has the core property on the first M indices and the second is an operator that acts on the first M indices to reconstruct the original triple.
- Parameters:
triple (tuple[mrmustard.utils.typing.ComplexMatrix, mrmustard.utils.typing.ComplexVector, mrmustard.utils.typing.ComplexScalar]) – The Bargmann triple (A, b, c) of the original state.
M (int) – The number of core indices.
- Returns:
The Bargmann triple (A, b, c) of the core state. op_triple: The Bargmann triple (A, b, c) of the operator in out-in ordering.
- Return type:
core_triple
physical_stellar_triples_dm¶
- mrmustard.physics.stellar.physical_stellar_triples_dm(triple, M)[source]¶
Physical stellar decomposition rho = rho_core >> channel.
It decomposes a triple parametrizing a DM into a Gaussian core DM and a Gaussian channel that acts on the core modes to reconstruct the original DM. This is always possible if M is at least half of the total number of modes. If M is fewer than half, the following rank condition must be satisfied:
\[\mathrm{rank}(R^\top R + \sigma^\top \sigma) \leq M\]where
\[\begin{split}A = \begin{bmatrix} A_m & R \\ R^\top & A_n \end{bmatrix}\end{split}\]- Parameters:
triple (tuple[mrmustard.utils.typing.ComplexMatrix, mrmustard.utils.typing.ComplexVector, mrmustard.utils.typing.ComplexScalar]) – The Bargmann triple (A, b, c) of the original state.
M (int) – The number of core modes.
- Returns:
The Bargmann triple (A, b, c) of the core state. phi_triple: The Bargmann triple (A, b, c) of the channel.
- Return type:
core_triple
- Raises:
ValueError – If the rank condition is not satisfied.
physical_stellar_triples_ket¶
- mrmustard.physics.stellar.physical_stellar_triples_ket(triple, M)[source]¶
Returns
coreandUfrom the physical stellar decompositionpsi = core >> U. Herecoreis a Gaussian ket on M+N modes with the core property on the first M modes, andUis an M-mode Gaussian unitary.- Parameters:
triple (tuple[mrmustard.utils.typing.ComplexMatrix, mrmustard.utils.typing.ComplexVector, mrmustard.utils.typing.ComplexScalar]) – The Bargmann triple (A, b, c) of the original state.
M (int) – The number of core modes.
- Returns:
The Bargmann triple (A, b, c) of the core state. U_triple: The Bargmann triple (A, b, c) of the unitary.
- Return type:
core_triple