chiark
/
gitweb
/
~ianmdlvl
/
nlopt.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ae35eec
)
AGS: add force stop, fix max_iters value when maxevals not specified (#199)
author
Vladislav Sovrasov
<sovrasov.vlad@gmail.com>
Fri, 27 Jul 2018 15:45:37 +0000
(18:45 +0300)
committer
Steven G. Johnson
<stevenj@mit.edu>
Fri, 27 Jul 2018 15:45:37 +0000
(11:45 -0400)
src/algs/ags/ags.cc
patch
|
blob
|
history
diff --git
a/src/algs/ags/ags.cc
b/src/algs/ags/ags.cc
index 63f3a3eeb4941c1b10db4d4780fa0784bc3a04e7..88312f1932c804e60d7f28e2cd71f40e3a457083 100644
(file)
--- a/
src/algs/ags/ags.cc
+++ b/
src/algs/ags/ags.cc
@@
-3,9
+3,11
@@
#include "ags.h"
#include "solver.hpp"
#include "ags.h"
#include "solver.hpp"
+
#include <iostream>
#include <cstring>
#include <exception>
#include <iostream>
#include <cstring>
#include <exception>
+#include <limits>
double ags_eps = 0;
double ags_r = 3;
double ags_eps = 0;
double ags_r = 3;
@@
-46,7
+48,7
@@
int ags_minimize(unsigned n, nlopt_func func, void *data, unsigned m, nlopt_cons
ags::SolverParameters params;
params.r = ags_r;
ags::SolverParameters params;
params.r = ags_r;
- params.itersLimit = stop->maxeval != 0 ? stop->maxeval :
5000
;
+ params.itersLimit = stop->maxeval != 0 ? stop->maxeval :
std::numeric_limits<int>::max()
;
params.eps = ags_eps;
params.evolventDensity = evolvent_density;
params.epsR = eps_res;
params.eps = ags_eps;
params.evolventDensity = evolvent_density;
params.epsR = eps_res;
@@
-65,6
+67,10
@@
int ags_minimize(unsigned n, nlopt_func func, void *data, unsigned m, nlopt_cons
ret_code = NLOPT_MAXTIME_REACHED;
return true;
}
ret_code = NLOPT_MAXTIME_REACHED;
return true;
}
+ else if (nlopt_stop_forced(stop)) {
+ ret_code = NLOPT_FORCED_STOP;
+ return true;
+ }
else return false;
};
optPoint = solver.Solve(external_stop_func);
else return false;
};
optPoint = solver.Solve(external_stop_func);