outer_product
- Graph.outer_product(x, y, *, name=None)
Calculate the outer product of two vectors.
The vectors can have different last dimensions but must have broadcastable batch dimensions.
- Parameters
- Returns
The outer product of two vectors of shape
(..., M, N)
.- Return type
See also
expectation_value
Expectation value of an operator with respect to a state.
inner_product
Inner product of two vectors.
trace
Trace of an object.
Notes
The outer product of two complex vectors \(\mathbf{x}\) and \(\mathbf{y}\) is defined as
\[(\mathbf{x} \otimes \mathbf{y})_{ij} = x_{i} y^\ast_{j}.\]For more information about the outer product, see outer product on Wikipedia.
Examples
>>> graph.outer_product(np.array([1j, 1j]), np.array([1j, -1j]), name="outer") <Tensor: name="outer", operation_name="outer_product", shape=(2, 2)> >>> result = qctrl.functions.calculate_graph(graph=graph, output_node_names=["outer"]) >>> result.output["outer"]["value"] array([[1.+0.j, -1.+0.j], [1.+0.j, -1.+0.j]])
>>> graph.outer_product(np.ones((3,1,2), np.ones(2,2), name="outer") <Tensor: name="outer", operation_name="outer_product", shape=(3, 2, 2, 2)> >>> result = qctrl.functions.calculate_graph(graph=graph, output_node_names=["outer"]) >>> result.output["outer"]["value"] array([[[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]])