kronecker_product_list

Graph.kronecker_product_list(operators, *, name=None)

Calculate the Kronecker product between a list of operators.

Parameters:
  • operators (list[Tensor or np.ndarray]) – The list of operators. It must contain at least one operator. The operators must be at least 2D and can contain leading batch dimensions.

  • name (str or None, optional) – The name of the node.

Returns:

The Kronecker product of the list of operators. The Hilbert space of the output is equal to the tensor product of the Hilbert spaces of all the given operators.

Return type:

Tensor

See also

Graph.embed_operators

Embed operators into a larger Hilbert space.

Graph.kron

Kronecker product between two objects.

Graph.pauli_kronecker_product

Embed Pauli matrices into a larger Hilbert space.

Examples

>>> number_op = graph.number_operator(3)
>>> sigma_x = graph.pauli_matrix("X")
>>> graph.kronecker_product_list([number_op, sigma_x], name="N0X1")
<Tensor: name="N0X1", operation_name="kronecker_product_list", shape=(6, 6)>
>>> result = bo.execute_graph(graph=graph, output_node_names="N0X1")
>>> result["output"]["N0X1"]["value"]
array([[0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j],
       [0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j],
       [0.+0.j, 0.+0.j, 0.+0.j, 1.+0.j, 0.+0.j, 0.+0.j],
       [0.+0.j, 0.+0.j, 1.+0.j, 0.+0.j, 0.+0.j, 0.+0.j],
       [0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 2.+0.j],
       [0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 2.+0.j, 0.+0.j]])