matrix_ops.inner_product

Inner product operation.

Module Contents

Functions

inner_product(v1, v2)

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

matrix_ops.inner_product.inner_product(v1, v2)

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

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

[1] (1,2)

Wikipedia. Inner product space. https://en.wikipedia.org/wiki/Inner_product_space.

Raises:

ValueError – Vector dimensions are mismatched.

Parameters:
  • v1 (numpy.ndarray) – v1 and v2, both vectors of dimensions \((n,1)\) where \(n>1\).

  • v2 (numpy.ndarray) – v1 and v2, both vectors of dimensions \((n,1)\) where \(n>1\).

Returns:

The computed inner product.

Return type:

float