Archived issue #0025649
crvtpoints command return wrong deflection in output.
Description
This bug was founded in scope of CR25489.
Wrong deflection computation caused by two facts:
1) Usage of ExtremaCC, which compute only minimum, but we need to get maximum.
2) Solving two-dimensional task, on which term "maximum", not well-defined.
It is necessary to change deflection computation as follows:
Solve one-dimensional optimization task, with the same parameter on first and second curves. Search maximum 3d distance.
This approach is not good.
See note 50478 by IFV
Wrong deflection computation caused by two facts:
1) Usage of ExtremaCC, which compute only minimum, but we need to get maximum.
2) Solving two-dimensional task, on which term "maximum", not well-defined.
It is necessary to change deflection computation as follows:
Solve one-dimensional optimization task, with the same parameter on first and second curves. Search maximum 3d distance.
This approach is not good.
See note 50478 by IFV
Steps to reproduce
Same for CR25489.
Public activity
15 archived notes
Participants are labeled by their role within this record.
Branch [archived branch] has been created by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Dec 23 10:21:23 2014 +0300
0025649: crvtpoints command return wrong deflection in output.
Deflection computation algorithm changed to PSO+NewtonMinimum.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Dec 23 10:21:23 2014 +0300
0025649: crvtpoints command return wrong deflection in output.
Deflection computation algorithm changed to PSO+NewtonMinimum.
Dear abv,
Please check current state of branch CR25649.
Please check current state of branch CR25649.
Branch [archived branch] has been updated forcibly by Author.
[revision removed]
[revision removed]
In function ComputeDeviation, please, move sqrt out of the cycle. Call it one time just before return.
Branch [archived branch] has been updated forcibly by Author.
[revision removed]
[revision removed]
Dear msv,
Square root moved to improve performance, please check updated branch CR25649.
Square root moved to improve performance, please check updated branch CR25649.
OK.
Dear Commenter 1,
Branch CR25649 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]
Number of compiler warnings:
occt component :
Linux: 18 (18 on master)
Windows: 0 (0 on master)
Linux: 11 (11 on master)
Windows: 1 (1 on master)
Regressions/Differences:
http://occt-tests.nnov.opencascade.com/CR25649-master-occt/Debian60-64/bugs/moddata_3/bug25207.html
http://occt-tests.nnov.opencascade.com/CR25649-master-occt/Windows-32-VC10/bugs/moddata_3/bug25207.html
bugs moddata_3(013) bug25207: FAILED
Testing cases:
Testing on Linux:
occt component :
Total MEMORY difference: 367677188 / 367852280
Total CPU difference: 51144.39000000015 / 51427.550000000156
products component :
Total MEMORY difference: 112592316 / 112513828
Total CPU difference: 16439.88999999997 / 16879.77999999998
Testing on Windows:
occt component :
Total MEMORY difference: 277633612 / 277262960
Total CPU difference: 38371.75 / 37455.2498257
products component :
Total MEMORY difference: 72380008 / 71382268
Total CPU difference: 12073.90625 / 10342.656534399997
There are no differences in images found by testdiff.
Branch CR25649 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]
Number of compiler warnings:
occt component :
Linux: 18 (18 on master)
Windows: 0 (0 on master)
Linux: 11 (11 on master)
Windows: 1 (1 on master)
Regressions/Differences:
http://occt-tests.nnov.opencascade.com/CR25649-master-occt/Debian60-64/bugs/moddata_3/bug25207.html
http://occt-tests.nnov.opencascade.com/CR25649-master-occt/Windows-32-VC10/bugs/moddata_3/bug25207.html
bugs moddata_3(013) bug25207: FAILED
Testing cases:
Testing on Linux:
occt component :
Total MEMORY difference: 367677188 / 367852280
Total CPU difference: 51144.39000000015 / 51427.550000000156
products component :
Total MEMORY difference: 112592316 / 112513828
Total CPU difference: 16439.88999999997 / 16879.77999999998
Testing on Windows:
occt component :
Total MEMORY difference: 277633612 / 277262960
Total CPU difference: 38371.75 / 37455.2498257
products component :
Total MEMORY difference: 72380008 / 71382268
Total CPU difference: 12073.90625 / 10342.656534399997
There are no differences in images found by testdiff.
Dear mkv,
"moddata_3(013) bug25207" is correct, please update this testcase to new behavior.
"moddata_3(013) bug25207" is correct, please update this testcase to new behavior.
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: mkv
Date: Thu Jan 15 14:38:01 2015 +0300
Correction of test case
[revision removed]
Detailed log of new commits:
Author: mkv
Date: Thu Jan 15 14:38:01 2015 +0300
Correction of test case
Branch CR25649 is TESTED.
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
crvtpoints command still returns wrong deflection in output.
One of basic assumptions used for algorithm :
" ...with the same parameter on first and second curves" causes to wrong calculation of maximal deflection between curve and its chord between two consecutive points, because vector (POnCurve-POnChord) calculated for the same parameter is not perpendicular to chord.
Since maximal deflection is used in test, algorithm of deflection calculation:
F = -myCurve->Value(X(1)).SquareDistance(myPnts->Value(X(1)));
must be corrected
One of basic assumptions used for algorithm :
" ...with the same parameter on first and second curves" causes to wrong calculation of maximal deflection between curve and its chord between two consecutive points, because vector (POnCurve-POnChord) calculated for the same parameter is not perpendicular to chord.
Since maximal deflection is used in test, algorithm of deflection calculation:
F = -myCurve->Value(X(1)).SquareDistance(myPnts->Value(X(1)));
must be corrected
This issue must be closed, because problem has been fixed in issue #27108
I agree.
Dear Commenter 1, please close this bug.
No test case is needed.
Dear Commenter 1, please close this bug.
No test case is needed.