code: def uinit(self, ushape):
          
  
          if  self.opt['Y0'] is None:
              return np.zeros(ushape, dtype=self.dtype)
          else:
              # If initial Y is non-zero, initial U is chosen so that
              # the relevant dual optimality criterion (see (3.10) in
              # boyd-2010-distributed) is satisfied.
              Yss = np.sqrt(np.sum(self.Y[..., 0:-1]**2, axis=self.S.ndim,
                                   keepdims=True))
              U0 = (self.lmbda/self.rho)*sl.zdivide(self.Y[..., 0:-1], Yss)
              U1 = (1.0 / self.rho)*np.sign(self.Y[..., -1:])
              return np.concatenate((U0, U1), axis=self.S.ndim)
docs: Return initialiser for working variable U.