MA324 Theory and benchmarking of gradient descent methods for machine learning applications Code and data for the report