>>> duration = np.pi
>>> initial_state = np.array([1, 0])
>>> sigma_x = np.array([[0, 1], [1, 0]])
>>> time = graph.identity_stf()
>>> gaussian_drive = graph.exp(-(time ** 2))
>>> hamiltonian = gaussian_drive * sigma_x * np.sqrt(np.pi) / 2
>>> graph.time_evolution_operators_stf(
... hamiltonian=hamiltonian,
... sample_times=[duration],
... evolution_times=np.linspace(0, duration, 200),
... name="unitaries",
... )
<Tensor: name="unitaries", operation_name="time_evolution_operators_stf", shape=(1, 2, 2)>
>>> result = qctrl.functions.calculate_graph(graph=graph, output_node_names=["unitaries"])
>>> result.output["unitaries"]["value"].dot(initial_state)
array([[0.70711169 + 0.0j, 0.0 - 0.70710187j]])