1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0028175: Bad result of curve-curve extrema

Extrema between curves has been made producing correct result for the cases of solution located near bounds.

- Class math_GlobOptMin has been improved to use lower order methods of local optimization when high-order methods are failed.
- Add support of conditional optimization (in bounds) in the classes math_BFGS and math_BracketMinimum.
- Turn on conditional optimization in the case of usage of math_BFGS in the class math_GlobOptMin.
- Correct mistake in distmini command, which caused incorrect reading of deflection parameter.
- To avoid possible FPE signals, ensure initialization of fields in the class math/math_BracketMinimum.
- In the algorithms math_BFGS, math_Powell and math_FRPR, take into account that the function math_MultipleVarFunction can return failure status (e.g. when computing D0 out of bounds).

New test cases have been added.
Tests cases are updated.

// correct test case
This commit is contained in:
aml
2016-12-15 16:32:52 +03:00
committed by apn
parent 640d5fe219
commit f79b19a17e
17 changed files with 634 additions and 174 deletions

View File

@@ -75,7 +75,7 @@ static Standard_Integer distmini(Draw_Interpretor& di, Standard_Integer n, const
Standard_Real aDeflection = Precision::Confusion();
if (n == 5)
aDeflection = Draw::Atoi(a[4]);
aDeflection = Draw::Atof(a[4]);
BRepExtrema_DistShapeShape dst(S1 ,S2, aDeflection);