spyrit.core.meas.HadamSplit2d.adjoint_H

HadamSplit2d.adjoint_H(m: tensor, unvectorize=False) tensor[source]

Apply the adjoint of matrix H.

Args:

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

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

Returns:

Vectorized image vector \(x \in \mathbb{R}^{h^2}\)

Examples:

Example 1: No subsampling >>> import torch >>> import spyrit.core.meas as meas >>> h = 32 >>> meas_op = meas.HadamSplit2d(h) >>> m = torch.empty(10, h*h).uniform_(0, 1) >>> x = meas_op.adjoint_H(m) >>> print(x.shape) torch.Size([10, 1024])

Example 2: With subsampling >>> import torch >>> import spyrit.core.meas as meas >>> h, M = 32, 49 >>> meas_op = meas.HadamSplit2d(h, M) >>> m = torch.empty(8, 2, M).uniform_(0, 1) >>> x = meas_op.adjoint_H(m) >>> print(x.shape) torch.Size([8, 2, 1024])