Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sagemathgh-36994: Use PARI when computing the Tate pairing
To match `weil_pairing()` this pull request now uses PARI to compute the non-reduced Tate pairing for elliptic curves over finite fields. This has been included for efficiency, with PARI offering a significant performance speed up: ```py sage: GF(65537^2).inject_variables() Defining z2 sage: E = EllipticCurve(GF(65537^2), [0,1]) sage: P = E(22, 28891) sage: Q = E.random_point() sage: # Old timing sage: %timeit P.tate_pairing(Q, 7282, 2) 1.4 ms ± 66 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each) sage: # New timing sage: %timeit P.tate_pairing(Q, 7282, 2) 50.8 µs ± 674 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each) ``` ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. URL: sagemath#36994 Reported by: Giacomo Pope Reviewer(s): John Cremona
- Loading branch information