[BACK]Return to _distm.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / engine

Diff for /OpenXM_contrib2/asir2000/engine/_distm.c between version 1.12 and 1.15

version 1.12, 2002/01/28 00:54:42 version 1.15, 2012/12/17 07:20:44
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_contrib2/asir2000/engine/_distm.c,v 1.11 2001/10/09 01:36:11 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/engine/_distm.c,v 1.14 2009/03/16 16:43:02 ohara Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "inline.h"  #include "inline.h"
Line 76  void _DL_alloc()
Line 76  void _DL_alloc()
   
 /*      fprintf(stderr,"DL_alloc : %d \n",++DL_alloc_count); */  /*      fprintf(stderr,"DL_alloc : %d \n",++DL_alloc_count); */
         dl_len = (current_dl_length+1);          dl_len = (current_dl_length+1);
 #if defined(LONG_IS_64BIT)  #if SIZEOF_LONG == 8
         if ( dl_len & 1 )          if ( dl_len & 1 )
                 dl_len += 1;                  dl_len += 1;
 #endif  #endif
         p = (int *)GC_malloc(128*dl_len*sizeof(int));  
         for ( i = 0; i < 128; i++, p += dl_len ) {          for ( i = 0; i < 128; i++, p += dl_len ) {
                   p = (int *)MALLOC(dl_len*sizeof(int));
                 *(DL *)p = _dl_free_list;                  *(DL *)p = _dl_free_list;
                 _dl_free_list = (DL)p;                  _dl_free_list = (DL)p;
         }          }
Line 94  void _MP_alloc()
Line 94  void _MP_alloc()
         static int MP_alloc_count;          static int MP_alloc_count;
   
 /*      fprintf(stderr,"MP_alloc : %d \n",++MP_alloc_count); */  /*      fprintf(stderr,"MP_alloc : %d \n",++MP_alloc_count); */
         p = (MP)GC_malloc(1024*sizeof(struct oMP));  
         for ( i = 0; i < 1024; i++ ) {          for ( i = 0; i < 1024; i++ ) {
                 p[i].next = _mp_free_list; _mp_free_list = &p[i];                  p = (MP)MALLOC(sizeof(struct oMP));
                   p->next = _mp_free_list; _mp_free_list = p;
         }          }
 }  }
   
Line 107  void _DP_alloc()
Line 107  void _DP_alloc()
         static int DP_alloc_count;          static int DP_alloc_count;
   
 /*      fprintf(stderr,"DP_alloc : %d \n",++DP_alloc_count); */  /*      fprintf(stderr,"DP_alloc : %d \n",++DP_alloc_count); */
         p = (DP)GC_malloc(1024*sizeof(struct oDP));  
         for ( i = 0; i < 1024; i++ ) {          for ( i = 0; i < 1024; i++ ) {
                 p[i].body = (MP)_dp_free_list; _dp_free_list = &p[i];                  p = (DP)MALLOC(sizeof(struct oDP));
                   p->body = (MP)_dp_free_list; _dp_free_list = p;
         }          }
 }  }
   
Line 195  void _comm_mulmd_dup(int mod,DP p1,DP p2,DP *pr)
Line 195  void _comm_mulmd_dup(int mod,DP p1,DP p2,DP *pr)
                         l = l1;                          l = l1;
                 }                  }
                 if ( l > wlen ) {                  if ( l > wlen ) {
                         if ( w ) GC_free(w);                          if ( w ) GCFREE(w);
                         w = (MP *)MALLOC(l*sizeof(MP));                          w = (MP *)MALLOC(l*sizeof(MP));
                         wlen = l;                          wlen = l;
                 }                  }
