Source: https://web.stanford.edu/~boyd/papers/pdf/prox_algs.pdf