<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/modmath.c, branch v1.9.4</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.9.4</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.9.4'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2017-10-10T05:01:04+00:00</updated>
<entry>
<title>py/modmath: Convert log2 macro into a function.</title>
<updated>2017-10-10T05:01:04+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-10-04T10:46:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d8d4e4dfbe4ca76a1b0adf4f1938562a308c6d48'/>
<id>urn:sha1:d8d4e4dfbe4ca76a1b0adf4f1938562a308c6d48</id>
<content type='text'>
So that a pointer to it can be passed as a pointer to math_generic_1.  This
patch also makes the function work for single and double precision floating
point.
</content>
</entry>
<entry>
<title>py/modmath: Add full checks for math domain errors.</title>
<updated>2017-10-10T04:57:45+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-10-04T10:00:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=25e140652b946e9a136a16a9831c0b18f1285702'/>
<id>urn:sha1:25e140652b946e9a136a16a9831c0b18f1285702</id>
<content type='text'>
This patch changes how most of the plain math functions are implemented:
there are now two generic math wrapper functions that take a pointer to a
math function (like sin, cos) and perform the necessary conversion to and
from MicroPython types.  This helps to reduce code size.  The generic
functions can also check for math domain errors in a generic way, by
testing if the result is NaN or infinity combined with finite inputs.

The result is that, with this patch, all math functions now have full
domain error checking (even gamma and lgamma) and code size has decreased
for most ports.  Code size changes in bytes for those with the math module
are:

   unix x64:  -432
unix nanbox:  -792
      stm32:   -88
    esp8266:   +12

Tests are also added to check domain errors are handled correctly.
</content>
</entry>
<entry>
<title>py: Change obsolete "///" comment formatting to normal comments.</title>
<updated>2017-08-30T11:02:00+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-08-30T11:02:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=0102ee092b590be2736521ebf165c96bcf0bcbe6'/>
<id>urn:sha1:0102ee092b590be2736521ebf165c96bcf0bcbe6</id>
<content type='text'>
This comment style is no longer used because the docs are written by hand,
not generated.
</content>
</entry>
<entry>
<title>all: Use the name MicroPython consistently in comments</title>
<updated>2017-07-31T08:35:40+00:00</updated>
<author>
<name>Alexander Steffen</name>
<email>devel.20.webmeister@spamgourmet.com</email>
</author>
<published>2017-06-30T07:22:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=55f33240f3d7051d4213629e92437a36f1fac50e'/>
<id>urn:sha1:55f33240f3d7051d4213629e92437a36f1fac50e</id>
<content type='text'>
There were several different spellings of MicroPython present in comments,
when there should be only one.
</content>
</entry>
<entry>
<title>py/modmath: Check for zero division in log with 2 args.</title>
<updated>2017-07-03T16:15:11+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-07-03T16:15:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6b8b56f8596d3dde544a72d037e9feddd9f70938'/>
<id>urn:sha1:6b8b56f8596d3dde544a72d037e9feddd9f70938</id>
<content type='text'>
</content>
</entry>
<entry>
<title>all: Make more use of mp_raise_{msg,TypeError,ValueError} helpers.</title>
<updated>2017-06-15T01:54:41+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-06-15T01:54:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=48d867b4a68e53901aac87c2ff0f2a7e65f735c7'/>
<id>urn:sha1:48d867b4a68e53901aac87c2ff0f2a7e65f735c7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/modmath: Allow trunc/ceil/floor to return a big int if necessary.</title>
<updated>2017-03-23T11:57:08+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-03-23T11:57:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=febeff4af429483b41137f0befc70d14c9077ae1'/>
<id>urn:sha1:febeff4af429483b41137f0befc70d14c9077ae1</id>
<content type='text'>
Previous to this patch, if the result of the trunc/ceil/floor functions
overflowed a small int, or was inf or nan, then a garbage value was
returned.  With this patch the correct big-int is returned if necessary,
and exceptions are raised for inf or nan.
</content>
</entry>
<entry>
<title>py: Add MICROPY_FLOAT_CONST macro for defining float constants.</title>
<updated>2016-11-03T01:33:01+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-11-03T01:33:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=561844f3ba2dc81ce37c58468099042e27cd422b'/>
<id>urn:sha1:561844f3ba2dc81ce37c58468099042e27cd422b</id>
<content type='text'>
All float constants in the core should use this macro to prevent
unnecessary creation of double-precision floats, which makes code less
efficient.
</content>
</entry>
<entry>
<title>all: Remove 'name' member from mp_obj_module_t struct.</title>
<updated>2016-09-21T14:23:16+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-09-21T00:52:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=93c4a6a3f70e389b466fbc7a4f1ad2e1df87c93f'/>
<id>urn:sha1:93c4a6a3f70e389b466fbc7a4f1ad2e1df87c93f</id>
<content type='text'>
One can instead lookup __name__ in the modules dict to get the value.
</content>
</entry>
<entry>
<title>py/objfloat, py/modmath: Ensure M_PI and M_E defined.</title>
<updated>2016-05-12T12:28:45+00:00</updated>
<author>
<name>Colin Hogben</name>
<email>colin@infinnovation.co.uk</email>
</author>
<published>2016-05-09T21:11:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a896951a9a8d8585d094e5ee6d7d37ff17d1b73e'/>
<id>urn:sha1:a896951a9a8d8585d094e5ee6d7d37ff17d1b73e</id>
<content type='text'>
In some compliation enviroments (e.g. mbed online compiler) with
strict standards compliance, &lt;math.h&gt; does not define constants such
as M_PI.  Provide fallback definitions of M_E and M_PI where needed.
</content>
</entry>
</feed>
