delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2004/09/22/06:49:13

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Authentication-Warning: itservs.wilkes.edu: apache set sender to fdonahoe AT wilkes DOT edu using -f
Message-ID: <1095849299.415155532ce78@webmail.wilkes.edu>
Date: Wed, 22 Sep 2004 06:34:59 -0400
From: fdonahoe AT wilkes DOT edu
To: Cesar Rebak <crabak AT acm DOT org>
Cc: djgpp AT delorie DOT com
Subject: Re: bnu214s compiled for djgpp 2.04 alpha
MIME-Version: 1.0
User-Agent: Internet Messaging Program (IMP) 3.2
X-Originating-IP: 146.94.1.207

Cesar Rabak on Tuesday, 21 September wrote:

> Does the mpz_aorsmul_1 function definition starts on line 61 of 
> aorsmul_i.c, or there is a 'void' in the previous line?
> 
> If there is the 'void' in aorsmul_i.c, then could you please run:
> 
> gcc -E aorsmul_i.c -o aorsmul_i.i
> 
> and see how the declaration at line 628 expands?

 ...> gcc -E -I. mpz/aorsmul_i.c -o aorsmul_i.i

Gives this for line 628

# 628 "./gmp-impl.h"
void __gmpz_aorsmul_1 (mp_size_t sub,mpz_ptr w,mpz_srcptr u,mp_limb_t
v) __attribute__ ((regparm (1)));



void __gmpz_n_pow_ui (mpz_ptr, mp_srcptr, mp_size_t, unsigned long);



 mp_limb_t __gmpn_add_nc (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t,
mp_limb_t);


 mp_limb_t __gmpn_addmul_1c (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t,
mp_limb_t);


 mp_limb_t __gmpn_addsub_n (mp_ptr, mp_ptr, mp_srcptr, mp_srcptr,
mp_size_t);


 mp_limb_t __gmpn_addsub_nc (mp_ptr, mp_ptr, mp_srcptr, mp_srcptr,
mp_size_t, mp_limb_t);


 mp_limb_t __gmpn_divrem_1c (mp_ptr, mp_size_t, mp_srcptr, mp_size_t,
mp_limb_t, mp_limb_t);


 void __gmpn_dump (mp_srcptr, mp_size_t);


mp_size_t __gmpn_fib2_ui (mp_ptr, mp_ptr, unsigned long);






mp_limb_t __gmpn_gcd_finda (const mp_limb_t cp[2]) __attribute__
((__pure__));


int __gmpn_jacobi_base (mp_limb_t a, mp_limb_t b, int result_bit1)
__attribute__ ((const));


 mp_limb_t __gmpn_mod_1c (mp_srcptr, mp_size_t, mp_limb_t, mp_limb_t)
__attribute__ ((__pure__));


 mp_limb_t __gmpn_mul_1c (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t,
mp_limb_t);


mp_limb_t __gmpn_mul_2 (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr);


 void __gmpn_mul_basecase (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,
mp_size_t);


 void __gmpn_sqr_n (mp_ptr, mp_srcptr, mp_size_t);


 void __gmpn_sqr_basecase (mp_ptr, mp_srcptr, mp_size_t);


 mp_limb_t __gmpn_sub_nc (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t,
mp_limb_t);


 mp_limb_t __gmpn_submul_1c (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t,
mp_limb_t);


typedef __gmp_randstate_struct *gmp_randstate_ptr;


 void __gmp_rand (mp_ptr, gmp_randstate_t, unsigned long int);


And for good measure, this for line 60

# 60 "mpz/aorsmul_i.c"
void
__gmpz_aorsmul_1 (mp_size_t sub,mpz_ptr w,mpz_srcptr x,mp_limb_t y)
{
  mp_size_t xsize, wsize, wsize_signed, new_wsize, min_size, dsize;
  mp_srcptr xp;
  mp_ptr wp;
  mp_limb_t cy;


  xsize = ((x)->_mp_size);
  if (xsize == 0 || y == 0)
    return;

  sub ^= xsize;
  xsize = ((xsize) >= 0 ? (xsize) : -(xsize));

  wsize_signed = ((w)->_mp_size);
  if (wsize_signed == 0)
    {

      ((xsize+1) > ((w)->_mp_alloc) ? __gmpz_realloc(w,xsize+1) :
((w)->_mp_d));
      wp = ((w)->_mp_d);
      cy = __gmpn_mul_1 (wp, ((x)->_mp_d), xsize, y);
      wp[xsize] = cy;
      xsize += (cy != 0);
      ((w)->_mp_size) = (sub >= 0 ? xsize : -xsize);
      return;
    }

  sub ^= wsize_signed;
  wsize = ((wsize_signed) >= 0 ? (wsize_signed) : -(wsize_signed));

  new_wsize = ((wsize) > (xsize) ? (wsize) : (xsize));
  ((new_wsize+1) > ((w)->_mp_alloc) ? __gmpz_realloc(w,new_wsize+1) :
((w)->_mp_d));
  wp = ((w)->_mp_d);
  xp = ((x)->_mp_d);
  min_size = ((wsize) < (xsize) ? (wsize) : (xsize));

  if (sub >= 0)
    {


      cy = __gmpn_addmul_1 (wp, xp, min_size, y);
      wp += min_size;
      xp += min_size;

      dsize = xsize - wsize;


Frank


-----------------------------------------------------------------------
This mail was sent through Wilkes Webmail: http://webmail.wilkes.edu
Wilkes Webmail is using IMP: http://horde.org/imp/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019