OSVR-Core
|
Header for M.J.D. More...
#include <Eigen/Core>
#include <cassert>
#include <cmath>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <tuple>
#include <type_traits>
#include <utility>
Go to the source code of this file.
Macros | |
#define | DEBUG_LOG(what) |
Functions | |
template<class Function > | |
void | newuoa_detail::biglag (long n, long npt, double *xopt, double *xpt, double *bmat, double *zmat, long *idz, long *ndim, long *knew, double *delta, double *d__, double *alpha, double *hcol, double *gc, double *gd, double *s, double *w, Function &&function) |
void | newuoa_detail::bigden (long n, long npt, double *xopt, double *xpt, double *bmat, double *zmat, long *idz, long *ndim, long *kopt, long *knew, double *d__, double *w, double *vlag, double *beta, double *s, double *wvec, double *prod) |
void | newuoa_detail::trsapp (long n, long npt, double *xopt, double *xpt, double *gq, double *hq, double *pq, double *delta, double *step, double *d__, double *g, double *hd, double *hs, double *crvmin) |
void | newuoa_detail::update (long n, long npt, double *bmat, double *zmat, long *idz, long *ndim, double *vlag, double *beta, long *knew, double *w) |
template<class Function > | |
double | newuoa_detail::newuob (long n, long npt, double *x, double rhobeg, double rhoend, long maxfun, double *xbase, double *xopt, double *xnew, double *xpt, double *fval, double *gq, double *hq, double *pq, double *bmat, double *zmat, long *ndim, double *d__, double *vlag, double *w, Function &&function) |
template<class Function > | |
double | newuoa_detail::newuoa_impl (Function &&function, long n, long npt, double *x, double rhobeg, double rhoend, long maxfun, double *w) |
template<typename Function > | |
double | newuoa (Function &&function, long n, long npt, double *x, double rhobeg, double rhoend, long maxfun, double *w) |
template<typename Derived > | |
void | detail::checkStaticAssertions (Eigen::MatrixBase< Derived > &) |
Checks shared static assertions about vectors to be optimized by NEWUOA. | |
template<typename Derived > | |
long | detail::computeReasonableNPT (Eigen::MatrixBase< Derived > &) |
template<typename Function , typename Derived > | |
double | ei_newuoa (long npt, Eigen::MatrixBase< Derived > &x, std::pair< double, double > rho, long maxfun, Function &&f) |
Friendly wrapper around newuoa: takes a vector for x. More... | |
template<typename Function , typename Derived > | |
double | ei_newuoa (Eigen::MatrixBase< Derived > &x, std::pair< double, double > rho, long maxfun, Function &&f) |
Overload - default value for npt = 2n + 1 Per Powell 2004, m = 2n+1 should be good for efficiency. More... | |
template<typename Function , typename Derived > | |
double | ei_newuoa_wrapped (long npt, Eigen::MatrixBase< Derived > &x, std::pair< double, double > rho, long maxfun, Function &&f) |
Friendlier wrapper around newuoa: takes a vector for x, and the function takes a reference to const vec. More... | |
template<typename Function , typename Derived > | |
double | ei_newuoa_wrapped (Eigen::MatrixBase< Derived > &x, std::pair< double, double > rho, long maxfun, Function &&f) |
Overload - default value for npt = 2n + 1 Per Powell 2004, m = 2n+1 should be good for efficiency. More... | |
Header for M.J.D.
Powell's NEWUOA method for unconstrained minimization.
Modified and derived from, in turn:
In this context, the MIT License refers to the MIT license found here: https://opensource.org/licenses/MIT also known as the "Expat" license.
|
inline |
Friendly wrapper around newuoa: takes a vector for x.
The function still takes a pointer to double * and a long n.
|
inline |
Overload - default value for npt = 2n + 1 Per Powell 2004, m = 2n+1 should be good for efficiency.
|
inline |
Friendlier wrapper around newuoa: takes a vector for x, and the function takes a reference to const vec.
Making a copy so that functors passed can take in just a normal vector const ref, instead of having to accept a ref, etc (since generic lambdas aren't widespread)
|
inline |
Overload - default value for npt = 2n + 1 Per Powell 2004, m = 2n+1 should be good for efficiency.