Allow different type for LazyRow index
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 42/100
Direzione di ricerca
Inizia individuando la definizione di LazyRow e tracciando come il suo tipo di indice viene utilizzato nella costruzione, nell’indicizzazione e nella mutazione. Verifica se l’indice StaticVector proposto funziona senza modificare il comportamento esistente di LazyRow; il lavoro è completato quando sono supportati tipi di indice distinti e l’esempio punto/triangolo funziona senza regressioni.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Having the possibility to have a different type for the LazyRow index other than I
struct LazyRow{T, N, C, Ic, Ii}
columns::StructArray{T, N, C, Ic} # a `Columns` object
index::Ii
end
allows me to define a StructArray of points and a StructArray of triangles, with indexes being of type StaticVectors (a triangle always contains 3 points):
struct Point{T}
position::SVector{3,T}
force::SVector{3,T}
end
struct Triangle{Tp}
points::Tp
end
points = StructArray([Point{Float64}(rand(3), zeros(3)) for _ in 1:10])
tris = StructArray([Triangle(LazyRow(points, @SVector [rand(1:10), rand(1:10), rand(1:10)])) for _ in 1:5])
I can now update the point forces in the triangles this way, which is really helpful in my case:
for t in tris
pos = t.points.position
f1 = sum.(pos)
f2 = tan.(f1)
f3 = sin.(f1)
f = Vec3(f1, f2, f3)
t.points.force += f
end
Does that make sense? Would that make some thing break somewhere?
Thanks
- Lingua principale
- Julia
- Stelle
- 406
- Fork
- 49
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaArrays/StructArrays.jl
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 50/100
JuliaArrays/StructArrays.jl#354 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
JuliaArrays/StructArrays.jl#335 · 1 commento ·
-
push! is type unstableAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
JuliaArrays/StructArrays.jl#328 · 3 commenti ·
-
Simpler first exampleAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
JuliaArrays/StructArrays.jl#310 · 1 commento ·
-
Supporting `map` on GPUAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
JuliaArrays/StructArrays.jl#300 ·
Tutte le issue di JuliaArrays/StructArrays.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
KristofferC/TimerOutputs.jl#247 ·
-
add-on doc enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JuliaGraphics/ColorTypes.jl#344 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
R
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
eWaterCycle/remotebmi#58 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
`enzymexla.linalg.lu` lowering fails for a tall matrix: the permutation is built with the pivot typeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
EnzymeAD/Enzyme-JAX#3286 ·
I maintainer di solito rispondono entro 1 giorno