Changeset 6133f6e in git for kernel


Ignore:
Timestamp:
Jun 24, 2022, 1:54:59 PM (22 months ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
8ec24eb2c30b2bb3584117f9e2f0768e4b7f6ea1
Parents:
306b2992d264f1dd1853f31ef0f93800fc2cc119
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2022-06-24 13:54:59+02:00
git-committer:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2022-06-24 14:05:22+02:00
Message:
scMult0Int: 64bit
Location:
kernel/combinatorics
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • kernel/combinatorics/hdegree.cc

    r306b29 r6133f6e  
    2525#endif
    2626
    27 VAR int  hCo, hMu, hMu2;
     27VAR int  hCo, hMu2;
     28VAR long hMu;
    2829VAR omBin indlist_bin = omGetSpecBin(sizeof(indlist));
    2930
     
    618619// multiplicity
    619620
    620 static int hZeroMult(scmon pure, scfmon stc, int Nstc, varset var, int Nvar)
    621 {
    622   int  iv = Nvar -1, sum, a, a0, a1, b, i;
     621static long hZeroMult(scmon pure, scfmon stc, int Nstc, varset var, int Nvar)
     622{
     623  int  iv = Nvar -1, a, a0, a1, b, i;
     624  long sum;
    623625  int  x, x0;
    624626  scmon pn;
     
    637639  sn = hGetmem(Nstc, stc, stcmem[iv]);
    638640  hStepS(sn, Nstc, var, Nvar, &a, &x);
    639   int64 t=hZeroMult(pn, sn, a, var, iv);
    640641  if (a == Nstc)
    641642  {
     643    #if  SIZEOF_LONG==8
     644    return (long)pure[var[Nvar]] * hZeroMult(pn, sn, a, var, iv);
     645    #else
     646    int64 t=hZeroMult(pn, sn, a, var, iv);
    642647    t *= pure[var[Nvar]];
    643648    if ((t>=INT_MIN)&&(t<=INT_MAX)) sum=t;
    644649    else if (!errorreported) WerrorS("int overflow in vdim 3");
    645650    return sum;
    646     /*return pure[var[Nvar]] * hZeroMult(pn, sn, a, var, iv);*/
     651    #endif
    647652  }
    648653  else
    649654  {
     655    #if  SIZEOF_LONG==8
     656    sum = x * hZeroMult(pn, sn, a, var, iv);
     657    #else
     658    int64 t=hZeroMult(pn, sn, a, var, iv);
    650659    t *= x;
    651660    if ((t>=INT_MIN)&&(t<=INT_MAX)) sum=t;
    652661    else if (!errorreported) WerrorS("int overflow in vdim 4");
    653     /*sum = x * hZeroMult(pn, sn, a, var, iv);*/
     662    #endif
    654663  }
    655664  b = a;
     
    666675    if (a < Nstc)
    667676    {
     677      #if  SIZEOF_LONG==8
     678      sum += (long)(x - x0) * hZeroMult(pn, sn, b, var, iv);
     679      #else
    668680      int64 t=hZeroMult(pn, sn, b, var, iv);
    669681      t *= (x-x0);
     
    671683      if ((t>=INT_MIN)&&(t<=INT_MAX)) sum=t;
    672684      else if (!errorreported) WerrorS("int overflow in vdim 1");
    673       /*sum += (x - x0) * hZeroMult(pn, sn, b, var, iv);*/
     685      #endif
    674686    }
    675687    else
    676688    {
     689      #if  SIZEOF_LONG==8
     690      sum += (long)(pure[var[Nvar]] - x0) * hZeroMult(pn, sn, b, var, iv);
     691      #else
    677692      int64 t=hZeroMult(pn, sn, b, var, iv);
    678693      t *= (pure[var[Nvar]]-x0);
     
    680695      if ((t>=INT_MIN)&&(t<=INT_MAX)) sum=t;
    681696      else if (!errorreported) WerrorS("int overflow in vdim 2");
    682       /*sum += (pure[var[Nvar]] - x0) * hZeroMult(pn, sn, b, var, iv);*/
     697      #endif
    683698      return sum;
    684699    }
     
    933948}
    934949
    935 int  scMult0Int(ideal S, ideal Q)
     950long  scMult0Int(ideal S, ideal Q)
    936951{
    937952  id_LmTest(S, currRing);
  • kernel/combinatorics/hutil.h

    r306b29 r6133f6e  
    4545EXTERN_VAR monf stcmem, radmem;
    4646EXTERN_VAR indset ISet, JSet;
    47 EXTERN_VAR int  hCo, hMu, hMu2;
     47EXTERN_VAR int  hCo, hMu2;
     48EXTERN_VAR long  hMu;
    4849
    4950
  • kernel/combinatorics/stairc.h

    r306b29 r6133f6e  
    2626int scDimIntRing(ideal  s,ideal Q=NULL); // dim (general)
    2727int scMultInt(ideal  s,ideal Q=NULL); // mult
    28 int scMult0Int(ideal  s,ideal Q=NULL); // vdim
     28long scMult0Int(ideal  s,ideal Q=NULL); // vdim
    2929void scPrintDegree(int co, int mu);
    3030void scDegree(ideal  s,intvec *modulweight,ideal Q=NULL);
Note: See TracChangeset for help on using the changeset viewer.