SG++-Doxygen-Documentation
Loading...
Searching...
No Matches
sgpp::base::Printer Class Reference

Singleton class to facilitate debugging output. More...

#include <Printer.hpp>

Public Member Functions

void disableStatusPrinting ()
 Disable the printStatus... functions.
 
void enableStatusPrinting ()
 Enable the printStatus... functions.
 
double getLastDurationSecs () const
 
size_t getLineLengthLimit ()
 
MutexTypegetMutex ()
 
std::ostream * getStream () const
 
int getVerbosity () const
 
bool isStatusPrintingEnabled ()
 
void printSLE (SLE &system) const
 Print a system of linear equations.
 
void printStatusBegin (const std::string &msg)
 Call at the beginning of a time-consuming operation.
 
void printStatusEnd (const std::string &msg="")
 Call at the end of a time-consuming operation.
 
void printStatusIdentation ()
 Internal function printing the indentation.
 
void printStatusNewLine ()
 End the last status update and place the cursor in a newline.
 
void printStatusUpdate (const std::string &msg)
 Call for printing status updates on the operation.
 
void setLineLengthLimit (size_t lineLengthLimit)
 
void setStream (std::ostream *stream)
 
void setVerbosity (int level)
 

Static Public Member Functions

static PrintergetInstance ()
 

Static Public Attributes

static const int DEFAULT_VERBOSITY = 0
 default verbosity
 

Protected Attributes

