spyrit.core.meas.HadamSmatrix2d.adjoint

HadamSmatrix2d.adjoint(m: tensor, unvectorize: bool = False) tensor[source]

Apply the adjoint (transpose) of the measurement matrix.

It computes \(x = H^Tm\), where \(H\) is the (subsampled) 2D S measurement matrix.

Note

This is the literal adjoint, not the pseudo-inverse: use fast_pinv() for the pseudo-inverse solution. Unlike HadamSplit2d, this does not assume \(S_{1d}\) is symmetric (it is not, when scramble is True), and explicitly applies \(S_{1d}^T\).

Args:

m (torch.tensor): Measurement \(m\) of length self.M.

unvectorize (bool): whether to apply unvectorize() at the end of the computation.

Returns:

A batch of signals \(x\).