MHB How can I determine a polynomial is irreducible in C?

  • Thread starter Thread starter Nonad
  • Start date Start date
  • Tags Tags
    Polynomial
AI Thread Summary
Eisenstein's irreducibility criterion is challenging to apply when dealing with large integer coefficients, particularly those around 1e9. While using int64_t can handle large numbers, verifying the primality of such integers may require optimizations. Shifting variables with x+a or reversing coefficients can help, but these methods do not guarantee conclusive results. A systematic approach to selecting values for a, such as trying every integer from 1 to the highest coefficient, may yield better outcomes. Ultimately, the Factorization theorem for real coefficient polynomials was implemented to address the limitations encountered.
Nonad
Messages
2
Reaction score
0
Hello!(Blush)

I learned about Eisenstein's irreducibility criterion. But it's still hard for me to implement it when the integer coefficients may be as larger as 1e9.
What's more, how can I (or my computer?) know when to change x into x+a?

It really puzzles me(O_o)??
 
Technology news on Phys.org
Nonad said:
Hello!

I learned about Eisenstein's irreducibility criterion. But it's still hard for me to implement it when the integer coefficients may be as larger as 1e9.

Welcome to MHB Nonad! (Wave)

What is the problem with such large coefficients?
If we use a [m]int64_t[/m] we support up to [m]9e18[/m].
It may become more problematic to verify primality of integers within a reasonable time, but there are some optimizations that can be done there.

Nonad said:
What's more, how can I (or my computer?) know when to change x into x+a?

It really puzzles me(O_o)??

If the criterion is satisfied, we are done.
If it is not, then the result is inconclusive.
Shifting with $x+a$, or reversing coefficients will not necessarily lead to a conclusive result.
It is just something to try so that we get conclusive results in more cases.
I'm not aware yet of a heuristic how to pick $a$.
We might simply try every $a$ from $1$ up to the highest coefficient or some such.
 
Klaas van Aarsen said:
It is just something to try so that we get conclusive results in more cases.
I'm not aware yet of a heuristic how to pick $a$.
We might simply try every $a$ from $1$ up to the highest coefficient or some such.

Thank you very much(Blush)
Yes, you are right. I have to enumerate using Eisenstein's irreducibility criterion.
It's not acceptable for my task which includes large data and, as a sufficient condition, it may provide wrong answers.
Finally, we implemented Factorization theorem of real coefficient polynomials to solve the problem.

Thanks again(Smile)
 
Thread 'Star maps using Blender'
Blender just recently dropped a new version, 4.5(with 5.0 on the horizon), and within it was a new feature for which I immediately thought of a use for. The new feature was a .csv importer for Geometry nodes. Geometry nodes are a method of modelling that uses a node tree to create 3D models which offers more flexibility than straight modeling does. The .csv importer node allows you to bring in a .csv file and use the data in it to control aspects of your model. So for example, if you...
I tried a web search "the loss of programming ", and found an article saying that all aspects of writing, developing, and testing software programs will one day all be handled through artificial intelligence. One must wonder then, who is responsible. WHO is responsible for any problems, bugs, deficiencies, or whatever malfunctions which the programs make their users endure? Things may work wrong however the "wrong" happens. AI needs to fix the problems for the users. Any way to...
I am trying to run an .ipynb file and have installed Miniconda as well as created an environment as such -conda create -n <env_name> python=3.7 ipykernel jupyter I am assuming this is successful as I can activate this environment via the anaconda prompt and following command -conda activate <env_name> Then I downloaded and installed VS code and I am trying to edit an .ipynb file. I want to select a kernel, via VS Code but when I press the button on the upper right corner I am greeted...
Back
Top