code: def sparse(x0, rho, gamma):
      
  
      lmbda = float(gamma) / rho
  
      return (x0 - lmbda) * (x0 >= lmbda) + (x0 + lmbda) * (x0 <= -lmbda)
docs: Proximal operator for the l1 norm (induces sparsity)
  
      Parameters
      ----------
      x0 : array_like
          The starting or initial point used in the proximal update step
  
      rho : float
          Momentum parameter for the proximal step (larger value -> stays closer to x0)
  
      gamma : float
          A constant that weights how strongly to enforce the constraint
  
      Returns
      -------
      theta : array_like
          The parameter vector found after running the proximal update step