aboutsummaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/modmath.c4
-rw-r--r--py/mpconfig.h5
-rw-r--r--py/qstrdefs.h2
3 files changed, 11 insertions, 0 deletions
diff --git a/py/modmath.c b/py/modmath.c
index 38ed390dd..46423d2b5 100644
--- a/py/modmath.c
+++ b/py/modmath.c
@@ -120,6 +120,7 @@ MATH_FUN_1_TO_BOOL(isnan, isnan)
MATH_FUN_1_TO_INT(trunc, trunc)
/// \function ldexp(x, exp)
MATH_FUN_2(ldexp, ldexp)
+#if MICROPY_PY_MATH_SPECIAL_FUNCTIONS
/// \function erf(x)
/// Return the error function of `x`.
MATH_FUN_1(erf, erf)
@@ -132,6 +133,7 @@ MATH_FUN_1(gamma, tgamma)
/// \function lgamma(x)
/// return the natural logarithm of the gamma function of `x`.
MATH_FUN_1(lgamma, lgamma)
+#endif
//TODO: factorial, fsum
// Functions that return a tuple
@@ -211,10 +213,12 @@ STATIC const mp_map_elem_t mp_module_math_globals_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_trunc), (mp_obj_t)&mp_math_trunc_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_radians), (mp_obj_t)&mp_math_radians_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_degrees), (mp_obj_t)&mp_math_degrees_obj },
+ #if MICROPY_PY_MATH_SPECIAL_FUNCTIONS
{ MP_OBJ_NEW_QSTR(MP_QSTR_erf), (mp_obj_t)&mp_math_erf_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_erfc), (mp_obj_t)&mp_math_erfc_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_gamma), (mp_obj_t)&mp_math_gamma_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_lgamma), (mp_obj_t)&mp_math_lgamma_obj },
+ #endif
};
STATIC MP_DEFINE_CONST_DICT(mp_module_math_globals, mp_module_math_globals_table);
diff --git a/py/mpconfig.h b/py/mpconfig.h
index b235d6fe6..bde8dfb9e 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -419,6 +419,11 @@ typedef double mp_float_t;
#define MICROPY_PY_MATH (1)
#endif
+// Whether to provide special math functions: math.{erf,erfc,gamma,lgamma}
+#ifndef MICROPY_PY_MATH_SPECIAL_FUNCTIONS
+#define MICROPY_PY_MATH_SPECIAL_FUNCTIONS (0)
+#endif
+
// Whether to provide "cmath" module
#ifndef MICROPY_PY_CMATH
#define MICROPY_PY_CMATH (0)
diff --git a/py/qstrdefs.h b/py/qstrdefs.h
index f273367d5..77514f521 100644
--- a/py/qstrdefs.h
+++ b/py/qstrdefs.h
@@ -363,11 +363,13 @@ Q(frexp)
Q(ldexp)
Q(degrees)
Q(radians)
+#if MICROPY_PY_MATH_SPECIAL_FUNCTIONS
Q(erf)
Q(erfc)
Q(gamma)
Q(lgamma)
#endif
+#endif
#if MICROPY_PY_CMATH
Q(cmath)