Задача «Метод Хука-Дживса»

Справка

Описание алгоритма

Задача

Произвести рефакторинг уже существующей реализации алгоритма - http://www.netlib.org/opt/hooke.c

Необходимо:

  1. Переписать код на С++
  2. Выделить класс, который занимается применением алгоритма. Реализованные свободные функции занести в этот класс.
  3. Добавить возможность передачи любой функции (вместо f)
  4. Избавиться от define'ов (объявление констант) и глобальных переменных
  5. Разнести на .h и .сpp файлы
  6. Заменить циклы for на range-based там, где это возможно
  7. Заменить printf на потоки (std::cout)
  8. Заменить с-style массивы

Примечание

Чтобы собрать этот код, нужно в настройках файла выставить Compile as C Code. (Щелчок по файлу -> C/C++ -> Advanced -> Compile As)