arrayfire / arrayfire/arrayfire-dotnet
Error in assignment to multidimensional arrays
- 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