Open rharron opened 11 years ago
In fact, this seems to be what theoretically should happen right? For instance, the 0th moment of nu is the 1st moment of mu. So, really solving the difference equation drops the precision by 1. Maybe one can just forcefully extend the precision... will that work?
Well, I guess the only time one uses this solving is in lifting and forming random modular symbols. In the former case, I can understand that one might lose precision. For the latter case, it just means that if you ask for a random modular symbol, the code should randomly create values whose precision is 1 more (or maybe 2 more for families?) than the precision of the modular symbol you asked for.
Previous comment notwithstanding, the current code remains "buggy" in that the output from solve_diff_eqn should be a distribution with one less precision than self. (right?)
So, first: here I've forced the use of the Dist_vector class. Given that:
sage: D = Distributions(0,3,10,ZpCA(3,10)) sage: v = [0,1] + [0]_5 sage: mu = D(v) sage: mu (O(3^7), 1 + O(3^6), O(3^5), O(3^4), O(3^3), O(3^2), O(3)) sage: nu = mu.solve_diff_eqn(); nu 3^-1 * (3 + O(3^7), 3 + 3^2 + 3^3 + 3^4 + 3^5 + O(3^6), 2 + 3 + 3^2 + 3^3 + O(3^4), O(3^4), 2 + 2_3 + O(3^3), O(3), 2 + O(3))
Notice that in the solution nu, the precision is 7,6,4,4,3,1,1, instead of the desired 7,6,5,4,3,2,1.