Line 222  void _weyl_mulmd_dup(int mod,DP p1,DP p2,DP *pr)
Line 222  void _weyl_mulmd_dup(int mod,DP p1,DP p2,DP *pr)
         else {          else {
                 for ( m = BDY(p1), l = 0; m; m = NEXT(m), l++ );                  for ( m = BDY(p1), l = 0; m; m = NEXT(m), l++ );
                 if ( l > wlen ) {                  if ( l > wlen ) {
                         if ( w ) GC_free(w);                          if ( w ) GCFREE(w);
                         w = (MP *)MALLOC(l*sizeof(MP));                          w = (MP *)MALLOC(l*sizeof(MP));
                         wlen = l;                          wlen = l;
                 }                  }
Line 280  void _weyl_mulmdm_dup(int mod,MP m0,DP p,DP *pr)
Line 280  void _weyl_mulmdm_dup(int mod,MP m0,DP p,DP *pr)
         else {          else {
                 for ( m = BDY(p), l = 0; m; m = NEXT(m), l++ );                  for ( m = BDY(p), l = 0; m; m = NEXT(m), l++ );
                 if ( l > wlen ) {                  if ( l > wlen ) {
                         if ( w ) GC_free(w);                          if ( w ) GCFREE(w);
                         w = (MP *)MALLOC(l*sizeof(MP));                          w = (MP *)MALLOC(l*sizeof(MP));
                         wlen = l;                          wlen = l;
                 }                  }
Line 292  void _weyl_mulmdm_dup(int mod,MP m0,DP p,DP *pr)
Line 292  void _weyl_mulmdm_dup(int mod,MP m0,DP p,DP *pr)
                 for ( i = 0, tlen = 1; i < n2; i++ )                  for ( i = 0, tlen = 1; i < n2; i++ )
                         tlen *= d0->d[n2+i]+1;                          tlen *= d0->d[n2+i]+1;
                 if ( tlen > rtlen ) {                  if ( tlen > rtlen ) {
                         if ( tab ) GC_free(tab);                          if ( tab ) GCFREE(tab);
                         if ( psum ) GC_free(psum);                          if ( psum ) GCFREE(psum);
                         rtlen = tlen;                          rtlen = tlen;
                         tab = (struct cdlm *)MALLOC(rtlen*sizeof(struct cdlm));                          tab = (struct cdlm *)MALLOC(rtlen*sizeof(struct cdlm));
                         psum = (MP *)MALLOC(rtlen*sizeof(MP));                          psum = (MP *)MALLOC(rtlen*sizeof(MP));
Line 355  void _weyl_mulmmm_dup(int mod,MP m0,MP m1,int n,struct
Line 355  void _weyl_mulmmm_dup(int mod,MP m0,MP m1,int n,struct
         rtab[0].d = d;          rtab[0].d = d;
   
         if ( rtablen > tmptablen ) {          if ( rtablen > tmptablen ) {
                 if ( tmptab ) GC_free(tmptab);                  if ( tmptab ) GCFREE(tmptab);
                 tmptab = (struct cdlm *)MALLOC(rtablen*sizeof(struct cdlm));                  tmptab = (struct cdlm *)MALLOC(rtablen*sizeof(struct cdlm));
                 tmptablen = rtablen;                  tmptablen = rtablen;
         }          }
Line 382  void _weyl_mulmmm_dup(int mod,MP m0,MP m1,int n,struct
Line 382  void _weyl_mulmmm_dup(int mod,MP m0,MP m1,int n,struct
                         continue;                          continue;
                 }                  }
                 if ( k+1 > tablen ) {                  if ( k+1 > tablen ) {
                         if ( tab ) GC_free(tab);                          if ( tab ) GCFREE(tab);
                         if ( ctab ) GC_free(ctab);                          if ( ctab ) GCFREE(ctab);
                         tablen = k+1;                          tablen = k+1;
                         tab = (struct cdlm *)MALLOC(tablen*sizeof(struct cdlm));                          tab = (struct cdlm *)MALLOC(tablen*sizeof(struct cdlm));
                         ctab = (int *)MALLOC(tablen*sizeof(int));                          ctab = (int *)MALLOC(tablen*sizeof(int));
Line 714  void _comm_muld_dup(VL vl,DP p1,DP p2,DP *pr)
Line 714  void _comm_muld_dup(VL vl,DP p1,DP p2,DP *pr)
                         l = l1;                          l = l1;
                 }                  }
                 if ( l > wlen ) {                  if ( l > wlen ) {
                         if ( w ) GC_free(w);                          if ( w ) GCFREE(w);
                         w = (MP *)MALLOC(l*sizeof(MP));                          w = (MP *)MALLOC(l*sizeof(MP));
                         wlen = l;                          wlen = l;
                 }                  }
Line 741  void _weyl_muld_dup(VL vl,DP p1,DP p2,DP *pr)
Line 741  void _weyl_muld_dup(VL vl,DP p1,DP p2,DP *pr)
         else {          else {
                 for ( m = BDY(p1), l = 0; m; m = NEXT(m), l++ );                  for ( m = BDY(p1), l = 0; m; m = NEXT(m), l++ );
                 if ( l > wlen ) {                  if ( l > wlen ) {
                         if ( w ) GC_free(w);                          if ( w ) GCFREE(w);
                         w = (MP *)MALLOC(l*sizeof(MP));                          w = (MP *)MALLOC(l*sizeof(MP));
                         wlen = l;                          wlen = l;
                 }                  }
Line 798  void _weyl_muldm_dup(VL vl,MP m0,DP p,DP *pr)
Line 798  void _weyl_muldm_dup(VL vl,MP m0,DP p,DP *pr)
         else {          else {
                 for ( m = BDY(p), l = 0; m; m = NEXT(m), l++ );                  for ( m = BDY(p), l = 0; m; m = NEXT(m), l++ );
                 if ( l > wlen ) {                  if ( l > wlen ) {
                         if ( w ) GC_free(w);                          if ( w ) GCFREE(w);
                         w = (MP *)MALLOC(l*sizeof(MP));                          w = (MP *)MALLOC(l*sizeof(MP));
                         wlen = l;                          wlen = l;
                 }                  }
Line 810  void _weyl_muldm_dup(VL vl,MP m0,DP p,DP *pr)
Line 810  void _weyl_muldm_dup(VL vl,MP m0,DP p,DP *pr)
                 for ( i = 0, tlen = 1; i < n2; i++ )                  for ( i = 0, tlen = 1; i < n2; i++ )
                         tlen *= d0->d[n2+i]+1;                          tlen *= d0->d[n2+i]+1;
                 if ( tlen > rtlen ) {                  if ( tlen > rtlen ) {
                         if ( tab ) GC_free(tab);                          if ( tab ) GCFREE(tab);
                         if ( psum ) GC_free(psum);                          if ( psum ) GCFREE(psum);
                         rtlen = tlen;                          rtlen = tlen;
                         tab = (struct cdl *)MALLOC(rtlen*sizeof(struct cdl));                          tab = (struct cdl *)MALLOC(rtlen*sizeof(struct cdl));
                         psum = (MP *)MALLOC(rtlen*sizeof(MP));                          psum = (MP *)MALLOC(rtlen*sizeof(MP));
Line 872  void _weyl_mulmm_dup(VL vl,MP m0,MP m1,int n,struct cd
Line 872  void _weyl_mulmm_dup(VL vl,MP m0,MP m1,int n,struct cd
         rtab[0].d = d;          rtab[0].d = d;
   
         if ( rtablen > tmptablen ) {          if ( rtablen > tmptablen ) {
                 if ( tmptab ) GC_free(tmptab);                  if ( tmptab ) GCFREE(tmptab);
                 tmptab = (struct cdl *)MALLOC(rtablen*sizeof(struct cdl));                  tmptab = (struct cdl *)MALLOC(rtablen*sizeof(struct cdl));
                 tmptablen = rtablen;                  tmptablen = rtablen;
         }          }
Line 899  void _weyl_mulmm_dup(VL vl,MP m0,MP m1,int n,struct cd
Line 899  void _weyl_mulmm_dup(VL vl,MP m0,MP m1,int n,struct cd
                         continue;                          continue;
                 }                  }
                 if ( k+1 > tablen ) {                  if ( k+1 > tablen ) {
                         if ( tab ) GC_free(tab);                          if ( tab ) GCFREE(tab);
                         if ( ctab ) GC_free(ctab);                          if ( ctab ) GCFREE(ctab);
                         tablen = k+1;                          tablen = k+1;
                         tab = (struct cdl *)MALLOC(tablen*sizeof(struct cdl));                          tab = (struct cdl *)MALLOC(tablen*sizeof(struct cdl));
                         ctab = (Q *)MALLOC(tablen*sizeof(P));                          ctab = (Q *)MALLOC(tablen*sizeof(P));

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.15

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