Hey all, I have been trying to work on a fix for scalar multiplication of points on elliptic curves over finite fields. The issue at the moment is that when we multiply by a Sage type, such as an Integer, the coercion system discovers the action via `_acted_upon_` and a fast method via Pari is called.
However, when the scalar multiplication is called with a Python `int`, then this falls through to `IntegerMulAction` which instead performs the scalar multiplication using Sage defined addition and doubling which is much slower (about 10x slower by the timing I have in the PR). My initial fix was to simply add a `__mul__` method for elliptic curve points, but through conversations with the reviewers of the PR, instead a fix was proposed within the `discover_action()` method, which attempts a precomposition from python `int` to Sage `Integer` which then allows for the discovery of the action for `_acted_upon_`. This fix "worked" in that the action works fine for my elliptic curve example and the speed for `int` and `Integer` now are both fast, but the CI tests run and it seems my change has totally broken Sage. I really want to do the correct fix here, but I don't understand how much change could have broken so much internally as I thought my fix would only discover good actions... I would really appreciate some support in finding the right solution for this. A link to the PR is here: https://github.com/sagemath/sage/pull/37369 Thank you! -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/c9638664-e2a7-49fa-81fa-86d548d6f08fn%40googlegroups.com.