cirq.targeted_left_multiply

Left-multiplies the given axes of the target tensor by the given matrix.

Note that the matrix must have a compatible tensor structure.

For example, if you have an 6-qubit state vector `input_state` with shape (2, 2, 2, 2, 2, 2), and a 2-qubit unitary operation `op` with shape (2, 2, 2, 2), and you want to apply `op` to the 5'th and 3'rd qubits within `input_state`, then the output state vector is computed as follows:

``````output_state = cirq.targeted_left_multiply(op, input_state, [5, 3])
``````

This method also works when the right hand side is a matrix instead of a vector. If a unitary circuit's matrix is `old_effect`, and you append a CNOT(q1, q4) operation onto the circuit, where the control q1 is the qubit at offset 1 and the target q4 is the qubit at offset 4, then the appended circuit's unitary matrix is computed as follows:

``````new_effect = cirq.targeted_left_multiply(
left_matrix=cirq.unitary(cirq.CNOT).reshape((2, 2, 2, 2)),
right_target=old_effect,
target_axes=[1, 4])
``````

`left_matrix` What to left-multiply the target tensor by.
`right_target` A tensor to carefully broadcast a left-multiply over.
`target_axes` Which axes of the target are being operated on.
`out` The buffer to store the results in. If not specified or None, a new buffer is used. Must have the same shape as right_target.

The output tensor.

`ValueError` If `out` is either `right_target` or `left_matrix`.

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]