This PR implements simple (SimpleFieldExtension) and multiple (MultipleFieldExtension) extensions of fields. In particular the following is done:
Methods for computing univariate resultants (UnivariateResultants):
for polynomials over finite fields method of subresultant sequences is used
for polynomials over Q and over algebraic number fields modular technique is used
Methods for computing multivariate resultants (MultivariateResultants):
both Brown and Zippel (sparse, with Vandermonde matrices) methods are implemented
for polynomials over Q and over algebraic number fields modular methods are used with optional use of Zippel interpolation technique for sparse problems
Implementation of simple field extensions via SimpleFieldExtension abstract class with two inheritors: FiniteField and AlgebraicNumberField
Polynomial GCD over algebraic number fields via modular algorithm
Factorization of polynomials over algebraic number fields via Trager's algorithm
Implementation of multiple field extensions (MultipleFieldExtension) via computation of primitive elements and arithmetic in isomorphic simple field extension
Implementation of splitting fields
lots of other improvements
A lot of new methods added. The doc should be updated.
This PR implements simple (
SimpleFieldExtension
) and multiple (MultipleFieldExtension
) extensions of fields. In particular the following is done:UnivariateResultants
):MultivariateResultants
):SimpleFieldExtension
abstract class with two inheritors:FiniteField
andAlgebraicNumberField
MultipleFieldExtension
) via computation of primitive elements and arithmetic in isomorphic simple field extensionA lot of new methods added. The doc should be updated.