Non-smooth optimization utils: Implemented next algorithms used for non-smooth optimization: Subgradient Method Barrier Method Lasso Proximal Gradient Descent