arrayfire / arrayfire/arrayfire-dotnet

Error in assignment to multidimensional arrays

Aperta
#27 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C#
Stelle
76
Fork
19
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

There's a problem with [] (indexing) operator. Indexing with with one number can be used to read value from the entire table, but it cannot be used to write to multidimensional table. While indexing with 2 or more numbers you can write to any table.
I am not sure, if it is the consequence of C implementation or problem with the wrapper, but this behavior is very unintuitive.

Checked on CPU and OpenCL Backend.
I'll try to fix it on my own
There's an example of the problem

```
ArrayFire.Array A1D = Data.CreateArray(new int[] { 1, 2, 4 });
A1D[1] = Data.CreateArray(new int[] { 100 });
Util.Print(A1D, "A1");

A2D[0, 0] = Data.CreateArray(new int[] { 11 });
A2D[1] = Data.CreateArray(new int[] { 100 });
Util.Print(A2D, "A");

A3D[1,1,1] = Data.CreateArray(new int[] { 100 });
A3D[0, 1] = Data.CreateArray(new int[] { 100 });
A3D[0] = Data.CreateArray(new int[] { 100 });
Util.Print(A3D[1,1], "A3D");
```
Generates the output

```
A1D
[3 1 1 1]
1
100
4

A2D
[3 3 1 1]
100 -1 4
2 2 2
4 0 3

A3D
[2 2 2 1]
1 100
2 -1

2 4
0 100
```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Start at the [] indexing and assignment entry points in the .NET wrapper, then reproduce the supplied A1D, A2D, and A3D examples on both CPU and OpenCL backends. Trace whether single-index writes to multidimensional arrays are handled by the wrapper or ArrayFire implementation; done means the documented assignment cases behave consistently across both backends.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
csharp
Ambito
api, backend
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.