cgal/Polynomial/doc_tex/Polynomial_ref/open.tex

37 lines
2.1 KiB
TeX

\section{todo open questions:}
\begin{itemize}
\item Some of the functors in PolynomialTraits can be implemented using some more basic ones.
On the other hand, the way they should be implemented may depend on the way the polynomial is
represented and on the cost of the other functors.
I therefore decided to put them into the PolynomialTraits.
On the other hand one could decide to provide a very basic PolynomialTraits
(just constructor, access to coefficients, and properties (degree)) and call the current
PolynomialTraits a PolynomialToolBox. But I don't think that this is going to be very efficient
or used.
\item Note that the numbering of variables in \ccc{Exponent_vector} is inconsistent
with the one in \ccc{Polynomial_d} and \ccc{PolynomialTraits_d}. \\
TODO: resolve this conflict.
\item Should the concept define the total order of Polynomials, i.e. how two polynomials are compared?
\item Note that a Polynomial is also a Model of an algebraic structure. Therefore a Polynomial will have a
valid \ccc{Algebraic_structure_traits}. \\
Question: should concept \ccc{PolynomialTraits} refine \ccc{AlgebraicStructureTraits}.\\
However, the \ccc{Polynomial_traits} could easily derive from \ccc{Algebraic_structure_traits}.\\
see also package: \ccc{Algebraic_foundations}.
\item \ccc{PolynomialTraits_d::Evaluate}: take \ccc{Innermost_coefficient_type} as argument type only.
this relates \ccc{Coercion_traits} \ccc{Algebraic_foundations}
\item This is just the general concept for \ccc{Polynomial_d}. \\
I plan to propose additional concepts for \ccc{Polynomial_1},\ccc{Polynomial_2} and maybe \ccc{Polynomial_3}.
These concepts will refine \ccc{Polynomial_d}, i.e. fix the constant \ccc{Polynomial_traits_d::d} to the appropriate value
and introduce extra functors as \ccc{Sign_at}, for univariate bivariate polynomials.
\item Do we need a SignAt for multivariate polynomials?
\item see in uni/bivariate\_polynomial\_hacks.h of NiX whether something is useful.
\item document functor Move
\end{itemize}