>>> sigma_x = np.array([[0, 1], [1, 0]])
>>> hamiltonian = sigma_x * graph.pwc_signal(
... duration=1, values=np.pi * np.array([0.25, 1, 0.25])
... )
>>> unitaries = graph.time_evolution_operators_pwc(
... hamiltonian=hamiltonian, sample_times=np.linspace(0, 1, 10)
... )
>>> graph.unitary_infidelity(unitary_operator=unitaries, target=np.eye(2), name="infidelities")
<Tensor: name="infidelities", operation_name="unitary_infidelity", shape=(10,)>
>>> result = qctrl.functions.calculate_graph(
... graph=graph, output_node_names=["infidelities"]
... )
>>> result.output["infidelities"]["value"]
array([0. , 0.00759612, 0.03015369, 0.0669873 , 0.32898993,
0.67101007, 0.9330127 , 0.96984631, 0.99240388, 1. ])