Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Range stridability algebra #22576

Open
vasslitvinov opened this issue Jun 20, 2023 · 0 comments
Open

Range stridability algebra #22576

vasslitvinov opened this issue Jun 20, 2023 · 0 comments

Comments

@vasslitvinov
Copy link
Member

This issues proposes user-facing functions to do the following:

  • given multiple strides values, what strides value can accommodate all strides allowed by all these strides? For example, (one, positive) → positive; (one, negOne) → any; etc.
  • given two strides values, what strides value can accommodate all products of the two strides allowed by these two strides? For example, (one, positive) → positive; (one, negOne) → negOne; etc.

These queries may arise in code generic over ranges or domains, for example in domain map implementations. Prior to the conversion range.stridableranges.strides started in #22441, our domain maps and internal modules defined multiple copies of proc anyStridable that answered both of the above queries at the same time.

Currently there are undocumented functions chpl_strideUnion() and chpl_strideProduct() that answer the above queries. This issue proposes to document them and make available to users and to giving them non-chpl_ names.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant