py: Wrap mpz float functions in MICROPY_ENABLE_FLOAT.
This commit is contained in:
parent
fdf0da5436
commit
5260810d70
6
py/mpz.c
6
py/mpz.c
@ -1001,8 +1001,9 @@ machine_int_t mpz_as_int(const mpz_t *i) {
|
|||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
machine_float_t mpz_as_float(const mpz_t *i) {
|
#if MICROPY_ENABLE_FLOAT
|
||||||
machine_float_t val = 0;
|
mp_float_t mpz_as_float(const mpz_t *i) {
|
||||||
|
mp_float_t val = 0;
|
||||||
mpz_dig_t *d = i->dig + i->len;
|
mpz_dig_t *d = i->dig + i->len;
|
||||||
|
|
||||||
while (--d >= i->dig) {
|
while (--d >= i->dig) {
|
||||||
@ -1015,6 +1016,7 @@ machine_float_t mpz_as_float(const mpz_t *i) {
|
|||||||
|
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
uint mpz_as_str_size(const mpz_t *i, uint base) {
|
uint mpz_as_str_size(const mpz_t *i, uint base) {
|
||||||
if (base < 2 || base > 32) {
|
if (base < 2 || base > 32) {
|
||||||
|
4
py/mpz.h
4
py/mpz.h
@ -65,7 +65,9 @@ mpz_t *mpz_div(const mpz_t *lhs, const mpz_t *rhs);
|
|||||||
mpz_t *mpz_mod(const mpz_t *lhs, const mpz_t *rhs);
|
mpz_t *mpz_mod(const mpz_t *lhs, const mpz_t *rhs);
|
||||||
|
|
||||||
machine_int_t mpz_as_int(const mpz_t *z);
|
machine_int_t mpz_as_int(const mpz_t *z);
|
||||||
machine_float_t mpz_as_float(const mpz_t *z);
|
#if MICROPY_ENABLE_FLOAT
|
||||||
|
mp_float_t mpz_as_float(const mpz_t *z);
|
||||||
|
#endif
|
||||||
uint mpz_as_str_size(const mpz_t *z, uint base);
|
uint mpz_as_str_size(const mpz_t *z, uint base);
|
||||||
char *mpz_as_str(const mpz_t *z, uint base);
|
char *mpz_as_str(const mpz_t *z, uint base);
|
||||||
uint mpz_as_str_inpl(const mpz_t *z, uint base, char *str);
|
uint mpz_as_str_inpl(const mpz_t *z, uint base, char *str);
|
||||||
|
@ -60,10 +60,13 @@ mp_obj_t int_binary_op(int op, mp_obj_t lhs_in, mp_obj_t rhs_in) {
|
|||||||
return MP_OBJ_NULL;
|
return MP_OBJ_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (op == RT_BINARY_OP_TRUE_DIVIDE || op == RT_BINARY_OP_INPLACE_TRUE_DIVIDE) {
|
if (0) {
|
||||||
machine_float_t flhs = mpz_as_float(zlhs);
|
#if MICROPY_ENABLE_FLOAT
|
||||||
machine_float_t frhs = mpz_as_float(zrhs);
|
} else if (op == RT_BINARY_OP_TRUE_DIVIDE || op == RT_BINARY_OP_INPLACE_TRUE_DIVIDE) {
|
||||||
|
mp_float_t flhs = mpz_as_float(zlhs);
|
||||||
|
mp_float_t frhs = mpz_as_float(zrhs);
|
||||||
return mp_obj_new_float(flhs / frhs);
|
return mp_obj_new_float(flhs / frhs);
|
||||||
|
#endif
|
||||||
|
|
||||||
} else if (op <= RT_BINARY_OP_POWER) {
|
} else if (op <= RT_BINARY_OP_POWER) {
|
||||||
mp_obj_int_t *res = mp_obj_int_new_mpz();
|
mp_obj_int_t *res = mp_obj_int_new_mpz();
|
||||||
|
Loading…
Reference in New Issue
Block a user