GF(p^1000)
とかを作りたい気がするけど、遅い。そこで高速化テクです
そもそもp-adic numberを使えばいい気がする
自分で作ってもsageに作らせても変わらない気がするけどなぜか早くなる
def gen_gfpm(p, m, name="a"): PR = PolynomialRing(GF(p), name=name) f = PR.irreducible_element(m) return GF(p^m, modulus=f, name=name)
sageの
GF
の内部実装は↓なんだけど、 に対するisPrime
がなぜかめちゃくちゃおそいので、このif
を消し飛ばしてやると早くなる(is_prime_power
の分岐 で問題なく動作するのでヨシ