19 #ifndef _POLYNOMIALMULTIPLICATIONINTERFACE_IMPL_IPP_
20 #define _POLYNOMIALMULTIPLICATIONINTERFACE_IMPL_IPP_
22 #include "../include/PolynomialMultiplicationInterface.hpp"
23 #include "../include/Polynomial.hpp"
24 #include "../include/PolynomialMultiplicationSimple.hpp"
26 template<
typename FieldT>
31 return algo_interface->multiply(p1,p2);
34 template<
typename FieldT>
37 return std::make_unique<PolynomialMultiplicationSimple<FieldT>>();
40 #endif //_POLYNOMIALMULTIPLICATIONINTERFACE_IPP_
Polynomial< FieldT > operator*(const Polynomial< FieldT > &p1, const Polynomial< FieldT > &p2)
The multiplicaion operator. It picks the algorithm with which the Polynomial class is instantiated...
static std::unique_ptr< PolynomialMultiplicationInterface< FieldT > > getAppropriateAlgorithm(const Polynomial< FieldT > &p1, const Polynomial< FieldT > &p2)
Algo picker.
Contains the definition for the abstract base class which will be used by different multiplication al...