When using Owl.Dense.Ndarray.Generic.set_fancy with arrays of kinds not Float32, Float64, Complex32 or Complex64, the operation fails with error message Exception: Failure "_ndarray_set_fancy: unsupported operation", even though the kind is a valid Bigarray.kind type.
It appears this exception is thrown by the snippet:
|
let _ndarray_set_fancy |
|
: type a b c. |
|
(a, b) kind |
|
-> (a, b) owl_arr |
|
-> (a, b) owl_arr |
|
-> (int64, c) owl_arr |
|
-> (int64, c) owl_arr |
|
-> unit |
|
= function |
|
| Float32 -> owl_float32_ndarray_set_fancy |
|
| Float64 -> owl_float64_ndarray_set_fancy |
|
| Complex32 -> owl_complex32_ndarray_set_fancy |
|
| Complex64 -> owl_complex64_ndarray_set_fancy |
|
| _ -> failwith "_ndarray_set_fancy: unsupported operation" |
I think it is very limiting to only support just 4 kinds when the set operation should work for any of the Bigarray.kind types.
Here is a minimal example to reproduce the error:
module Ndarray = Owl.Dense.Ndarray.Generic
let arr = Ndarray.create Bigarray.Int32 [|3;4;3|] 5l
let slice = Owl_types.[L [1; 2]; R []; I 0]
let x = Ndarray.create Bigarray.Int32 [|2; 4; 1|] 0l
Ndarray.set_fancy slice arr x
I expected this simple operation to work but it throws a |Exception: Failure "_ndarray_set_fancy: unsupported operation". exception.
I would love for Owl to support more kinds as im using it to write an array library that needs to support more than the 4 basic kinds listed above.
Cc @mseri @jzstark
When using
Owl.Dense.Ndarray.Generic.set_fancywith arrays of kinds notFloat32,Float64,Complex32orComplex64, the operation fails with error messageException: Failure "_ndarray_set_fancy: unsupported operation", even though the kind is a validBigarray.kindtype.It appears this exception is thrown by the snippet:
owl/src/owl/core/owl_slicing_fancy.ml
Lines 92 to 105 in 600c21a
I think it is very limiting to only support just 4 kinds when the set operation should work for any of the
Bigarray.kindtypes.Here is a minimal example to reproduce the error:
I expected this simple operation to work but it throws a
|Exception: Failure "_ndarray_set_fancy: unsupported operation".exception.I would love for Owl to support more kinds as im using it to write an array library that needs to support more than the 4 basic kinds listed above.
Cc @mseri @jzstark