# p adic regulator on different Weierstrass models.

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?

The question has been moved and (partially answered) on Overflow