bool cursorInClearLine
 is current line empty? (false if there's an old status update)
 
std::string indentation
 indentation
 
int indentationLevel
 current indentation level (can be less than statusLevel)
 
double lastDuration
 length of last operation in seconds
 
size_t lastMsgLength
 length of the last status message in characters
 
size_t lineLengthLimit
 maximum length of lines, 0 if unbounded
 
MutexType mutex
 internal mutex
 
int statusLevel
 current status level
 
bool statusPrintingEnabled
 whether status printing is enabled
 
std::ostream * stream
 stream used for printing (default std::cout)
 
int verbose
 verbosity level
 
std::stack< SGppStopwatchwatches
 stack of stop watches (started at time of printStatusBegin() calls)
 

Static Protected Attributes

static const char INDENTATION_CHAR = ' '
 
static const size_t INDENTATION_LENGTH = 4
 

Detailed Description

Singleton class to facilitate debugging output.

Use with the sgpp::printer instance.

The status printing functions won't print anything if

Member Function Documentation

◆ disableStatusPrinting()

void sgpp::base::Printer::disableStatusPrinting ( )

Disable the printStatus... functions.

(They're enabled by default.)

Referenced by sgpp::optimization::FuzzyExtensionPrinciple::apply(), sgpp::datadriven::OperationInverseRosenblattTransformation1DBspline::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DBsplineBoundary::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DBsplineClenshawCurtis::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DModBspline::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DModBsplineClenshawCurtis::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DModPoly::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DModPolyClenshawCurtis::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DPoly::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DPolyBoundary::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DPolyClenshawCurtis::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DPolyClenshawCurtisBoundary::doTransformation1D(), sgpp::optimization::IterativeGridGeneratorLinearSurplus::generate(), sgpp::optimization::optimizer::LevenbergMarquardt::optimize(), sgpp::optimization::optimizer::AdaptiveNewton::optimize(), sgpp::optimization::optimizer::MultiStart::optimize(), sgpp::optimization::optimizer::Newton::optimize(), and sgpp::datadriven::BoHyperparameterOptimizer::run().

◆ enableStatusPrinting()

◆ getInstance()

Printer & sgpp::base::Printer::getInstance ( )
static
Returns
singleton instance

Referenced by sgpp::optimization::FuzzyExtensionPrinciple::apply(), sgpp::base::sle_solver::callback(), sgpp::optimization::OperationMultipleHierarchisationFundamentalNakSplineBoundary::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSpline::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSplineBoundary::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationModFundamentalSpline::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalNakSplineBoundary::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSpline::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSplineBoundary::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationModFundamentalSpline::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalNakSplineBoundary::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSpline::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSplineBoundary::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationModFundamentalSpline::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalNakSplineBoundary::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSpline::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSplineBoundary::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationModFundamentalSpline::doHierarchisation(), sgpp::datadriven::OperationInverseRosenblattTransformation1DBspline::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DBsplineBoundary::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DBsplineClenshawCurtis::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DModBspline::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DModBsplineClenshawCurtis::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DModPoly::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DModPolyClenshawCurtis::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DPoly::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DPolyBoundary::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DPolyClenshawCurtis::doTransformation1D(), sgpp::datadriven::OperationInverseRosenblattTransformation1DPolyClenshawCurtisBoundary::doTransformation1D(), sgpp::optimization::IterativeGridGeneratorFuzzyRitterNovak::generate(), sgpp::optimization::IterativeGridGeneratorLinearSurplus::generate(), sgpp::optimization::IterativeGridGeneratorRitterNovak::generate(), sgpp::optimization::IterativeGridGeneratorSOO::generate(), sgpp::optimization::optimizer::AugmentedLagrangian::optimize(), sgpp::optimization::optimizer::LogBarrier::optimize(), sgpp::optimization::optimizer::SquaredPenalty::optimize(), sgpp::optimization::optimizer::LevenbergMarquardt::optimize(), sgpp::optimization::optimizer::AdaptiveGradientDescent::optimize(), sgpp::optimization::optimizer::AdaptiveNewton::optimize(), sgpp::optimization::optimizer::BFGS::optimize(), sgpp::optimization::optimizer::CMAES::optimize(), sgpp::optimization::optimizer::DifferentialEvolution::optimize(), sgpp::optimization::optimizer::GradientDescent::optimize(), sgpp::optimization::optimizer::MultiStart::optimize(), sgpp::optimization::optimizer::NelderMead::optimize(), sgpp::optimization::optimizer::Newton::optimize(), sgpp::optimization::optimizer::NLCG::optimize(), sgpp::optimization::optimizer::Rprop::optimize(), sgpp::optimization::IterativeGridGenerator::printIterativeGridGenerator(), sgpp::datadriven::BoHyperparameterOptimizer::run(), sgpp::base::sle_solver::Armadillo::solve(), sgpp::base::sle_solver::Auto::solve(), sgpp::base::sle_solver::Eigen::solve(), sgpp::base::sle_solver::UMFPACK::solve(), sgpp::base::sle_solver::BiCGStab::solve(), sgpp::base::sle_solver::GaussianElimination::solve(), sgpp::base::sle_solver::Gmmpp::solve(), and sgpp::base::sle_solver::solveInternal().

◆ getLastDurationSecs()

double sgpp::base::Printer::getLastDurationSecs ( ) const
Returns
running-time of the last operation terminated by printStatusEnd()

◆ getLineLengthLimit()

size_t sgpp::base::Printer::getLineLengthLimit ( )
Returns
maximum length of lines, 0 if unbounded

◆ getMutex()

MutexType & sgpp::base::Printer::getMutex ( )

◆ getStream()

std::ostream * sgpp::base::Printer::getStream ( ) const
Returns
stream used for printing (default std::cout)

◆ getVerbosity()

int sgpp::base::Printer::getVerbosity ( ) const
inline
Returns
current verbosity level

References verbose.

◆ isStatusPrintingEnabled()

◆ printSLE()

void sgpp::base::Printer::printSLE ( SLE system) const

Print a system of linear equations.

Parameters
systemsystem to be printed

References sgpp::base::SLE::getDimension(), and sgpp::base::SLE::getMatrixEntry().

◆ printStatusBegin()

void sgpp::base::Printer::printStatusBegin ( const std::string &  msg)

Call at the beginning of a time-consuming operation.

Locks and unlocks an OpenMP mutex.

Parameters
msgshort description of the operation

Referenced by sgpp::optimization::FuzzyExtensionPrinciple::apply(), sgpp::optimization::OperationMultipleHierarchisationFundamentalNakSplineBoundary::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSpline::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSplineBoundary::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationModFundamentalSpline::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalNakSplineBoundary::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSpline::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSplineBoundary::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationModFundamentalSpline::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalNakSplineBoundary::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSpline::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSplineBoundary::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationModFundamentalSpline::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalNakSplineBoundary::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSpline::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSplineBoundary::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationModFundamentalSpline::doHierarchisation(), sgpp::optimization::IterativeGridGeneratorFuzzyRitterNovak::generate(), sgpp::optimization::IterativeGridGeneratorLinearSurplus::generate(), sgpp::optimization::IterativeGridGeneratorRitterNovak::generate(), sgpp::optimization::IterativeGridGeneratorSOO::generate(), sgpp::optimization::optimizer::AugmentedLagrangian::optimize(), sgpp::optimization::optimizer::LogBarrier::optimize(), sgpp::optimization::optimizer::SquaredPenalty::optimize(), sgpp::optimization::optimizer::LevenbergMarquardt::optimize(), sgpp::optimization::optimizer::AdaptiveGradientDescent::optimize(), sgpp::optimization::optimizer::AdaptiveNewton::optimize(), sgpp::optimization::optimizer::BFGS::optimize(), sgpp::optimization::optimizer::CMAES::optimize(), sgpp::optimization::optimizer::DifferentialEvolution::optimize(), sgpp::optimization::optimizer::GradientDescent::optimize(), sgpp::optimization::optimizer::MultiStart::optimize(), sgpp::optimization::optimizer::NelderMead::optimize(), sgpp::optimization::optimizer::Newton::optimize(), sgpp::optimization::optimizer::NLCG::optimize(), sgpp::optimization::optimizer::Rprop::optimize(), sgpp::optimization::IterativeGridGenerator::printIterativeGridGenerator(), sgpp::base::sle_solver::Armadillo::solve(), sgpp::base::sle_solver::Auto::solve(), sgpp::base::sle_solver::Eigen::solve(), sgpp::base::sle_solver::UMFPACK::solve(), sgpp::base::sle_solver::BiCGStab::solve(), sgpp::base::sle_solver::GaussianElimination::solve(), and sgpp::base::sle_solver::Gmmpp::solve().

◆ printStatusEnd()

void sgpp::base::Printer::printStatusEnd ( const std::string &  msg = "")

Call at the end of a time-consuming operation.

Locks and unlocks an OpenMP mutex.

Retrieve the running time of the operation with getLastDurationSecs() (also works with nested calls of printStatusBegin()).

Parameters
msgshort description of the result, e.g. "success" or "error" (optional)

References sgpp::base::SGppStopwatch::stop().

Referenced by sgpp::optimization::FuzzyExtensionPrinciple::apply(), sgpp::optimization::OperationMultipleHierarchisationFundamentalNakSplineBoundary::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSpline::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSplineBoundary::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationModFundamentalSpline::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalNakSplineBoundary::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSpline::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSplineBoundary::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationModFundamentalSpline::doDehierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalNakSplineBoundary::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSpline::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSplineBoundary::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationModFundamentalSpline::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalNakSplineBoundary::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSpline::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationFundamentalSplineBoundary::doHierarchisation(), sgpp::optimization::OperationMultipleHierarchisationModFundamentalSpline::doHierarchisation(), sgpp::optimization::IterativeGridGeneratorFuzzyRitterNovak::generate(), sgpp::optimization::IterativeGridGeneratorLinearSurplus::generate(), sgpp::optimization::IterativeGridGeneratorRitterNovak::generate(), sgpp::optimization::IterativeGridGeneratorSOO::generate(), sgpp::optimization::optimizer::AugmentedLagrangian::optimize(), sgpp::optimization::optimizer::LogBarrier::optimize(), sgpp::optimization::optimizer::SquaredPenalty::optimize(), sgpp::optimization::optimizer::LevenbergMarquardt::optimize(), sgpp::optimization::optimizer::AdaptiveGradientDescent::optimize(), sgpp::optimization::optimizer::AdaptiveNewton::optimize(), sgpp::optimization::optimizer::BFGS::optimize(), sgpp::optimization::optimizer::CMAES::optimize(), sgpp::optimization::optimizer::DifferentialEvolution::optimize(), sgpp::optimization::optimizer::GradientDescent::optimize(), sgpp::optimization::optimizer::MultiStart::optimize(), sgpp::optimization::optimizer::NelderMead::optimize(), sgpp::optimization::optimizer::Newton::optimize(), sgpp::optimization::optimizer::NLCG::optimize(), sgpp::optimization::optimizer::Rprop::optimize(), sgpp::optimization::IterativeGridGenerator::printIterativeGridGenerator(), sgpp::base::sle_solver::Armadillo::solve(), sgpp::base::sle_solver::Auto::solve(), sgpp::base::sle_solver::Eigen::solve(), sgpp::base::sle_solver::UMFPACK::solve(), sgpp::base::sle_solver::BiCGStab::solve(), sgpp::base::sle_solver::GaussianElimination::solve(), and sgpp::base::sle_solver::solveInternal().

◆ printStatusIdentation()

void sgpp::base::Printer::printStatusIdentation ( )

Internal function printing the indentation.

◆ printStatusNewLine()

◆ printStatusUpdate()

void sgpp::base::Printer::printStatusUpdate ( const std::string &  msg)

Call for printing status updates on the operation.

The last status is erased, if printStatusNewLine has not been called before. Locks and unlocks an OpenMP mutex.

Parameters
msgstatus message

Referenced by sgpp::optimization::FuzzyExtensionPrinciple::apply(), sgpp::base::sle_solver::callback(), sgpp::optimization::IterativeGridGeneratorFuzzyRitterNovak::generate(), sgpp::optimization::IterativeGridGeneratorLinearSurplus::generate(), sgpp::optimization::IterativeGridGeneratorRitterNovak::generate(), sgpp::optimization::IterativeGridGeneratorSOO::generate(), sgpp::optimization::optimizer::AugmentedLagrangian::optimize(), sgpp::optimization::optimizer::LogBarrier::optimize(), sgpp::optimization::optimizer::SquaredPenalty::optimize(), sgpp::optimization::optimizer::LevenbergMarquardt::optimize(), sgpp::optimization::optimizer::AdaptiveGradientDescent::optimize(), sgpp::optimization::optimizer::AdaptiveNewton::optimize(), sgpp::optimization::optimizer::BFGS::optimize(), sgpp::optimization::optimizer::CMAES::optimize(), sgpp::optimization::optimizer::DifferentialEvolution::optimize(), sgpp::optimization::optimizer::GradientDescent::optimize(), sgpp::optimization::optimizer::MultiStart::optimize(), sgpp::optimization::optimizer::NelderMead::optimize(), sgpp::optimization::optimizer::Newton::optimize(), sgpp::optimization::optimizer::NLCG::optimize(), sgpp::optimization::optimizer::Rprop::optimize(), sgpp::optimization::IterativeGridGenerator::printIterativeGridGenerator(), sgpp::base::sle_solver::Armadillo::solve(), sgpp::base::sle_solver::Auto::solve(), sgpp::base::sle_solver::Eigen::solve(), sgpp::base::sle_solver::UMFPACK::solve(), sgpp::base::sle_solver::BiCGStab::solve(), sgpp::base::sle_solver::GaussianElimination::solve(), sgpp::base::sle_solver::Gmmpp::solve(), and sgpp::base::sle_solver::solveInternal().

◆ setLineLengthLimit()

void sgpp::base::Printer::setLineLengthLimit ( size_t  lineLengthLimit)
Parameters
lineLengthLimitmaximum length of lines, 0 if unbounded

◆ setStream()

void sgpp::base::Printer::setStream ( std::ostream *  stream)
Parameters
streamstream used for printing (default std::cout)

◆ setVerbosity()

void sgpp::base::Printer::setVerbosity ( int  level)
inline
Parameters
levelnew verbosity level

References level, and verbose.

Member Data Documentation

◆ cursorInClearLine

bool sgpp::base::Printer::cursorInClearLine
protected

is current line empty? (false if there's an old status update)

◆ DEFAULT_VERBOSITY

const int sgpp::base::Printer::DEFAULT_VERBOSITY = 0
static

default verbosity

◆ indentation

std::string sgpp::base::Printer::indentation
protected

indentation

◆ INDENTATION_CHAR

const char sgpp::base::Printer::INDENTATION_CHAR = ' '
staticprotected

◆ INDENTATION_LENGTH

const size_t sgpp::base::Printer::INDENTATION_LENGTH = 4
staticprotected

◆ indentationLevel

int sgpp::base::Printer::indentationLevel
protected

current indentation level (can be less than statusLevel)

◆ lastDuration

double sgpp::base::Printer::lastDuration
protected

length of last operation in seconds

◆ lastMsgLength

size_t sgpp::base::Printer::lastMsgLength
protected

length of the last status message in characters

◆ lineLengthLimit

size_t sgpp::base::Printer::lineLengthLimit
protected

maximum length of lines, 0 if unbounded

◆ mutex

MutexType sgpp::base::Printer::mutex
protected

internal mutex

◆ statusLevel

int sgpp::base::Printer::statusLevel
protected

current status level

◆ statusPrintingEnabled

bool sgpp::base::Printer::statusPrintingEnabled
protected

whether status printing is enabled

◆ stream

std::ostream* sgpp::base::Printer::stream
protected

stream used for printing (default std::cout)

◆ verbose

◆ watches

std::stack<SGppStopwatch> sgpp::base::Printer::watches
protected

stack of stop watches (started at time of printStatusBegin() calls)


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