Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Error in assignment to multidimensional arrays

Offen
#27 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
42/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
csharp
Bereich
api, backend

Rechercherichtung

Beginne bei den []-Einstiegsstellen für Indexierung und Zuweisung im .NET-Wrapper und reproduziere dann die bereitgestellten A1D-, A2D- und A3D-Beispiele sowohl auf CPU- als auch auf OpenCL-Backends. Verfolge, ob Schreibzugriffe mit einem einzelnen Index auf mehrdimensionale Arrays vom Wrapper oder von der ArrayFire-Implementierung verarbeitet werden; abgeschlossen ist die Aufgabe, wenn sich die dokumentierten Zuweisungsfälle auf beiden Backends konsistent verhalten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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
Vorherrschende Sprache
C#
Sterne
76
Forks
19
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus arrayfire/arrayfire-dotnet

Alle Issues in arrayfire/arrayfire-dotnet

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.