Platform-independent reflection list sort in Single_crystal #2273
+69
−13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.





Free-form text area
Please describe what your PR is adding in terms of features or bugfixes:
In the same line of thinking as #2272, this PR is meant to bring identical algorithmic behaviour across Unix/Windows, based on sorting Single_crystal reflection lists.
(Thinking is again that across operating systems, qsort() behaviour for 'equal' elements is not well-defined.)
I have run a few test-cases e.g. with templateLaue (which is a relatively 'clean' Single_crystal system) - here the output still differs for ~ 20 in 1e6 particles when comparing between macOS Arm and Windows Intel...
More investigations of where the differences lie may come later.
Development OS / boundary conditions
Please describe what OS you developed and tested your additions on, and if any special dependencies are required:
PR Checklist for contributing to McStas/McXtrace
For a coherent and useful contribution to McStas/McXtrace, please fill in relevant parts of the checklist:
My contribution includes patches to an existing component file
mcdocutility and rendered a reasonable documentation page for the component (please attach as screenshot in comments!)mctestutility to test one or more instruments making use of the component (please attachmcviewtestreport as screenshot in comments)mcrun --c-lint"linter" and followed advice to remove most / all warnings that are raisedMy contribution contains something else