Loading [MathJax]/jax/output/HTML-CSS/jax.js

First time here? Check out the FAQ!

Ask Your Question
1

The meaning of arguments of is_primitive

asked 3 years ago

anonymous user

Anonymous

Say we have

R.<x> = PolynomialRing( GF(5) )
f = x^2 + 2*x +3

then we can use f.is_primitive() to tell if f is primitive. But is_primitive has two argument n and n_prime_divs. The document say

"n" (default: "None") - if provided, should equal q-1 where
        "self.parent()" is the field with q elements;  otherwise it
        will be computed.

But this is whose 'self'? Is it the self of polynomial f? so n=4? I think here the n shall be 5^2-1. The following code will result in error.

f.is_primitive(4, [2])

but

f.is_primitive(5^2-1, prime_divisors(5^2-1))

will give the correct answer.

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
1

answered 3 years ago

According to the source code, it looks like n should be q^d-1 where q is the cardinality of the field and d is the degree of the polynomial. So the documentation seems to be wrong.

Preview: (hide)
link

Comments

1

I assume the meaning of n is to provide a multiple of the order of x modulo f - in some cases (when it's known and smaller than qd1) it may speed up computation.

Max Alekseyev gravatar imageMax Alekseyev ( 3 years ago )
1

I think providing its prime divisors will speed up calculation even more.

John Palmieri gravatar imageJohn Palmieri ( 3 years ago )

Thank you!

zxl gravatar imagezxl ( 3 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 3 years ago

Seen: 605 times

Last updated: Oct 08 '21