This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix make check build warnings in libm


On Tue, Feb 19, 2013 at 6:44 AM, Siddhesh Poyarekar <siddhesh@redhat.com> wrote:
> OK, here's v2 then:
>
>         * math/atest-exp.c (exp_mpn): Remove ROUND.
>         * math/atest-exp2.c (exp_mpn): Likewise.
>         * math/atest-sincos.c (sincosx_mpn): Remove ROUND and CHK.
>
> diff --git a/math/atest-exp.c b/math/atest-exp.c
> index 2678e74..d76b912 100644
> --- a/math/atest-exp.c
> +++ b/math/atest-exp.c
> @@ -61,7 +61,7 @@ exp_mpn (mp1 ex, mp1 x)
>     unsigned n;
>     mp1 xp;
>     mp2 tmp;
> -   mp_limb_t chk, round;
> +   mp_limb_t chk;
>     mp1 tol;
>
>     memset (xp, 0, sizeof (mp1));
> @@ -79,7 +79,7 @@ exp_mpn (mp1 ex, mp1 x)
>         mpn_mul_n (tmp, xp, x, SZ);
>         assert (tmp[SZ * 2 - 1] == 0);
>         if (n > 0)
> -        round = mpn_divmod_1 (xp, tmp + FRAC / mpbpl, SZ, n);
> +        mpn_divmod_1 (xp, tmp + FRAC / mpbpl, SZ, n);
>         chk = mpn_add_n (ex, ex, xp, SZ);
>         assert (chk == 0);
>         n++;
> diff --git a/math/atest-exp2.c b/math/atest-exp2.c
> index b05d43b..20836ca 100644
> --- a/math/atest-exp2.c
> +++ b/math/atest-exp2.c
> @@ -102,7 +102,7 @@ exp_mpn (mp1 ex, mp1 x)
>     unsigned int n;
>     mp1 xp;
>     mp2 tmp;
> -   mp_limb_t chk, round;
> +   mp_limb_t chk;
>     mp1 tol;
>
>     memset (xp, 0, sizeof (mp1));
> @@ -120,7 +120,7 @@ exp_mpn (mp1 ex, mp1 x)
>         mpn_mul_n (tmp, xp, x, SZ);
>         assert(tmp[SZ * 2 - 1] == 0);
>         if (n > 0)
> -        round = mpn_divmod_1 (xp, tmp + FRAC / mpbpl, SZ, n);
> +        mpn_divmod_1 (xp, tmp + FRAC / mpbpl, SZ, n);
>         chk = mpn_add_n (ex, ex, xp, SZ);
>         assert (chk == 0);
>         ++n;
> diff --git a/math/atest-sincos.c b/math/atest-sincos.c
> index bea157c..313bccb 100644
> --- a/math/atest-sincos.c
> +++ b/math/atest-sincos.c
> @@ -64,7 +64,6 @@ sincosx_mpn (mp1 si, mp1 co, mp1 xx, mp1 ix)
>     int i;
>     mp2 s[4], c[4];
>     mp1 tmp, x;
> -   mp_limb_t chk, round;
>
>     if (ix == NULL)
>       {
> @@ -79,34 +78,38 @@ sincosx_mpn (mp1 si, mp1 co, mp1 xx, mp1 ix)
>     for (i = 0; i < 1 << N; i++)
>       {
>  #define add_shift_mulh(d,x,s1,s2,sh,n) \
> -       /* d = (n ? -1 : 1) * (s1 + (s2>>sh)) * x / (1>>N); */                \
>        do {                                                                   \
>          if (s2 != NULL) {                                                    \
>             if (sh > 0) {                                                     \
>                assert (sh < mpbpl);                                           \
>                mpn_lshift (tmp, s1, SZ, sh);                                  \
> -              chk = (n ? mpn_sub_n : mpn_add_n)(tmp,tmp,s2+FRAC/mpbpl,SZ);   \
> -           } else                                                            \
> -              chk = (n ? mpn_sub_n : mpn_add_n)(tmp,s1,s2+FRAC/mpbpl,SZ);    \
> -           /* assert(chk == 0); */                                           \
> +              if (n)                                                         \
> +                mpn_sub_n (tmp,tmp,s2+FRAC/mpbpl,SZ);                        \
> +              else                                                           \
> +                mpn_add_n (tmp,tmp,s2+FRAC/mpbpl,SZ);                        \
> +           } else {                                                          \
> +              if (n)                                                         \
> +                mpn_sub_n (tmp,s1,s2+FRAC/mpbpl,SZ);                         \
> +              else                                                           \
> +                mpn_add_n (tmp,s1,s2+FRAC/mpbpl,SZ);                         \
> +           }                                                                 \
>             mpn_mul_n(d,tmp,x,SZ);                                            \
>          } else                                                               \
>             mpn_mul_n(d,s1,x,SZ);                                             \
> -        /* assert(d[SZ*2-1] == 0); */                                        \
>          assert(N+sh < mpbpl);                                                \
>          if (N+sh > 0) mpn_rshift(d,d,2*SZ,N+sh);                             \
>        } while(0)
>  #define summ(d,ss,s,n) \
> -      /* d = ss +/- (s[0]+2*s[1]+2*s[2]+s[3])/6; */                          \
>        do {                                                                   \
> -        chk = mpn_add_n(tmp,s[1]+FRAC/mpbpl,s[2]+FRAC/mpbpl,SZ);             \
> +        mpn_add_n(tmp,s[1]+FRAC/mpbpl,s[2]+FRAC/mpbpl,SZ);                   \
>          mpn_lshift(tmp,tmp,SZ,1);                                            \
> -        chk |= mpn_add_n(tmp,tmp,s[0]+FRAC/mpbpl,SZ);                        \
> -        chk |= mpn_add_n(tmp,tmp,s[3]+FRAC/mpbpl,SZ);                        \
> -        round = mpn_divmod_1(tmp,tmp,SZ,6);                                  \
> -        /* chk |= mpn_add_1(tmp,tmp,SZ, (round > 3) ); */                    \
> -         chk |= (n ? mpn_sub_n : mpn_add_n)(d,ss,tmp,SZ);                    \
> -        /* assert(chk == 0); */                                              \
> +        mpn_add_n(tmp,tmp,s[0]+FRAC/mpbpl,SZ);                               \
> +        mpn_add_n(tmp,tmp,s[3]+FRAC/mpbpl,SZ);                               \
> +        mpn_divmod_1(tmp,tmp,SZ,6);                                          \
> +        if (n)                                                               \
> +           mpn_sub_n (d,ss,tmp,SZ);                                          \
> +        else                                                                 \
> +           mpn_add_n (d,ss,tmp,SZ);                                          \
>        } while (0)
>
>        add_shift_mulh (s[0], x, co, NULL, 0, 0); /* s0 = h * c; */

This looks good to me.

Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]