82 kEInit , kEFnal , kEDcrs , kEStps ,
93 kStopped , kLwPrcsn , kStpIter , kStpTime ,
216 NrFi = Fi->GetNrFi();
250 virtual void KeepBestLambda(
const bool KBL =
true ) {};
262 virtual void SetPar(
const int wp ,
const int value );
301 virtual void SetNDOLog( ostream *outs = 0 ,
const char lvl = 0 ) {
385 virtual void ReSetAlg(
unsigned char RstLvl = 0 ) {}
498 return( (
Result == kOK ) );
605 I =
nullptr; D = 0;
return( 0 );
684 void NDOTime(
double & t_us ,
double & t_ss ) {
709 virtual void GetPar(
const int wp ,
int &value );
716 virtual void GetPar(
const int wp ,
HpNum &value );
798 throw(
NDOException(
"AddVariables: adding variables is not supported" )
873 "RemoveVariables: removing variables is not supported" ) );
912 throw(
NDOException(
"ChgFiV: changing Fi-values is not supported" ) );
945 throw(
NDOException(
"ChgSbG: changing subgradients is not supported" ) );
1051 case( kEStps ):
EStps = value;
break;
1053 NDOException(
"SetPar( Index ): unknown parameter" ) );
1062 case( kMaxTme ):
MaxTime = value;
break;
1063 case( ktStar ):
tStar = value;
break;
1064 case( kEpsLin ):
EpsLin = value;
break;
1065 case( kEInit ):
EInit = value;
break;
1066 case( kEFnal ):
EFnal = value;
break;
1067 case( kEDcrs ):
EDcrs = value;
break;
1069 NDOException(
"SetPar( HpNum ): unknown parameter" ) );
1078 case( kMaxItr ): value = int(
MaxIter );
break;
1079 case( kEStps ): value =
EStps;
break;
1081 NDOException(
"GetPar( Index ): unknown parameter" ) );
1090 case( kMaxTme ): value =
MaxTime;
break;
1091 case( ktStar ): value =
tStar;
break;
1092 case( kEpsLin ): value =
EpsLin;
break;
1093 case( kEInit ): value =
EInit;
break;
1094 case( kEFnal ): value =
EFnal;
break;
1095 case( kEDcrs ): value =
EDcrs;
break;
1097 NDOException(
"GetPar( HpNum ): unknown parameter" ) );
Definition FiOracle.h:231
Index MaxIter
maximum number of iterations
Definition NDOSlver.h:980
NDOSolver(std::istream *iStrm=0)
Definition NDOSlver.h:1016
Index NrIter(void) const
Definition NDOSlver.h:667
virtual void SetPar(const int wp, const int value)
Definition NDOSlver.h:1047
virtual void SetNDOTime(const bool TimeIt=true)
Definition NDOSlver.h:320
virtual cLMRow ReadBestSol(cIndex_Set &I, Index &D)
Definition NDOSlver.h:451
virtual HpNum ReadBestFiVal(cIndex wFi=Inf< Index >())
Definition NDOSlver.h:483
virtual void SetLambda(cLMRow tLambda=0)=0
Index NrFi
number of components of Fi()
Definition NDOSlver.h:994
NDOStatus
Definition NDOSlver.h:91
virtual void RemoveVariables(cIndex_Set whch=0, Index hwmny=0)
Definition NDOSlver.h:871
NDOParam
Definition NDOSlver.h:80
int EStps
precision-related parameter: number of steps
Definition NDOSlver.h:989
Index NrCalls(void) const
Definition NDOSlver.h:657
virtual ~NDOSolver()
Definition NDOSlver.h:959
Index GiEval(void) const
Definition NDOSlver.h:649
Index SCalls
nuber of calls to Solve() (the current included)
Definition NDOSlver.h:996
virtual void GetPar(const int wp, int &value)
Definition NDOSlver.h:1075
Index FiEvaltns
total number of Fi() calls
Definition NDOSlver.h:998
char NDOLLvl
the "level of verbosity" of the log
Definition NDOSlver.h:1003
virtual HpNum ReadLBMult(cIndex wFi=Inf< Index >())
Definition NDOSlver.h:633
HpNum EDcrs
precision-related parameter: rate of decrease
Definition NDOSlver.h:988
FiOracle * Oracle
(pointer to) the oracle for Fi
Definition NDOSlver.h:978
Index GiEvaltns
total number of Gi() calls
Definition NDOSlver.h:999
double NDOTime(void)
Definition NDOSlver.h:694
virtual HpNum ReadFiVal(cIndex wFi=Inf< Index >())=0
Index FiEval(void) const
Definition NDOSlver.h:641
HpNum EInit
precision-related parameter: initial precision
Definition NDOSlver.h:986
virtual void AddVariables(Index NNwVrs, cLMRow IVs=0)
Definition NDOSlver.h:797
HpNum EpsLin
optimality related parameter: relative precision
Definition NDOSlver.h:984
virtual bool IsOptimal(HpNum eps=0) const
Definition NDOSlver.h:497
virtual NDOStatus Solve(void)=0
virtual void SetNDOLog(ostream *outs=0, const char lvl=0)
Definition NDOSlver.h:301
Index GetNumVar(void) const
Definition NDOSlver.h:705
virtual void ReSetAlg(unsigned char RstLvl=0)
Definition NDOSlver.h:385
HpNum EFnal
precision-related parameter: final precision
Definition NDOSlver.h:987
HpNum tStar
optimality related parameter: "scaling" of Fi
Definition NDOSlver.h:983
virtual cLMRow ReadSol(cIndex_Set &I, Index &D)=0
HpNum MaxTime
maximum time (in seconds) for each call to Solve()
Definition NDOSlver.h:981
Index ParIter
nuber of iterations in this run
Definition NDOSlver.h:997
ostream * NDOLog
the output stream object for log purposes
Definition NDOSlver.h:1002
OPTtimers * NDOt
OPTtimer for timing purposes.
Definition NDOSlver.h:1005
virtual void ChgFiV(cIndex wFi=Inf< Index >())
Definition NDOSlver.h:911
virtual void SetFiOracle(FiOracle *Fi=0)
Definition NDOSlver.h:214
NDOStatus Result
result of the latest call to Solve()
Definition NDOSlver.h:991
virtual cHpRow ReadMult(cIndex_Set &I, Index &D, cIndex wFi=Inf< Index >())
Definition NDOSlver.h:603
Index NumVar
(current) number of variables
Definition NDOSlver.h:993
virtual void ChgSbG(cIndex strt=0, Index stp=Inf< Index >(), cIndex wFi=Inf< Index >())
Definition NDOSlver.h:943
void NDOTime(double &t_us, double &t_ss)
Definition NDOSlver.h:684
Definition OPTUtils.h:144
void ReSet(void)
reset the timer
Definition OPTUtils.h:214
double Read(void)
Definition OPTUtils.h:184
const HpNum cHpNum
a read-only HpNum
Definition OPTtypes.h:102
double HpNum
"finer" floating point numbers
Definition OPTtypes.h:98
const Index cIndex
a read-only Index
Definition OPTtypes.h:64
cIndex * cIndex_Set
read-only array
Definition OPTtypes.h:65
unsigned int Index
Index in a vector ( >= 0 )
Definition OPTtypes.h:60
cHpNum * cHpRow
read-only array
Definition OPTtypes.h:103
cLMNum * cLMRow
a read-only vector of LMs
Definition OPTtypes.h:134
static constexpr T Inf(void) noexcept
Inf< T >() = infinity value for T.
Definition OPTUtils.h:357
void DfltdSfInpt(istream *iStrm, T &Param, const T Dflt, const char cmntc='#')
Definition OPTUtils.h:392