[BACK]Return to cmo-gmp.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / plugin

Diff for /OpenXM/src/kan96xx/plugin/cmo-gmp.c between version 1.5 and 1.7

version 1.5, 2000/02/01 02:38:58 version 1.7, 2003/08/26 05:04:41
Line 1 
Line 1 
 /*$OpenXM: OpenXM/src/kan96xx/plugin/cmo-gmp.c,v 1.4 1999/11/27 13:24:41 takayama Exp $ */  /*$OpenXM: OpenXM/src/kan96xx/plugin/cmo-gmp.c,v 1.6 2001/05/04 01:06:29 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
 #include <string.h>  #include <string.h>
 /* #include <netinet/in.h> */  /* #include <netinet/in.h> */
   #include <limits.h>
 #include "datatype.h"  #include "datatype.h"
 #include "stackm.h"  #include "stackm.h"
 #include "extern.h"  #include "extern.h"
Line 166  cmoOutGMPCoeff_new(mpz_srcptr x)
Line 167  cmoOutGMPCoeff_new(mpz_srcptr x)
   tmp[0] = htonl(CMO_ZZ);    tmp[0] = htonl(CMO_ZZ);
   cmoOutputToBuf(CMOPUT,tmp,sizeof(cmoint));    cmoOutputToBuf(CMOPUT,tmp,sizeof(cmoint));
   
   if (BITS_PER_CHAR != 8) {    if (CHAR_BIT != 8) {
     fprintf(stderr,"BITS_PER_CHAR = %d\n",BITS_PER_CHAR);      fprintf(stderr,"CHAR_BIT = %d\n",CHAR_BIT);
     fprintf(stderr,"cmo-gmp.c does not work on this CPU.\n");      fprintf(stderr,"cmo-gmp.c does not work on this CPU.\n");
     fprintf(stderr,"Read the GMP source code and rewrite cmo-gmp.c.\n");  
     exit(10);      exit(10);
   }    }
   
Line 195  cmoOutGMPCoeff_new(mpz_srcptr x)
Line 195  cmoOutGMPCoeff_new(mpz_srcptr x)
       outRawInt32(((unsigned long)xp[s])&(unsigned long)0xffffffff);        outRawInt32(((unsigned long)xp[s])&(unsigned long)0xffffffff);
       outRawInt32(((unsigned long)xp[s])>>32);        outRawInt32(((unsigned long)xp[s])>>32);
     }      }
     if ( !(xsize&1) ) {    if ( !(xsize&1) ) {
       outRawInt32(((unsigned long)xp[s])&(unsigned long)0xffffffff);      outRawInt32(((unsigned long)xp[s])&(unsigned long)0xffffffff);
       outRawInt32(((unsigned long)xp[s])>>32);      outRawInt32(((unsigned long)xp[s])>>32);
     } else    } else
       outRawInt32(((unsigned long)xp[s])&(unsigned long)0xffffffff);      outRawInt32(((unsigned long)xp[s])&(unsigned long)0xffffffff);
   return ( ABS (xsize) );    return ( ABS (xsize) );
 }  }
   
Line 215  cmoGetGMPCoeff_new(MP_INT *x, struct cmoBuffer *cb)
Line 215  cmoGetGMPCoeff_new(MP_INT *x, struct cmoBuffer *cb)
   mp_size_t in_bytesize;    mp_size_t in_bytesize;
   int neg_flag;    int neg_flag;
   
   if (BITS_PER_CHAR != 8) {    if (CHAR_BIT != 8) {
     fprintf(stderr,"BITS_PER_CHAR = %d\n",BITS_PER_CHAR);      fprintf(stderr,"CHAR_BIT = %d\n",CHAR_BIT);
     fprintf(stderr,"cmo-gmp.c does not work on this CPU.\n");      fprintf(stderr,"cmo-gmp.c does not work on this CPU.\n");
     fprintf(stderr,"Read the GMP source code and rewrite cmo-gmp.c.\n");  
     exit(10);      exit(10);
   }    }
   
