Refactor Polynomial-Polynomial Multiplication in the Lagrange Basis
The Lagrange polynomial basis in Minterpy is a special construct; it exists primarily as an entry point of constructing a polynomial approximation of a function as the corresponding coefficients are intuitive (i.e., function values). On the other hand, unlike other basis it's relatively minimalistic feature-wise. For instance, we cannot evaluate it and there is no "native" Lagrange monomials (we represent Lagrange monomials in terms of Newton polynomials).
Curiously enough, the addition and multiplication operations are supported for this basis. Internally, Minterpy stealthily carries out transformation to the Newton basis for the coefficients processing. This is potentially misleading and inconsistent with the fact that one cannot even evaluate polynomials in the Lagrange basis. If transformation is allowed, why not use the transformation to construct Lagrange monomials (in the Newton basis) that can be evaluated so we can finally evaluate Lagrange polynomials. In essence, everything about Lagrange polynomials would depend on other polynomials (primarily the Newton basis) and this introduces rather unnecessary level of coupling.
I would opt to remove this feature from the Lagrange polynomial to make it an even more basic class with minimal set of features. To do more with a Minterpy polynomial, users must consciously transform a Lagrange polynomial to another basis (preferably Newton) for now, at least until higher-level construct is available that is more or less agnostic about the choice of polynomila basis.
Multiplication of Lagrange polynomials with a scalar or a constant polynomial can be kept as it does not involve any transformation.
This issue is part of extending the support for arithmetic operations involving polynomial (see Issue #142 (closed)).
PS: This issue was already raised before in Issue #13 (closed) (resolved via MR !7 (merged)); as noted there, the evaluation routine is skipped due to an ineffeciency issue in the transformation. I would think that if the transformation is inefficient for evaluation, it would also be inefficient for multiplication and addition. I therefore believe that LagrangePolynomial should not implement them at all to minimize hidden coupling.