Warning, /include/opencascade/math_NewtonFunctionSetRoot.lxx is written in an unsupported language. File is not indexed.
0001 // Copyright (c) 1997-1999 Matra Datavision
0002 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0003 //
0004 // This file is part of Open CASCADE Technology software library.
0005 //
0006 // This library is free software; you can redistribute it and/or modify it under
0007 // the terms of the GNU Lesser General Public License version 2.1 as published
0008 // by the Free Software Foundation, with special exception defined in the file
0009 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0010 // distribution for complete text of the license and disclaimer of any warranty.
0011 //
0012 // Alternatively, this file may be used under the terms of Open CASCADE
0013 // commercial license or contractual agreement.
0014
0015 #include <StdFail_NotDone.hxx>
0016
0017 inline Standard_Boolean math_NewtonFunctionSetRoot::IsSolutionReached(
0018 math_FunctionSetWithDerivatives&)
0019 {
0020 for (Standard_Integer i = DeltaX.Lower(); i <= DeltaX.Upper(); ++i)
0021 if (Abs(DeltaX(i)) > TolX(i) || Abs(FValues(i)) > TolF)
0022 return Standard_False;
0023
0024 return Standard_True;
0025 }
0026
0027 inline Standard_Boolean math_NewtonFunctionSetRoot::IsDone() const
0028 {
0029 return Done;
0030 }
0031
0032 inline Standard_OStream& operator<<(Standard_OStream& o, const math_NewtonFunctionSetRoot& N)
0033 {
0034 N.Dump(o);
0035 return o;
0036 }
0037
0038 inline const math_Vector& math_NewtonFunctionSetRoot::Root() const
0039 {
0040 StdFail_NotDone_Raise_if(!Done, " ");
0041 return Sol;
0042 }
0043
0044 inline void math_NewtonFunctionSetRoot::Root(math_Vector& Root) const
0045 {
0046 StdFail_NotDone_Raise_if(!Done, " ");
0047 Root = Sol;
0048 }
0049
0050 inline const math_Matrix& math_NewtonFunctionSetRoot::Derivative() const
0051 {
0052 StdFail_NotDone_Raise_if(!Done, " ");
0053 return Jacobian;
0054 }
0055
0056 inline void math_NewtonFunctionSetRoot::Derivative(math_Matrix& Der) const
0057 {
0058 StdFail_NotDone_Raise_if(!Done, " ");
0059 Der = Jacobian;
0060 }
0061
0062 inline const math_Vector& math_NewtonFunctionSetRoot::FunctionSetErrors() const
0063 {
0064 StdFail_NotDone_Raise_if(!Done, " ");
0065 return DeltaX;
0066 }
0067
0068 inline void math_NewtonFunctionSetRoot::FunctionSetErrors(math_Vector& Err) const
0069 {
0070 StdFail_NotDone_Raise_if(!Done, " ");
0071 Err = DeltaX;
0072 }
0073
0074 inline Standard_Integer math_NewtonFunctionSetRoot::NbIterations() const
0075 {
0076 StdFail_NotDone_Raise_if(!Done, " ");
0077 return Iter;
0078 }