Cubed supports version 2022.12 of the Python array API standard, with a few exceptions noted below. The Fourier transform functions are not supported.
Support for version 2023.12 is tracked in Cubed issue #438.
This table shows which parts of the the Array API have been implemented in Cubed, and which ones are missing. The version column shows the version when the feature was added to the standard, for version 2022.12 or later.
Category | Object/Function | Implemented | Version | Notes |
---|---|---|---|---|
Array object | Arithmetic Ops | ✅ | ||
Array Ops | ✅ | |||
Bitwise Ops | ✅ | |||
Comparison Ops | ✅ | |||
In-place Ops | ❌ | Arrays are immutable | ||
Reflected Ops | ✅ | |||
Attributes | ✅ | |||
Methods | ✅ | Not device methods | ||
Constants | e , inf , ... |
✅ | ||
Creation Functions | arange |
✅ | ||
asarray |
✅ | |||
empty |
✅ | |||
empty_like |
✅ | |||
eye |
✅ | |||
from_dlpack |
❌ | |||
full |
✅ | |||
full_like |
✅ | |||
linspace |
✅ | |||
meshgrid |
✅ | |||
ones |
✅ | |||
ones_like |
✅ | |||
tril |
✅ | |||
triu |
✅ | |||
zeros |
✅ | |||
zeros_like |
✅ | |||
Data Type Functions | astype |
✅ | ||
can_cast |
✅ | |||
finfo |
✅ | |||
iinfo |
✅ | |||
result_type |
✅ | |||
Data Types | bool , int8 , ... |
✅ | ||
Elementwise Functions | add |
✅ | Example of a binary function | |
negative |
✅ | Example of a unary function | ||
others | ✅ | |||
Indexing | Single-axis | ✅ | ||
Multi-axis | ✅ | |||
Boolean array | ❌ | Shape is data dependent, #73 | ||
Indexing Functions | take |
✅ | 2022.12 | |
Inspection | capabilities |
✅ | 2023.12 | |
default_device |
✅ | 2023.12 | ||
default_dtypes |
✅ | 2023.12 | ||
devices |
✅ | 2023.12 | ||
dtypes |
✅ | 2023.12 | ||
Linear Algebra Functions | matmul |
✅ | ||
matrix_transpose |
✅ | |||
tensordot |
✅ | |||
vecdot |
✅ | |||
Manipulation Functions | broadcast_arrays |
✅ | ||
broadcast_to |
✅ | |||
concat |
✅ | |||
expand_dims |
✅ | |||
flip |
✅ | |||
permute_dims |
✅ | |||
repeat |
✅ | |||
reshape |
✅ | Partial implementation | ||
roll |
✅ | |||
squeeze |
✅ | |||
stack |
✅ | |||
tile |
✅ | 2023.12 | ||
unstack |
✅ | 2023.12 | ||
Searching Functions | argmax |
✅ | ||
argmin |
✅ | |||
nonzero |
❌ | Shape is data dependent | ||
searchsorted |
❌ | 2023.12 | ||
where |
✅ | |||
Set Functions | unique_all |
❌ | Shape is data dependent | |
unique_counts |
❌ | Shape is data dependent | ||
unique_inverse |
❌ | Shape is data dependent | ||
unique_values |
❌ | Shape is data dependent | ||
Sorting Functions | argsort |
❌ | Not in Dask | |
sort |
❌ | Not in Dask | ||
Statistical Functions | cumulative_sum |
❌ | 2023.12 | WIP #531 |
max |
✅ | |||
mean |
✅ | |||
min |
✅ | |||
prod |
✅ | |||
std |
✅ | |||
sum |
✅ | |||
var |
✅ | |||
Utility Functions | all |
✅ | ||
any |
✅ |
A few of the linear algebra extension functions are supported, as indicated in this table.
Category | Object/Function | Implemented | Version | Notes |
---|---|---|---|---|
Linear Algebra Functions | cholesky |
❌ | ||
cross |
❌ | |||
det |
❌ | |||
diagonal |
❌ | |||
eigh |
❌ | |||
eigvalsh |
❌ | |||
inv |
❌ | |||
matmul |
✅ | |||
matrix_norm |
❌ | |||
matrix_power |
❌ | |||
matrix_rank |
❌ | |||
matrix_transpose |
✅ | |||
outer |
✅ | |||
pinv |
❌ | |||
qr |
✅ | |||
slogdet |
❌ | |||
solve |
❌ | |||
svd |
✅ | |||
svdvals |
✅ | |||
tensordot |
✅ | |||
trace |
❌ | |||
vecdot |
✅ | |||
vectornorm |
❌ |