mcabbott / mcabbott/TensorCast.jl
support multiple return values?
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 142
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Description
I'm trying to slice-broadcast a function that has multiple return values. Ideally I'd collect them into separate arrays. Is this possible witih TensorCast?
Here's a MWE of basically what I'm trying to do:
x = randn(10, 20)
@cast v[k], i[k] := findmax(x[:, k])
But this throws the error:
LoadError: don't know what to do with left = (v[k], i[k])
Which is a great error message that leads me to believe I can't do this kind of thing, but I wanted to check.
In this case it's probably not too bad to just collect into a single Vector{Tuple{Float64, Int} and split it afterwards, but my actual example has some more complicated indexing stuff going on that would benefit from some TensorCast magic.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the Julia MWE using the @cast macro and findmax shown in the issue, then inspect how @cast handles the left-hand side tuple. Define what behavior is required for v[k], i[k] and verify that the expression can collect the multiple return values into separate arrays without breaking existing slice-broadcasting cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100