toqito.matrix_ops.inner_product

toqito.matrix_ops.inner_product(v1, v2)[source]

Compute the inner product \(\langle v_1|v_2\rangle\) of two vectors [WikInner].

The inner product is calculated as follows:

\[\begin{split}\left\langle \begin{pmatrix}a_1 \\ \vdots \\ a_n\end{pmatrix},\begin{pmatrix}b_1 \\ \vdots \\ b_n\end{pmatrix}\right\rangle = \begin{pmatrix} a_1,\cdots, a_n\end{pmatrix}\begin{pmatrix}b_1 \\ \vdots \\ b_n\end{pmatrix} = a_1 b_1 + \cdots + a_n b_n\end{split}\]

Example

The inner product of the vectors \(v1 = \begin{pmatrix}1 \\ 2 \\ 3 \end{pmatrix}\) and \(v2 = \begin{pmatrix}4 \\ 5 \\ 6 \ \end{pmatrix}\) looks as follows:

\[\begin{split}\left\langle \begin{pmatrix}1 \\ 2 \\ 3\end{pmatrix},\begin{pmatrix}4 \\ 5 \\ 6\end{pmatrix}\right\rangle = \begin{pmatrix} 1,2, 3\end{pmatrix}\begin{pmatrix}4 \\ 5 \\ 6\end{pmatrix} = 1\times 4 + 2\times 5 + 3\times 6 = 32\end{split}\]

In toqito, this looks like this:

>>> import numpy as np
>>> from toqito.matrix_ops import inner_product
>>> v1, v2 = np.array([1,2,3]), np.array([4,5,6])
>>> inner_product(v1,v2)
32

References

Raises:

ValueError – Vector dimensions are mismatched.

Parameters:

args – v1 and v2, both vectors of dimenstions \((n,1)\) where \(n>1\).

Returns:

The computed inner product.