Definition at line 50 of file launcher.cpp.
51 {
52 if (!matrix)
53 {
54 ERROR(
"BIBasis::CheckMatrix(): no input matrix.");
55 return false;
56 }
57
59 if (!matrixRing)
60 {
61 ERROR(
"BIBasis::CheckMatrix(): failed to get input matrix ring.");
62 return false;
63 }
64
66 {
67 ERROR(
"BIBasis::CheckMatrix(): input matrix ring is not ZZ/2.");
68 return false;
69 }
70
72 if (!polynomialRing)
73 {
74 ERROR(
"BIBasis::CheckMatrix(): failed to cast matrix ring to polynomial ring.");
75 return false;
76 }
77
79 if (!coefficientRing)
80 {
81 ERROR(
"BIBasis::CheckMatrix(): failed to get coefficient ring.");
82 return false;
83 }
84
86 {
87 ERROR(
"BIBasis::CheckMatrix(): coefficient ring is not ZZ/2.");
88 return false;
89 }
90
91 const Monoid* monoid = polynomialRing->
getMonoid();
92 if (!monoid)
93 {
94 ERROR(
"BIBasis::CheckMatrix(): failed to get monoid.");
95 return false;
96 }
97
99 if (!monomialOrdering)
100 {
101 ERROR(
"BIBasis::CheckMatrix(): failed to get monomial ordering.");
102 return false;
103 }
104
105 if (!monomialOrdering->
array[0])
106 {
107 ERROR(
"BIBasis::CheckMatrix(): monomial ordering is unknown.");
108 return false;
109 }
110
111 switch(monomialOrdering->
array[0]->type)
112 {
115 break;
118 break;
121 break;
122 default:
123 ERROR(
"BIBasis::CheckMatrix(): monomial ordering is unsupported: %d.", monomialOrdering->
array[0]->type);
124 return false;
125 }
126
128
129 return true;
130 }
void SetMonomialOrder(Monom::Order order)
void SetNumberOfVariables(Monom::Integer numberOfVariables)
const Ring * get_ring() const
const MonomialOrdering * getMonomialOrdering() const
const Ring * getCoefficientRing() const
virtual const Monoid * getMonoid() const
virtual const PolynomialRing * cast_to_PolynomialRing() const
long characteristic() const
virtual bool isFinitePrimeField() const
SettingsManager & GetSettingsManager()
References MonomialOrdering::array, Ring::cast_to_PolynomialRing(), Ring::characteristic(), BIBasis::Monom::DegLex, BIBasis::Monom::DegRevLex, ERROR, Matrix::get_ring(), PolynomialRing::getCoefficientRing(), PolynomialRing::getMonoid(), Monoid::getMonomialOrdering(), BIBasis::GetSettingsManager(), Ring::isFinitePrimeField(), BIBasis::Monom::Lex, Matrix, MO_GREVLEX, MO_LEX, MO_WEIGHTS, PolynomialRing::n_vars(), BIBasis::SettingsManager::SetMonomialOrder(), and BIBasis::SettingsManager::SetNumberOfVariables().
Referenced by GetBIBasisMatrix().