spyrit.core.meas.HadamSmatrix2d.fast_adjoint

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

Apply the adjoint of the measurement matrix using the separability of the 2D S-transform.

The forward map is \(Y = S_{1d} X S_{1d}^T\), i.e. \(\mathrm{vec}(Y) = (S_{1d}\otimes S_{1d})\,\mathrm{vec}(X)\). Its adjoint is therefore \(X = S_{1d}^T Y S_{1d}\), which is why \(S_{1d}^T\) (not \(S_{1d}\)) is used below. When scramble is False, \(S_{1d}\) is symmetric and this is equivalent to applying \(S_{1d}\) directly.