expose mpz_poly interface in two different ways.
Some functions in the mpz_poly
API can optionally use openmp. We want to make
sure that the code that calls these openmp-enabled functions does so
willingly. And we don't want to pollute the "normal" interface.
The chosen solution is as follows.
-
the functions declared in
mpz_poly.h
, and used as plain (e.g.)mpz_poly_mul
resolve to something that does NOT use openmp. -
to use openmp, include mpz_poly_parallel.hpp instead (which duplicates some of the declarations of
mpz_poly.h
), and call the member functions of an mpz_poly_parallel_info object. E.g.
mpz_poly_parallel_info inf;
// (maybe add some configuration code for the inf object, if the
// need for that ever appears)
inf.mpz_poly_mul(....)