mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-06-05 11:24:17 +03:00
1. Check, if value found by math_PSO algorithm cannot be precised by math_NewtonMinimum algorithm. In this case, we call math_PSO algorithm repeatedly, however, with other parameters. 2. Some margin of edge tolerance value has been provided in IntTools_Tools class. 3. Interface of math_NewtonMinimum class has been changed (method GetStatus() has been added). Correction of some test cases according to their new behavior.
70 lines
1.9 KiB
Plaintext
70 lines
1.9 KiB
Plaintext
// Created on: 1996-05-03
|
|
// Created by: Philippe MANGIN
|
|
// Copyright (c) 1996-1999 Matra Datavision
|
|
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
|
//
|
|
// This file is part of Open CASCADE Technology software library.
|
|
//
|
|
// This library is free software; you can redistribute it and/or modify it under
|
|
// the terms of the GNU Lesser General Public License version 2.1 as published
|
|
// by the Free Software Foundation, with special exception defined in the file
|
|
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
|
// distribution for complete text of the license and disclaimer of any warranty.
|
|
//
|
|
// Alternatively, this file may be used under the terms of Open CASCADE
|
|
// commercial license or contractual agreement.
|
|
|
|
#include <StdFail_NotDone.hxx>
|
|
|
|
inline Standard_Boolean math_NewtonMinimum::IsConverged() const
|
|
{
|
|
return ( (TheStep.Norm() <= XTol ) ||
|
|
( Abs(TheMinimum-PreviousMinimum) <= XTol * Abs(PreviousMinimum) ));
|
|
}
|
|
|
|
inline Standard_Boolean math_NewtonMinimum::IsDone() const
|
|
{
|
|
return Done;
|
|
}
|
|
|
|
inline const math_Vector& math_NewtonMinimum::Location() const
|
|
{
|
|
StdFail_NotDone_Raise_if(!Done, "NewtonMinimum");
|
|
return TheLocation;
|
|
}
|
|
|
|
inline void math_NewtonMinimum::Location(math_Vector& Loc) const
|
|
{
|
|
StdFail_NotDone_Raise_if(!Done, "NewtonMinimum");
|
|
Loc = TheLocation;
|
|
}
|
|
|
|
inline Standard_Real math_NewtonMinimum::Minimum() const
|
|
{
|
|
StdFail_NotDone_Raise_if(!Done, "NewtonMinimum");
|
|
return TheMinimum;
|
|
}
|
|
|
|
inline const math_Vector& math_NewtonMinimum::Gradient() const
|
|
{
|
|
StdFail_NotDone_Raise_if(!Done, "NewtonMinimum");
|
|
return TheGradient;
|
|
}
|
|
|
|
inline void math_NewtonMinimum::Gradient(math_Vector& Grad) const
|
|
{
|
|
StdFail_NotDone_Raise_if(!Done, "NewtonMinimum");
|
|
Grad = TheGradient;
|
|
}
|
|
|
|
inline Standard_Integer math_NewtonMinimum::NbIterations() const
|
|
{
|
|
StdFail_NotDone_Raise_if(!Done, "NewtonMinimum");
|
|
return nbiter;
|
|
}
|
|
|
|
inline math_Status math_NewtonMinimum::GetStatus() const
|
|
{
|
|
return TheStatus;
|
|
}
|