diff --git a/aplK.py b/aplK.py index d87c1b3..d5855bf 100644 --- a/aplK.py +++ b/aplK.py @@ -80,7 +80,18 @@ class AplN(DifferentialGCAlgebra_multigraded, UniqueRepresentation): - A polynomial """ if (value in QQ) or ((value in A) and (value.degree().is_zero())): - return value*factorial(self.n)*prod(self.gens()[self.n+2:]) + #return value*factorial(self.n)*prod(self.gens()[self.n+2:]) + + gens = self.gens() + tExp = [randint(0,3) for i in range(self.n+1)] + yExp = [0]+[1]*self.n + exp = tuple(tExp + yExp) + #print(value, " - ", exp, flush=True) + numerator = factorial(sum(tExp)+self.n) + denominator = prod([factorial(e) for e in tExp]) + coef = value*QQ(numerator)/QQ(denominator) + return coef*self.get_term(self, 1, exp, gens) + else: raise ValueError("only field elements can be integrated.")