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 -