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])