63 char task[61]=
"START ";
67 long const iprint =
trace ? 1 : -1;
97 csave, lsave, isave, dsave
101 if (std::strncmp(
"FG", task, 2) == 0)
115 this->end_error_ = f;
119 else if (std::strncmp(
"NEW_X", task, 5) == 0)
132 else if (std::strncmp(
"ERROR", task, 5) == 0)
139 else if (std::strncmp(
"CONVERGENCE", task, 11) == 0)
145 this->end_error_ = f;
148 if (std::strncmp(
"CONVERGENCE: REL_REDUCTION_OF_F <= FACTR*EPSMCH",
154 else if (std::strncmp(
"CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL",
165 std::cerr <<
"Unknown convergence type: " << task << std::endl;
176 std::cerr <<
"Unknown failure with task: " << task << std::endl;
An object that represents a function from R^n -> R.
int get_number_of_unknowns() const
Return the number of unknowns.
bool set_size(size_t n)
Resize to n elements.
T const * data_block() const
Access the contiguous block storing the elements in the vector. O(1).
Limited memory Broyden Fletcher Goldfarb Shannon constrained opt.
void report_eval(double f)
Called by derived classes after each function evaluation.
virtual bool report_iter()
Called by derived classes after each iteration.
double projected_gradient_tolerance_
vnl_vector< double > lower_bound_
double inf_norm_projected_gradient_
Declare in a central place the list of symbols from netlib.
vnl_vector & fill(T const &v)
Set all values to v.
double convergence_factor_
virtual void compute(vnl_vector< double > const &x, double *f, vnl_vector< double > *g)
Compute one or both of f and g.
vnl_vector< long > bound_selection_
bool minimize(vnl_vector< double > &x)
Find a minimum in the feasible region given an initial guess.
int get_max_function_evals() const
vnl_vector< double > upper_bound_
ReturnCodes failure_code_