Quantum Channel Invariants API

Quantum Channel Invariants

graphcalc.quantum.channel_invariants.choi_eigenvalues(channel: QuantumChannel) ndarray[source]

Return the eigenvalues of the Hermitian part of the Choi matrix.

Parameters:

channel (QuantumChannel) – Input channel.

Notes

For completely positive maps, these are the eigenvalues of the Choi matrix. Very small values within the channel tolerance are rounded to zero.

graphcalc.quantum.channel_invariants.choi_rank(channel: QuantumChannel) int[source]

Return the rank of the Choi matrix.

Parameters:

channel (QuantumChannel) – Input channel.

Notes

This is the matrix rank of the Choi operator, computed with the numerical tolerance built into the channel object.

graphcalc.quantum.channel_invariants.input_dimension(channel: QuantumChannel) int[source]

Return the input Hilbert-space dimension of the channel.

graphcalc.quantum.channel_invariants.kraus_rank(channel: QuantumChannel) int[source]

Return the Kraus rank of the channel.

Parameters:

channel (QuantumChannel) – Input channel.

Notes

For finite-dimensional completely positive maps, the Kraus rank equals the rank of the Choi matrix. This function is therefore an alias for choi_rank(channel) provided for mathematical convenience.

graphcalc.quantum.channel_invariants.output_dimension(channel: QuantumChannel) int[source]

Return the output Hilbert-space dimension of the channel.