bartorch.linop.Roll#
- class bartorch.linop.Roll(shape, shift, axis=-1, mode='wrap')#
Shift along one axis, BART’s
linop_shift.With
mode="wrap"this istorch.roll: what leaves one end comes back at the other. With another mode what leaves is dropped and what arrives is whatever that mode supplies, so the operator is no longer unitary.- Parameters:
shape (tuple of int) – The shape it maps to itself, C order.
shift (int) – How far to move, towards higher indices when positive.
axis (int) – Which axis to move along.
mode (str) –
"wrap","constant","symmetric"or"reflect".
- __init__(shape, shift, axis=-1, mode='wrap')#
Methods
A(x, **kwargs)A x, underdeepinv's name.A_adjoint(y, **kwargs)A^H y, underdeepinv's name, recorded for autograd.A_adjoint_A(x, **kwargs)A^H A x, underdeepinv's name, recorded for autograd.A_dagger(y, **kwargs)The pseudo-inverse, under
deepinv's name.__init__(shape, shift[, axis, mode])adjoint(y[, out])A^H y, without recording for autograd.cogram()A A^Has an operator.conj()conj(A): conjugate the input, apply, conjugate the output.forward(x[, out])A x, without recording for autograd.gram()A^H Aas an operator.normal(x[, out])A^H A x.opnorm()The spectral norm, by BART's power iteration on
A^H A.pinv(y[, damp])(A^H A + damp I)^-1 A^H y, the damped least-squares solution.to_nonlinear()The same operator as a
NonlinearOperator.Attributes
HA^H, from BART's own adjoint constructor.TA^T, the adjoint without the conjugation, asconj(A).H.codim_rankHow many axes the codomain has.
codim_shapeThe codomain, under pyxu's name for it; the same as
oshape.codim_sizeHow many elements the codomain holds.
devicedim_rankHow many axes the domain has.
dim_shapeThe domain, under pyxu's name for it; the same as
ishape.dim_sizeHow many elements the domain holds.
ishapeoshape