Commit graph

766 commits

Author SHA1 Message Date
Jeff Epler
7846b0c469 convolve: Optimize and special-case floats
Special casing floats decreases runtime to about 50% (applying a 117-tap
filter to 512 points of data goes from 70ms to 32ms)

The top_n/bot_n calculations already meant that the a/c indices were
never out of range.  This decreases runtime further to about 15% of
original (11ms)

Timings done on an Adafruit Clue (nrf52840 at 64MHz)

It does of course increase code size somewhat.
2020-02-11 17:57:54 -06:00
Zoltán Vörös
9153fd8f8a added a short section to the manual on how to customise ulab 2020-02-11 21:36:12 +01:00
Zoltán Vörös
57cf52838c
Merge pull request #33 from jepler/fix-undef-errors-mpy
Fix some define-guards
2020-02-11 20:19:27 +01:00
Zoltán Vörös
c14eee1bd4 trying to fix ulab.h definitions 2020-02-11 20:15:45 +01:00
Zoltán Vörös
2c71467ced implemented ndarray properties 2020-02-11 20:08:37 +01:00
02d74a4d3e Fix some define-guards
These problems were found building in circuitpython:
../../extmod/ulab/code/numerical.c:671:5: error: "ULAB_NUMERICAL_ARGSORT" is not defined, evaluates to 0 [-Werror=undef]
  671 | #if ULAB_NUMERICAL_ARGSORT
      |     ^~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
../../extmod/ulab/code/ulab.c:150:9: error: "ULAB_VECTORISE_" is not defined, evaluates to 0 [-Werror=undef]
  150 |     #if ULAB_VECTORISE_
      |         ^~~~~~~~~~~~~~~
../../extmod/ulab/code/ulab.c:159:9: error: "ULAB_VECTORISE_TAHN" is not defined, evaluates to 0 [-Werror=undef]
  159 |     #if ULAB_VECTORISE_TAHN
      |         ^~~~~~~~~~~~~~~~~~~
../../extmod/ulab/code/ulab.c:198:9: error: "ULAB_NUMERICAL_ARGSORT" is not defined, evaluates to 0 [-Werror=undef]
  198 |     #if ULAB_NUMERICAL_ARGSORT
      |         ^~~~~~~~~~~~~~~~~~~~~~
