[CLN-list] modular polynomials

Bruno Haible bruno at clisp.org
Sat Sep 27 21:24:06 CEST 2008

Hello Alexei,

> > You can introduce a new class, say, cl_UP_coefficients or cl_UP_embryo, that
> > has a set_coeff method and a finalize method that returns a cl_UP. cl_UP will
> > lose these methods, but have a constructor that takes a cl_UP_coefficients
> > argument.
> Changing the coefficients is a common operation (think of division, GCD,
> etc). So this crippled^W immutable cl_UP is next to useless.

Indeed, division and GCD can become a lot slower if in-place modification of
polynomial is impossible. Then I agree with you, for option 2.

> > and provide a separate function for "deep copying" of a polynomial.
> What about a copy constructor?

The copy-constructor and the assignment operator should always do the same
thing in C++. People won't understand if

     cl_UP a = ...;
     cl_UP b = a;


     cl_UP a = ...;
     cl_UP b;
     b = a;

behave differently. And in CLN these simple assignments are only copying
a simple reference, not the deep contents (see the other mail).


More information about the CLN-list mailing list