1.Representation
Multivariate polynomials in dense representation over C with monomials of type Monomial are implemented in the class block_polynomial<C,Monomial,V> defined in block_polynomial.hpp. The default variant block_polynomial_naive assumes that C
is a field, not necessarily commutative, and provides implementations
of the naive algorithms. For instance the product and the division
have quadratic costs.
#include <numerix/integer.hpp>
#include <multimix/block_polynomial.hpp>
…
monomial<> e (vec<nat> (1, 2));
block_polynomial<integer> t1 (integer (2), e); // defines the term 2 * x * y^2 |
The bracket operator []
is overloaded to access either the -th
coefficient with respect to the internal representation order, or to
retrieve the coefficient of a monomial given in argument.
2.Implementation variants
Reducing the polynomial product to the univariate one (from the algebramix library), known as the Kronecker
substitution, is implemented in the variant block_polynomial_kronecker. Special variants are available to double,
floating, integer, rational,
and modular integers.
© 2014 Joris van der Hoeven and Grégoire Lecerf
Permission is granted to copy, distribute and/or modify this document
under the terms of the
GNU General Public License. If you
don't have this file, write to the Free Software Foundation, Inc., 59
Temple Place - Suite 330, Boston, MA 02111-1307, USA.