Skip to content

Support Cartesian products with more than two inputs - #63

Open
quinnj wants to merge 1 commit into
mainfrom
maintenance/variadic-product
Open

quinnj wants to merge 1 commit into
mainfrom
maintenance/variadic-product

Conversation

@quinnj

@quinnj quinnj commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

product(f, a, b, c, ...) currently throws a MethodError. The added method combines three or more inputs using Julia's existing Cartesian-product iterator, preserving the combined axes, inferred element type, and the first input's array allocation behavior. The docstring and README show the additional-input form.

Fixes #58.

The workflow also includes the same scoped, conditional OIDC authentication and strict upload-error handling as #60, #61, and #62. The existing Codecov uploader rejects unauthenticated uploads to protected branches; these settings make the coverage upload verifiable.

Validation:

  • Both unchanged baselines passed the two-input control and rejected all 13 additional-input checks. The candidate passes all 14 public checks on Julia 1.10.12 and 1.13.1.
  • Both complete four-thread, bounds-checked native suites pass 227 assertions, including 13 new permanent checks for argument order, three to five inputs, mixed dimensions, empty inputs, missing values, inference, and BitArray output.
  • Five additional OffsetArrays 1.17.0 interoperability checks pass on both runtimes, covering shifted axes, zero-dimensional inputs, empty inputs, and output values. All frozen tracked-file hashes match the reviewed candidate.

Exact-head CI: all four native jobs pass, including nightly and 32-bit Windows. Every raw log confirms its native suite passed and Codecov accepted the correct JuliaData repository and full commit SHA. All four reports are processed (73.64% overall; patch 100%); all six checks are green. The PR still requires an independent GitHub approval.

Co-authored by Codex

AI disclosure: This work was prepared with assistance from OpenAI Codex.

AI disclosure: This work was prepared with assistance from OpenAI Codex.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make product(f, xs...) variadic

1 participant