Quantum Measurement Properties API

Quantum Measurement Properties

graphcalc.quantum.measurement_properties.is_povm(measurement: QuantumMeasurement, *, tol: float | None = None) bool[source]

Return whether the measurement is a valid POVM.

Parameters:
  • measurement (QuantumMeasurement) – Input measurement.

  • tol (float | None, default=None) – Numerical tolerance used in positivity and completeness checks. If omitted, measurement.tol is used.

Notes

A POVM is a family of positive semidefinite effects (E_a) satisfying

sum_a E_a = I.

In this module, the effects are derived from the measurement operators by E_a = M_a^dagger M_a.

graphcalc.quantum.measurement_properties.is_projective_measurement(measurement: QuantumMeasurement, *, tol: float | None = None) bool[source]

Return whether the measurement is projective.

Parameters:
  • measurement (QuantumMeasurement) – Input measurement.

  • tol (float | None, default=None) – Numerical tolerance used in matrix comparisons. If omitted, measurement.tol is used.

Notes

This function uses the standard finite-dimensional criterion that the effects form a family of orthogonal projections:

  • E_a = E_a^dagger

  • E_a^2 = E_a

  • E_a E_b = 0 for a != b

  • sum_a E_a = I

Since effects in QuantumMeasurement are already of the form M_a^dagger M_a, this test is performed on those effects.

graphcalc.quantum.measurement_properties.is_rank_one_measurement(measurement: QuantumMeasurement, *, tol: float | None = None) bool[source]

Return whether every nonzero effect has rank one.

Parameters:
  • measurement (QuantumMeasurement) – Input measurement.

  • tol (float | None, default=None) – Numerical tolerance used in rank computation. If omitted, measurement.tol is used.

Notes

In this module, a rank-one measurement means that each nonzero POVM effect has matrix rank one. Zero effects, if present, are ignored for this test.