Skip to content

TiagoCavalcante/polynomial-roots

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

polynomial-roots

Find the real roots of huge polynomials in milliseconds

How to compile?

cargo build --release

How to use?

The coefficients are in degree-ascending order, that is: $x^0 + x^1 + x^2 + x^3 + \cdots$
The coefficients are passed space-separated, therefore to solve the polynomial $3 - 9x + x^3$ you need to run the program the following way:

$ cargo install polynomial-roots
$ polynomial-roots
3 -9 0 1
{ -3.154523; 0.33760893; 2.816914; }

(note: don't forget the zero coefficients)

How it works?

The roots are found using the linear formula ($\dfrac{-b}{a}$), the quadratic formula ($\dfrac{-b \pm \sqrt{b^2 - 4 a c}}{2 a}$), or the false position method over the Cauchy's bound. It can solve polynomials of any degree.

I'm not getting all the roots, what should I do?

If you aren't getting all the roots you should modify the constants from the file src/constants.rs. You can DECREASE PARTITION_SIZE and INCREASE ITERATIONS. That will make the program slower, but with the right tweaks it can solve any polynomial.

About

Find the real roots of huge polynomials in milliseconds

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Languages