2020-02-11 11:08:25 -06:00
Zoltán Vörös
4a0677fd14 removed extra ndarray_get_buffer 2020-02-10 19:54:49 +01:00
Zoltán Vörös
800bb3b872 Merge branch 'master' of github.com:v923z/micropython-ulab 2020-02-10 19:51:22 +01:00
Zoltán Vörös
89170a13a6 fixed error in filter.c, removed asbytearray, and added buffer protocol to ndarray.c 2020-02-10 19:50:49 +01:00
Zoltán Vörös
ca23263655
Merge pull request #31 from jepler/memoryview
ndarray: let memoryview(arr) work
2020-02-10 18:38:11 +01:00
Zoltán Vörös
936bb3bae5 corrected slicing error in issue #32 2020-02-09 19:56:32 +01:00
a90d18caf1 ndarray: let memoryview(arr) work
.. this makes ndarray.rawbytes redundant.  Circuitpython will remove it.
2020-02-08 10:29:45 -06:00
Zoltán Vörös
918075daaf fixed a couple of small issues in filter.c 2020-02-08 10:45:13 +01:00
Zoltán Vörös
fac3eb4099 fixed a couple of small issues in filter.c 2020-02-08 10:44:24 +01:00
Zoltán Vörös
76ccd1a118 the master branch is configurable now 2020-02-07 21:23:24 +01:00
Jeff Epler
722401c2e4 Clean up and polish based on review comments
no functional change
2020-02-06 12:43:39 -06:00
Jeff Epler
efa4c148c9 convolve: implement and document 2020-02-05 16:33:48 -06:00
Zoltán Vörös
dcd65feb21 fixed indexing error in linalg.dot 2020-01-29 19:27:28 +01:00
Zoltán Vörös
b2c4749962 replaced MP_ROM_PTR macro, wherever it made sense 2020-01-20 19:55:38 +01:00
Zoltán Vörös
ac1111c251 fixed glitch in std/mean functions 2020-01-07 21:53:23 +01:00
Zoltán Vörös
992e48b84e switched to version string 2020-01-07 21:02:20 +01:00
Zoltán Vörös
68e38bc6b8 backup commit 2020-01-06 07:43:27 +01:00
Zoltán Vörös
81acfc7da8 ulab_ndarray_type is extern now 2019-12-31 10:57:10 +01:00
Zoltán Vörös
107587de00 found and fixed macro error in vectorise.h 2019-11-29 08:02:48 +01:00
Zoltán Vörös
22f85e0d3b fixed indexing error in linalg.dot 2019-11-28 19:16:59 +01:00
Zoltán Vörös
1df50af368 replaced fabs by platform-agnostic version 2019-11-14 20:27:32 +01:00
Zoltán Vörös
1b9a80a442 replaced fabs by platform-agnostic version 2019-11-14 20:26:15 +01:00
Nicko van Someren
e33720e9c0 Fixed several issues preventing compilation on macOS 2019-11-11 13:39:28 -08:00
Zoltán Vörös
1f5d1a9765 fixed version number in ulab.c 2019-11-06 18:34:12 +01:00
Zoltán Vörös
0e9656cc1d added argsort, and fixed a number of smaller bugs 2019-11-06 17:35:01 +01:00
Zoltán Vörös
08b8fd0ae2 fixed float_t->mp_float_t mistake in ndarray.c 2019-11-04 19:28:06 +01:00
Zoltán Vörös
351eafa06c first implementation of sort 2019-11-04 18:54:19 +01:00
Zoltán Vörös
3379f0b897 fixed linking error with sin/sqrt 2019-11-01 14:42:08 +01:00
Zoltán Vörös
6e4911d96f replaced float with mp_float_t everywhere, so that the source can be compiled for all platforms 2019-11-01 14:28:29 +01:00
Zoltán Vörös
8b6d03417b added diff function, and updated the manual accordingly 2019-10-31 12:52:40 +01:00
Zoltán Vörös
761ad69d71 fully implemented subscription methods 2019-10-29 21:12:12 +01:00
Zoltán Vörös
5599dd2f31 fixed small bug in rawsize 2019-10-19 19:45:26 +02:00
Zoltán Vörös
148364e189 added eig to linalg, and updated the manual 2019-10-19 15:32:45 +02:00
Zoltán Vörös
31e40dad5d added uniform interface to fft, ifft, spectrum, and significantly extended manual 2019-10-17 20:52:41 +02:00
Zoltán Vörös
d4acce7b1f extended documentation, and moved size function to linalg 2019-10-16 20:08:16 +02:00
Zoltán Vörös
69225c3707 added det to linalg.c 2019-10-15 21:37:21 +02:00
Zoltán Vörös
13c343f3cf fixed the roll function in numerical.c 2019-10-15 19:47:22 +02:00
Zoltán Vörös
13511aaf08 min/max conforms to numpy behaviour now 2019-10-14 21:29:15 +02:00
Zoltán Vörös
5caa711422 extended manual, inserted links to numpy functions 2019-10-12 22:33:13 +02:00
Zoltán Vörös
e30b8d6f4e added first version of manual, fixed small bug in roll 2019-10-11 21:45:14 +02:00
Zoltán Vörös
be6ab7ba18 extended universal functions for arbitrary typecode 2019-10-11 18:59:45 +02:00
Zoltán Vörös
0c161e2ba3 fixed error in iterator and make_new 2019-10-11 15:58:17 +02:00
Zoltán Vörös
68dd3a7423 this is mainly a safety backup; subscr is not fully implemented yet 2019-10-10 22:01:26 +02:00
Zoltán Vörös
1c233de552 extended unary operators in ndarray.c 2019-10-08 17:37:53 +02:00
Zoltán Vörös
4a8ecc28f2 added keyword arguments to linspace, made binary_op tighter 2019-10-07 20:49:29 +02:00
Zoltán Vörös
a5f61f4e3c added comparison operators to ndarray 2019-10-05 16:01:00 +02:00
Zoltán Vörös
ba975c100d added comparison operators to ndarray 2019-10-05 15:59:03 +02:00
Zoltán Vörös
7feaf8c57e removed printf statement in ndarray.c 2019-10-04 20:11:28 +02:00
Zoltán Vörös
cadae1dbf7 extended linalg, added .flatten to ndarray 2019-10-04 20:06:04 +02:00
Zoltán Vörös
52694959d3 bit of clean-up in binary_op/removed upcasting() 2019-10-04 12:32:49 +02:00
Zoltán Vörös
6a65d33445 fixed half of the binary operator code (implemented macros) 2019-09-27 20:23:25 +02:00
Zoltán Vörös
093bc39b7d cleaned up material for first release 2019-09-25 17:33:02 +02:00
Zoltán Vörös
fce8850b05 added lots of examples and code comments 2019-09-18 21:59:31 +02:00
Zoltán Vörös
c958ac272d fixed stm32 code 2019-09-18 19:39:04 +02:00
Zoltán Vörös
be8be6d155 fixed subscription method 2019-09-17 22:23:07 +02:00
Zoltán Vörös
69037a2d60 added in-place fft implementation 2019-09-17 21:25:27 +02:00
Zoltán Vörös
f2d41862da added version info 2019-09-11 20:12:49 +02:00
Zoltán Vörös
d9f9a26197 implemented binary operators 2019-09-11 19:51:48 +02:00
Zoltán Vörös
5997dd2a5c implemented numpy-like iterators 2019-09-06 20:24:18 +02:00
Zoltán Vörös
f7884529fe added keyword argument to ndarray 2019-09-05 21:56:00 +02:00
Zoltán Vörös
3ed5e1a651 initial commit 2019-08-31 18:51:26 +02:00