|
1 | 1 | # Changelog
|
2 | 2 |
|
| 3 | +## 2.3 (2025-XX-XX) |
| 4 | + |
| 5 | +### Major Changes |
| 6 | + |
| 7 | +- The default version of the array API standard is now 2024.12. Previous versions can |
| 8 | + still be enabled via the [flags API](array-api-strict-flags). |
| 9 | + |
| 10 | + Note that this support is still relatively untested. Please [report any |
| 11 | + issues](https://github.com/data-apis/array-api-strict/issues) you find. |
| 12 | + |
| 13 | +- Binary elementwise functions now accept python scalars: the only requirement is that |
| 14 | + at least one of the arguments must be an array; the other argument may be either |
| 15 | + a python scalar or an array. Python scalars are handled in accordance with the |
| 16 | + type promotion rules, as specified by the standard. |
| 17 | + This change unifies the behavior of binary functions and their matching operators, |
| 18 | + (where available), such as `multiply(x1, x2)` and `__mul__(self, other)`. |
| 19 | + |
| 20 | + `where` accepts arrays or scalars as its 2nd and 3rd arguments, `x1` and `x2`. |
| 21 | + The first argument, `condition`, must be an array. |
| 22 | + |
| 23 | + `result_type` accepts arrays and scalars and computes the result dtype according |
| 24 | + to the promotion rules. |
| 25 | + |
| 26 | +- Ergonomics of working with complex values has been improved: |
| 27 | + |
| 28 | + - binary operators accept complex scalars and real arrays and preserve the floating point |
| 29 | + precision: `1j*f32_array` returns a `complex64` array |
| 30 | + - `mean` accepts complex floating-point arrays. |
| 31 | + - `real` and `conj` accept numeric arguments, including real floating point data. |
| 32 | + Note that `imag` still requires its input to be a complex array. |
| 33 | + |
| 34 | +- The following functions, new in the 2024.12 standard revision, are implemented: |
| 35 | + |
| 36 | + - `count_nonzero` |
| 37 | + - `cumulative_prod` |
| 38 | + |
| 39 | +- `fftfreq` and `rfftfreq` functions accept a new `dtype` argument to control the |
| 40 | + the data type of their output. |
| 41 | + |
| 42 | + |
| 43 | +### Minor Changes |
| 44 | + |
| 45 | +- `vecdot` now conjugates the first argument, in accordance with the standard. |
| 46 | + |
| 47 | +- `astype` now raises a `TypeError` instead of casting a complex floating-point |
| 48 | + array to a real-valued or an integral data type. |
| 49 | + |
| 50 | +- `where` requires that its first argument, `condition` has a boolean data dtype, |
| 51 | + and raises a `TypeError` otherwise. |
| 52 | + |
| 53 | +- `isdtype` raises a `TypeError` is its argument is not a dtype object. |
| 54 | + |
| 55 | +- arrays created with `from_dlpack` now correctly set their `device` attribute. |
| 56 | + |
| 57 | +- the build system now uses `pyproject.toml`, not `setup.py`. |
| 58 | + |
| 59 | +### Contributors |
| 60 | + |
| 61 | +The following users contributed to this release: |
| 62 | + |
| 63 | +Aaron Meurer |
| 64 | +Clément Robert |
| 65 | +Guido Imperiale |
| 66 | +Evgeni Burovski |
| 67 | +Lucas Colley |
| 68 | +Tim Head |
| 69 | + |
| 70 | + |
3 | 71 | ## 2.2 (2024-11-11)
|
4 | 72 |
|
5 | 73 | ### Major Changes
|
|
0 commit comments