This blog post is doing precise integer arithmetic without rounding, and dealing with polynomials of tiny degree. But for more general uses...<p>Anyone trying to work with polynomials as continuous functions using floating point arithmetic (or trying to work efficiently with piecewise continuous functions in general) should check out Chebfun, <a href="http:&#x2F;&#x2F;www.chebfun.org" rel="nofollow">http:&#x2F;&#x2F;www.chebfun.org</a><p>People should avoid working with polynomials expressed in the monomial basis if possible, unless dealing with a function defined on the complex unit circle. The Chebyshev basis is generally faster and more accurate for polynomials defined on some real interval, and makes it practical to compute with polynomials of very high degree. <a href="http:&#x2F;&#x2F;www.chebfun.org&#x2F;examples&#x2F;linalg&#x2F;CondNos.html" rel="nofollow">http:&#x2F;&#x2F;www.chebfun.org&#x2F;examples&#x2F;linalg&#x2F;CondNos.html</a> <a href="http:&#x2F;&#x2F;www.chebfun.org&#x2F;examples&#x2F;roots&#x2F;RandomPolynomials.html" rel="nofollow">http:&#x2F;&#x2F;www.chebfun.org&#x2F;examples&#x2F;roots&#x2F;RandomPolynomials.html</a><p>For a lot more see: <a href="http:&#x2F;&#x2F;www.chebfun.org&#x2F;ATAP&#x2F;atap-first6chapters.pdf" rel="nofollow">http:&#x2F;&#x2F;www.chebfun.org&#x2F;ATAP&#x2F;atap-first6chapters.pdf</a> <a href="http:&#x2F;&#x2F;www.chebfun.org&#x2F;docs&#x2F;guide&#x2F;chebfun_guide.pdf" rel="nofollow">http:&#x2F;&#x2F;www.chebfun.org&#x2F;docs&#x2F;guide&#x2F;chebfun_guide.pdf</a><p>Here’s the guts of their multiplication routine, which multiplies two polynomials and returns a new polynomial which approximates the product to near machine precision:
<a href="https:&#x2F;&#x2F;github.com&#x2F;chebfun&#x2F;chebfun&#x2F;blob&#x2F;development&#x2F;%40chebtech&#x2F;times.m#L141-L161" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;chebfun&#x2F;chebfun&#x2F;blob&#x2F;development&#x2F;%40chebt...</a> (For the mathematical details see the (paywalled) paper <a href="http:&#x2F;&#x2F;epubs.siam.org&#x2F;doi&#x2F;abs&#x2F;10.1137&#x2F;120865458?journalCode=siread" rel="nofollow">http:&#x2F;&#x2F;epubs.siam.org&#x2F;doi&#x2F;abs&#x2F;10.1137&#x2F;120865458?journalCode=...</a>). Multiplying values at Chebyshev points (similar to the blog post under discussion) would work too, but Chebfun natively stores an array of coefficients. In fact, they did multiply at values before April of last year, <a href="https:&#x2F;&#x2F;github.com&#x2F;chebfun&#x2F;chebfun&#x2F;blob&#x2F;05611dec557718b5b026232ed3f4edcef8e7a19e&#x2F;%40chebtech&#x2F;times.m#L89-L113" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;chebfun&#x2F;chebfun&#x2F;blob&#x2F;05611dec557718b5b026...</a>