Changes between Initial Version and Version 1 of Ticket #12657, comment 18
 Timestamp:
 07/21/17 05:52:32 (22 months ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

Ticket #12657, comment 18
initial v1 2 2 > We redid the Newton iteration in _frob_gen() because that was easier (for me) than finding & adapting an existing method. The only method I see is .hensel_lift(p,e) in sage.rings.polynomial.polynomial_element.Polynomial, and I don't see the advantage of adapting that. 3 3 4 I wanted to say that you redid Newton iteration in `_frob_gen()` and in `frobenius_unram()`. Is there a reason for that? (In fact, I'm wondering whether the auxiliary function `_frob_gen()` is really necessary.)4 I wanted to say that you redid Newton iteration in `_frob_gen()` and in `frobenius_unram()`. Is there a reason for that? 5 5 6 6 > As for the horner schemeour experiments suggested that the expensive operation was multiplication (in large degree unramified extensions). For example, In R.<a> = Zq(37^100^,100), addition of two random elements takes ~80 micro seconds, while muliplication takes ~80 milli seconds. My naive guess is that cacheing the powers of frob_a in the dictionary and paying the cost of addition will be much faster than paying the repeated cost of multiplication. In any case, storing the powers in a dict or computing the polynomials via horner are much faster than the previous method of computing frobenius.