HalleyChebyAD
 All Classes Files Functions Variables Friends
UncOpt Class Referenceabstract

The Base class of Unconstrained Optimization solvers. More...

#include <UncOpt.h>

Inherited by HalleyCheby, and NewtonsMethod.

Public Member Functions

 UncOpt (const int dimension_int=0, const double precision_in=1.0E-8, std::string name_in="no_name", const bool print_it=false)
 
void reset ()
 
virtual string solve ()
 
virtual int methodstep ()=0
 
void set_ObjectiveFunction (const int dimension_in, double *x_initial_in, double(*eval_in)(const double *, int), adouble(*eval_a_in)(const adouble *, int), const string name_in)
 
double get_error ()
 
int get_iteration ()
 
void set_print_iteration (const bool b)
 
void set_print_system_solve (const bool b)
 
void set_precision (const double prec)
 
void set_system_precision (const double prec)
 
void set_max_iterations (const int max_iterations_in)
 
void set_x_initial (void(*initial_pointpty)(double *, const int dimension))
 
void print_iteration_info ()
 
void print_iteration_header ()
 
void print_stopping_criteria ()
 
void set_linear_solver_type (int linear_solver_type_in)
 

Public Attributes

LinAlgebra LinAlg
 

Protected Member Functions

bool stopping_criteria ()
 
double armijo ()
 
double inexact_solve_precision (const double &rhs)
 

Protected Attributes

ObjectiveFunction ObjFunc
 
std::string name
 
int dimension
 
double precision
 
int iteration
 
int max_iterations
 
int max_system_iter
 
double initial_stepsize
 
double steptaken
 
double objval
 
double gradnorm
 
double gradnorm0
 
double grad_precision
 
double system_precision
 
bool print_iteration
 
bool print_system_solve
 
int print_title
 
int my_number
 
Derivatives Deriv
 
double func_diff
 
double * x_prev
 
double * temp_use
 
double * x
 
double * descent
 
std::string state
 
int linear_solver_type
 

Detailed Description

The Base class of Unconstrained Optimization solvers.

Member Function Documentation

double UncOpt::armijo ( )
protected

Find step length for suficient drease f(x+step_length d) < f(x) + step_length d grad

double UncOpt::inexact_solve_precision ( const double &  rhs)
protected

Calculates system solve precision based on rhs and gradient

void UncOpt::set_ObjectiveFunction ( const int  dimension_in,
double *  x_initial_in,
double(*)(const double *, int)  eval_in,
adouble(*)(const adouble *, int)  eval_a_in,
const string  name_in 
)

Sets the Objective function and tapes it for later derivative calculations

string UncOpt::solve ( )
virtual

The template solver. The derived classes implement the search direction in methodstep().

**** HOW TO DETECT NO OBJECTIVE FUNCTION? ****

Member Data Documentation

ObjectiveFunction UncOpt::ObjFunc
protected

Contains the objective function and tape capacities


The documentation for this class was generated from the following files: