@@ -8,15 +8,16 @@ using Eigen::VectorXd;
88using RowMajorMatrixXd =
99 Eigen::Matrix<double , Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>;
1010
11- auto Clamp (const VectorXd &x, const VectorXd &lower, const VectorXd &upper) {
11+ inline auto Clamp (const VectorXd &x, const VectorXd &lower,
12+ const VectorXd &upper) {
1213 return x.cwiseMax (lower).cwiseMin (upper);
1314}
1415
15- double StandardDeviation (const VectorXd &x) {
16+ inline double StandardDeviation (const VectorXd &x) {
1617 return std::sqrt ((x.array () - x.mean ()).square ().mean ());
1718}
1819
19- Eigen::VectorX<Eigen::Index> ArgSort (const VectorXd &v) {
20+ inline Eigen::VectorX<Eigen::Index> ArgSort (const VectorXd &v) {
2021 Eigen::VectorX<Eigen::Index> indices (v.size ());
2122 std::iota (indices.begin (), indices.end (), 0 );
2223 std::sort (indices.begin (), indices.end (),
@@ -25,11 +26,11 @@ Eigen::VectorX<Eigen::Index> ArgSort(const VectorXd &v) {
2526}
2627
2728template <typename Func, typename ... Args>
28- std::tuple<VectorXd, double , int > NelderMead (Func F, const VectorXd &x, const VectorXd &lower,
29- const VectorXd upper, double init_step ,
30- double zero_pert , double alpha , double gamma ,
31- double rho, double sigma, int max_iter, double tol_std ,
32- bool adaptive, Args &&...args) {
29+ std::tuple<VectorXd, double , int >
30+ NelderMead (Func F, const VectorXd &x, const VectorXd &lower ,
31+ const VectorXd upper , double init_step , double zero_pert ,
32+ double alpha, double gamma, double rho, double sigma, int max_iter,
33+ double tol_std, bool adaptive, Args &&...args) {
3334 auto x0 = Clamp (x, lower, upper);
3435 auto n = x0.size ();
3536 if (adaptive) {
0 commit comments