There are apparently some bugs when trying to calculate the $p-$ adic regulator on different Weierstrass models (both minimal at $p$). I am restricting my attention for Rank 1 curves over $\mathbb Q$
For example:
E=EllipticCurve('128a2')
E1=E.short_weierstrass_model()
print(E.is_p_minimal(5), E1.is_p_minimal(5), E.padic_regulator(5)==E1.padic_regulator(5) )
If you run this, it will be True-True-False. And the inequality is not only up to a sign or a constant, the entire $p-$valuation of the regulator could be different.
This is not a special example, one can make dozens examples like this. The correct regulator is the one of $E$, i.e the one that uses THE minimal Weierstrass model.
I am trying to find where the problem boils down to. If you look at the code of the p-adic regulator, it says that :
" Todo: Remove restriction that curve must be in minimal Weierstrass form. This is currently required for E.gens()."
I have tried myself doing all the other steps "step by step" and I think they check out fine. But I am still confused on why there is such an issue for the command E.gens().
For example, in the above example, if you run
E1.gens_certain()
you will get True. And on the code for E.gens(), I don't see any restrictions for minimal models. And mind you, this bug does not appear all the time. For example, on the code itself for the $p$-adic regulator, they provide the example :
sage: E = EllipticCurve([0,0,0,0,2^12*17])
sage: Em = E.minimal_model()
sage: E.padic_regulator(7) == Em.padic_regulator(7)
True
So could someone direct me as to where the problem is?