LWN: Comments on "GNU MPC 1.0 "Fagus silvatica" released" https://lwn.net/Articles/507756/ This is a special feed containing comments posted to the individual LWN article titled "GNU MPC 1.0 "Fagus silvatica" released". en-us Sat, 20 Sep 2025 06:26:10 +0000 Sat, 20 Sep 2025 06:26:10 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net "Fagus silvatica" https://lwn.net/Articles/508028/ https://lwn.net/Articles/508028/ Max.Hyre ``Fagus slivatica'' is the beech tree. <br/> (Just thought I'd save Google's servers a sudden spike. :-) Wed, 25 Jul 2012 04:07:13 +0000 GNU MPC 1.0 "Fagus silvatica" released https://lwn.net/Articles/507851/ https://lwn.net/Articles/507851/ ballombe <div class="FormattedComment"> PARI/GP first release was in 1986 (before version 1 of the GNU GPL).<br> The GIT repository start a bit before version 2.0.17 (1999/09/16).<br> The first release under the GNU GPL was 2.1.0 (2000/11/17).<br> <p> To cut any speculation: the MPC developers were well-aware of PARI/GP when they decided to write MPC (and conversely, the PARI/GP developers were well-aware of MPC development).<br> </div> Mon, 23 Jul 2012 19:27:08 +0000 and Pari/GP https://lwn.net/Articles/507849/ https://lwn.net/Articles/507849/ wahern <div class="FormattedComment"> Don't forget that both MPC and MPFR are required to build GCC these days, for constant expression evaluation and for loop optimization (<a href="http://gcc.gnu.org/wiki/Graphite-4.8">http://gcc.gnu.org/wiki/Graphite-4.8</a>). So, MPC and MPFR are used individually and as dependencies for other modules.<br> <p> Maybe part of the reason not to use Pari/GP is because it's not organized in a fashion that makes it suitable for all of these different uses.<br> <p> Also, maybe there's no reason at all. Perhaps it just ended up that one developer used MPC for something, which got used by somebody else, etc. IOW, path dependency.<br> <p> </div> Mon, 23 Jul 2012 18:42:52 +0000 MPC is built on exclusively top of GMP, PARI is not https://lwn.net/Articles/507826/ https://lwn.net/Articles/507826/ stevenj There is an obvious reason why GNU would adopt MPC rather than PARI: MPC is designed exclusively as an extension of GNU MP and GNU MPFR, whereas PARI has its own multiprecision arithmetic implementation (although it can optionally use GMP). It makes sense for GNU to centralize on a single MP library. Mon, 23 Jul 2012 16:51:03 +0000 MPC is built on top of GMP https://lwn.net/Articles/507824/ https://lwn.net/Articles/507824/ stevenj What seems to have been missed in this thread is the fact that MPC is <i>not</i> a competitor for GMP, <b>MPC is built on top of GMP</b>. (See the "Requirements" on the MPC web page.) Mon, 23 Jul 2012 16:46:39 +0000 GNU MPC 1.0 "Fagus silvatica" released https://lwn.net/Articles/507816/ https://lwn.net/Articles/507816/ JohnLenz <p>I was curious to see how old the projects were, and <a href="https://gforge.inria.fr/scm/viewvc.php?view=rev&root=mpc&revision=1">revision 1 of MPC</a> was January 2003. PARI is a little older at <a href="http://pari.math.u-bordeaux.fr/cgi-bin/gitweb.cgi?p=pari.git;a=commit;h=a51223d85ed9e65668f86fad77415641b9e0b82b">September 1999</a> but it seems like those early versions of PARI had some <a href="http://pari.math.u-bordeaux.fr/cgi-bin/gitweb.cgi?p=pari.git;a=blob;f=COPYRIGHT;h=d4058dfac876cb3571eafc5a6b20675f529e1272;hb=57c0a8fc602c50b5e71dfaed7f83e3c2cac5a9cc">wierd non-commercial license</a>. Maybe MPC was started before PARI switched to the GPL? In any case, they are both old projects. Mon, 23 Jul 2012 15:56:18 +0000 GNU MPC 1.0 "Fagus silvatica" released https://lwn.net/Articles/507805/ https://lwn.net/Articles/507805/ coriordan <div class="FormattedComment"> I don't think the question of "Why not just choose libpari?" ever even presented itself. PARI and MPC both existed, and the latter got donated to the GNU project and so GNU will use it. What's unusual in that?<br> <p> This is the first release of MPC as a GNU project, so it was originally written independently of the GNU project, so the motives for it being developed in the first place don't come from GNU.<br> </div> Mon, 23 Jul 2012 15:10:18 +0000 GNU MPC 1.0 "Fagus silvatica" released https://lwn.net/Articles/507788/ https://lwn.net/Articles/507788/ jengelh <div class="FormattedComment"> I can imagine a handful of reasons why PARI was left alone (if it was to be chosen *now*; can't say about "back then").<br> 1. MPC is a GNU project.<br> 2. MPC is LGPL3+, PARI is GPL2 (but even that it conveys in an ambiguous fashion).<br> 3. PARI is not autotoolized.<br> 4. PARI's coding style is not GNU (important for the GNU style police!)<br> 5. Something that I have noticed as a distro-level packager: Scientific software often is subpar in code quality, like breaking strict-aliasing and whatnot.<br> </div> Mon, 23 Jul 2012 13:09:45 +0000 GNU MPC 1.0 "Fagus silvatica" released https://lwn.net/Articles/507780/ https://lwn.net/Articles/507780/ rwst <div class="FormattedComment"> Exactly, and I haven't seen any reason why they couldn't just use libpari.<br> </div> Mon, 23 Jul 2012 09:06:42 +0000 and Pari/GP https://lwn.net/Articles/507779/ https://lwn.net/Articles/507779/ rwst <div class="FormattedComment"> What about libpari? Pari/GP uses GMP for arbitrary integers and floating point arithmetic. And it has its own calculator, gp, for a shell-like environment. It is heavily tested and surely suited for such a task.<br> </div> Mon, 23 Jul 2012 09:03:54 +0000 GNU MPC 1.0 "Fagus silvatica" released https://lwn.net/Articles/507762/ https://lwn.net/Articles/507762/ josh <div class="FormattedComment"> Thanks for the detail that GSL only uses hardware floating point rather than arbitrary precision.<br> <p> One detail, though: GNU MP supports arbitrary precision rationals and floats, not just integers.<br> </div> Mon, 23 Jul 2012 00:42:23 +0000 GNU MPC 1.0 "Fagus silvatica" released https://lwn.net/Articles/507760/ https://lwn.net/Articles/507760/ jreiser <div class="FormattedComment"> GMP supports arbitrary ["multiple"] precision integers only. GSL supports Complex using pairs of hardware floating point (probably IEEE-754), and provides higher-level mathematical functions and algorithms than &lt;complex.h&gt;. MPC supports Complex using pairs of arbitrary-precision floating point. Thus each of GMP, GSL, MPC has a different target domain.<br> </div> Mon, 23 Jul 2012 00:36:04 +0000 GNU MPC 1.0 "Fagus silvatica" released https://lwn.net/Articles/507761/ https://lwn.net/Articles/507761/ josh <div class="FormattedComment"> I don't see any signs of complex number support in GNU MP. The GNU Scientific Library (GSL) does seem to have complex number support; I don't know how it compares to MPC. However, /usr/include/complex.h does not support arbitrary-precision complex numbers, just complex numbers consisting of two floats or doubles.<br> </div> Mon, 23 Jul 2012 00:33:11 +0000 GNU MPC 1.0 "Fagus silvatica" released https://lwn.net/Articles/507759/ https://lwn.net/Articles/507759/ pr1268 <p><font class="QuotedText"><blockquote>arbitrarily high precision and correct rounding of the result</blockquote></font></p> <p>Why do we need another library for complex numbers? Aren't these already supported in <a href="http://www.gnu.org/software/gsl/">GSL</a> and/or <a href="http://gmplib.org/">GMP</a>? And what about <tt>complex.h</tt> I found in <tt>/usr/include</tt>?</p> Mon, 23 Jul 2012 00:23:14 +0000