tkluck / GaloisFields.jl

Finite fields for Julia
Other
46 stars 6 forks source link

Rings of polynomials over fields #12

Open kirtsar opened 4 years ago

kirtsar commented 4 years ago

I was wondering if there is an implementation of rings over Galois Fields F[x, y ...]? It seems that SemialgebraicSets are not supposed to use with custom fields other from R or C. I know about Nemo, but this is really huge and pretty "monolithic".

tkluck commented 4 years ago

Does Polynomials.jl (single variable only) work for you?

using Polynomials, GaloisFields
const F = GaloisField(29)
f = Poly(F[0, 10], :x)

If you want multi-variate polynomials, there's TypedPolynomials.jl or my own PolynomialRings.jl. Both should work; I think PolynomialRings.jl may have more features and optimizations but it has rough edges too; TypedPolynomials.jl is a safe bet.

kirtsar commented 4 years ago

@tkluck It does, but I wonder how can I solve equation of the type f(X) == 0 over finite field? It is needed for example for decoding BCH codes.

tkluck commented 4 years ago

I haven't implemented polynomial factorization myself, but it would certainly be a worthwhile addition to the Julia ecosystem.

It's not entirely trivial to implement; see e.g. the wikipedia page on the topic.

Nemo.jl is probably your best bet in the short run.