Skip to content

Commit 2ed1699

Browse files
authored
re-worded several sections of readme
1 parent 48a3a65 commit 2ed1699

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

README.md

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ulab
22

3-
`ulab` is a `numpy`-like array manipulation library for `micropython` and `CircuitPython`.
3+
`ulab` is a `numpy`-like array manipulation library for [micropython](http://micropython.org/) and [CircuitPython](https://circuitpython.org/).
44
The module is written in C, defines compact containers for numerical data of one to four
55
dimensions, and is fast. The library is a software-only standard `micropython` user module,
66
i.e., it has no hardware dependencies, and can be compiled for any platform.
@@ -14,25 +14,30 @@ The `float` implementation of `micropython` (`float`, or `double`) is automatica
1414
`ulab` implements `numpy`'s `ndarray` with the `==`, `!=`, `<`, `<=`, `>`, `>=`, `+`, `-`, `/`, `*`, `**`,
1515
`+=`, `-=`, `*=`, `/=`, `**=` binary operators, and the `len`, `~`, `-`, `+`, `abs` unary operators that
1616
operate element-wise. Type-aware `ndarray`s can be initialised from any `micropython` iterable, lists of
17-
iterables, or by means of the `arange`, `concatenate`, `diag`, `eye`, `frombuffer`, `full`, `linspace`, `logspace`, `ones`, or
18-
`zeros` functions.
17+
iterables via the `array` constructor, or by means of the `arange`, `concatenate`, `diag`, `eye`,
18+
`frombuffer`, `full`, `linspace`, `logspace`, `ones`, or `zeros` functions.
1919

20-
`ndarray`s can be iterated on, and have a number of their own methods, such as `flatten`, `shape`,
21-
`reshape`, `strides`, `transpose`, `size`, `tobytes`, and `itemsize`.
20+
`ndarray`s can be iterated on, and have a number of their own methods, such as `flatten`, `itemsize`, `reshape`,
21+
`shape`, `size`, `strides`, `tobytes`, and `transpose`.
2222

2323

2424
## Customising the firmware
2525

2626
In addition to the `ndarray` operators and methods, `ulab` defines a great number of functions that can
27-
take `ndarray`s or `micropython` iterables as their arguments. If flash space is a concern, unnecessary functions
28-
can be excluded from the compiled firmware with pre-processor switches. Most of the functions are parts of
29-
`numpy`, but several are re-implementations of `scipy` features. For a full list of functions, see
27+
take `ndarray`s or `micropython` iterables as their arguments. Most of the functions have been ported from
28+
`numpy`, but several are re-implementations of `scipy` features. For a complete list, see
3029
[micropython-ulab](https://micropython-ulab.readthedocs.io/en/latest)!
3130

31+
If flash space is a concern, unnecessary functions can be excluded from the compiled firmware with
32+
pre-processor switches. In addition, `ulab` also has options for trading execution speed for firmware size.
33+
A thorough discussion on how the firmware can be customised can be found in the
34+
[corresponding section](https://micropython-ulab.readthedocs.io/en/latest/ulab-intro.html#customising-the-firmware)
35+
of the user manual.
36+
3237

3338
## Usage
3439

35-
`ulab` sports a `numpy`-compatible interface, which makes porting of `CPython` code straightforward. The following
40+
`ulab` sports a `numpy/scipy`-compatible interface, which makes porting of `CPython` code straightforward. The following
3641
snippet should run equally well in `micropython`, or on a PC.
3742

3843
```python

0 commit comments

Comments
 (0)