Changeset 9ae29a in git for kernel/ring.cc


Ignore:
Timestamp:
Jul 7, 2010, 8:02:01 PM (14 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
99af0d3e643769a827817de5d58cba7541a19539
Parents:
7c5dd189445ad8976fffa1f14278ff4b3f086575
Message:
rTensor -> rSumInternal

git-svn-id: file:///usr/local/Singular/svn/trunk@12954 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/ring.cc

    r7c5dd1 r9ae29a  
    789789 *         1 for compatible (and sum)
    790790 */
    791 /*
     791/* vartest: test for variable/paramter names
    792792* dp_dp: for comm. rings: use block order dp + dp/ds/wp
    793793*/
    794 int rSumInternal(ring r1, ring r2, ring &sum, BOOLEAN dp_dp)
     794int rSumInternal(ring r1, ring r2, ring &sum, BOOLEAN vartest, BOOLEAN dp_dp)
    795795{
    796796  ring save=currRing;
     
    805805      if (r1->parameter!=NULL)
    806806      {
     807        if (!vartest || (strcmp(r1->parameter[0],r2->parameter[0])==0)) /* 1 par */
     808        {
    807809          tmpR.parameter=(char **)omAllocBin(char_ptr_bin);
    808810          tmpR.parameter[0]=omStrDup(r1->parameter[0]);
    809811          tmpR.P=1;
     812        }
     813        else
     814        {
     815          WerrorS("GF(p,n)+GF(p,n)");
     816          return -1;
     817        }
    810818      }
    811819    }
     
    818826          // HANNES: TODO: delete nSetChar
    819827          rChangeCurrRing(r1);
    820           if (n_Equal(r1->minpoly,r2->minpoly, r1))
     828          if ((!vartest || (strcmp(r1->parameter[0],r2->parameter[0])==0)) /* 1 par */
     829              && n_Equal(r1->minpoly,r2->minpoly, r1))
    821830          {
    822831            tmpR.parameter=(char **)omAllocBin(char_ptr_bin);
     
    837846        else
    838847        {
    839           if (rPar(r2)==1)
     848          if ((!vartest || (strcmp(r1->parameter[0],r2->parameter[0])==0)) /* 1 par */
     849              && (rPar(r2)==1))
    840850          {
    841851            tmpR.parameter=(char **)omAllocBin(char_ptr_bin);
     
    855865        if (r2->minpoly!=NULL)
    856866        {
    857           if (rPar(r1)==1)
     867          if ((!vartest || (strcmp(r1->parameter[0],r2->parameter[0])==0)) /* 1 par */
     868              && (rPar(r1)==1))
    858869          {
    859870            tmpR.parameter=(char **)omAllocBin(char_ptr_bin);
     
    880891          for(j=0;j<rPar(r2);j++)
    881892          {
    882             l=i;
    883             tmpR.parameter[i]=omStrDup(r2->parameter[j]);
    884             i++;
     893            if (vartest)
     894            {
     895              for(l=0;l<i;l++)
     896              {
     897                if(strcmp(tmpR.parameter[l],r2->parameter[j])==0)
     898                  break;
     899              }
     900            }
     901            else
     902              l=i;
     903            if (l==i)
     904            {
     905              tmpR.parameter[i]=omStrDup(r2->parameter[j]);
     906              i++;
     907            }
    885908          }
    886909          if (i!=len)
     
    10221045    if (*(r1->names[i]) == '\0')
    10231046      b = FALSE;
     1047    else if ((r2->parameter!=NULL) && (strlen(r1->names[i])==1))
     1048    {
     1049      if (vartest)
     1050      {
     1051        for(j=0;j<rPar(r2);j++)
     1052        {
     1053          if (strcmp(r1->names[i],r2->parameter[j])==0)
     1054          {
     1055            b=FALSE;
     1056            break;
     1057          }
     1058        }
     1059      }
     1060    }
    10241061
    10251062    if (b)
     
    10401077    if (*(r2->names[i]) == '\0')
    10411078      b = FALSE;
     1079    else if ((r1->parameter!=NULL) && (strlen(r2->names[i])==1))
     1080    {
     1081      if (vartest)
     1082      {
     1083        for(j=0;j<rPar(r1);j++)
     1084        {
     1085          if (strcmp(r2->names[i],r1->parameter[j])==0)
     1086          {
     1087            b=FALSE;
     1088            break;
     1089          }
     1090        }
     1091      }
     1092    }
    10421093
    10431094    if (b)
    10441095    {
    1045       //Print("name : %d : %s\n",k,r2->names[i]);
    1046       names[k]=omStrDup(r2->names[i]);
    1047       k++;
     1096      if (vartest)
     1097      {
     1098        for(j=0;j<r1->N;j++)
     1099        {
     1100          if (strcmp(r1->names[j],r2->names[i])==0)
     1101          {
     1102            b=FALSE;
     1103            break;
     1104          }
     1105        }
     1106      }
     1107      if (b)
     1108      {
     1109        //Print("name : %d : %s\n",k,r2->names[i]);
     1110        names[k]=omStrDup(r2->names[i]);
     1111        k++;
     1112      }
     1113      //else
     1114      //  Print("no name (var): %s\n",r2->names[i]);
    10481115    }
    10491116    //else
Note: See TracChangeset for help on using the changeset viewer.