summaryrefslogtreecommitdiff
path: root/set_z.c
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2000-02-11 17:01:15 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2000-02-11 17:01:15 +0000
commit00c03d0e3897e69478d60c0ff13fce9c7081aaa8 (patch)
tree1c4c50fe7dfc7e25ab70ffbc77f84a953e471691 /set_z.c
parent35569e37d387d8addc02eafc0a106f2a8c85f2ad (diff)
downloadmpfr-00c03d0e3897e69478d60c0ff13fce9c7081aaa8.tar.gz
unsigned char -> mp_rnd_t
SIGN -> MPFR_SIGN git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@457 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'set_z.c')
-rw-r--r--set_z.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/set_z.c b/set_z.c
index de9132033..8e7f606a6 100644
--- a/set_z.c
+++ b/set_z.c
@@ -27,25 +27,28 @@ MA 02111-1307, USA. */
/* set f to the integer z */
int
#if __STDC__
-mpfr_set_z (mpfr_ptr f, mpz_srcptr z, unsigned char rnd)
+mpfr_set_z (mpfr_ptr f, mpz_srcptr z, mp_rnd_t rnd)
#else
mpfr_set_z (f, z, rnd)
- mpfr_ptr f;
- mpz_srcptr z;
- unsigned char rnd;
+ mpfr_ptr f;
+ mpz_srcptr z;
+ mp_rnd_t rnd;
#endif
{
int fn, zn, k, dif, sign_z, sh; mp_limb_t *fp = MANT(f), *zp, cc, c2;
sign_z = mpz_cmp_ui(z,0);
- if (sign_z==0) return (SIZE(f)=0);
+ if (sign_z==0) {
+ SET_ZERO(f);
+ return 0;
+ }
fn = 1 + (PREC(f)-1)/BITS_PER_MP_LIMB;
zn = ABS(SIZ(z));
dif = zn-fn;
zp = PTR(z);
count_leading_zeros(k, zp[zn-1]);
EXP(f) = zn*BITS_PER_MP_LIMB-k;
- if (SIGN(f)*sign_z<0) CHANGE_SIGN(f);
+ if (MPFR_SIGN(f)*sign_z<0) CHANGE_SIGN(f);
if (dif>=0) { /* number has to be truncated */
if (k) {
mpn_lshift(fp, zp + dif, fn, k);