Finished Convolve + Added to Readme#12
Merged
Merged
Conversation
dotChris90
commented
Oct 18, 2018
Member
- behaviour is like on numpy documentation
- Tests take the examples from https://www.numpy.org/devdocs/reference/generated/numpy.convolve.html
- Convolve now is part of existing APIs in Readme
Nucs
added a commit
that referenced
this pull request
Jun 6, 2026
Adds oracle/fuzz_random.py: a seeded, reproducible random generator that draws random transposed/strided/reversed views (random ndim<=4, dims, stride perms/signs), random dtypes, and random ops across all tiers, computes the NumPy 2.4.2 result, and writes a committed corpus the C# harness replays. FuzzRandom replays a 2000-case seed (1234); FuzzRegression replays shrunk soak failures from corpus/regressions/ (empty until the soak finds one). Shrinker.cs minimizes a failing element-wise case to a single 0-D element using the corpus's own expected byte at the diverging index (no NumPy needed); RunCorpus emits the minimal repro in the failure message so a soak find is immediately committable. A self-test proves the shrunk case reproduces the divergence (bool add True+True). The random fuzzer is scoped to NumSharp-PRODUCIBLE layouts: NumSharp's slicing normalizes offset into the storage base (Shape.offset stays 0) and keeps consistent size-1 strides, so reconstructing NumPy's RAW offset!=0 / junk-size-1-stride representation exposes ops that assume the normalized form (real but unreachable via the API; tracked as task #11). With that scoping the random gate is green; it surfaced three NEW divergence classes the fixed matrices missed (tasks #11, #12): bool arithmetic True+True -> NumSharp 2 vs NumPy bool True. size-1 collapse NumSharp collapses an all-size-1 result to 0-D; NumPy keeps [1]. complex binary multiply (and divide on some data) catastrophic cancellation + ~1 ULP. Shape divergences now route through the classifier too. FuzzMatrix category: 16 passed.
Nucs
added a commit
that referenced
this pull request
Jun 6, 2026
Adds docs/FUZZ_FINDINGS.md: every NumSharp-vs-NumPy-2.4.2 divergence the differential fuzzer surfaced, each bit-exact verified, with minimal NumPy-vs-NumSharp reproductions, root cause where known, and disposition (FIXED / BUG / INTENDED / SCOPING) mapped to tasks #7-#12. 22 findings: 1 fixed (complex->bool), 18 confirmed bugs (integer ÷0/mod0, float //0, mixed-precision mod, complex power; NaN <=/>=; NEP50 unary promotion, negative-unsigned, reciprocal, complex unary; reduction NaN propagation, complex-axis throw, bool min/max, summation precision, result dtype; complex where throw; bool arithmetic, size-1 collapse, complex binary cancellation), 2 intended Misaligned (NEP50 weak-scalar, complex-divide ULP), 1 scoping note (ops vs raw offset!=0 / junk size-1 strides).
Nucs
added a commit
that referenced
this pull request
Jun 6, 2026
…al-noncontig (Phase 1) Two findings turned out PARTIALLY resolved in committed code; tightened the classifier to verify the resolved sub-cases bit-exact while excusing only the precise residuals. FUZZ_FINDINGS #12 (complex axis reduction): reducing a complex 2-D+ array along an axis (sum/mean/prod/std/var/min/max) now works bit-exact (std(complex2d, axis=0) -> real float64, verified without the uncommitted NpyIter.cs). Only a 1-D complex array reduced along its only axis still throws 'NDCoordinatesAxisIncrementor with a vector shape'. The classifier now excuses just that 1-D Threw case; the 2-D matrix is gate-verified. FUZZ_FINDINGS #9 (reciprocal non-contiguous): reciprocal on a non-contiguous FLOAT operand (transposed/strided) now works. reciprocal(int) still returns the float64 reciprocal (vs NumPy's integer ÷0 sentinel) and still throws on a non-contiguous integer operand (the int->float path needs a flat Address) — both pending F3b. The classifier scoped to integer input (value diff or non-contig throw); float non-contig is gate-verified. No production code change — corpus replay confirmed the resolutions are in committed code. net10.0 FuzzMatrix 17/17 green. Documents the exact resolved-vs-pending split for #9 and #12.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.