summaryrefslogtreecommitdiff
path: root/shared-bindings/math
diff options
context:
space:
mode:
authorScott Shawcroft <scott@adafruit.com>2020-05-15 10:31:05 -0700
committerGitHub <noreply@github.com>2020-05-15 10:31:05 -0700
commit0d8bca92e208e705150097d26db6a5390dc9eb9b (patch)
tree122acb729c3e0e629642bc39f7f2ee9db3fc084a /shared-bindings/math
parentbd78ab3c2812f7772021be7863f89a9650589d80 (diff)
parent8ac3e7977f87219454dbab50264a723e797b877a (diff)
Merge pull request #2810 from dherrada/master
Pyi integration
Diffstat (limited to 'shared-bindings/math')
-rw-r--r--shared-bindings/math/__init__.c337
1 files changed, 160 insertions, 177 deletions
diff --git a/shared-bindings/math/__init__.c b/shared-bindings/math/__init__.c
index 0bf8047c9..8226a08ec 100644
--- a/shared-bindings/math/__init__.c
+++ b/shared-bindings/math/__init__.c
@@ -38,15 +38,10 @@
#define MP_PI MICROPY_FLOAT_CONST(3.14159265358979323846)
-//| :mod:`math` --- mathematical functions
-//| ========================================================
-//|
-//| .. module:: math
-//| :synopsis: mathematical functions
-//| :platform: SAMD21/SAMD51
+//| """mathematical functions
//|
//| The `math` module provides some basic mathematical functions for
-//| working with floating-point numbers.
+//| working with floating-point numbers."""
//|
STATIC NORETURN void math_error(void) {
@@ -83,182 +78,170 @@ STATIC NORETURN void math_error(void) {
// 1.442695040888963407354163704 is 1/_M_LN2
#define log2(x) (log(x) * 1.442695040888963407354163704)
#endif
- //| Constants
- //| ---------
- //|
- //| .. data:: e
- //|
- //| base of the natural logarithm
- //|
- //| .. data:: pi
- //|
- //| the ratio of a circle's circumference to its diameter
- //|
-
- //| Functions
- //| ---------
- //|
- //| .. function:: acos(x)
- //|
- //| Return the inverse cosine of ``x``.
- //|
- //| .. function:: asin(x)
- //|
- //| Return the inverse sine of ``x``.
- //|
- //| .. function:: atan(x)
- //|
- //| Return the inverse tangent of ``x``.
- //|
- //| .. function:: atan2(y,x)
- //|
- //| Return the principal value of the inverse tangent of ``y/x``.
- //|
- //| .. function:: ceil(x)
- //|
- //| Return an integer, being ``x`` rounded towards positive infinity.
- //|
- //| .. function:: copysign(x,y)
- //|
- //| Return ``x`` with the sign of ``y``.
- //|
- //| .. function:: cos(x)
- //|
- //| Return the cosine of ``x``.
- //|
- //| .. function:: degrees(x)
- //|
- //| Return radians ``x`` converted to degrees.
- //|
- //| .. function:: exp(x)
- //|
- //| Return the exponential of ``x``.
- //|
- //| .. function:: fabs(x)
- //|
- //| Return the absolute value of ``x``.
- //|
- //| .. function:: floor(x)
- //|
- //| Return an integer, being ``x`` rounded towards negative infinity.
- //|
- //| .. function:: fmod(x,y)
- //|
- //| Return the remainder of ``x/y``.
- //|
- //| .. function:: frexp(x)
- //|
- //| Decomposes a floating-point number into its mantissa and exponent.
- //| The returned value is the tuple ``(m, e)`` such that ``x == m * 2**e``
- //| exactly. If ``x == 0`` then the function returns ``(0.0, 0)``, otherwise
- //| the relation ``0.5 <= abs(m) < 1`` holds.
- //|
- //| .. function:: isfinite(x)
- //|
- //| Return ``True`` if ``x`` is finite.
- //|
- //| .. function:: isinf(x)
- //|
- //| Return ``True`` if ``x`` is infinite.
- //|
- //| .. function:: isnan(x)
- //|
- //| Return ``True`` if ``x`` is not-a-number
- //|
- //| .. function:: ldexp(x, exp)
- //|
- //| Return ``x * (2**exp)``.
- //|
- //| .. function:: modf(x)
- //|
- //| Return a tuple of two floats, being the fractional and integral parts of
- //| ``x``. Both return values have the same sign as ``x``.
- //|
- //| .. function:: pow(x, y)
- //|
- //| Returns ``x`` to the power of ``y``.
- //|
- //| .. function:: radians(x)
- //|
- //| Return degrees ``x`` converted to radians.
- //|
- //| .. function:: sin(x)
- //|
- //| Return the sine of ``x``.
- //|
- //| .. function:: sqrt(x)
- //|
- //| Returns the square root of ``x``.
- //|
- //| .. function:: tan(x)
- //|
- //| Return the tangent of ``x``.
- //|
- //| .. function:: trunc(x)
- //|
- //| Return an integer, being ``x`` rounded towards 0.
- //|
+
+//| e: Any = ...
+//| """base of the natural logarithm"""
+//|
+//| pi: Any = ...
+//| """the ratio of a circle's circumference to its diameter"""
+//|
+
+//| def acos(x: Any) -> Any:
+//| """Return the inverse cosine of ``x``."""
+//| ...
+//|
+//| def asin(x: Any) -> Any:
+//| """Return the inverse sine of ``x``."""
+//| ...
+//|
+//| def atan(x: Any) -> Any:
+//| """Return the inverse tangent of ``x``."""
+//| ...
+//|
+//| def atan2(y: Any, x: Any) -> Any:
+//| """Return the principal value of the inverse tangent of ``y/x``."""
+//| ...
+//|
+//| def ceil(x: Any) -> Any:
+//| """Return an integer, being ``x`` rounded towards positive infinity."""
+//| ...
+//|
+//| def copysign(x: Any, y: Any) -> Any:
+//| """Return ``x`` with the sign of ``y``."""
+//| ...
+//|
+//| def cos(x: Any) -> Any:
+//| """Return the cosine of ``x``."""
+//| ...
+//|
+//| def degrees(x: Any) -> Any:
+//| """Return radians ``x`` converted to degrees."""
+//| ...
+//|
+//| def exp(x: Any) -> Any:
+//| """Return the exponential of ``x``."""
+//| ...
+//|
+//| def fabs(x: Any) -> Any:
+//| """Return the absolute value of ``x``."""
+//| ...
+//|
+//| def floor(x: Any) -> Any:
+//| """Return an integer, being ``x`` rounded towards negative infinity."""
+//| ...
+//|
+//| def fmod(x: Any, y: Any) -> Any:
+//| """Return the remainder of ``x/y``."""
+//| ...
+//|
+//| def frexp(x: Any) -> Any:
+//| """Decomposes a floating-point number into its mantissa and exponent.
+//| The returned value is the tuple ``(m, e)`` such that ``x == m * 2**e``
+//| exactly. If ``x == 0`` then the function returns ``(0.0, 0)``, otherwise
+//| the relation ``0.5 <= abs(m) < 1`` holds."""
+//| ...
+//|
+//| def isfinite(x: Any) -> Any:
+//| """Return ``True`` if ``x`` is finite."""
+//| ...
+//|
+//| def isinf(x: Any) -> Any:
+//| """Return ``True`` if ``x`` is infinite."""
+//| ...
+//|
+//| def isnan(x: Any) -> Any:
+//| """Return ``True`` if ``x`` is not-a-number"""
+//| ...
+//|
+//| def ldexp(x: Any, exp: Any) -> Any:
+//| """Return ``x * (2**exp)``."""
+//| ...
+//|
+//| def modf(x: Any) -> Any:
+//| """Return a tuple of two floats, being the fractional and integral parts of
+//| ``x``. Both return values have the same sign as ``x``."""
+//| ...
+//|
+//| def pow(x: Any, y: Any) -> Any:
+//| """Returns ``x`` to the power of ``y``."""
+//|
+//| def radians(x: Any) -> Any:
+//| """Return degrees ``x`` converted to radians."""
+//|
+//| def sin(x: Any) -> Any:
+//| """Return the sine of ``x``."""
+//| ...
+//|
+//| def sqrt(x: Any) -> Any:
+//| """Returns the square root of ``x``."""
+//| ...
+//|
+//| def tan(x: Any) -> Any:
+//| """Return the tangent of ``x``."""
+//| ...
+//|
+//| def trunc(x: Any) -> Any:
+//| """Return an integer, being ``x`` rounded towards 0."""
+//| ...
+//|
MATH_FUN_1_ERRCOND(sqrt, sqrt, (x < (mp_float_t)0.0))
MATH_FUN_2(pow, pow)
MATH_FUN_1(exp, exp)
#if MICROPY_PY_MATH_SPECIAL_FUNCTIONS
-// Special functions
-// -----------------
-//
-// .. function:: expm1(x)
-//
-// Return ``exp(x) - 1``.
-//
+//| def expm1(x):
+//| """Return ``exp(x) - 1``."""
+//| ...
+//|
MATH_FUN_1(expm1, expm1)
-// .. function:: log2(x)
-//
-// Return the base-2 logarithm of ``x``.
-//
+//| def log2(x):
+//| """Return the base-2 logarithm of ``x``."""
+//| ...
+//|
MATH_FUN_1_ERRCOND(log2, log2, (x <= (mp_float_t)0.0))
-// .. function:: log10(x)
-//
-// Return the base-10 logarithm of ``x``.
-//
+//| def log10(x):
+//| """Return the base-10 logarithm of ``x``."""
+//| ...
+//|
MATH_FUN_1_ERRCOND(log10, log10, (x <= (mp_float_t)0.0))
-// .. function:: cosh(x)
-//
-// Return the hyperbolic cosine of ``x``.
-//
+//| def cosh(x):
+//| """Return the hyperbolic cosine of ``x``."""
+//| ...
+//|
MATH_FUN_1(cosh, cosh)
-// .. function:: sinh(x)
-//
-// Return the hyperbolic sine of ``x``.
-//
+//| def sinh(x):
+//| """Return the hyperbolic sine of ``x``."""
+//| ...
+//|
MATH_FUN_1(sinh, sinh)
-// .. function:: tanh(x)
-//
-// Return the hyperbolic tangent of ``x``.
-//
+//| def tanh(x):
+//| """Return the hyperbolic tangent of ``x``."""
+//| ...
+//|
MATH_FUN_1(tanh, tanh)
-// .. function:: acosh(x)
-//
-// Return the inverse hyperbolic cosine of ``x``.
-//
+//| def acosh(x):
+//| """Return the inverse hyperbolic cosine of ``x``."""
+//| ...
+//|
MATH_FUN_1(acosh, acosh)
-// .. function:: asinh(x)
-//
-// Return the inverse hyperbolic sine of ``x``.
-//
+//| def asinh(x):
+//| """Return the inverse hyperbolic sine of ``x``."""
+//| ...
+//|
MATH_FUN_1(asinh, asinh)
-// .. function:: atanh(x)
-//
-// Return the inverse hyperbolic tangent of ``x``.
-//
+//| def atanh(x):
+//| """Return the inverse hyperbolic tangent of ``x``."""
+//| ...
+//|
MATH_FUN_1(atanh, atanh)
#endif
@@ -297,28 +280,28 @@ MATH_FUN_1_TO_INT(trunc, trunc)
MATH_FUN_2(ldexp, ldexp)
#if MICROPY_PY_MATH_SPECIAL_FUNCTIONS
-// .. function:: erf(x)
-//
-// Return the error function of ``x``.
-//
+//| def erf(x):
+//| """Return the error function of ``x``."""
+//| ...
+//|
MATH_FUN_1(erf, erf)
-// .. function:: erfc(x)
-//
-// Return the complementary error function of ``x``.
-//
+//| def erfc(x):
+//| """Return the complementary error function of ``x``."""
+//| ...
+//|
MATH_FUN_1(erfc, erfc)
-// .. function:: gamma(x)
-//
-// Return the gamma function of ``x``.
-//
+//| def gamma(x):
+//| """Return the gamma function of ``x``."""
+//| ...
+//|
MATH_FUN_1(gamma, tgamma)
-// .. function:: lgamma(x)
-//
-// Return the natural logarithm of the gamma function of ``x``.
-//
+//| def lgamma(x):
+//| """Return the natural logarithm of the gamma function of ``x``."""
+//| ...
+//|
MATH_FUN_1(lgamma, lgamma)
#endif
//TODO: factorial, fsum