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(math_FunctionSetWithDerivatives&)
0018 {
0019 for (Standard_Integer i = DeltaX.Lower(); i <= DeltaX.Upper(); ++i)
0020 if ( Abs(DeltaX(i)) > TolX(i) || Abs(FValues(i)) > TolF )
0021 return Standard_False;
0022
0023 return Standard_True;
0024 }
0025
0026 inline Standard_Boolean math_NewtonFunctionSetRoot::IsDone() const
0027 {
0028 return Done;
0029 }
0030
0031 inline Standard_OStream& operator<<(Standard_OStream& o,
0032 const math_NewtonFunctionSetRoot& N)
0033 {
0034 N.Dump(o);
0035 return o;
0036 }
0037
0038
0039 inline const math_Vector& math_NewtonFunctionSetRoot::Root() const{
0040 StdFail_NotDone_Raise_if(!Done, " ");
0041 return Sol;
0042 }
0043
0044
0045 inline void math_NewtonFunctionSetRoot::Root(math_Vector& Root) const{
0046 StdFail_NotDone_Raise_if(!Done, " ");
0047 Root = Sol;
0048 }
0049
0050
0051 inline const math_Matrix& math_NewtonFunctionSetRoot::Derivative() const{
0052 StdFail_NotDone_Raise_if(!Done, " ");
0053 return Jacobian;
0054 }
0055
0056
0057 inline void math_NewtonFunctionSetRoot::Derivative(math_Matrix& Der) const{
0058 StdFail_NotDone_Raise_if(!Done, " ");
0059 Der = Jacobian;
0060 }
0061
0062
0063 inline const math_Vector& math_NewtonFunctionSetRoot::FunctionSetErrors() const{
0064 StdFail_NotDone_Raise_if(!Done, " ");
0065 return DeltaX;
0066 }
0067
0068
0069 inline void math_NewtonFunctionSetRoot::FunctionSetErrors(math_Vector& Err) const{
0070 StdFail_NotDone_Raise_if(!Done, " ");
0071 Err = DeltaX;
0072 }
0073
0074
0075 inline Standard_Integer math_NewtonFunctionSetRoot::NbIterations() const{
0076 StdFail_NotDone_Raise_if(!Done, " ");
0077 return Iter;
0078 }
0079
0080