qml.labs.dla.orthonormalize

orthonormalize(basis)[source]

Orthonormalize a list of basis vectors.

Parameters:

basis (Iterable[Union[PauliSentence, Operator, np.ndarray]]) – List of basis vectors.

Returns:

Orthonormalized basis vectors.

Return type:

np.ndarray

See also

trace_inner_product(), orthonormalize()

Example

>>> from pennylane.labs.dla import orthonormalize, check_orthonormal
>>> from pennylane.pauli import trace_inner_product
>>> ops = [qml.X(0), qml.X(0) + qml.Y(0), qml.Y(0) + qml.Z(0)]
>>> check_orthonormal(ops, trace_inner_product)
False
>>> ops_orth = orthonormalize(ops)
>>> check_orthonormal(ops_orth, trace_inner_product)
True

This works also for lists of dense matrices as inputs >>> ops_m = [qml.matrix(op) for op in ops] >>> ops_m_orth = orthonormalize(ops_m) >>> ops_m_orth.shape (3, 2, 2)