code: def doubleprox_dc_simple(x, y, f, phi, g, K, niter, gamma, mu):
      
      for _ in range(niter):
          f.proximal(gamma)(x + gamma * K.adjoint(y) -
                            gamma * phi.gradient(x), out=x)
          g.convex_conj.proximal(mu)(y + mu * K(x), out=y)
docs: Non-optimized version of ``doubleprox_dc``.
      This function is intended for debugging. It makes a lot of copies and
      performs no error checking.