Log the optimization process (values, Jacobians, time taken etc.). More...
#include <roboptim/core/optimization-logger.hh>
Public Types | |
enum | LogRequestFlag { LOG_X = 1 << 0, LOG_COST = 1 << 1, LOG_CONSTRAINT = 1 << 2, LOG_CONSTRAINT_JACOBIAN = 1 << 3, LOG_CONSTRAINT_VIOLATION = 1 << 4, LOG_TIME = 1 << 5, LOG_SOLVER = 1 << 6 } |
Requests supported by the logger. More... | |
typedef SolverCallback< S > | parent_t |
typedef S | solver_t |
typedef solver_t::problem_t | problem_t |
typedef solver_t::problem_t::value_type | value_type |
typedef solver_t::problem_t::size_type | size_type |
typedef solver_t::problem_t::result_t | result_t |
typedef solver_t::solverState_t | solverState_t |
typedef solver_t::callback_t | callback_t |
typedef solver_t::problem_t::function_t::traits_t | traits_t |
typedef solver_t::problem_t::function_t | function_t |
typedef function_t::matrix_t | jacobian_t |
typedef function_t::argument_t | argument_t |
typedef function_t::const_argument_ref | const_argument_ref |
typedef GenericDifferentiableFunction < traits_t > | differentiableFunction_t |
typedef unsigned int | logRequest_t |
Public Types inherited from roboptim::SolverCallback< S > | |
typedef S | solver_t |
Solver type. More... | |
typedef solver_t::problem_t | problem_t |
Solver problem type. More... | |
typedef solver_t::callback_t | callback_t |
Per-iteration callback type. More... | |
typedef solver_t::solverState_t | solverState_t |
State of the solver. More... | |
Public Member Functions | |
OptimizationLogger (solver_t &solver, const boost::filesystem::path &path, bool selfRegister=true, logRequest_t requests=FullLogging()) | |
Constructor. More... | |
virtual | ~OptimizationLogger () |
Destructor. More... | |
void | append (const std::string &text) |
Append extra information to the log file. More... | |
OptimizationLogger< S > & | operator<< (const std::string &text) |
Append extra information to the log file. More... | |
template<typename U > | |
OptimizationLogger< S > & | operator<< (const U &u) |
Append extra information to the log file. More... | |
bool | isRequested (logRequest_t r) const |
Determine if a given request was made by the user. More... | |
const boost::filesystem::path & | logPath () const |
Return the path of the log directory. More... | |
virtual std::ostream & | print (std::ostream &o) const |
Display the logger on the specified output stream. More... | |
template<typename U > | |
OptimizationLogger< T > & | operator<< (const U &u) |
Public Member Functions inherited from roboptim::SolverCallback< S > | |
SolverCallback (const std::string &name="unnamed callback") | |
Solver callback constructor. More... | |
virtual | ~SolverCallback () |
Destructor. More... | |
const std::string & | name () const |
Return the name of the callback. More... | |
callback_t | callback () |
Callback function. More... | |
void | operator() (const problem_t &pb, solverState_t &state) |
Evaluate the callback. More... | |
Static Public Member Functions | |
static logRequest_t | FullLogging () |
Log everything. More... | |
Protected Member Functions | |
void | perIterationCallback (const problem_t &pb, solverState_t &state) |
Wrapper around the callback function that catch exceptions. More... | |
virtual void | perIterationCallbackUnsafe (const typename solver_t::problem_t &pb, typename solver_t::solverState_t &state) |
const boost::filesystem::path & | path () const |
Return the path of the log directory. More... | |
boost::filesystem::path & | path () |
Return the path of the log directory. More... | |
const solver_t & | solver () const |
Return the solver associated with the logger. More... | |
solver_t & | solver () |
Return the solver associated with the logger. More... | |
unsigned | callbackCallId () const |
Return the callback iteration index. More... | |
Protected Member Functions inherited from roboptim::SolverCallback< S > | |
virtual void | perIterationCallbackUnsafe (const problem_t &pb, solverState_t &state)=0 |
The actual callback function. More... | |
Log the optimization process (values, Jacobians, time taken etc.).
S | solver type. |
typedef function_t::argument_t roboptim::OptimizationLogger< T >::argument_t |
typedef solver_t::callback_t roboptim::OptimizationLogger< T >::callback_t |
typedef function_t::const_argument_ref roboptim::OptimizationLogger< T >::const_argument_ref |
typedef GenericDifferentiableFunction<traits_t> roboptim::OptimizationLogger< T >::differentiableFunction_t |
typedef solver_t::problem_t::function_t roboptim::OptimizationLogger< T >::function_t |
typedef function_t::matrix_t roboptim::OptimizationLogger< T >::jacobian_t |
typedef unsigned int roboptim::OptimizationLogger< T >::logRequest_t |
typedef SolverCallback<S> roboptim::OptimizationLogger< T >::parent_t |
typedef solver_t::problem_t roboptim::OptimizationLogger< T >::problem_t |
typedef solver_t::problem_t::result_t roboptim::OptimizationLogger< T >::result_t |
typedef solver_t::problem_t::size_type roboptim::OptimizationLogger< T >::size_type |
typedef S roboptim::OptimizationLogger< T >::solver_t |
typedef solver_t::solverState_t roboptim::OptimizationLogger< T >::solverState_t |
typedef solver_t::problem_t::function_t::traits_t roboptim::OptimizationLogger< T >::traits_t |
typedef solver_t::problem_t::value_type roboptim::OptimizationLogger< T >::value_type |
enum roboptim::OptimizationLogger::LogRequestFlag |
Requests supported by the logger.
TODO: use strongly typed enum when moving to C++11
|
explicit |
Constructor.
solver | solver that will be logged. |
path | path to the log directory. |
selfRegister | whether the logger will register itself as a callback with the solver. Set this to false if you use it with a multiplexer. |
requests | request the logging of specific data. |
References roboptim::iendl(), roboptim::OptimizationLogger< T >::isRequested(), roboptim::OptimizationLogger< T >::LOG_CONSTRAINT, roboptim::OptimizationLogger< T >::LOG_CONSTRAINT_VIOLATION, roboptim::OptimizationLogger< T >::LOG_COST, and roboptim::OptimizationLogger< T >::LOG_X.
|
virtual |
void roboptim::OptimizationLogger< T >::append | ( | const std::string & | text | ) |
Append extra information to the log file.
text | text to append. |
References roboptim::iendl().
|
protected |
Return the callback iteration index.
|
static |
Log everything.
bool roboptim::OptimizationLogger< T >::isRequested | ( | logRequest_t | r | ) | const |
Determine if a given request was made by the user.
r | request. |
Referenced by roboptim::OptimizationLogger< T >::OptimizationLogger().
const boost::filesystem::path & roboptim::OptimizationLogger< T >::logPath | ( | ) | const |
Return the path of the log directory.
OptimizationLogger< T > & roboptim::OptimizationLogger< T >::operator<< | ( | const std::string & | text | ) |
Append extra information to the log file.
text | text to append. |
OptimizationLogger<S>& roboptim::OptimizationLogger< T >::operator<< | ( | const U & | u | ) |
Append extra information to the log file.
u | object to print. |
OptimizationLogger<T>& roboptim::OptimizationLogger< T >::operator<< | ( | const U & | u | ) |
|
protected |
Return the path of the log directory.
|
protected |
Return the path of the log directory.
This method is protected since streams would need to be updated, and files that were already written moved to the new location.
|
protectedvirtual |
Wrapper around the callback function that catch exceptions.
pb | optimization problem. |
state | state of the solver after an iteration. |
Reimplemented from roboptim::SolverCallback< S >.
|
protectedvirtual |
References roboptim::decindent(), roboptim::iendl(), roboptim::incindent(), and roboptim::split().
|
virtual |
Display the logger on the specified output stream.
o | output stream used for display. |
Reimplemented from roboptim::SolverCallback< S >.
References roboptim::decindent(), roboptim::iendl(), and roboptim::incindent().
|
protected |
Return the solver associated with the logger.
|
protected |
Return the solver associated with the logger.