Changes between Initial Version and Version 1 of Ticket #12657, comment 18


Ignore:
Timestamp:
07/21/17 05:52:32 (2 years ago)
Author:
caruso
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #12657, comment 18

    initial v1  
    22> 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.
    33
    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.)
     4I wanted to say that you redid Newton iteration in `_frob_gen()` and in `frobenius_unram()`. Is there a reason for that?
    55
    66> As for the horner scheme--our 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.