mirror of
https://github.com/opencv/opencv.git
synced 2026-10-05 04:03:32 +03:00
core: add ARMPL HAL backend for cv::invert(DECOMP_LU) - #30080 ## Summary - Follow-up to #[30035](https://github.com/opencv/opencv/pull/30035) to apply the same `cv::invert` optimization to the 5.x branch. - Adds an ARM Performance Library (ArmPL) HAL backend for cv::invert under DECOMP_LU (cv_hal_LU32f / cv_hal_LU64f), replacing OpenCV's default LU decomposition path with ArmPL's LAPACKE_sgesv / LAPACKE_dgesv for float and double matrices on AArch64. ## Changes **hal/armpl/include/armpl_hal_core.hpp:** - Declare armpl_hal_LU32f / armpl_hal_LU64f and register them as cv_hal_LU32f / cv_hal_LU64f. **hal/armpl/src/armpl_hal_core.cpp:** - Add armpl_lu() function (works for both float and double), that does the LU decomposition of the matrix: - If a right-hand side b is given, then LAPACKE_sgesv/dgesv is called. - If no right-hand side is given, it only factorizes the matrix using LAPACKE_sgetrf/dgetrf - Fall back to OpenCV's default (non-HAL) implementation for small matrices (m < 100).