Borderbasix

ord.hpp
Go to the documentation of this file.
1 //template<typename M>
2 int my_ord(const mon & m1, const mon & m2){
3  int n1 = lvar(m1.rep), n2 =lvar(m2.rep);
4 // cout<<"n1"<<n1;
5 // cout<<"n2"<<n2;
6  int n = std::max(n1,n2),dm1=0,dm2=0,firstdiff=0,tmpdeg1,tmpdeg2;
7 
8  if(n1 <0 && n2>0) return -1;
9  if(n2 <0 && n1>0) return 1;
10  for(int i=0;i<=n;i++)
11  //for(int i=n;i>=0;i--)
12  {
13  tmpdeg1=m1.GetDegree(i);
14  tmpdeg2=m2.GetDegree(i);
15  if(tmpdeg1>tmpdeg2 && firstdiff==0) firstdiff=1;
16  if(tmpdeg2>tmpdeg1 && firstdiff==0) firstdiff=-1;
17  dm1+=tmpdeg1;
18  dm2+=tmpdeg2;
19  }
20  //dm1=Degree(m1);
21  //dm2=Degree(m2);
22  if (dm1 < dm2) return -1;
23  else if (dm1 > dm2) return 1;
24  return firstdiff;
25 
26  //else {
27  // int i=n;
28  // while( m1.GetDegree(i) == m2.GetDegree(i) && i>=0) i--;
29  // if(i <0)
30  // return 0;
31  // else
32  // return ((m1.GetDegree(i)> m2.GetDegree(i)?1:-1));
33  //}
34 }
#define max(a, b)
Definition: alp_f2c.H:167
int lvar(const dynamicexp< X, E > &A)
Definition: dynamicexp.hpp:178
int my_ord(const mon &m1, const mon &m2)
Definition: ord.hpp:2
R rep
Definition: Monom.hpp:30
exponent_t GetDegree() const
Definition: Monom.hpp:70
MSKint32t MSKint32t MSKint32t i
Definition: mosek.h:2278
Multivariate monomials.
Definition: Monom.hpp:21
Home  |  Download & InstallContributions