mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-04 18:06:22 +03:00
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
26 lines
592 B
Plaintext
26 lines
592 B
Plaintext
puts "============"
|
|
puts "CR28175"
|
|
puts "==========="
|
|
puts ""
|
|
###############################################################################
|
|
# Bad result of curve-curve extrema
|
|
###############################################################################
|
|
|
|
# Set signals on.
|
|
pload MODELING
|
|
dsetsignal 1
|
|
|
|
# Prepare input data.
|
|
restore [locate_data_file bug28175_2.brep] c
|
|
explode c
|
|
|
|
# Compute minimal distance
|
|
distmini d c_1 c_2
|
|
set dist [dval d_val]
|
|
|
|
# Check extrema distance
|
|
if { $dist > 1e-7 } {
|
|
puts "ERROR: Extrema distance is too big"
|
|
} else {
|
|
puts "OK: Correct extrema distance"
|
|
} |