Line 231  cmoGetGMPCoeff_new(MP_INT *x, struct cmoBuffer *cb)
Line 230  cmoGetGMPCoeff_new(MP_INT *x, struct cmoBuffer *cb)
   if (xsize == 0)    if (xsize == 0)
     {      {
       x->_mp_size = 0;        x->_mp_size = 0;
       return 1;                 /* we've read 4 bytes */        return 1;         /* we've read 4 bytes */
     }      }
   
   xsize0 = (xsize+1)/2;    xsize0 = (xsize+1)/2;
Line 241  cmoGetGMPCoeff_new(MP_INT *x, struct cmoBuffer *cb)
Line 240  cmoGetGMPCoeff_new(MP_INT *x, struct cmoBuffer *cb)
   
   for (i=0; i<xsize0-1; i++) {    for (i=0; i<xsize0-1; i++) {
     xp[i] = ((unsigned long)getRawInt32(cb))      xp[i] = ((unsigned long)getRawInt32(cb))
            |(((unsigned long)getRawInt32(cb))<<32);        |(((unsigned long)getRawInt32(cb))<<32);
   }    }
   if ( !(xsize&1) )    if ( !(xsize&1) )
     xp[i] = ((unsigned long)getRawInt32(cb))      xp[i] = ((unsigned long)getRawInt32(cb))
            |(((unsigned long)getRawInt32(cb))<<32);        |(((unsigned long)getRawInt32(cb))<<32);
   else    else
     xp[i] = (unsigned long)getRawInt32(cb);      xp[i] = (unsigned long)getRawInt32(cb);
   
Line 274  cmoOutGMPCoeff_new(mpz_srcptr x)
Line 273  cmoOutGMPCoeff_new(mpz_srcptr x)
     fprintf(stderr,"Read the GMP source code and rewrite cmo-gmp.c.\n");      fprintf(stderr,"Read the GMP source code and rewrite cmo-gmp.c.\n");
     exit(10);      exit(10);
   }    }
   if (BITS_PER_CHAR != 8) {    if (CHAR_BIT != 8) {
     fprintf(stderr,"BITS_PER_CHAR = %d\n",BITS_PER_CHAR);      fprintf(stderr,"CHAR_BIT = %d\n",CHAR_BIT);
     fprintf(stderr,"cmo-gmp.c does not work on this CPU.\n");      fprintf(stderr,"cmo-gmp.c does not work on this CPU.\n");
     fprintf(stderr,"Read the GMP source code and rewrite cmo-gmp.c.\n");  
     exit(10);      exit(10);
   }    }
   
Line 320  cmoGetGMPCoeff_new(MP_INT *x, struct cmoBuffer *cb)
Line 318  cmoGetGMPCoeff_new(MP_INT *x, struct cmoBuffer *cb)
     fprintf(stderr,"Read the GMP source code and rewrite cmo-gmp.c.\n");      fprintf(stderr,"Read the GMP source code and rewrite cmo-gmp.c.\n");
     exit(10);      exit(10);
   }    }
   if (BITS_PER_CHAR != 8) {    if (CHAR_BIT != 8) {
     fprintf(stderr,"BITS_PER_CHAR = %d\n",BITS_PER_CHAR);      fprintf(stderr,"CHAR_BIT = %d\n",CHAR_BIT);
     fprintf(stderr,"cmo-gmp.c does not work on this CPU.\n");      fprintf(stderr,"cmo-gmp.c does not work on this CPU.\n");
     fprintf(stderr,"Read the GMP source code and rewrite cmo-gmp.c.\n");  
     exit(10);      exit(10);
   }    }
   
Line 336  cmoGetGMPCoeff_new(MP_INT *x, struct cmoBuffer *cb)
Line 333  cmoGetGMPCoeff_new(MP_INT *x, struct cmoBuffer *cb)
   if (xsize == 0)    if (xsize == 0)
     {      {
       x->_mp_size = 0;        x->_mp_size = 0;
       return 1;                 /* we've read 4 bytes */        return 1;         /* we've read 4 bytes */
     }      }
   
   if (x->_mp_alloc < xsize)    if (x->_mp_alloc < xsize)

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.7

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