auto RunSimplex(int dim, double amount, int max_iterations, const std::function<double(const std::vector<double>&)>& fun) -> std::vector<double>
auto RunSimplex(int dim, double amount, int max_iterations, const std::vector<double>& init, const std::function<double(const std::vector<double>&)>& fun) -> std::vector<double>