code: def xstep(self):
          r
  
          self.YU[:] = self.Y - self.U
          Zf = sl.rfftn(self.YU, None, self.cri.axisN)
          ZfQ = sl.dot(self.Q.T, Zf, axis=self.cri.axisC)
          b = self.DSfBQ + self.rho * ZfQ
  
          Xh = sl.solvedbi_sm(self.gDf, self.rho, b, self.c,
                              axis=self.cri.axisM)
          self.Xf[:] = sl.dot(self.Q, Xh, axis=self.cri.axisC)
          self.X = sl.irfftn(self.Xf, self.cri.Nv, self.cri.axisN)
  
          if self.opt['LinSolveCheck']:
              DDXf = np.conj(self.Df) *  sl.inner(self.Df, self.Xf,
                                                  axis=self.cri.axisM)
              DDXfBB = sl.dot(self.B.T.dot(self.B), DDXf, axis=self.cri.axisC)
              ax = DDXfBB + self.rho * self.Xf
              b = sl.dot(self.B.T, self.DSf, axis=self.cri.axisC) + \
                  self.rho * Zf
              self.xrrs = sl.rrs(ax, b)
          else:
              self.xrrs = None
docs: r"""Minimise Augmented Lagrangian with respect to
          :math:`\mathbf{x}`.