You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here are two routines for the LBFGS project, to be incorporated as seen fit by the project maintainers.
-- Converts LBFGS error codes to short strings.
-- Pretty-prints the LBFGS parameters
//*******************************************************************
// Copyright 2013 Norman J. Goldstein
//
// License:
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this program. If not, see
// http://www.gnu.org/licenses/.
//
// Author: Norman J. Goldstein ([email protected],
// [email protected])
include "MthConfigLBFGS.h"
include
const char* LBFGS_ERR_str( int val )
{
switch( val )
{
case LBFGS_CONVERGENCE:
{
return "CONVERGENCE";
}
case LBFGS_STOP:
{
return "STOP";
}
case LBFGS_ALREADY_MINIMIZED:
{
return "ALREADY_MINIMIZED";
}
case LBFGSERR_UNKNOWNERROR:
{
return "UNKNOWNERROR";
}
case LBFGSERR_LOGICERROR:
{
return "LOGICERROR";
}
case LBFGSERR_OUTOFMEMORY:
{
return "OUTOFMEMORY";
}
case LBFGSERR_CANCELED:
{
return "CANCELED";
}
case LBFGSERR_INVALID_N:
{
return "INVALID_N";
}
case LBFGSERR_INVALID_N_SSE:
{
return "INVALID_N_SSE";
}
case LBFGSERR_INVALID_X_SSE:
{
return "INVALID_X_SSE";
}
case LBFGSERR_INVALID_EPSILON:
{
return "INVALID_EPSILON";
}
case LBFGSERR_INVALID_TESTPERIOD:
{
return "INVALID_TESTPERIOD";
}
case LBFGSERR_INVALID_DELTA:
{
return "INVALID_DELTA";
}
case LBFGSERR_INVALID_LINESEARCH:
{
return "INVALID_LINESEARCH";
}
case LBFGSERR_INVALID_MINSTEP:
{
return "INVALID_MINSTEP";
}
case LBFGSERR_INVALID_MAXSTEP:
{
return "INVALID_MAXSTEP";
}
case LBFGSERR_INVALID_FTOL:
{
return "INVALID_FTOL";
}
case LBFGSERR_INVALID_WOLFE:
{
return "INVALID_WOLFE";
}
case LBFGSERR_INVALID_GTOL:
{
return "INVALID_GTOL";
}
case LBFGSERR_INVALID_XTOL:
{
return "INVALID_XTOL";
}
case LBFGSERR_INVALID_MAXLINESEARCH:
{
return "INVALID_MAXLINESEARCH";
}
case LBFGSERR_INVALID_ORTHANTWISE:
{
return "INVALID_ORTHANTWISE";
}
case LBFGSERR_INVALID_ORTHANTWISE_START:
{
return "INVALID_ORTHANTWISE_START";
}
case LBFGSERR_INVALID_ORTHANTWISE_END:
{
return "INVALID_ORTHANTWISE_END";
}
case LBFGSERR_OUTOFINTERVAL:
{
return "OUTOFINTERVAL";
}
case LBFGSERR_INCORRECT_TMINMAX:
{
return "INCORRECT_TMINMAX";
}
case LBFGSERR_ROUNDING_ERROR:
{
return "ROUNDING_ERROR";
}
case LBFGSERR_MINIMUMSTEP:
{
return "MINIMUMSTEP";
}
case LBFGSERR_MAXIMUMSTEP:
{
return "MAXIMUMSTEP";
}
case LBFGSERR_MAXIMUMLINESEARCH:
{
return "MAXIMUMLINESEARCH";
}
case LBFGSERR_MAXIMUMITERATION:
{
return "MAXIMUMITERATION";
}
case LBFGSERR_WIDTHTOOSMALL:
{
return "WIDTHTOOSMALL";
}
case LBFGSERR_INVALIDPARAMETERS:
{
return "INVALIDPARAMETERS";
}
case LBFGSERR_INCREASEGRADIENT:
{
return "INCREASEGRADIENT";
}
default:
{
return "Not a valid LBFGS error code";
}
Sorry this took so long. The patch you have sent is somewhat challenging to use as it got formatted into markdown, which I can potentially work around but brings up a different issue:
It's GPLv3. The project is currently licensed as MIT, and landing a GPL dependency effectively taints it - so unless you intend to relicense with a more permissive license, I'm afraid landing this would be problematic.
Here are two routines for the LBFGS project, to be incorporated as seen fit by the project maintainers.
-- Converts LBFGS error codes to short strings.
-- Pretty-prints the LBFGS parameters
//*******************************************************************
// Copyright 2013 Norman J. Goldstein
//
// License:
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this program. If not, see
// http://www.gnu.org/licenses/.
//
// Author: Norman J. Goldstein ([email protected],
// [email protected])
include "MthConfigLBFGS.h"
include
const char* LBFGS_ERR_str( int val )
{
switch( val )
{
case LBFGS_CONVERGENCE:
{
return "CONVERGENCE";
}
}
}
using namespace std;
ostream& operator<<( ostream& os,
const lbfgs_parameter_t& params )
{
define POUT(v) os << #v << "= " << params.v << endl
POUT(m);
POUT(epsilon);
POUT(past);
POUT(delta);
POUT(max_iterations);
POUT(linesearch);
POUT(max_linesearch);
POUT(min_step);
POUT(max_step);
POUT(ftol);
POUT(wolfe);
POUT(gtol);
POUT(xtol);
POUT(orthantwise_c);
POUT(orthantwise_start);
POUT(orthantwise_end);
undef POUT
return os;
}// operator<<
The text was updated successfully, but these errors were encountered: