version 1.4, 2001/10/09 01:36:03 |
version 1.5, 2006/08/09 02:43:37 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/asm/ddN.c,v 1.3 2000/08/22 05:03:55 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/asm/ddN.c,v 1.4 2001/10/09 01:36:03 noro Exp $ |
*/ |
*/ |
#ifndef FBASE |
#ifndef FBASE |
#define FBASE |
#define FBASE |
Line 553 void muln(N n1,N n2,N *nr) |
|
Line 553 void muln(N n1,N n2,N *nr) |
|
{ |
{ |
unsigned int tmp,carry,mul; |
unsigned int tmp,carry,mul; |
unsigned int *p1,*pp,*m1,*m2; |
unsigned int *p1,*pp,*m1,*m2; |
int i,j,d1,d2; |
int i,j,d1,d2,d; |
N r; |
N r; |
|
|
if ( !n1 || !n2 ) |
if ( !n1 || !n2 ) |
Line 570 void muln(N n1,N n2,N *nr) |
|
Line 570 void muln(N n1,N n2,N *nr) |
|
} else |
} else |
STON(tmp,*nr); |
STON(tmp,*nr); |
} else { |
} else { |
d1 = PL(n1); d2 = PL(n2); |
d1 = PL(n1); d2 = PL(n2); d = d1+d2; |
*nr = r = NALLOC(d1+d2); INITRC(r); |
*nr = r = NALLOC(d); INITRC(r); |
bzero((char *)BD(r),(int)((d1+d2)*sizeof(int))); |
for ( i = 0, pp = BD(r); i < d; i++, pp++ ) *pp = 0; |
for ( i = 0, m1 = BD(n1), m2 = BD(n2); i < d2; i++, m2++ ) |
for ( i = 0, m1 = BD(n1), m2 = BD(n2); i < d2; i++, m2++ ) |
if ( mul = *m2 ) { |
if ( mul = *m2 ) { |
for ( j = d1, carry = 0, p1 = m1, pp = BD(r)+i; |
for ( j = d1, carry = 0, p1 = m1, pp = BD(r)+i; |