Xmipp  v3.23.11-Nereus
Public Member Functions | Public Attributes | List of all members
CorrectScaleOF Class Reference

#include <ObjectiveFunction.h>

Inheritance diagram for CorrectScaleOF:
Inheritance graph
[legend]
Collaboration diagram for CorrectScaleOF:
Collaboration graph
[legend]

Public Member Functions

 CorrectScaleOF (int _t, ObjectiveFunction *_of, Vector _rescaling)
 
 CorrectScaleOF (int _t, ObjectiveFunction *_of)
 
 ~CorrectScaleOF ()
 
void saveValue (Vector X, double valueOF, int nerror)
 
double eval (Vector v, int *nerror=NULL)
 
virtual double evalNLConstraint (int j, Vector v, int *nerror=NULL)
 
virtual void evalGradNLConstraint (int j, Vector v, Vector result, int *nerror=NULL)
 
virtual void finalize (Vector vG, Matrix mH, Vector vLambda)
 
virtual int getNFE ()
 
virtual int getNFE2 ()
 
- Public Member Functions inherited from ObjectiveFunction
virtual Vector evalGradNLConstraint (int j, Vector v, int *nerror)
 
 ObjectiveFunction ()
 
virtual ~ObjectiveFunction ()
 
int dim ()
 
void initData ()
 
virtual void printStats (char cc=1)
 
void saveStats (char *filename, Vector vG, Matrix mH, Vector vLambda)
 
void setName (char *s)
 
void setSaveFile (char *b=NULL)
 
void updateCounter (double df, Vector vX, int nerror=0)
 
char isFeasible (Vector vx, double *d=NULL)
 
void initBounds ()
 
void endInit ()
 
void initTolLC (Vector vX)
 
void initTolNLC (Vector c, double delta)
 

Public Attributes

Vector rescaling
 
- Public Attributes inherited from ObjectiveFunction
char name [9]
 
char startPointIsGiven
 
Vector xStart
 
Vector xBest
 
Vector xOptimal
 
double valueOptimal
 
double valueBest
 
double noiseAbsolute
 
double noiseRelative
 
double objectiveConst
 
Matrix data
 
int t
 
int nNLConstraints
 
int isConstrained
 
Vector bl
 
Vector bu
 
Matrix A
 
Vector b
 
double tolRelFeasibilityForNLC
 
double tolNLC
 
double tolRelFeasibilityForLC
 
double tolLC
 

Additional Inherited Members

- Protected Attributes inherited from ObjectiveFunction
int nfe
 
int nfe2
 

Detailed Description

Definition at line 121 of file ObjectiveFunction.h.

Constructor & Destructor Documentation

◆ CorrectScaleOF() [1/2]

CorrectScaleOF::CorrectScaleOF ( int  _t,
ObjectiveFunction _of,
Vector  _rescaling 
)

Definition at line 395 of file ObjectiveFunction.cpp.

395  :
396  rescaling(_rescaling), of(_of)
397 {
398  t=_t;
399  if ((int)_rescaling.sz()!=_of->dim())
400  {
401  printf("Error in rescaling vector: dimension do not agree.\n");
402  exit(254);
403  }
404  init();
405 }
unsigned sz()
Definition: Vector.h:79

◆ CorrectScaleOF() [2/2]

CorrectScaleOF::CorrectScaleOF ( int  _t,
ObjectiveFunction _of 
)

Definition at line 371 of file ObjectiveFunction.cpp.

371  :
372  of(_of)
373 {
374  t=_t;
375 
376  int i=of->dim();
377  rescaling.setSize(i);
378  double *xs=of->xStart,*r=rescaling;
379  while (i--) r[i]=condorAbs(xs[i])+1.0;
380 
381  if (of->isConstrained)
382  {
383  double *bl=of->bl, *bu=of->bu;
384  r=rescaling; i=of->dim();
385  while (i--)
386  {
387  if ((bl[i]>-INF)&&(bu[i]<INF)) { r[i]=bu[i]-bl[i]; continue; }
388  if ((r[i]==0.0 )&&(bu[i]<INF)) { r[i]=bu[i]; continue; }
389  if (r[i]==0.0) r[i]=1.0;
390  }
391  }
392  init();
393 }
#define i
void setSize(int _n)
Definition: Vector.cpp:112
double condorAbs(const double t1)
Definition: tools.h:47
#define INF
Definition: svm.cpp:43

