matrices.hadamard

Hadamard matrix.

Module Contents

Functions

hadamard([n_param])

Produce a 2^{n_param} dimensional Hadamard matrix [1].

_hamming_distance(x_param)

Calculate the bit-wise Hamming distance of x_param from 0.

matrices.hadamard.hadamard(n_param=1)

Produce a 2^{n_param} dimensional Hadamard matrix [1].

The standard Hadamard matrix that is often used in quantum information as a two-qubit quantum gate is defined as

\[\begin{split}H_1 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}\end{split}\]

In general, the Hadamard matrix of dimension 2^{n_param} may be defined as

\[\left( H_n \right)_{i, j} = \frac{1}{2^{\frac{n}{2}}} \left(-1\right)^{i \dot j}\]

Examples

The standard 2-qubit Hadamard matrix can be generated in toqito as

>>> from toqito.matrices import hadamard
>>> hadamard(1)
array([[ 0.70710678,  0.70710678],
       [ 0.70710678, -0.70710678]])

References

[1] (1,2)

Wikipedia. Hadamard transform. https://en.wikipedia.org/wiki/Hadamard_transform.

Parameters:

n_param (int) – A non-negative integer (default = 1).

Returns:

The Hadamard matrix of dimension 2^{n_param}.

Return type:

numpy.ndarray

matrices.hadamard._hamming_distance(x_param)

Calculate the bit-wise Hamming distance of x_param from 0.

The Hamming distance is the number 1s in the integer x_param.

Parameters:

x_param (int) – A non-negative integer.

Returns:

The hamming distance of x_param from 0.

Return type:

int