1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-28 23:03:03 +04:00
Commit Graph

25707 Commits

Author SHA1 Message Date
Vincent Rabaud feee8b202d Help compiler vectorize loops in meanSplit
Otherwise, it does not know dataset_, mean_ and var_ do not
overlap.
2026-02-16 13:30:43 +01:00
Alexander Smorkalov a8d26a042b Merge pull request #28489 from KAVYANSHTYAGI:module-inspection
imgproc: Fix precision loss in Laplacian 3x3 kernel for CV_64F inputs
2026-02-14 13:21:54 +03:00
Alexander Smorkalov c4b20061de Merge pull request #28537 from reeseliao:fix-typo-gapi
docs: fix typo 'neccessary' in gapi module
2026-02-14 13:05:53 +03:00
Igraine 0e8441a66b docs: fix typo 'neccessary' in gapi module 2026-02-13 16:34:31 +08:00
Murat Raimbekov dc0a276edc Merge pull request #28324 from raimbekovm:fix-kaze-charbonnier
features2d: add missing KAZE DIFF_CHARBONNIER support #28324

### Description

This PR fixes the missing implementation for `DIFF_CHARBONNIER` diffusivity type in KAZE feature detector.

### Changes
- Added `charbonnier_diffusivity()` call for `DIFF_CHARBONNIER` type in `Create_Nonlinear_Scale_Space()`
- Added proper error handling for unsupported diffusivity types

### Problem
When using KAZE with `DIFF_CHARBONNIER` diffusivity type, keypoint coordinates were not computed at subpixel level, because the code lacked the specific handling for this diffusivity mode.

### Solution
The `charbonnier_diffusivity()` function already exists in `nldiffusion_functions.cpp`, it just wasn't being called. This PR adds the missing `else if` branch to call it, matching the pattern already implemented in `AKAZEFeatures.cpp`.

Fixes #27134

### Pull Request Readiness Checklist

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another copyleft license.
- [x] The PR is proposed to the proper branch.
- [x] 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
- [ ] The feature is well documented and sample code can be built with the project CMake
2026-02-11 15:06:26 +03:00
Alexander Smorkalov a87c227400 Merge pull request #28470 from Satge96:refine-calib-py-type
fix: mark distCoeffs, cameraMatrix as optional in calibrateCamera fun…
2026-02-11 09:53:08 +03:00
Alexander Smorkalov 7b3977727c Merge pull request #28460 from falloficarus22:qrcode-remove-duplicated-compute
Optimize duplicated computation in QR code error correction
2026-02-10 09:17:15 +03:00
Hanbin Bae 7942f976c1 Merge pull request #28511 from Anemptyship:optimize/slice-parallel-4.x
optimize(dnn): parallelize Slice layer implementation (4.x) #28511

### Summary
Backport of PR #28447 to 4.x branch.

### Description
This PR optimizes the SliceLayer implementation for strided inputs (where step > 1). The original implementation used a recursive element-wise copy (getSliceRecursive) for any strided slice, which was extremely inefficient.

This PR introduces:
- **Parallelization**: Uses `cv::parallel_for_` to parallelize the outermost dimension of the slice operation.
- **Memcpy Optimization**: Automatically detects "pseudo-contiguous" blocks in strided slices (e.g., slicing an outer dimension but keeping inner dimensions intact) and uses `std::memcpy` instead of scalar loops.
- **Refactoring**: Replaces the recursive function with a dedicated `ParallelSlice` loop body.

### Impact
Significant performance improvement for strided slice operations (common in detection heads, strided sampling, etc.).

### Benchmark Results
Tested on CPU with 20 threads.

| Test Case | Baseline (ms) | Optimized (ms) | Speedup |
| :--- | :--- | :--- | :--- |
| Strided Axis 0 [::2, ...] | 1.10 | 0.02 | **~55x** |
| Strided Axis 2 [..., ::2] | 1.15 | 0.11 | **~10.5x** |

### Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
- [x] The PR is proposed to the proper branch
- [x] 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
- [ ] The feature is well documented and sample code can be built with the project CMake
2026-02-10 09:11:13 +03:00
Alexander Smorkalov 5c9fb7db76 Merge pull request #28510 from Anemptyship:optimize/resize-parallel-4.x
optimize(dnn): parallelize Resize layer implementation
2026-02-10 08:55:25 +03:00
Alexander Smorkalov 8ccbf4c5e4 Merge pull request #28505 from Kumataro:fix28498_obsensor
videoio(obsensor): replace unnecessary get<double>() usage with integer types
2026-02-09 14:43:26 +03:00
Alexander Smorkalov 284c48bbe6 Merge pull request #28504 from Kumataro:fix28498_msmf
videoio(msmf): replace unnecessary get<double>() usage with integer types
2026-02-09 14:41:53 +03:00
Anemptyship 12b5091ba4 optimize(dnn): parallelize Resize layer implementation
Backport of PR #28442 to 4.x branch.

Signed-off-by: Anemptyship <ben.bae@samsung.com>
2026-02-09 03:08:49 +00:00
Kumataro 71ed3dccaf videoio(obsensor): replace unnecessary get<double>() usage with integer types 2026-02-08 06:43:01 +09:00
Kumataro 9224e5d90a videoio(msmf): replace unnecessary get<double>() usage with integer types 2026-02-08 06:36:54 +09:00
Kumataro 11d318b540 videoio(gst): replace unnecessary get<double>() usage with integer types 2026-02-07 13:36:50 +09:00
Karnav Shah aea90a9e31 Merge pull request #28308 from shahkarnav115-beep:dnn-mvn-defensive-checks
dnn: improve robustness of MVN layer#28308

This change adds small defensive improvements to the MVN layer implementation:

->Guard against zero-sized OpenCL kernel launches

->Add input validation in finalize()

->Use int64 for FLOPS computation to avoid overflow

No functional or performance changes are intended.

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
- [x] 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
2026-02-06 13:47:15 +03:00
Murat Raimbekov c7729066c4 Merge pull request #28379 from raimbekovm:fix-bmp-sunras-overflow
imgcodecs: fix integer overflow in BMP and SunRaster decoders #28379

### Pull Request Readiness Checklist

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
- [x] The PR is proposed to the proper branch
- [x] 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

Fixes #28350

### Description

This PR fixes integer overflow vulnerabilities in BMP and SunRaster image decoders that could cause heap buffer over-read when decoding malformed images.

### Root Cause

The `src_pitch` and `width3` calculations in `BmpDecoder::readData()` and `SunRasterDecoder::readData()` used `int` arithmetic:

```cpp
int src_pitch = ((m_width * m_bpp + 7) / 8 + 3) & -4;
int width3 = m_width * nch;
```

When `m_width` or `m_bpp` are large values from a crafted malicious file, the multiplication overflows, resulting in a small or negative value. This leads to insufficient buffer allocation, causing heap buffer over-read during subsequent decoding operations.

### Fix

1. **Use `size_t` arithmetic**: Cast operands to `size_t` before multiplication:
   ```cpp
   const size_t bits_per_row = static_cast<size_t>(m_width) * static_cast<size_t>(m_bpp);
   const size_t src_pitch_size = ((bits_per_row + 7) / 8 + 3) & ~static_cast<size_t>(3);
   ```

2. **Add size validation**: Added `CV_CheckLT` to reject images requiring buffers larger than 256MB:
   ```cpp
   const size_t MAX_SRC_PITCH = static_cast<size_t>(1) << 28;
   CV_CheckLT(src_pitch_size, MAX_SRC_PITCH, "BMP: src_pitch exceeds maximum allowed size");
   ```

3. **Safe conversion**: Use `validateToInt()` for safe conversion back to `int`.

### Files Changed

- `modules/imgcodecs/src/grfmt_bmp.cpp` - BmpDecoder::readData()
- `modules/imgcodecs/src/grfmt_sunras.cpp` - SunRasterDecoder::readData()

### Testing

