* adding scipy integrate, initial check-in
* compile unix double-precision, select integrations algos
* bumping ulab version number to 6.7.0
* adding documentation
* documentation fix
* documentation fix
* documentation fix
* rewritten in some places
* complex number error handling
* added test cases
* resolved importing scipy.integrate
* resolved importing scipy.integrate #2
* build integrate only when we have MICROPY_FLOAT_IMPL_DOUBLE
* reverting commit a4c0c0b
* re-pushing failed commit
* Revert "re-pushing failed commit"
This reverts commit a10e89fe14.
* improve tests using math.isclose()
* enabled fp32 builds
* removed conditional includes
* adapted to new function names, corrected importing
* function names similar to in CPython scipy.integrate, some minor corrections
* major rewrite representing the name changes, mapping to CPython scipy.integrate, more background info
* ndarray_set_value: in CircuitPython 9
* mp_obj_slice_indices: ditto
* Use modern MP_REGISTER_MODULE calls: ditto
* use MP_OBJ_SENTINEL to forward to locals dict (was never necessary?)
* 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>
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>
* 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
* 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>
Otherwise, an error occurred, but only on the macos build(!)
```
ulab/scipy/optimize/__init__.pyi:7: error: Name "_float" is not defined
```
It's not clear why `_float` was apparently defined on Linux in this
context.
* Move most documentation out of the ulab base module.
* float -> _float
* ulab.ndarray -> ulab.numpy.ndarray
This still does not build unless it is taken together with a modification
to CircuitPython that _also_ moves references to ulab.numpy.
Because of this, this PR will continue to show red. The suitability of
the changes can be gaged by looking at the related CircuitPython PR build
or by running locally the build-cp.sh script with the right ref checked
out in circuitpython/
.. this fixes a problem in CircuitPython where building the docs would say
"../shared-bindings/ulab/numpy/approx/index.rst: WARNING: document isn't included in any toctree"