Commit graph

766 commits

Author SHA1 Message Date
Zoltán Vörös
6fcfeda58d increment version number after dot fix 2023-01-15 11:01:15 +01:00
6e6d24ea45
Allocate 1d results of correct size (#577)
Before, it was erroneously allocated as a 1-element array
instead of a 6-element array in the test case.

Closes #574
2023-01-15 10:58:18 +01:00
Zoltán Vörös
7124eaac74
fix concatenate (#575) 2023-01-14 11:02:33 +01:00
Zoltán Vörös
e68bb707b2
fix vectorize (#568) 2023-01-04 00:27:41 +01:00
Damien George
1a440d7d12
Fix sort when dtype is uint16 (#563)
Prior to this fix the code was using the mp_float_t data type for uint16
and producing incorrect sort results.

Signed-off-by: Damien George <damien@micropython.org>

Signed-off-by: Damien George <damien@micropython.org>
2022-11-29 08:02:35 +01:00
Zoltán Vörös
25a825e41c
fix segmentation fault bug in fft.ifft (#557) 2022-11-07 17:23:04 +01:00
Jim Mussared
38e99c69af
code/ulab.c: Fix missing comma in ulab_dtype_type definition. (#553)
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-10-10 08:48:17 +02:00
Damien George
41fcf1d4cf
Minor compile fixes: comma and new-line at end of files (#550)
* Fix missing comma in type definition

Signed-off-by: Damien George <damien@micropython.org>

* Make sure all files have a new-line at the end

Some very old compilers don't like files without a new-line at the end.

Signed-off-by: Damien George <damien@micropython.org>

* Use math.isclose for universal_functions expm1 test

Signed-off-by: Damien George <damien@micropython.org>

Signed-off-by: Damien George <damien@micropython.org>
2022-09-30 10:42:49 +02:00
Zoltán Vörös
294f9d9ef2 fix test script, bring ulab in line with micropython, bump version number to 6.0.0 2022-09-21 19:59:34 +02:00
Jim Mussared
42f396a992
Update mp_obj_type_t definitions for latest MicroPython. (#549)
* build.sh: Fix unix executable path.

This was updated recently to no longer copy to the ports/unix directory.

Use the version in the build directory instead if available.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>

* Update to new style mp_obj_type_t definitions.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-09-21 19:46:39 +02:00
Zoltán Vörös
57de23c1fb
fix how arctan2 treats scalars (#546) 2022-08-04 07:35:20 +02:00
Zoltán Vörös
dfed7a844a
implement nonzero (#540)
* implement nonzero for Boolean arrays

* remove axtls from build script

* extend nonzero to ndarrays of arbitrary dtype, and iterable, fix float tests

* temporarily disable circuitpython tests

* add nonzero documentation

* Added test script for np.nonzero()

Co-authored-by: Tejal Ashwini Barnwal <64950661+tejalbarnwal@users.noreply.github.com>
2022-08-03 20:56:45 +02:00
Damien George
2b4292abcc
Make optimize's bisect,fmin,newton use C stack instead of heap (#536)
Signed-off-by: Damien George <damien.p.george@gmail.com>
2022-07-11 19:18:40 +02:00
Damien George
35b58d0037 Remove MICROPY_FLOAT_CONST from ULAB_DEFINE_FLOAT_CONST
A given use of ULAB_DEFINE_FLOAT_CONST may already have the correct form
of the float constant, so wrapping it in MICROPY_FLOAT_CONST may be the
wrong thing to do.  So let the user of ULAB_DEFINE_FLOAT_CONST control how
the constant is formed.

Signed-off-by: Damien George <damien.p.george@gmail.com>
2022-07-11 15:27:49 +10:00
346c936e14
Fix E, PI constants on REPR_A
REPR_A is used for e.g., broadcom build raspberrypi_pi4b.

This is a trick, so that the appended 'f' is attached to the "0.".

Without this, a diagnostic occurred:
```
../../extmod/ulab/code/numpy/../ndarray.h:27:34: error: invalid suffix "FF" on floating constant
```
2022-07-07 17:15:09 -05:00
fc6e200afe
Fix INF, NAN constants on REPR_A
REPR_A is used for e.g., broadcom build raspberrypi_pi4b.

This is a trick, so that the appended 'f' is attached to the "0.".
Infinity plus zero is still zero, and nan plus zero is still zero.

Without this, a diagnostic occurred:
```
../../extmod/ulab/code/numpy/numpy.c:64:60: error: pasting ")" and "F" does not give a valid preprocessing token
```
2022-07-07 17:14:35 -05:00
308627c9aa
Fix several build errors in CircuitPython (#533)
* Properly register submodules of ulab

This is related to
 * https://github.com/adafruit/circuitpython/issues/6066

in which, after the merge of 1.18 into CircuitPython, we lost the ability
to import submodules of built-in modules.

While reconstructing the changes we had made locally to enable this,
I discovered that there was an easier way: simply register the dotted
module names via MP_REGISTER_MODULE.

* Fix finding processor count when no `python` executable is installed

debian likes to install only `python3`, and not `python` (which was,
for many decades, python2).

This was previously done for `build.sh` but not for `build-cp.sh`.

* Only use this submodule feature in CircuitPython

.. as it does not work properly in MicroPython.

Also, modules to be const. This saves a small amount of RAM

* Fix -Werror=undef diagnostic

Most CircuitPython ports build with -Werror=undef, so that use of an
undefined preprocessor flag is an error. Also, CircuitPython's micropython
version is old enough that MICROPY_VERSION is not (ever) defined.

Defensively check for this macro being defined, and use the older style
of MP_REGISTER_MODULE when it is not.

* Fix -Werror=discarded-qualifiers diagnostics

Most CircuitPython ports build with -Werror=discarded-qualifiers.
This detected a problem where string constants were passed to functions
with non-constant parameter types.

* bump version number

* Use MicroPython-compatible registration of submodules

* straggler

* Remove spurious casts

these were build errors for micropython

* Run tests for both nanbox and regular variant during CI
2022-07-07 20:17:49 +02:00
Damien George
1347694672
Fix build for MICROPY_OBJ_REPR_D configurations (#531)
* Fix use of object pointers so code builds with MICROPY_OBJ_REPR_D

Signed-off-by: Damien George <damien.p.george@gmail.com>

* Fix use of float constants so they work with MICROPY_OBJ_REPR_D

Signed-off-by: Damien George <damien.p.george@gmail.com>

* Use new float-const macros to simplify definitions of e,inf,nan,pi.

Signed-off-by: Damien George <damien.p.george@gmail.com>

* Add support for MICROPY_OBJ_REPR_C

Signed-off-by: Damien George <damien.p.george@gmail.com>

* Add unix-nanbox build to build.sh script

Building nanbox requires gcc-multilib because it forces 32-bit mode.

Signed-off-by: Damien George <damien.p.george@gmail.com>

* Bump version to 5.0.8

Signed-off-by: Damien George <damien.p.george@gmail.com>
2022-07-06 20:38:20 +02:00
Damien George
1898c2fc71
Fix error message for maximum number of dimensions (#532)
Signed-off-by: Damien George <damien.p.george@gmail.com>
2022-07-06 05:55:46 +02:00
Philip Howard
00139bdd96
Drop third argument from MP_REGISTER_MODULE. (#529)
Adopt pattern from efe23aca71/docs/develop/cmodules.rst

Signed-off-by: Phil Howard <phil@pimoroni.com>
2022-06-16 14:26:10 +02:00
Zoltán Vörös
d438344943
fix in-place assignment from slices (#524)
* fix in-place assignment from slices
2022-05-17 21:25:20 +02:00
Zoltán Vörös
53bc8d6b0e
replace m_new with m_new0, wherever reasonable (#521)
replace m_new with m_new0, wherever reasonable, and remove dangling memory fragments created by m_new0
2022-04-22 22:10:01 +02:00
Alec Delaney
a715eed7d9 Fix reference 2022-04-22 12:10:42 -04:00
Alec Delaney
8da81e123e
Fix typo of name from spectrum to spectrogram 2022-04-22 11:30:49 -04:00
Alec Delaney
8c2cd49ffa
Fix reference to location of spectrum() 2022-04-20 18:08:57 -04:00
Alec Delaney
2772fd8e91
Update reference to spectrum 2022-04-19 21:45:34 -04:00
Zoltán Vörös
dde8d24461 add sort tests 2022-04-18 10:34:02 +02:00
Zoltán Vörös
48b3b7f641 fix sorting on empty arrays 2022-04-18 10:18:19 +02:00
Zoltán Vörös
d2939dbf22 fix binary ops on empty arrays 2022-02-18 19:34:30 +01:00
Zoltán Vörös
607fd303bb remove printf 2022-02-12 18:40:44 +01:00
Zoltán Vörös
0ef2341386 fix complex slicing 2022-02-10 19:57:19 +01:00
Zoltán Vörös
72f7df520a fix diag for the ndim = 2 case 2022-02-09 07:06:54 +01:00
Zoltán Vörös
4dc9afc1f8 fix np.diag 2022-02-08 17:37:00 +01:00
Zoltán Vörös
effbd3cf38 add ULAB_HASH 2022-02-03 21:23:11 +01:00
Zoltán Vörös
ae9604db21
Merge branch 'master' into spectrogram 2022-02-01 20:29:53 +01:00
Zoltán Vörös
6dcad4424c extend loadtxt documentation 2022-02-01 18:42:58 +01:00
Zoltán Vörös
9ba136acd4 fix savetxt comments default value 2022-01-31 22:28:50 +01:00
Zoltán Vörös
f5f42c3643 add skiprows keyword 2022-01-31 22:12:00 +01:00
Zoltán Vörös
65d6f8e947 fix buffer alignment error 2022-01-30 22:47:44 +01:00
Zoltán Vörös
e8c89935ab fix array dtype conversion, linalg float constants 2022-01-30 19:55:59 +01:00
Zoltán Vörös
e980564d64 assign array elements via function 2022-01-29 22:41:03 +01:00
Zoltán Vörös
19282b47d1 add dtype keyword to loadtxt 2022-01-29 22:30:11 +01:00
Zoltán Vörös
9d79960ef6 fix docs glitch, bump version number to 5.0.0 2022-01-29 21:53:42 +01:00
Zoltán Vörös
67538b0ee0 move spectrogram to utils module 2022-01-29 18:02:48 +01:00
Zoltán Vörös
089000df30
Merge branch 'master' into io-savetxt 2022-01-28 19:28:43 +01:00
Zoltán Vörös
bb07482efc implement max_roas keyword 2022-01-27 23:44:29 +01:00
Zoltán Vörös
f31555044a implement loadtxt keywords 2022-01-26 22:31:36 +01:00
Zoltán Vörös
f7b557c6b0 get rid of unnecessary counter in loadtxt 2022-01-26 08:09:05 +01:00
Zoltán Vörös
9f444dd718 use mp_builtin_open_obj.fun.kw instead of mp_builtin_open 2022-01-26 07:43:17 +01:00
Zoltán Vörös
a39869c43c remove redundant includes 2022-01-25 23:09:10 +01:00
Zoltán Vörös
5395c76d98 first implementation of loadtxt 2022-01-25 23:00:08 +01:00
Zoltán Vörös
77a856e84e fix compilation problem on the rp2 port 2022-01-25 18:10:06 +01:00
Zoltán Vörös
d56dd2f921 add io_sprint for systems that don't have sprintf 2022-01-24 20:37:33 +01:00
Zoltán Vörös
26d28166f8
Merge branch 'master' into sosfilt-fix 2022-01-21 17:29:28 +01:00
Zoltán Vörös
957ae1c50a fix macintosh compilation 2022-01-19 20:04:41 +01:00
Zoltán Vörös
73fcd895db
Merge branch 'master' into io 2022-01-19 19:56:44 +01:00
Zoltán Vörös
932060afcc fully implement savetxt 2022-01-19 19:52:50 +01:00
Zoltán Vörös
640a3bf777 do not include sosfilt, if ULAB_MAX_DIMS = 1 2022-01-19 17:49:01 +01:00
Zoltán Vörös
6092d1d406 trying to solve macintosh compilation error 2022-01-19 17:46:41 +01:00
Zoltán Vörös
3f97d7bb84 fix scipy.signal.sosfilt 2022-01-19 17:37:54 +01:00
Zoltán Vörös
209e7ff251 add savetxt implementation 2022-01-18 21:20:57 +01:00
Zoltán Vörös
4739e06473 fix ndarray_copy_view for Boolean dtypes 2022-01-18 16:42:03 +01:00
Zoltán Vörös
bd57ac8938 include uinstd.h header 2022-01-16 16:17:06 +01:00
Zoltán Vörös
024b3ea6e8 change npy, fin, fout to stream, stream_p for consistency 2022-01-15 09:54:23 +01:00
Zoltán Vörös
97d2c2c3c5 always close file before exception, change exception type 2022-01-15 09:54:23 +01:00
Zoltán Vörös
b9d46c7f92 try to fix uninitialised variable issue 2022-01-15 09:54:23 +01:00
Zoltán Vörös
a1f1cd255b rebasing from master 2022-01-15 09:54:15 +01:00
Zoltán Vörös
834ddc8218 attempt to fix eps32 compilation error 2022-01-15 09:46:24 +01:00
Zoltán Vörös
4b0c3215fd close file in save implementation 2022-01-15 09:46:24 +01:00
Zoltán Vörös
acb81aeded fix loop index in numpy.save 2022-01-15 09:46:24 +01:00
Zoltán Vörös
56b3d800e3 add input type checking 2022-01-15 09:46:24 +01:00
Zoltán Vörös
030463f7ff include stdio.h for mac 2022-01-15 09:46:24 +01:00
Zoltán Vörös
d8ce4b395f rebase from master 2022-01-15 09:46:13 +01:00
Zoltán Vörös
32ebcb4c06 fix size argument handling 2022-01-14 22:54:04 +01:00
Zoltán Vörös
b12f3d0b4d fix asarray initialiser 2022-01-14 22:25:17 +01:00
Zoltán Vörös
1fc2f18358 fix size return value 2022-01-14 20:49:42 +01:00
Zoltán Vörös
74533d18ff add asarray, and tests for asarray and size 2022-01-14 20:45:14 +01:00
Zoltán Vörös
63ab589b8c add numpy.size 2022-01-14 19:57:18 +01:00
Zoltán Vörös
fdf23c9956
Merge branch 'master' into complex-fix 2022-01-12 21:25:31 +01:00
Zoltán Vörös
923cb823a3 add documentation for delete, extend test script, handle negative scalars 2022-01-12 18:05:23 +01:00
Zoltán Vörös
34353d7545 fix scalar indexing 2022-01-11 22:07:32 +01:00
Zoltán Vörös
97b368412c fix complex printout for long arrays 2022-01-10 23:23:09 +01:00
Zoltán Vörös
e5020f8d57 add numpy.delete 2022-01-10 22:54:09 +01:00
Zoltán Vörös
6552cfdc38 remove misleading comment from ulab.h 2022-01-07 21:19:06 +01:00
Zoltán Vörös
969afdec7f implement ==, and != for complex dtypes 2022-01-07 14:05:38 +01:00
Zoltán Vörös
ecaa355bab fix sort_complex, add tests to sort_complex, conjugate 2022-01-07 12:47:42 +01:00
Zoltán Vörös
ad9e1e9950 fix linspace error, extend to complex dtype, factor out tests 2022-01-06 19:55:34 +01:00
Zoltán Vörös
d1b3d40b47 add complex support to all/any 2022-01-06 09:22:45 +01:00
Zoltán Vörös
8efdec785e extend convolve for the complex case 2022-01-05 20:46:03 +01:00
Zoltán Vörös
6a7d20dd58 add real/imag properties to ndarray 2022-01-02 19:14:12 +01:00
Zoltán Vörös
d39549e3ac add sort_complex function 2022-01-02 17:34:38 +01:00
Zoltán Vörös
cb3f4b3898 add compress function 2022-01-02 12:46:12 +01:00
Zoltán Vörös
2b578ae333 add tolist method to ndarray 2022-01-01 18:16:04 +01:00
Zoltán Vörös
c11dac322d fix array initialisation from complex array 2022-01-01 09:20:00 +01:00
Zoltán Vörös
4855baa8cc add conjugate function 2022-01-01 00:33:28 +01:00
Zoltán Vörös
7e13fab911 support ones, zeros, and full for complex dtype 2021-12-31 23:39:58 +01:00
Zoltán Vörös
94d6b13f8d make fft optionally numpy-compatible, when complex is supported 2021-12-31 23:11:59 +01:00
Zoltán Vörös
e01e547b62 fix dtype in stubs 2021-12-30 09:09:41 +01:00
Zoltán Vörös
4d7e279996 fix circuitpython documentation 2021-12-30 08:54:52 +01:00
Zoltán Vörös
7b17796c91 fix complex sqrt 2021-12-30 08:10:54 +01:00