Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a note on adding complex64/128 in a future version #105

Merged
merged 3 commits into from
Jan 13, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 23 additions & 22 deletions spec/API_specification/data_types.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
```

```{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`).
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}

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.
```


Expand Down Expand Up @@ -77,3 +57,24 @@ 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 the next version of this standard, `complex64` and `complex128`
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}
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.
```
Binary file added spec/_static/images/dtype_promotion_complex.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions spec/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@

# MyST options
myst_heading_anchors = 3
myst_enable_extensions = ["colon_fence"]

# -- Options for HTML output -------------------------------------------------

Expand Down