Hadamard Matrix

class fastmat.Hadamard

Bases: fastmat.Matrix.Matrix

A Hadamard Matrix is recursively defined as

\[H_n = H_1 \otimes H_{n-1},\]

where

\[\begin{split}H_1 = \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}\end{split}\]

and \(H_0 = (1)\). Obviously the dimension of \(H_n\) is \(2^n\). The transform is realized with the Fast Hadamard Transform (FHT).

>>> # import the package
>>> import fastmat as fm
>>>
>>> # define the parameter
>>> n = 4
>>>
>>> # construct the matrix
>>> H = fm.Hadamard(n)

This yields a Hadamard matrix \({\mathcal{H}}_4\) of order \(4\), i.e. with \(16\) rows and columns.

The algorithm we used is described in [2] and was implemented in Cython [3].

__init__

Initialize Hadamard matrix instance.

Parameters:
order : int

The order of the Hadamard matrix to generate. The matrix data type is numpy.int8

**options : optional

Optional keyworded arguments. Supports all optional arguments supported by fastmat.Matrix.

order

Return the order of the hadamard matrix.