- Code compiles without warnings
- Basic BMP and SunRaster encode/decode tests pass
- Overflow conditions are now properly rejected with CV_CheckLT
2026-02-06 13:39:55 +03:00
Alexander Smorkalov 5134109705 Merge pull request #28451 from vrabaud:lsh
Remove unused C structs from VideoCapture/VideoWriter
2026-02-06 13:38:50 +03:00
Kavyansh Tyagi 1d5f28a44f Fix Laplacian kernel precision for double inputs 2026-02-03 13:32:34 +05:30
Alexander Smorkalov 227b751f48 Merge pull request #28394 from amd:medianBlurImp
medianBlur improvement with AVX512 ICL dispatch
2026-01-30 16:04:54 +03:00
Vincent Rabaud 4475fb24ca Remove unused C structs from VideoCapture/VideoWriter 2026-01-30 10:54:21 +01:00
Denis Barucic bca17bcd29 Fix typo in logger.hpp
I believe this was just a copy-paste error.
2026-01-30 10:38:17 +01:00
Siddharth Panditrao 0c613de006 Merge pull request #28380 from WalkingDevFlag:fix/charuco-detector-offset-25539
Fix ~0.5px systematic offset in CharucoDetector subpixel refinement #28380

Resolves #25539

### Problem

`CharucoDetector::detectBoard` produces Charuco corner coordinates that are consistently offset by approximately **+0.5 pixels** compared to `findChessboardCorners + cornerSubPix`.

This offset is systematic (mean ≈ −0.5 px when comparing legacy − Charuco) and reproducible across images. Visual inspection also shows that the legacy chessboard detector aligns better with the actual corner locations.

### Root cause

In `charuco_detector.cpp`, the points passed to `cornerSubPix` are manually shifted by `-Point2f(0.5f, 0.5f)` before refinement and then shifted back by `+Point2f(0.5f, 0.5f)` after refinement.

However, `cornerSubPix` refines corners in **absolute image coordinates** and converges to the true saddle point based on image gradients. Shifting the initial guess does not affect the converged result as long as the true corner lies within the refinement window.

The additional `+0.5` shift applied after refinement therefore introduces a constant bias, resulting in:

```

P_out = P_true + 0.5

```

### Solution

Remove the manual `±0.5` coordinate shifts around the `cornerSubPix` call and let the refined result be returned directly.

### Test updates

Updated expected corner values in the following tests:

- `testBoardSubpixelCoords`
- `testSeveralBoardsWithCustomIds`

The previous expected values (e.g. `200`, `250`, `300`) were only correct due to the +0.5px bias introduced by the bug.

`generateImage` creates checkerboard squares of exactly **50 pixels**, which places true corner locations on **pixel boundaries** rather than pixel centers. As a result, the correct subpixel coordinates are:

```

199.5, 249.5, 299.5

```

instead of the previously expected integer values.

After updating the expected values, all **30 Charuco-related tests pass** with the fix applied.

### Verification

I verified the fix using a Python reproducer that compares `CharucoDetector` output against `findChessboardCorners + cornerSubPix`:

- **Before fix:** mean error ≈ −0.501 px  
![before_fix_multilocus](https://github.com/user-attachments/assets/cc812956-c081-4f00-a7e2-78b7427b1235)
![before_fix_zoomed_small](https://github.com/user-attachments/assets/7e6887cb-b09d-47dc-9fcd-03a27b17f310)

- **After fix:** mean error ≈ −0.001 px
![after_fix_multilocus](https://github.com/user-attachments/assets/1c4f8dfa-d0ae-417c-881e-e2a9cbc4b9f1)
![after_fix_zoomed_small](https://github.com/user-attachments/assets/9c325995-fe0b-42f3-bdbb-6754f985e936)

After the change, the Charuco detector output aligns with the legacy chessboard detector both numerically and visually.

### Notes

This change only affects the post-refinement coordinate handling and does not alter detection logic, refinement parameters, or performance.

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-01-28 14:31:54 +03:00
Adrian Kretz 65e6890f33 Merge pull request #28386 from akretz:fix_issue_28385
Fix integer overflow in medianBlur #28386

The bug in #28385 is that the pointer arithmetic in
https://github.com/opencv/opencv/blob/d8bc5b94b851d5b392c61e5b954fba992e18bb73/modules/imgproc/src/median_blur.simd.hpp#L666-L668
overflows if `i*sstep` is larger than `INT_MAX`, because both variables are of type `int`. If one operand is of type `size_t` instead, the other operand gets promoted to `size_t` before multiplication and overflow doesn't happen anymore.

The test allocates 2.3GB for the Mat; I hope that's okay.

This PR fixes #28385

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-01-28 14:23:43 +03:00
Satge96 d1e12b9aa9 fix: mark distCoeffs, cameraMatrix as optional in calibrateCamera function 2026-01-28 11:14:29 +01:00
Sikandar d8f8267700 Fix: TopK layer K boundary check allows K == input_dim (#28445)
The TopK layer was incorrectly rejecting K values equal to the input
dimension size. According to ONNX specification, K should be allowed
to equal the dimension size (to retrieve all elements).

Changed validation from 'K < input_shape[axis]' to 'K <= input_shape[axis]'

This fixes the error when loading YOLOv10 ONNX models that use TopK
with K equal to the dimension size.

Fixes #28445
2026-01-27 09:35:36 +05:00
Murat Raimbekov 774c7e01b3 Merge pull request #28301 from raimbekovm:fix-more-typos
docs: fix spelling errors in documentation and code #28301

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
- [x] 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
- [ ] The feature is well documented and sample code can be built with the project CMake

### Description

Fixed multiple spelling errors across documentation, comments, and code:

- 'colummn' → 'column' (cublas.hpp, 3 occurrences)
- 'points_per_colum' → 'points_per_column' (calib3d.hpp, 3 occurrences)
- 'Asignee' → 'Assignee' (sift files, 2 occurrences)
- 'compability' → 'compatibility' (face.hpp, 2 occurrences)
- 'orignal' → 'original' (aruco_detector.cpp)
- 'refrence' → 'reference' (chessboard.cpp)
- 'indeces' → 'indices' (stitching.hpp)
- 'OutputPrecison' → 'OutputPrecision' (test)
- 'tranform' → 'transform' (slice_layer.cpp, 3 occurrences)

Total: 24 fixes across 14 files. Documentation and comment changes only, no functional impact.
2026-01-26 21:28:50 +03:00
Abhishek b93ea5412c Optimize duplicated computation in QR code error correction
Precompute X values in Forney algorithm to eliminate redundant gfPow calls.

Previously, gfPow(2, ...) was computed multiple times for the same error
location across different loop iterations, resulting in O(L²) redundant
Galois field arithmetic operations.

This change:
- Precomputes all X values once before the main loop
- Reduces complexity from O(L²) to O(L) for X value computations
- Removes the TODO comment at line 1642
- No functional changes, only performance improvement

The optimization is most beneficial when there are many error locations
in QR codes (larger L values).
2026-01-24 17:21:12 +00:00
pratham-mcw b229f1efd3 Merge pull request #28243 from pratham-mcw:cvfloor-neon-opt
core: add NEON support for cvFloor in fast_math.hpp #28243

- This PR adds NEON intrinsics-based implementation for the cvFloor function in fast_math.hpp for Windows-ARM64.
- Both float and double overloads now use NEON intrinsics for cvFloor Function.
- calchist and calchist1d function uses cvFloor function for its computations. 
- After adding these changes both functions showed improvement in performance.

**Performance Benchmarks:**
<img width="956" height="273" alt="image" src="https://github.com/user-attachments/assets/a00c98cd-d245-4d11-a9fd-361a3bd89f59" />

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
- [x] The PR is proposed to the proper branch
2026-01-24 13:42:16 +03:00
Alexander Smorkalov 1d20b65f1f Merge pull request #28401 from amd:fast_bilateral_level2
Optimized Bilateral Filter (32f) with AVX512
2026-01-24 13:40:08 +03:00
Alexander Smorkalov 74addff3d0 Merge pull request #28303 from raimbekovm:fix-typos-batch4
docs: fix spelling errors in code and comments
2026-01-23 13:42:15 +03:00
Alexander Smorkalov 4cfd9689ae Merge pull request #28446 from Erellu:4.x
Fix UB in cv::error when breakOnError set to true
2026-01-23 11:29:33 +03:00
Alexander Smorkalov 5258bc5de9 Merge pull request #28317 from raimbekovm:fix-typos-batch7
docs: fix typos in documentation and code comments
2026-01-23 11:29:02 +03:00
Nechama Krashinski 1f47f5ba97 Merge pull request #28404 from NechamaKrashinski:imgproc-cornersubpix-error-handling
imgproc: replace assertion in cornerSubPix with descriptive error #28404

Replace CV_Assert with explicit bounds check for initial corners in cornerSubPix.

This provides a descriptive runtime error instead of abrupt termination,
improving error handling for Python and C++ users.

No algorithmic or behavioral change for valid inputs.

Fixes #25139 (Related to #7276).

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
- [x] The PR is proposed to the proper branch
- [x] 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
2026-01-22 16:13:21 +03:00
Erellu b201018a25 Fix UB in cv::error when breakOnError set to true
Fixes #28436.
Replaces a nullptr dereference (unguaranteed to cause a SEGFAULT) by `std::terminate` which will call the current `std::terminate_handler` and then SIGARBT.
2026-01-22 13:26:02 +01:00
Alexander Smorkalov fba658b9a1 Merge pull request #28381 from vrabaud:lsh
Improve precision of RotatedRect::points
2026-01-21 17:43:05 +03:00
Kumataro 97df136d32 Merge pull request #28441 from Kumataro:fix28440
Properly preserve KAZE/AKAZE license as mandated by BSD-3-Clause #28441

Close https://github.com/opencv/opencv/issues/28440

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
- [x] The PR is proposed to the proper branch
- [x] 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
2026-01-21 16:17:19 +03:00
Madan mohan Manokar f994a43df2 Improved Bilateral Filter level2
AVX512_SKX and AVX512_ICL dispatch added.
BilateralFilter 32f has been improved for AVX512.
2026-01-14 00:58:16 +00:00
Madan mohan Manokar c35259c856 medianBlur improvement with AVX512 ICL 2026-01-12 05:05:23 +00:00
Adrian Kretz 29d68af2a8 Use Mat::total() in Darknet IO 2026-01-10 16:39:44 +01:00
Vincent Rabaud ef0172d636 Improve precision of RotatedRect::points
Not by much but enough to get a test to pass.
2026-01-08 09:52:35 +01:00
Alexander Smorkalov d8bc5b94b8 Merge pull request #28373 from vrabaud:lsh
Fix potential pointer overflow in BlockSum
2026-01-07 11:04:35 +03:00
Alexander Smorkalov 481ebe0ac0 Merge pull request #28371 from WalkingDevFlag:fix/copyTo-empty-fixed-type-28343
Fix copyTo on empty fixed-type matrices (#28343)
2026-01-07 11:04:05 +03:00
Vincent Rabaud b7efc11b51 Merge pull request #28361 from vrabaud:msan
Prevent a potential crash in FMEstimatorCallback::runKernel #28361
 
With solveCubic sometimes failing, n can be -1.

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] 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
2026-01-06 11:07:19 +03:00
Alexander Smorkalov b227993ad5 Merge pull request #28372 from amd:RaceConditionFix
Issue Fix: Race condition in GaussianBlurFixedPoint
2026-01-06 11:05:50 +03:00
Vincent Rabaud e9c6cb98ea Fix potential pointer overflow.
srcY-roi.y is promoted to size_t which creates problems when it is
negative.
2026-01-06 01:18:54 +01:00
WalkingDevFlag 175dd57bdd Fix copyTo on empty fixed-type matrices (#28343)
PR #27972 added _dst.create(size(), type()) in copyTo's empty() block.
In Debug builds, Mat::release() was resetting flags to MAGIC_VAL,
clearing the type information and causing assertion failures when
destination has fixedType().

Preserve type flags in Mat::release() debug mode by using:
  flags = (flags & CV_MAT_TYPE_MASK) | MAGIC_VAL

Thanks to @akretz for suggesting this better approach.
2026-01-06 00:51:06 +05:30
Madan mohan Manokar abd0eb94f6 Fixes Issue: Race condition in GaussianBlurFixedPoint #28370 2026-01-05 18:24:27 +00:00
Vincent Rabaud 5622958189 Replace pow with std::pow
The C pow casts to double while std::pow has overloads that can be
optimized by the compiler.
Also replace pow(*, 1./3) by cbrt.
2026-01-04 15:12:59 +01:00
Alexander Smorkalov f8c04bafa8 Typing fix in tests for modern Numpy 2026-01-02 16:30:28 +03:00