Dear Alexei, Alexei Sheplyakov schrieb:
You might want to try polynomial/upoly.hpp. Feel free to ask me to implement the operations you need, propose any reasonable API changes, etc.
for the next three/four weeks I will not change to upoly/umodpoly. I want to try more efficient algorithms first, and there is still a strange bug in the multivariate case that happens just occasionally and that I need to catch. For modular polynomials I only need *,+,- and the functions in lines 105-350 in factor.cpp like div/rem/gcd/... You are probably going to implement them anyway, I guess. I don't care much about the API as long as it allows for efficient and elegant usage. Since you are using umodpoly for a modular gcd you have the same requirements as I do, so just got ahead with it and do it as you like. Side question: is the cln code (cl_UP_UI) going to improve in the future or is the development stuck? Eventually, I'll going to move factor.cpp into the ginac/polynomial directory. Maybe I will split the modular matrix code into a separate file as well. BTW, do you plan to have a multivariate (modular) polynomial class? At the moment, in factor.cpp I use the silly make_modular() function that looks at coefficients in a ex and changes them to their ring value. Dirty hack it is. Regards, Jens