except:
pass;
if(F is None):
- raise TypeError("Incompatible original structures:\n\t- %s\n\t- %s" %(pself, pS));
+ return None;
+ #raise TypeError("Incompatible original structures:\n\t- %s\n\t- %s" %(pself, pS));
if(not F in IntegralDomains()):
- raise TypeError("Pushout of the original structures is not an integral domain:\n\t- %s" %F);
+ return None;
+ #raise TypeError("Pushout of the original structures is not an integral domain:\n\t- %s" %F);
if(not F.is_field()):
F = F.fraction_field();
polys = {str(el[0 ]):el[1 ] for el in gens_self['algebraic']}
for el in gens_S['algebraic']:
if(polys.get(str(el[0 ]), el[1 ]) != el[1 ]):
- raise TypeError("Incompatible names in algebraic extensions:\n\t- %s\n\t- %s" %(el,(el[0 ],polys[str(el[0 ])])));
+ return None;
+ #raise TypeError("Incompatible names in algebraic extensions:\n\t- %s\n\t- %s" %(el,(el[0 ],polys[str(el[0 ])])));
polys[str(el[0 ])] = el[1 ];
sorted_names = sorted(polys);
def _compute_derivative_solution(self):
d = self.__oa.gen();
- try:
- return w_OreOperator(self.base(), self.operator/d);
- except ValueError:
- c = self.getCoefficient(_sage_const_0 );
- dc = self.derivate()(c);
-
- return w_OreOperator(self.base(), ((c*d - dc)*self.operator)/d);
+ return w_OreOperator(self.base(), self.operator.annihilator_of_associate(d));
def _compute_integral_solution(self):
return w_OreOperator(self.base(),self.operator.annihilator_of_integral());