◆ ~CorrectScaleOF()

CorrectScaleOF::~CorrectScaleOF ( )
inline

Definition at line 127 of file ObjectiveFunction.h.

127 {};

Member Function Documentation

◆ eval()

double CorrectScaleOF::eval ( Vector  v,
int *  nerror = NULL 
)
virtual

Implements ObjectiveFunction.

Definition at line 345 of file ObjectiveFunction.cpp.

346 {
347  int i=dim();
348  double *x=X, *xr=xTemp, *re=rescaling;
349  while (i--) xr[i]=re[i]*x[i];
350  double r=of->eval(xTemp,nerror);
351  updateCounter(r,X,*nerror);
352  return r;
353 }
doublereal * x
#define i
virtual double eval(Vector v, int *nerror)=0
void updateCounter(double df, Vector vX, int nerror=0)

◆ evalGradNLConstraint()

void CorrectScaleOF::evalGradNLConstraint ( int  j,
Vector  v,
Vector  result,
int *  nerror = NULL 
)
virtual

Implements ObjectiveFunction.

Definition at line 363 of file ObjectiveFunction.cpp.

364 {
365  int i=dim();
366  double *x=X, *xr=xTemp, *re=rescaling;
367  while (i--) xr[i]=re[i]*x[i];
368  of->evalGradNLConstraint(j,xTemp,result,nerror);
369 }
doublereal * x
#define i
#define j
virtual Vector evalGradNLConstraint(int j, Vector v, int *nerror)

◆ evalNLConstraint()

double CorrectScaleOF::evalNLConstraint ( int  j,
Vector  v,
int *  nerror = NULL 
)
virtual

Implements ObjectiveFunction.

Definition at line 355 of file ObjectiveFunction.cpp.

356 {
357  int i=dim();
358  double *x=X, *xr=xTemp, *re=rescaling;
359  while (i--) xr[i]=re[i]*x[i];
360  return of->evalNLConstraint(j,xTemp,nerror);
361 }
doublereal * x
#define i
virtual double evalNLConstraint(int j, Vector v, int *nerror)=0
#define j

◆ finalize()

void CorrectScaleOF::finalize ( Vector  vG,
Matrix  mH,
Vector  vLambda 
)
virtual

Reimplemented from ObjectiveFunction.

Definition at line 456 of file ObjectiveFunction.cpp.

457 {
458  of->xBest.copyFrom(xBest);
460 
461  of->valueBest=valueBest;
462 
463  // rescale vG,mH,vLambda
465 
469  vLambda.oneByOneMutiply(rescaling);
470  of->finalize(vG,mH,vLambda);
471 }
virtual void finalize(Vector vG, Matrix mH, Vector vLambda)
void oneByOneMutiply(Vector r)
Definition: Vector.cpp:376
void oneByOneInvert()
Definition: Vector.cpp:383
void diagonalizeAndMultiply(Matrix M)
Definition: Vector.cpp:316
void copyFrom(Vector r, int _n=0)
Definition: Vector.cpp:215
void multiplyByDiagonalMatrix(Vector v)
Definition: Matrix.cpp:558

◆ getNFE()

virtual int CorrectScaleOF::getNFE ( )
inlinevirtual

Reimplemented from ObjectiveFunction.

Definition at line 133 of file ObjectiveFunction.h.

133 { return of->nfe; }

◆ getNFE2()

virtual int CorrectScaleOF::getNFE2 ( )
inlinevirtual

Reimplemented from ObjectiveFunction.

Definition at line 134 of file ObjectiveFunction.h.

134 { return of->nfe2; }

◆ saveValue()

void CorrectScaleOF::saveValue ( Vector  X,
double  valueOF,
int  nerror 
)
virtual

Reimplemented from ObjectiveFunction.

Definition at line 336 of file ObjectiveFunction.cpp.

337 {
338  int i=dim();
339  double *x=X, *xr=xTemp, *re=rescaling;
340  while (i--) xr[i]=re[i]*x[i];
341  of->saveValue(xTemp,valueOF, nerror);
342  ObjectiveFunction::saveValue(X,valueOF, nerror);
343 }
virtual void saveValue(Vector tmp, double valueOF, int nerror)
doublereal * x
#define i

Member Data Documentation

◆ rescaling

Vector CorrectScaleOF::rescaling

Definition at line 124 of file ObjectiveFunction.h.


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