mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-29 14:00:49 +03:00
0027131: [Regression to 6.7] DistShapeShape performance loss
Lipchitz constant approximation and fixes in global optimization algorithm added to improve performance. Test case added. Possibility to freeze Lipchitz constant is added to improve performance.
This commit is contained in:
@@ -146,6 +146,9 @@ public:
|
||||
//! Set functional minimal value.
|
||||
Standard_EXPORT void SetFunctionalMinimalValue(const Standard_Real theMinimalValue);
|
||||
|
||||
//! Lock/Unlock Lipchitz constant for internal modifications.
|
||||
Standard_EXPORT void SetLipConstState(const Standard_Boolean theFlag);
|
||||
|
||||
//! Get functional minimal value.
|
||||
Standard_EXPORT Standard_Real GetFunctionalMinimalValue();
|
||||
|
||||
@@ -154,6 +157,9 @@ private:
|
||||
// Compute cell size.
|
||||
void initCellSize();
|
||||
|
||||
// Compute initial solution
|
||||
void ComputeInitSol();
|
||||
|
||||
math_GlobOptMin & operator = (const math_GlobOptMin & theOther);
|
||||
|
||||
Standard_Boolean computeLocalExtremum(const math_Vector& thePnt, Standard_Real& theVal, math_Vector& theOutPnt);
|
||||
@@ -188,9 +194,11 @@ private:
|
||||
Standard_Real mySameTol; // points with ||p1 - p2|| < mySameTol is equal,
|
||||
// function values |val1 - val2| * 0.01 < mySameTol is equal,
|
||||
// default value is 1.0e-7.
|
||||
Standard_Real myC; //Lipschitz constant, default 9
|
||||
Standard_Real myC; //Lipchitz constant, default 9
|
||||
Standard_Real myInitC; // Lipchitz constant initial value.
|
||||
Standard_Boolean myIsFindSingleSolution; // Default value is false.
|
||||
Standard_Real myFunctionalMinimalValue; // Default value is -Precision::Infinite
|
||||
Standard_Boolean myIsConstLocked; // Is constant locked for modifications.
|
||||
|
||||
// Output.
|
||||
Standard_Boolean myDone;
|
||||
@@ -207,6 +215,7 @@ private:
|
||||
math_Vector myTmp; // Current modified solution.
|
||||
math_Vector myV; // Steps array.
|
||||
math_Vector myMaxV; // Max Steps array.
|
||||
Standard_Real myLastStep; // Last step.
|
||||
math_Vector myExpandCoeff; // Define expand coefficient between neighboring indiced dimensions.
|
||||
|
||||
NCollection_Array1<Standard_Real> myCellSize;
|
||||
|
Reference in New Issue
Block a user