[BACK]Return to ddM.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2018 / asm

Diff for /OpenXM_contrib2/asir2018/asm/ddM.c between version 1.1 and 1.2

version 1.1, 2018/09/19 05:45:05 version 1.2, 2020/10/06 06:31:19
Line 45 
Line 45 
  * 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: OpenXM_contrib2/asir2018/asm/ddM.c,v 1.1 2018/09/19 05:45:05 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "base.h"  #include "base.h"
Line 70  void mulum(int mod,UM p1,UM p2,UM pr)
Line 70  void mulum(int mod,UM p1,UM p2,UM pr)
   c1 = COEF(p1); c2 = COEF(p2); cr = COEF(pr);    c1 = COEF(p1); c2 = COEF(p2); cr = COEF(pr);
   bzero((char *)cr,(int)((d1+d2+1)*sizeof(int)));    bzero((char *)cr,(int)((d1+d2+1)*sizeof(int)));
   for ( i = 0; i <= d2; i++, cr++ )    for ( i = 0; i <= d2; i++, cr++ )
     if ( mul = *c2++ )      if ( (mul = *c2++) != 0 )
       for ( j = 0, pc1 = c1, pcr = cr; j <= d1; j++, pc1++, pcr++ ) {        for ( j = 0, pc1 = c1, pcr = cr; j <= d1; j++, pc1++, pcr++ ) {
         DMAR(*pc1,mul,*pcr,mod,*pcr)          DMAR(*pc1,mul,*pcr,mod,*pcr)
       }        }
Line 108  int divum(int mod,UM p1,UM p2,UM pq)
Line 108  int divum(int mod,UM p1,UM p2,UM pq)
   } else    } else
     inv = 1;      inv = 1;
   for ( i = dd, ct = c1+d1; i >= 0; i-- )    for ( i = dd, ct = c1+d1; i >= 0; i-- )
     if ( tmp = *ct-- ) {      if ( (tmp = *ct--) != 0 ) {
       tmp = mod - tmp;        tmp = mod - tmp;
       for ( j = d2-1, pct = ct, pc1 = c2+j; j >= 0; j--, pct--, pc1-- ) {        for ( j = d2-1, pct = ct, pc1 = c2+j; j >= 0; j--, pct--, pc1-- ) {
         DMAR(*pc1,tmp,*pct,mod,*pct)          DMAR(*pc1,tmp,*pct,mod,*pct)
Line 206  void mulpadic(int mod,int n,unsigned int *n1,unsigned 
Line 206  void mulpadic(int mod,int n,unsigned int *n1,unsigned 
   
   bzero((char *)nr,(int)(n*sizeof(int)));    bzero((char *)nr,(int)(n*sizeof(int)));
   for ( j = 0; j < n; j++, n2++, nr++ )    for ( j = 0; j < n; j++, n2++, nr++ )
     if ( mul = *n2 )      if ( (mul = *n2) != 0 )
       for ( i = j, carry = 0, pn1 = n1, pnr = nr;        for ( i = j, carry = 0, pn1 = n1, pnr = nr;
         i < n; i++, pn1++, pnr++ ) {          i < n; i++, pn1++, pnr++ ) {
         carry += *pnr;          carry += *pnr;
Line 249  void kmulum(int mod,UM n1,UM n2,UM nr)
Line 249  void kmulum(int mod,UM n1,UM n2,UM nr)
     if ( m ) {      if ( m ) {
       kmulum(mod,m,n2,t);        kmulum(mod,m,n2,t);
       addum(mod,t,carry,s);        addum(mod,t,carry,s);
       c_copyum(s,d2,r);        c_copyum(s,d2,(int *)r);
       extractum(s,d2,d2,carry);        extractum(s,d2,d2,carry);
     } else {      } else {
       c_copyum(carry,d2,r);        c_copyum(carry,d2,(int *)r);
       carry = 0;        carry = 0;
     }      }
   }    }
   c_copyum(carry,d2,r);    c_copyum(carry,d2,(int *)r);
   for ( l = len - 1; !r0[l]; l-- );    for ( l = len - 1; !r0[l]; l-- );
   l++;    l++;
   DEG(nr) = l-1;    DEG(nr) = l-1;

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>