double GoldenSectionSearch(const std::function< double(double)> &func, const double lower_bound, const double upper_bound, const double tol=1e-6)
Given a unimodal function defined on the interval, find a value on the interval to minimize the funct...