Skip to content

Commit a24eafa

Browse files
committed
py/modmath: Make log2, log10 and hyperbolic funcs be SPECIAL_FUNCTIONS.
Will be included only when MICROPY_PY_MATH_SPECIAL_FUNCTIONS is enabled. Also covers cmath module (but only log10 is there at the moment).
1 parent 2c83894 commit a24eafa

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

py/modcmath.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ STATIC mp_obj_t mp_cmath_log(mp_obj_t z_obj) {
8686
}
8787
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_cmath_log_obj, mp_cmath_log);
8888

89+
#if MICROPY_PY_MATH_SPECIAL_FUNCTIONS
8990
/// \function log10(z)
9091
/// Return the base-10 logarithm of `z`. The branch cut is along the negative real axis.
9192
STATIC mp_obj_t mp_cmath_log10(mp_obj_t z_obj) {
@@ -94,6 +95,7 @@ STATIC mp_obj_t mp_cmath_log10(mp_obj_t z_obj) {
9495
return mp_obj_new_complex(0.5 * MICROPY_FLOAT_C_FUN(log10)(real*real + imag*imag), 0.4342944819032518 * MICROPY_FLOAT_C_FUN(atan2)(imag, real));
9596
}
9697
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_cmath_log10_obj, mp_cmath_log10);
98+
#endif
9799

98100
/// \function sqrt(z)
99101
/// Return the square-root of `z`.
@@ -133,7 +135,9 @@ STATIC const mp_map_elem_t mp_module_cmath_globals_table[] = {
133135
{ MP_OBJ_NEW_QSTR(MP_QSTR_rect), (mp_obj_t)&mp_cmath_rect_obj },
134136
{ MP_OBJ_NEW_QSTR(MP_QSTR_exp), (mp_obj_t)&mp_cmath_exp_obj },
135137
{ MP_OBJ_NEW_QSTR(MP_QSTR_log), (mp_obj_t)&mp_cmath_log_obj },
138+
#if MICROPY_PY_MATH_SPECIAL_FUNCTIONS
136139
{ MP_OBJ_NEW_QSTR(MP_QSTR_log10), (mp_obj_t)&mp_cmath_log10_obj },
140+
#endif
137141
{ MP_OBJ_NEW_QSTR(MP_QSTR_sqrt), (mp_obj_t)&mp_cmath_sqrt_obj },
138142
//{ MP_OBJ_NEW_QSTR(MP_QSTR_acos), (mp_obj_t)&mp_cmath_acos_obj },
139143
//{ MP_OBJ_NEW_QSTR(MP_QSTR_asin), (mp_obj_t)&mp_cmath_asin_obj },

py/modmath.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ MATH_FUN_1(exp, exp)
6868
#if MICROPY_PY_MATH_SPECIAL_FUNCTIONS
6969
/// \function expm1(x)
7070
MATH_FUN_1(expm1, expm1)
71-
#endif
7271
/// \function log2(x)
7372
MATH_FUN_1(log2, log2)
7473
/// \function log10(x)
@@ -85,6 +84,7 @@ MATH_FUN_1(acosh, acosh)
8584
MATH_FUN_1(asinh, asinh)
8685
/// \function atanh(x)
8786
MATH_FUN_1(atanh, atanh)
87+
#endif
8888
/// \function cos(x)
8989
MATH_FUN_1(cos, cos)
9090
/// \function sin(x)
@@ -198,6 +198,7 @@ STATIC const mp_map_elem_t mp_module_math_globals_table[] = {
198198
{ MP_OBJ_NEW_QSTR(MP_QSTR_expm1), (mp_obj_t)&mp_math_expm1_obj },
199199
#endif
200200
{ MP_OBJ_NEW_QSTR(MP_QSTR_log), (mp_obj_t)&mp_math_log_obj },
201+
#if MICROPY_PY_MATH_SPECIAL_FUNCTIONS
201202
{ MP_OBJ_NEW_QSTR(MP_QSTR_log2), (mp_obj_t)&mp_math_log2_obj },
202203
{ MP_OBJ_NEW_QSTR(MP_QSTR_log10), (mp_obj_t)&mp_math_log10_obj },
203204
{ MP_OBJ_NEW_QSTR(MP_QSTR_cosh), (mp_obj_t)&mp_math_cosh_obj },
@@ -206,6 +207,7 @@ STATIC const mp_map_elem_t mp_module_math_globals_table[] = {
206207
{ MP_OBJ_NEW_QSTR(MP_QSTR_acosh), (mp_obj_t)&mp_math_acosh_obj },
207208
{ MP_OBJ_NEW_QSTR(MP_QSTR_asinh), (mp_obj_t)&mp_math_asinh_obj },
208209
{ MP_OBJ_NEW_QSTR(MP_QSTR_atanh), (mp_obj_t)&mp_math_atanh_obj },
210+
#endif
209211
{ MP_OBJ_NEW_QSTR(MP_QSTR_cos), (mp_obj_t)&mp_math_cos_obj },
210212
{ MP_OBJ_NEW_QSTR(MP_QSTR_sin), (mp_obj_t)&mp_math_sin_obj },
211213
{ MP_OBJ_NEW_QSTR(MP_QSTR_tan), (mp_obj_t)&mp_math_tan_obj },

py/qstrdefs.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,11 @@ Q(pi)
370370
Q(sqrt)
371371
Q(pow)
372372
Q(exp)
373+
#if MICROPY_PY_MATH_SPECIAL_FUNCTIONS
373374
Q(expm1)
375+
#endif
374376
Q(log)
377+
#if MICROPY_PY_MATH_SPECIAL_FUNCTIONS
375378
Q(log2)
376379
Q(log10)
377380
Q(cosh)
@@ -380,6 +383,7 @@ Q(tanh)
380383
Q(acosh)
381384
Q(asinh)
382385
Q(atanh)
386+
#endif
383387
Q(cos)
384388
Q(sin)
385389
Q(tan)

0 commit comments

Comments
 (0)