@isuruf Let me know your views on #764. Any additions or changes?

Is anyone here familiar with multivariate polynomial GCD?

I'd like to implement rational functions in Piranha based on the polynomial class, but I have not much knowledge about polynomial division, GCD, factorisation, etc.

@bluescarni I know that GiNaC has a buggy implementation, and Singular's is used in Sage's polynomial rings.

I will probably start doing the univariate case which seems relatively simple, but the multivariate one will be harder I guess

@rwst thanks.. do you know if they do anything special or do they use textbook algorithms?

I got some textbooks and various references, but it's kinda daunting to get started

I am not too interested in performance at the moment, but it would be nice to have a first initial simple iteration of the design

@bluescarni No idea. I think Singular can be seen as a reference implementation, i.e. heavily tested and dependable but maybe not optimally fast. Magma would be interesting but is closed source.

ok I see... I got this book and it seems like a good starting point http://www.springer.com/us/book/9780792392590

Some abstract algebra would also be helpful, probably.

do you have any reference to recommend?

I used these to get more into what Sage is about:

https://books.google.de/books?id=LJtyhu8-xYwC&source=gbs_slider_cls_metadata_1_mylibrary

https://books.google.de/books?id=RYMqOCDO-LkC&source=gbs_slider_cls_metadata_1_mylibrary

https://books.google.de/books?id=LJtyhu8-xYwC&source=gbs_slider_cls_metadata_1_mylibrary

https://books.google.de/books?id=RYMqOCDO-LkC&source=gbs_slider_cls_metadata_1_mylibrary

cheers!

I just want to do practical computations with rational functions really, so something really basic will be sufficient in the beginning

doing some perturbation theory computations and it would really help to be able to represent rational functions in Piranha

Did you look into sympy.polys.factortools? It contains a workable implementation though only over integers and (simple) finite fields. I believe it implements much of what is in your book.

OK the Grillet is more basic, and even entertaining, and the price was not too high (check https://play.google.com/store/books/details/Pierre_Antoine_Grillet_Abstract_Algebra?id=LJtyhu8-xYwC&hl=en).

@rwst thanks!

@jksuom I was just browsing SymPy's documentation about polynomials, it would certainly be helpful to see how they did it

@jksuom I was just browsing SymPy's documentation about polynomials, it would certainly be helpful to see how they did it

I am just interested in polynomials over the rationals at the moment, so the integer implementation is fine for that

I thought so.

For rational functions the set is named fractional field. Sage has an implementation, scroll down at http://doc.sagemath.org/html/en/reference/polynomial_rings/index.html

I am a bit hesitant to go directly to the source code as I think I need to get some theoretical grounding first

@rwst thanks

@bluescarni There is also the giac implementation see

@rwst thanks for the links!

I am not sure I understand well the role of Groebner basis in all this

Maybe I should also consider the possibility of wrapping some existing library rather than duplicating (badly, at least in the beginning) existing functionality