qrisp.dot#
- dot(a, b, out=None)[source]#
Port of the popular numpy function with similar semantics.
- Parameters:
- aQuantumArray or QuantumFloat or numpy.ndarray
The first operand.
- bQuantumArray or QuantumFloat or numpy.ndarray
The second operand.
- outQuantumArray, optional
The QuantumArray to store the output in. The default is None.
- Returns:
- QuantumArray
The result as described in the numpy documentation.
Examples
We create two QuantumArrays and apply dot as a function performing matrix-vector multiplication.
>>> import numpy as np >>> from qrisp import QuantumFloat, QuantumArray, dot >>> qf = QuantumFloat(5,0, signed = False) >>> q_arr_0 = QuantumArray(qf) >>> q_arr_1 = QuantumArray(qf) >>> q_arr_0[:] = [2,3] >>> q_arr_1[:] = 2*np.eye(2) >>> res = dot(q_arr_0, q_arr_1) >>> print(res) {OutcomeArray([[4, 6]]): 1.0}
Scalar-product:
>>> q_arr_0 = QuantumArray(qf) >>> q_arr_1 = QuantumArray(qf) >>> q_arr_0[:] = [3,4,5] >>> q_arr_1[:] = [1,1,1] >>> res = dot(q_arr_0, q_arr_1) >>> print(res) {12: 1.0}
Matrix-matrix multiplication
>>> qf = QuantumFloat(3,0, signed = True) >>> q_arr_0 = QuantumArray(qf) >>> q_arr_1 = QuantumArray(qf) >>> q_arr_0[:] = [[0,1],[1,0]] >>> q_arr_1[:] = [[1,0],[0,-1]] >>> res = dot(q_arr_0, q_arr_1) >>> print(res) {OutcomeArray([[ 0, -1], [ 1, 0]]): 1.0}