arrayfire / arrayfire/arrayfire-dotnet

Error in assignment to multidimensional arrays

Đang mở
#27 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
C#
Star
76
Fork
19
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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
```

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Bắt đầu từ các điểm vào để lập chỉ mục và gán [] trong .NET wrapper, sau đó tái hiện các ví dụ A1D, A2D và A3D được cung cấp trên cả backend CPU và OpenCL. Theo dõi xem các thao tác ghi bằng một chỉ mục vào các mảng đa chiều được xử lý bởi wrapper hay bởi phần triển khai ArrayFire; được xem là hoàn tất khi các trường hợp gán được ghi rõ trong tài liệu hoạt động nhất quán trên cả hai backend.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
csharp
Lĩnh vực
api, backend
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
42/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.