|
||||
File indexing completed on 2025-01-18 10:03:30
0001 // Created on: 1996-10-11 0002 // Created by: Philippe MANGIN 0003 // Copyright (c) 1996-1999 Matra Datavision 0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS 0005 // 0006 // This file is part of Open CASCADE Technology software library. 0007 // 0008 // This library is free software; you can redistribute it and/or modify it under 0009 // the terms of the GNU Lesser General Public License version 2.1 as published 0010 // by the Free Software Foundation, with special exception defined in the file 0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0012 // distribution for complete text of the license and disclaimer of any warranty. 0013 // 0014 // Alternatively, this file may be used under the terms of Open CASCADE 0015 // commercial license or contractual agreement. 0016 0017 #ifndef _FairCurve_Newton_HeaderFile 0018 #define _FairCurve_Newton_HeaderFile 0019 0020 #include <Standard.hxx> 0021 #include <Standard_DefineAlloc.hxx> 0022 #include <Standard_Handle.hxx> 0023 0024 #include <math_NewtonMinimum.hxx> 0025 class math_MultipleVarFunctionWithHessian; 0026 0027 0028 //! Algorithme of Optimization used to make "FairCurve" 0029 class FairCurve_Newton : public math_NewtonMinimum 0030 { 0031 public: 0032 0033 DEFINE_STANDARD_ALLOC 0034 0035 0036 0037 //! The tolerance required on the solution is given by Tolerance. 0038 //! Iteration are stopped if (!WithSingularity) and H(F(Xi)) is not definite 0039 //! positive (if the smaller eigenvalue of H < Convexity) 0040 //! or IsConverged() returns True for 2 successives Iterations. 0041 //! Warning: This constructor do not computation 0042 Standard_EXPORT FairCurve_Newton(const math_MultipleVarFunctionWithHessian& theFunction, const Standard_Real theSpatialTolerance = 1.0e-7, const Standard_Real theCriteriumTolerance = 1.0e-7, const Standard_Integer theNbIterations = 40, const Standard_Real theConvexity = 1.0e-6, const Standard_Boolean theWithSingularity = Standard_True); 0043 0044 0045 //! This method is called at the end of each 0046 //! iteration to check the convergence : 0047 //! || Xi+1 - Xi || < SpatialTolerance/100 Or 0048 //! || Xi+1 - Xi || < SpatialTolerance and 0049 //! |F(Xi+1) - F(Xi)| < CriteriumTolerance * |F(xi)| 0050 //! It can be redefined in a sub-class to implement a specific test. 0051 Standard_EXPORT virtual Standard_Boolean IsConverged() const Standard_OVERRIDE; 0052 0053 0054 0055 0056 protected: 0057 0058 0059 0060 0061 0062 private: 0063 0064 0065 0066 Standard_Real mySpTol; 0067 0068 0069 }; 0070 0071 0072 0073 0074 0075 0076 0077 #endif // _FairCurve_Newton_HeaderFile
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |