diff options
Diffstat (limited to 'src/mp-convert.c')
-rw-r--r-- | src/mp-convert.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/mp-convert.c b/src/mp-convert.c index ef1a770..5f097c8 100644 --- a/src/mp-convert.c +++ b/src/mp-convert.c @@ -24,30 +24,26 @@ mp_set_from_mp(const MPNumber *x, MPNumber *z) mpc_set(z->num, x->num, MPC_RNDNN); } - void mp_set_from_double(double dx, MPNumber *z) { mpc_set_d(z->num, dx, MPC_RNDNN); } - void -mp_set_from_integer(int64_t x, MPNumber *z) +mp_set_from_integer(long x, MPNumber *z) { mpc_set_si(z->num, x, MPC_RNDNN); } - void -mp_set_from_unsigned_integer(uint64_t x, MPNumber *z) +mp_set_from_unsigned_integer(ulong x, MPNumber *z) { mpc_set_ui(z->num, x, MPC_RNDNN); } - void -mp_set_from_fraction(int64_t numerator, int64_t denominator, MPNumber *z) +mp_set_from_fraction(long numerator, long denominator, MPNumber *z) { if (denominator < 0) { numerator = -numerator; @@ -59,7 +55,6 @@ mp_set_from_fraction(int64_t numerator, int64_t denominator, MPNumber *z) mp_divide_integer(z, denominator, z); } - void mp_set_from_polar(const MPNumber *r, MPAngleUnit unit, const MPNumber *theta, MPNumber *z) { @@ -88,14 +83,13 @@ mp_set_from_random(MPNumber *z) mp_set_from_double(drand48(), z); } -int64_t +long mp_to_integer(const MPNumber *x) { return mpfr_get_si(mpc_realref(x->num), MPFR_RNDN); } - -uint64_t +ulong mp_to_unsigned_integer(const MPNumber *x) { return mpfr_get_ui(mpc_realref(x->num), MPFR_RNDN); @@ -116,7 +110,8 @@ mp_to_double(const MPNumber *x) static int char_val(char **c, int base) { - int i, j, value, offset; + int i, j, value; + size_t offset; const char *digits[][10] = {{"٠", "١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩"}, {"〇", "〡", "〢", "〣", "〤", "〥", "〦", "〧", "〨", "〩"}, {"۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"}, @@ -181,7 +176,6 @@ char_val(char **c, int base) return value; } - static int ends_with(const char *start, const char *end, const char *word) { @@ -193,7 +187,6 @@ ends_with(const char *start, const char *end, const char *word) return strncmp(end - word_len, word, word_len) == 0; } - // FIXME: Doesn't handle errors well (e.g. trailing space) static bool set_from_sexagesimal(const char *str, int length, MPNumber *z) @@ -224,7 +217,6 @@ set_from_sexagesimal(const char *str, int length, MPNumber *z) return false; } - bool mp_set_from_string(const char *str, int default_base, MPNumber *z) { |