Class FsqpProblem

Class Documentation

class parpe::FsqpProblem

Wrapper for a FFSQP optimization problem.

An instance of this class is slipped into the FFSQP callback functions.

NOTE: FFSQP is not thread-safe, therefore we lock a mutex when passing control to FFSQP routines. Not sure if strictly necessary, but in FFSQP code consider changing static to static __thread for non-fmt_ variables.

Public Functions

FsqpProblem(OptimizationProblem *problem)
std::tuple<int, double, std::vector<double>> optimize()
void obj(integer &nparam, integer &j, doublereal *x, doublereal &fj)
void gradob(integer &nparam, integer &j, doublereal *x, doublereal *gradfj, doublereal*)

Public Members

OptimizationProblem *problem = nullptr
std::unique_ptr<OptimizationReporter> reporter
std::vector<doublereal> gradientDummy
integer nparam = 0
integer nf = 1
integer nineqn = 0
integer nineq = 0
integer neqn = 0
integer neq = 0
integer mode = 0 + 10 * 0 + 100 * 1
integer iprint = static_cast<integer>(iprintPrintLevel::eachIteration)
integer miter = 0
integer inform = 0
doublereal bigbnd = INFINITY
doublereal eps = 1e-14
doublereal epseqn
doublereal udelta
std::vector<doublereal> bl
std::vector<doublereal> bu
std::vector<doublereal> x
std::vector<doublereal> f
std::vector<doublereal> g
integer iwsize = 0
std::vector<integer> iw
integer nwsize = 0
std::vector<doublereal> w