core: add ARM64 NEON support for cvRound in fast_math.hpp #27575
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.
Pull Request Readiness Checklist
I agree to contribute to the project under Apache 2 License.
To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
The PR is proposed to the proper branch
There is a reference to the original bug report and related work
There is accuracy test, performance test and test data in opencv_extra repository, if applicable
Patch to opencv_extra has the same branch name.
The feature is well documented and sample code can be built with the project CMake
This PR adds ARM64 NEON intrinsics-based implementation for the cvRound function in fast_math.hpp for ARM64 targets (_MSC_VER && _M_ARM64).
Both float and double overloads now use NEON intrinsics (vcntn_s32_f32, vcvtn_s64_f64, etc.) for efficient and accurate rounding.
The implementation is consistent with platform-specific handling already present for SSE2 (x64) and does not affect non-ARM64 builds.
Performance Improvements :