<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
  <channel>
    <title>MaplePrimes - comments on Post, Sparse Polynomial Arithmetic 1:  Maple's Data Structure</title>
    <link>http://www.mapleprimes.com/posts/36244-Sparse-Polynomial-Arithmetic-1--Maples</link>
    <language>en-us</language>
    <copyright>2026 Maplesoft, A Division of Waterloo Maple Inc.</copyright>
    <generator>Maplesoft Document System</generator>
    <lastBuildDate>Wed, 10 Jun 2026 20:05:53 GMT</lastBuildDate>
    <pubDate>Wed, 10 Jun 2026 20:05:53 GMT</pubDate>
    <itunes:subtitle />
    <itunes:summary />
    <description>The latest comments added to the Post, Sparse Polynomial Arithmetic 1:  Maple's Data Structure</description>
    <image>
      <url>http://www.mapleprimes.com/images/mapleprimeswhite.jpg</url>
      <title>MaplePrimes - comments on Post, Sparse Polynomial Arithmetic 1:  Maple's Data Structure</title>
      <link>http://www.mapleprimes.com/posts/36244-Sparse-Polynomial-Arithmetic-1--Maples</link>
    </image>
    <item>
      <title>References?</title>
      <link>http://www.mapleprimes.com/posts/36244-Sparse-Polynomial-Arithmetic-1--Maples?ref=Feed:MaplePrimes:Sparse Polynomial Arithmetic 1:  Maple's Data Structure:Comments#comment61383</link>
      <itunes:summary>&lt;p&gt;Thanks for starting another interesting series of blog posts.&lt;/p&gt;
&lt;p&gt;Could you please include a one or two references of your sparse polynomial arithmetic work in posts if possible?&amp;nbsp; Some advanced users in the Mapleprimes community may be interested in a formal explanation.&lt;/p&gt;
&lt;p&gt;Keep up the good work!&lt;/p&gt;</itunes:summary>
      <description>The latest comments added to the Post, Sparse Polynomial Arithmetic 1:  Maple's Data Structure</description>
      <guid>61383</guid>
      <pubDate>Tue, 01 Dec 2009 02:55:03 Z</pubDate>
      <itunes:author>clso</itunes:author>
      <author>clso</author>
    </item>
    <item>
      <title>divide and conquer? </title>
      <link>http://www.mapleprimes.com/posts/36244-Sparse-Polynomial-Arithmetic-1--Maples?ref=Feed:MaplePrimes:Sparse Polynomial Arithmetic 1:  Maple's Data Structure:Comments#comment61384</link>
      <itunes:summary>&lt;p&gt;What does &amp;quot;divide and conquer&amp;quot; approach mean here?&lt;/p&gt;</itunes:summary>
      <description>The latest comments added to the Post, Sparse Polynomial Arithmetic 1:  Maple's Data Structure</description>
      <guid>61384</guid>
      <pubDate>Tue, 01 Dec 2009 05:35:34 Z</pubDate>
      <itunes:author>jakubi</itunes:author>
      <author>jakubi</author>
    </item>
    <item>
      <title>divide &amp; conquer</title>
      <link>http://www.mapleprimes.com/posts/36244-Sparse-Polynomial-Arithmetic-1--Maples?ref=Feed:MaplePrimes:Sparse Polynomial Arithmetic 1:  Maple's Data Structure:Comments#comment61385</link>
      <itunes:summary>Maple has to multiply two polynomials f and g, each having n terms.  The algorithm shown above uses n^2 memory, which is wasteful because the product probably won't have n^2 terms.  So Maple 13 splits the polynomials in half, i.e. let f = f1 + f2 and g = g1 + g2, where each fi and gj has n/2 terms, and compute (f1*g1) + (f1*g2) + (f2*g1) + (f2*g2).  Note that there is no savings of operations.  Maple has Karatsuba's algorithm, but this is for sparse multivariate polynomials.  It saves a lot of memory though, which helps Maple to run faster.</itunes:summary>
      <description>The latest comments added to the Post, Sparse Polynomial Arithmetic 1:  Maple's Data Structure</description>
      <guid>61385</guid>
      <pubDate>Tue, 01 Dec 2009 08:42:33 Z</pubDate>
      <itunes:author>roman_pearce</itunes:author>
      <author>roman_pearce</author>
    </item>
    <item>
      <title>why not 3</title>
      <link>http://www.mapleprimes.com/posts/36244-Sparse-Polynomial-Arithmetic-1--Maples?ref=Feed:MaplePrimes:Sparse Polynomial Arithmetic 1:  Maple's Data Structure:Comments#comment61386</link>
      <itunes:summary>&lt;p&gt;OK, each of the four products would use only (n/2)(m/2) memory. But by dividing the polynomials in three pieces even less memory would be used, and so on. Handling too many pieces involves an overhead, implying an optimum number of divisions?&lt;/p&gt;</itunes:summary>
      <description>The latest comments added to the Post, Sparse Polynomial Arithmetic 1:  Maple's Data Structure</description>
      <guid>61386</guid>
      <pubDate>Tue, 01 Dec 2009 10:00:51 Z</pubDate>
      <itunes:author>jakubi</itunes:author>
      <author>jakubi</author>
    </item>
    <item>
      <title>divide &amp; conquer</title>
      <link>http://www.mapleprimes.com/posts/36244-Sparse-Polynomial-Arithmetic-1--Maples?ref=Feed:MaplePrimes:Sparse Polynomial Arithmetic 1:  Maple's Data Structure:Comments#comment61387</link>
      <itunes:summary>The multiplications are broken up recursively until it gets down to fairly small polynomials.  You can watch what it does with this bit of code:
&lt;pre&gt;
_bigprod := eval(`expand/bigprod`):
`expand/bigprod` := proc(a,b) printf("%d x %d terms\n", nops(a), nops(b)); _bigprod(a,b): end proc:
f,g := seq(randpoly([x,y,z,t],degree=10,dense),i=1..2):
p := expand(f*g):
&lt;/pre&gt;

Increase the degree or the number of variables to get larger problems.  It's actually inefficient to add lots of polynomials together using Maple's current algorithms, so using four products is probably better than nine.</itunes:summary>
      <description>The latest comments added to the Post, Sparse Polynomial Arithmetic 1:  Maple's Data Structure</description>
      <guid>61387</guid>
      <pubDate>Tue, 01 Dec 2009 10:21:09 Z</pubDate>
      <itunes:author>roman_pearce</itunes:author>
      <author>roman_pearce</author>
    </item>
  </channel>
</rss>