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

Basic support for axis simplification and arbitrary order in iterators #979

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Commits on Mar 31, 2024

  1. FIX: Make internal iterator types and functions pub(crate)

    These `pub` here actually predate the pub(crate) feature, and they
    should just be `pub(crate)` or lower since they are unreachable outside
    the crate.
    bluss committed Mar 31, 2024
    Configuration menu
    Copy the full SHA
    1a8377e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    572dea0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d223bc6 View commit details
    Browse the repository at this point in the history
  4. TEST: Add iteration and sum (fold) benchmarks for row/col matrices

    This is special for arrays of shape 1 x n or n x 1; add iterator and
    iterator sum (fold) benchmarks.
    bluss committed Mar 31, 2024
    Configuration menu
    Copy the full SHA
    9438d93 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    21df00f View commit details
    Browse the repository at this point in the history
  6. FEAT: Implement order optimizations for Baseiter

    Implement axis merging - this preserves order of elements in the
    iteration but might simplify iteration. For example, in a contiguous
    matrix, a shape like [3, 4] can be merged into [1, 12].
    
    Also allow arbitrary order optimization - we then try to iterate in
    memory order by sorting all axes, currently.
    bluss committed Mar 31, 2024
    Configuration menu
    Copy the full SHA
    a3d26b6 View commit details
    Browse the repository at this point in the history
  7. MAINT: Allow another clippy lint

    This one complains about if let Some(_) = option; which I still think is
    just as fine as if option.is_some(); `if let` is a nice Rust feature
    that works the same way on all enums, no reason to prefer
    option-specific methods like `is_some`.
    bluss committed Mar 31, 2024
    Configuration menu
    Copy the full SHA
    1e05bae View commit details
    Browse the repository at this point in the history
  8. DOC: Update TrustedIterator doc

    bluss committed Mar 31, 2024
    Configuration menu
    Copy the full SHA
    4d9ce5e View commit details
    Browse the repository at this point in the history