qrisp.inplace_matrix_app#
- inplace_matrix_app(vector, matrix)[source]#
Performs inplace matrix application to a vector-valued QuantumArray. Note that due to reversibility reasons, the matrix can only contain integers and has to be invertible over \(\text{GL}(2^n)\). This is equal to the condition that the determinant is odd.
- Parameters:
- vectorQuantumArray
The QuantumArray to apply the matrix to.
- matrixnumpy.ndarray
The matrix to apply.
- Raises:
- Exception
Tried to multiply matrix with Quantum Array with unfitting shape.
Examples
We perform an inplace matrix multiplication between a randomly chosen matrix and a randomly chosen vector
>>> from qrisp import QuantumFloat, QuantumArray, inplace_matrix_app >>> qtype = QuantumFloat(4) >>> q_vector = QuantumArray(qtype, 3) >>> q_vector[:] = [1,0,2] >>> matrix = np.array([[2., 2., 1.], [2., 3., 1.], [3., 1., 2.]]) >>> inplace_matrix_app(q_vector, matrix) >>> print(q_vector) {OutcomeArray([4, 4, 7]): 1.0}