diff --git a/dpctl/tensor/_flags.pyx b/dpctl/tensor/_flags.pyx index fe1ab7cf40..74774e3f2c 100644 --- a/dpctl/tensor/_flags.pyx +++ b/dpctl/tensor/_flags.pyx @@ -57,6 +57,13 @@ cdef class Flags: def writable(self): return _check_bit(self.flags_, USM_ARRAY_WRITEABLE) + @property + def fc(self): + return ( + _check_bit(self.flags_, USM_ARRAY_C_CONTIGUOUS) + and _check_bit(self.flags_, USM_ARRAY_F_CONTIGUOUS) + ) + @property def forc(self): return ( @@ -68,7 +75,7 @@ cdef class Flags: def fnc(self): return ( _check_bit(self.flags_, USM_ARRAY_C_CONTIGUOUS) - and _check_bit(self.flags_, USM_ARRAY_F_CONTIGUOUS) + and not _check_bit(self.flags_, USM_ARRAY_F_CONTIGUOUS) ) @property @@ -82,6 +89,8 @@ cdef class Flags: return self.f_contiguous elif name == "WRITABLE": return self.writable + elif name == "FC": + return self.fc elif name == "CONTIGUOUS": return self.forc diff --git a/dpctl/tests/test_usm_ndarray_ctor.py b/dpctl/tests/test_usm_ndarray_ctor.py index 36a8f50774..5a1fca5470 100644 --- a/dpctl/tests/test_usm_ndarray_ctor.py +++ b/dpctl/tests/test_usm_ndarray_ctor.py @@ -59,13 +59,13 @@ def test_allocate_usm_ndarray(shape, usm_type): def test_usm_ndarray_flags(): - assert dpt.usm_ndarray((5,)).flags.fnc + assert dpt.usm_ndarray((5,)).flags.fc assert dpt.usm_ndarray((5, 2)).flags.c_contiguous assert dpt.usm_ndarray((5, 2), order="F").flags.f_contiguous assert dpt.usm_ndarray((5, 1, 2), order="F").flags.f_contiguous assert dpt.usm_ndarray((5, 1, 2), strides=(2, 0, 1)).flags.c_contiguous assert dpt.usm_ndarray((5, 1, 2), strides=(1, 0, 5)).flags.f_contiguous - assert dpt.usm_ndarray((5, 1, 1), strides=(1, 0, 1)).flags.fnc + assert dpt.usm_ndarray((5, 1, 1), strides=(1, 0, 1)).flags.fc @pytest.mark.parametrize( @@ -1525,6 +1525,7 @@ def test_flags(): f.c_contiguous f.f_contiguous f.contiguous + f.fc f.fnc f.forc f.writable