Sub (and Add, Div, etc) not implemented for ArrayView/ViewRepr?

Open
#743 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
rust
Domain
data

Research direction

The issue names ArrayView and ViewRepr, along with the Sub, Add, and Div binary operations; no files or tests are identified. Start by locating the operator implementations and related broadcasting handling, then check how views are used on the left-hand side. Done means the requested binary operations work with read-only views without consuming the source array.

Written by the indexing model from the issue text.

Description

First off, very impressed with this crate so far. I'm a long-time numpy user and I appreciate the task you took on on behalf of the Rust ecosystem.

I only recently started using Rust, so I might just be trying to do the wrong thing here, but I'm curious why an ArrayView can not be used on the LHS of a binary operation like +, -, etc. That seems like a natural use-case, since you need a read-only view of the data in the array but won't be modifying it.

In my case I'd like to compare an array of values to a particular query by broadcasting and then operate on the matching rows later–this means I can't consume the array in this operation*.

Is the appropriate thing to Zip over the rows and compare them that way? I can see how to do that but it seemed verbose, so I thought I'd check. And if this is an oversight I can try to help implement a PR.

* a broadcasting comparison operator would be even better for this but the existence of #35 suggests that might be difficult.

Dominant language
Rust
Stars
4.3k
Forks
391
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rust-ndarray/ndarray

All issues in rust-ndarray/ndarray

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.