include/borderbasix/ord.cc File Reference

Go to the source code of this file.

Functions


Function Documentation

int my_ord ( const mon m1,
const mon m2 
)

Definition at line 2 of file ord.cc.

Referenced by choice_dlex(), choice_grevlex(), and init_algo().

00002                                           {
00003    int n1 = lvar(m1.rep), n2 =lvar(m2.rep);
00004    cout<<"n1"<<n1;
00005    cout<<"n2"<<n2;
00006    int n = max(n1,n2),dm1=0,dm2=0,firstdiff=0,tmpdeg1,tmpdeg2;
00007         
00008    if(n1 <0 && n2>0) return -1;
00009    if(n2 <0 && n1>0) return 1;
00010    for(int i=0;i<=n;i++)
00011      //for(int i=n;i>=0;i--)
00012      {
00013        tmpdeg1=m1.GetDegree(i);
00014        tmpdeg2=m2.GetDegree(i);
00015        if(tmpdeg1>tmpdeg2 && firstdiff==0) firstdiff=1;
00016        if(tmpdeg2>tmpdeg1 && firstdiff==0) firstdiff=-1;
00017        dm1+=tmpdeg1;
00018        dm2+=tmpdeg2;
00019      }
00020    //dm1=Degree(m1);
00021    //dm2=Degree(m2);
00022    if (dm1 < dm2) return -1;
00023    else if (dm1 > dm2) return 1;
00024    return firstdiff;
00025    
00026    //else {
00027    //  int i=n;
00028    //  while( m1.GetDegree(i) == m2.GetDegree(i) && i>=0) i--;
00029    //  if(i <0) 
00030    //    return 0;
00031    //  else 
00032    //  return ((m1.GetDegree(i)> m2.GetDegree(i)?1:-1));
00033    //}
00034 }


Generated on 6 Dec 2012 for borderbasix by  doxygen 1.6.1