From e2889974c237861c96c01526766164531c744e65 Mon Sep 17 00:00:00 2001 From: Ralf Gommers Date: Wed, 30 Dec 2020 17:37:38 +0100 Subject: [PATCH 1/3] Add a note on adding complex64/128 in a future version This introduces a new "Future extension" admonition, which uses the MyST "colon fence" (requires a newer version of MyST). Closes gh-102 --- spec/API_specification/data_types.md | 40 +++++++++++++--------------- spec/conf.py | 1 + 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/spec/API_specification/data_types.md b/spec/API_specification/data_types.md index 61c89d456..556eca43a 100644 --- a/spec/API_specification/data_types.md +++ b/spec/API_specification/data_types.md @@ -6,31 +6,11 @@ A conforming implementation of the array API standard must provide and support the following data types. -```{note} - -Data types ("dtypes") are objects that can be used as `dtype` specifiers in functions and methods (e.g., `zeros((2, 3), dtype=float32)`). A conforming implementation may add methods or attributes to data type objects; however, these methods and attributes are not included in this specification. -``` +A conforming implementation of the array API standard must define a default floating-point data type (either `float32` or `float64`), as well as a default data type for an array index (either `int32` or `int64`). ```{note} -Implementations may provide other ways to specify data types (e.g., -`zeros((2, 3), dtype='f4')`); however, these are not included in this specification. -``` - -A conforming implementation of the array API standard may provide and support additional data types beyond those described in this specification. - -A conforming implementation of the array API standard must define a default floating-point data type (either `float32` or `float64`). - -```{note} - -The default floating-point data type should be clearly defined in a conforming library's documentation. -``` - -A conforming implementation of the array API standard must define a default data type for an array index (either `int32` or `int64`). - -```{note} - -The default array index data type should be clearly defined in a conforming library's documentation. +The default floating-point and array index integer data types should be clearly defined in a conforming library's documentation. ``` @@ -77,3 +57,19 @@ IEEE 754 single-precision (32-bit) binary floating-point number (see IEEE 754-20 ## float64 IEEE 754 double-precision (64-bit) binary floating-point number (see IEEE 754-2019). + + +:::{admonition} Future extension +:class: hint +It is expected that in a future version of this standard, `complex64` and `complex128` +dtypes will be added. See [array-api/issues/102](https://github.com/data-apis/array-api/issues/102) for details. +::: + +```{note} +Data types ("dtypes") are objects that can be used as `dtype` specifiers in functions and methods (e.g., `zeros((2, 3), dtype=float32)`). A conforming implementation may add methods or attributes to data type objects; however, these methods and attributes are not included in this specification. + +Implementations may provide other ways to specify data types (e.g., +`zeros((2, 3), dtype='f4')`); however, these are not included in this specification. + +A conforming implementation of the array API standard may provide and support additional data types beyond those described in this specification. +``` diff --git a/spec/conf.py b/spec/conf.py index 98dd78c5c..308ba52d2 100644 --- a/spec/conf.py +++ b/spec/conf.py @@ -50,6 +50,7 @@ # MyST options myst_heading_anchors = 3 +myst_enable_extensions = ["colon_fence"] # -- Options for HTML output ------------------------------------------------- From 9555e12e1e579759be45601ceebcd8acff92b84d Mon Sep 17 00:00:00 2001 From: Ralf Gommers Date: Tue, 5 Jan 2021 21:10:59 +0000 Subject: [PATCH 2/3] Change text for complex to "expected in the next version" Co-authored-by: Leo Fang --- spec/API_specification/data_types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/API_specification/data_types.md b/spec/API_specification/data_types.md index 556eca43a..79b72e608 100644 --- a/spec/API_specification/data_types.md +++ b/spec/API_specification/data_types.md @@ -61,7 +61,7 @@ IEEE 754 double-precision (64-bit) binary floating-point number (see IEEE 754-20 :::{admonition} Future extension :class: hint -It is expected that in a future version of this standard, `complex64` and `complex128` +It is expected that in the next version of this standard, `complex64` and `complex128` dtypes will be added. See [array-api/issues/102](https://github.com/data-apis/array-api/issues/102) for details. ::: From b36720a8829c02a3f0c591978cfcea4cfd1f55be Mon Sep 17 00:00:00 2001 From: Ralf Gommers Date: Tue, 12 Jan 2021 15:26:03 +0100 Subject: [PATCH 3/3] Add complex dtypes promotion rules to Future extension note. --- spec/API_specification/data_types.md | 7 ++++++- spec/_static/images/dtype_promotion_complex.png | Bin 0 -> 10433 bytes 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 spec/_static/images/dtype_promotion_complex.png diff --git a/spec/API_specification/data_types.md b/spec/API_specification/data_types.md index 79b72e608..76a98638a 100644 --- a/spec/API_specification/data_types.md +++ b/spec/API_specification/data_types.md @@ -62,7 +62,12 @@ IEEE 754 double-precision (64-bit) binary floating-point number (see IEEE 754-20 :::{admonition} Future extension :class: hint It is expected that in the next version of this standard, `complex64` and `complex128` -dtypes will be added. See [array-api/issues/102](https://github.com/data-apis/array-api/issues/102) for details. +dtypes will be added, with these casting rules (will be added to {ref}`type-promotion`): + +![Type promotion diagram for complex dtypes in next version](/_static/images/dtype_promotion_complex.png) + +See [array-api/issues/102](https://github.com/data-apis/array-api/issues/102) +for more details. ::: ```{note} diff --git a/spec/_static/images/dtype_promotion_complex.png b/spec/_static/images/dtype_promotion_complex.png new file mode 100644 index 0000000000000000000000000000000000000000..3503b07f56a885d59a397d35ae3cfc164a4909ef GIT binary patch literal 10433 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 M3RNk(WBK?00t!l|VgLXD literal 0 HcmV?d00001