<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Math library functions that seem unnecessary</title>
	<atom:link href="http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/</link>
	<description>The blog of John D. Cook</description>
	<lastBuildDate>Sat, 11 Feb 2012 22:42:11 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Stand-alone scientific code &#8212; The Endeavour</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-86689</link>
		<dc:creator>Stand-alone scientific code &#8212; The Endeavour</dc:creator>
		<pubDate>Tue, 07 Jun 2011 12:54:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-86689</guid>
		<description>[...] This page contains C++, Python, and C# code for special functions and random number generation with no external dependencies. Do whatever you want with it, no strings attached. Use at your own risk. I recently added software for gamma and log gamma functions, as well as a few random number generators. (Why separate functions for the gamma function and its logarithm? See explanation here.) [...]</description>
		<content:encoded><![CDATA[<p>[...] This page contains C++, Python, and C# code for special functions and random number generation with no external dependencies. Do whatever you want with it, no strings attached. Use at your own risk. I recently added software for gamma and log gamma functions, as well as a few random number generators. (Why separate functions for the gamma function and its logarithm? See explanation here.) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zavolaj! &#171; Just Rakudo It</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-62805</link>
		<dc:creator>Zavolaj! &#171; Just Rakudo It</dc:creator>
		<pubDate>Fri, 28 Jan 2011 02:32:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-62805</guid>
		<description>[...] been thinking for a while that I should look at adding the extended standard math library functions to Perl 6. And I&#8217;d been thinking I should try to do something with Zavolaj, the Perl 6 native [...]</description>
		<content:encoded><![CDATA[<p>[...] been thinking for a while that I should look at adding the extended standard math library functions to Perl 6. And I&#8217;d been thinking I should try to do something with Zavolaj, the Perl 6 native [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TedC</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-58557</link>
		<dc:creator>TedC</dc:creator>
		<pubDate>Mon, 03 Jan 2011 00:07:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-58557</guid>
		<description>Nice article.  I had not used the C library&#039;s tgamma, lgamma, erf and erfc.  Instead I had coded up algorithms myself several years ago.</description>
		<content:encoded><![CDATA[<p>Nice article.  I had not used the C library&#8217;s tgamma, lgamma, erf and erfc.  Instead I had coded up algorithms myself several years ago.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Posts worth noticing &#124; Honglang Wang&#39;s Blog</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-57838</link>
		<dc:creator>Posts worth noticing &#124; Honglang Wang&#39;s Blog</dc:creator>
		<pubDate>Wed, 29 Dec 2010 20:24:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-57838</guid>
		<description>[...] Math library functions that seem unnecessary [...]</description>
		<content:encoded><![CDATA[<p>[...] Math library functions that seem unnecessary [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: YTed</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-44420</link>
		<dc:creator>YTed</dc:creator>
		<pubDate>Tue, 24 Aug 2010 08:09:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-44420</guid>
		<description>Hello, John.
This is a manual trackback ;)
I am one of the translators of &lt;a href=&quot;http://code.google.com/p/hackerzhcn/&quot; rel=&quot;nofollow&quot;&gt;&lt;i&gt;Hacker Monthly&lt;/i&gt; Chinese Translation Group&lt;/a&gt; (Translation by the project team all articles (documents) follow Creative Commons 3.0 BY-NC-SA agreement). As this post is published in &lt;i&gt;Hacker Monthly&lt;/i&gt; Issue 3 , I have translated it into Chinese today. It&#039;s really a good article. And thanks for giving us such many articles :) If you do not want this be published , let us know , we will remove it at once.</description>
		<content:encoded><![CDATA[<p>Hello, John.<br />
This is a manual trackback <img src='http://www.johndcook.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
I am one of the translators of <a href="http://code.google.com/p/hackerzhcn/" rel="nofollow"><i>Hacker Monthly</i> Chinese Translation Group</a> (Translation by the project team all articles (documents) follow Creative Commons 3.0 BY-NC-SA agreement). As this post is published in <i>Hacker Monthly</i> Issue 3 , I have translated it into Chinese today. It&#8217;s really a good article. And thanks for giving us such many articles <img src='http://www.johndcook.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  If you do not want this be published , let us know , we will remove it at once.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Travels in a Mathematical World</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-41089</link>
		<dc:creator>Travels in a Mathematical World</dc:creator>
		<pubDate>Fri, 02 Jul 2010 10:12:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-41089</guid>
		<description>&lt;strong&gt;Carnival of Mathematics #67...&lt;/strong&gt;

John D. Cook at The Endeavour  writes Math library functions that seem unnecessary, in which he gives examples of functions in the standard C math library that seem unnecessary at first glance, and the special cases that make them indispensable....</description>
		<content:encoded><![CDATA[<p><strong>Carnival of Mathematics #67&#8230;</strong></p>
<p>John D. Cook at The Endeavour  writes Math library functions that seem unnecessary, in which he gives examples of functions in the standard C math library that seem unnecessary at first glance, and the special cases that make them indispensable&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ruben Berenguel</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39627</link>
		<dc:creator>Ruben Berenguel</dc:creator>
		<pubDate>Tue, 08 Jun 2010 09:32:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39627</guid>
		<description>Fairly interesting. I didn&#039;t know about these functions (and it is a pity, I guess I could use log1p and exp1p quite often!), and indeed, the C math library shows a lot of detailed thinking every time you consider it. But I still wonder why pi has to be M_PI and not just PI ;)

Ruben</description>
		<content:encoded><![CDATA[<p>Fairly interesting. I didn&#8217;t know about these functions (and it is a pity, I guess I could use log1p and exp1p quite often!), and indeed, the C math library shows a lot of detailed thinking every time you consider it. But I still wonder why pi has to be M_PI and not just PI <img src='http://www.johndcook.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Ruben</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Art</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39616</link>
		<dc:creator>Art</dc:creator>
		<pubDate>Tue, 08 Jun 2010 04:20:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39616</guid>
		<description>This is the first computer-related thing I&#039;ve read that has made me feel &quot;officially old.&quot;  I&#039;m 38, and the whole idea of precision with logarithms seems oxymoronic.  I learned log tables right at the time when they were just becoming irrelevant, and embedded in the process was the understanding that they were a way of calculating quickly by forgoing a certain level of precision.

For it to matter if the log of 1.000000000wheeeeeee16 is correct or an error makes me feel like an innumerate old man.</description>
		<content:encoded><![CDATA[<p>This is the first computer-related thing I&#8217;ve read that has made me feel &#8220;officially old.&#8221;  I&#8217;m 38, and the whole idea of precision with logarithms seems oxymoronic.  I learned log tables right at the time when they were just becoming irrelevant, and embedded in the process was the understanding that they were a way of calculating quickly by forgoing a certain level of precision.</p>
<p>For it to matter if the log of 1.000000000wheeeeeee16 is correct or an error makes me feel like an innumerate old man.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39605</link>
		<dc:creator>John</dc:creator>
		<pubDate>Mon, 07 Jun 2010 20:55:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39605</guid>
		<description>Thanks. I updated the post with the correction.</description>
		<content:encoded><![CDATA[<p>Thanks. I updated the post with the correction.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ronnie</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39603</link>
		<dc:creator>Ronnie</dc:creator>
		<pubDate>Mon, 07 Jun 2010 20:36:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39603</guid>
		<description>I believe you meant to say &quot;... because machine precision does not contain enough significant bits to distinguish 1 + x from &lt;strong&gt;1&lt;/strong&gt;&quot; instead of 1+x from x.</description>
		<content:encoded><![CDATA[<p>I believe you meant to say &#8220;&#8230; because machine precision does not contain enough significant bits to distinguish 1 + x from <strong>1</strong>&#8221; instead of 1+x from x.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brooks Moses</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39598</link>
		<dc:creator>Brooks Moses</dc:creator>
		<pubDate>Mon, 07 Jun 2010 17:57:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39598</guid>
		<description>alfC: What you&#039;re missing is some subtle implications of the fact that floating-point numbers are discrete, not continuous.  It&#039;s possible for both implementations to provide exact answers -- where, by exact, we mean rounded to the nearest representable value.  In fact, not only is it possible, it&#039;s relatively common; I think IEEE gives you something like a single bit of wiggle room, but one bit is not enough to worry about.  Thus, for the same input, both functions will give essentially the same output, and both of them will be exact for any relevant purpose.  Thus, the subtleties:

* There may be differences in performance, because one has more patches than the other.  If you add additional patching, you&#039;re making the situation worse than either option.

* That &quot;for the same input&quot; caveat is really the key here.  Because floating-point numbers are discrete and unevenly spaced, you CAN&#039;T give them the same input.  In particular, if X is 1 + 1e-57, you can pass 1e-57 to log1p, but you can&#039;t pass 1 + 1e57 to log -- the closest available floating-point number you can pass to log is just 1.  The accuracy distinctions are entirely about the input that you give to the functions, and have nothing to do with the internal function implementation itself.

Thus, you want to use log1p() for numbers very close to 1 that can&#039;t be accurately represented directly -- but if, and only if, your algorithm is already designed to compute and store them as offsets from 1 rather than storing them directly (i.e., as offsets from 0).  If you are storing those inputs directly, you gain nothing from writing things as log1p(x - 1), because your algorithm has already lost the any extra precision of those inputs it might have had in computing and storing them that way.  If x is already rounded to 1 rather than a conceptual representation of 1 + 1e-57 (where the &quot;1 +&quot; is implied and only the 1e-57 is stored in the variable in memory), then subtracting 1 from it gets you 0, not 1e-57, and using log1p is no help at all.</description>
		<content:encoded><![CDATA[<p>alfC: What you&#8217;re missing is some subtle implications of the fact that floating-point numbers are discrete, not continuous.  It&#8217;s possible for both implementations to provide exact answers &#8212; where, by exact, we mean rounded to the nearest representable value.  In fact, not only is it possible, it&#8217;s relatively common; I think IEEE gives you something like a single bit of wiggle room, but one bit is not enough to worry about.  Thus, for the same input, both functions will give essentially the same output, and both of them will be exact for any relevant purpose.  Thus, the subtleties:</p>
<p>* There may be differences in performance, because one has more patches than the other.  If you add additional patching, you&#8217;re making the situation worse than either option.</p>
<p>* That &#8220;for the same input&#8221; caveat is really the key here.  Because floating-point numbers are discrete and unevenly spaced, you CAN&#8217;T give them the same input.  In particular, if X is 1 + 1e-57, you can pass 1e-57 to log1p, but you can&#8217;t pass 1 + 1e57 to log &#8212; the closest available floating-point number you can pass to log is just 1.  The accuracy distinctions are entirely about the input that you give to the functions, and have nothing to do with the internal function implementation itself.</p>
<p>Thus, you want to use log1p() for numbers very close to 1 that can&#8217;t be accurately represented directly &#8212; but if, and only if, your algorithm is already designed to compute and store them as offsets from 1 rather than storing them directly (i.e., as offsets from 0).  If you are storing those inputs directly, you gain nothing from writing things as log1p(x &#8211; 1), because your algorithm has already lost the any extra precision of those inputs it might have had in computing and storing them that way.  If x is already rounded to 1 rather than a conceptual representation of 1 + 1e-57 (where the &#8220;1 +&#8221; is implied and only the 1e-57 is stored in the variable in memory), then subtracting 1 from it gets you 0, not 1e-57, and using log1p is no help at all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alfC</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39592</link>
		<dc:creator>alfC</dc:creator>
		<pubDate>Mon, 07 Jun 2010 15:51:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39592</guid>
		<description>@John: as usual with FP transcendental functions I am missing something. Common sense tells me that there &quot;must&quot; be a trade off. Otherwise to compute log(x), it would be always better to compute log(x-1+1) i.e logp1(x-1) and I don&#039;t think that is the case. so the best next optimal strategy will be patching both functions. (After patching there will be a jump, then we have to smooth the jump which is another problem per se, because the derivatives get crazy, and more sophisticated smoothing is necesary, etc, according to this logic it is very hard to reach the &#039;perfect&#039; numerical log function for any x, and it not clear how).</description>
		<content:encoded><![CDATA[<p>@John: as usual with FP transcendental functions I am missing something. Common sense tells me that there &#8220;must&#8221; be a trade off. Otherwise to compute log(x), it would be always better to compute log(x-1+1) i.e logp1(x-1) and I don&#8217;t think that is the case. so the best next optimal strategy will be patching both functions. (After patching there will be a jump, then we have to smooth the jump which is another problem per se, because the derivatives get crazy, and more sophisticated smoothing is necesary, etc, according to this logic it is very hard to reach the &#8216;perfect&#8217; numerical log function for any x, and it not clear how).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39591</link>
		<dc:creator>John</dc:creator>
		<pubDate>Mon, 07 Jun 2010 15:37:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39591</guid>
		<description>@alfC: As for patching, when in doubt call the more sophisticated functions. For example, you can call log1p(x) for &lt;strong&gt;any&lt;/strong&gt; x. It will produce an accurate answer no matter the value of x. If x is large, it will call log(1+x). Here you pay a very slight performance penalty compared to calling log(1 + x) yourself, but you&#039;re protected against a loss of precision in case x is small.</description>
		<content:encoded><![CDATA[<p>@alfC: As for patching, when in doubt call the more sophisticated functions. For example, you can call log1p(x) for <strong>any</strong> x. It will produce an accurate answer no matter the value of x. If x is large, it will call log(1+x). Here you pay a very slight performance penalty compared to calling log(1 + x) yourself, but you&#8217;re protected against a loss of precision in case x is small.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alfC</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39590</link>
		<dc:creator>alfC</dc:creator>
		<pubDate>Mon, 07 Jun 2010 15:32:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39590</guid>
		<description>right, it is obvious that due to floating point arithmetic different algorithms are better than other in different regions of the domain. What always bothered me was how to patch the algorithms?, what to do with the &quot;jump&quot; at these regions?. Maybe one controlled &quot;jump&quot; is just better that many unavoidable jumps (due to &#039;random&#039; relative error)  if a single algorithm is uses.
The problem is even worst when patching functions in the complex domain, where the jump may be defined in a circle.</description>
		<content:encoded><![CDATA[<p>right, it is obvious that due to floating point arithmetic different algorithms are better than other in different regions of the domain. What always bothered me was how to patch the algorithms?, what to do with the &#8220;jump&#8221; at these regions?. Maybe one controlled &#8220;jump&#8221; is just better that many unavoidable jumps (due to &#8216;random&#8217; relative error)  if a single algorithm is uses.<br />
The problem is even worst when patching functions in the complex domain, where the jump may be defined in a circle.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39586</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Mon, 07 Jun 2010 14:24:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39586</guid>
		<description>you need log gamma because factorials grow very quickly, so quickly that once you reach a certain point you&#039;re out of range for doubles, at those magnitudes you might as well just be tracking the magnitude anyways.

I suspect lgamma is implemented a little differently than log(tgamma(x)), as tgamma doesn&#039;t have enough precision.</description>
		<content:encoded><![CDATA[<p>you need log gamma because factorials grow very quickly, so quickly that once you reach a certain point you&#8217;re out of range for doubles, at those magnitudes you might as well just be tracking the magnitude anyways.</p>
<p>I suspect lgamma is implemented a little differently than log(tgamma(x)), as tgamma doesn&#8217;t have enough precision.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stolee</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39585</link>
		<dc:creator>stolee</dc:creator>
		<pubDate>Mon, 07 Jun 2010 14:23:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39585</guid>
		<description>I would guess that you should think of log(x) = log1p(x-1) instead.  This is because log(x) is not defined at zero, so its Taylor series is commonly centered at 1.  (See http://en.wikipedia.org/wiki/Taylor_series#Examples ).</description>
		<content:encoded><![CDATA[<p>I would guess that you should think of log(x) = log1p(x-1) instead.  This is because log(x) is not defined at zero, so its Taylor series is commonly centered at 1.  (See <a href="http://en.wikipedia.org/wiki/Taylor_series#Examples" rel="nofollow">http://en.wikipedia.org/wiki/Taylor_series#Examples</a> ).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alternate</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39584</link>
		<dc:creator>alternate</dc:creator>
		<pubDate>Mon, 07 Jun 2010 14:22:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39584</guid>
		<description>What&#039;s wrong with having helper wrapper functions provided by a core language library? The library authors must have identified a need of replacing those small helper functions which they ended up writing time and time again, no? :-)</description>
		<content:encoded><![CDATA[<p>What&#8217;s wrong with having helper wrapper functions provided by a core language library? The library authors must have identified a need of replacing those small helper functions which they ended up writing time and time again, no? <img src='http://www.johndcook.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Math library functions that seem unnecessary » News, Hacker, View, Comments » App Developer Tyler Johnson Blog - tjoozey.com</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39583</link>
		<dc:creator>Math library functions that seem unnecessary » News, Hacker, View, Comments » App Developer Tyler Johnson Blog - tjoozey.com</dc:creator>
		<pubDate>Mon, 07 Jun 2010 14:09:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39583</guid>
		<description>[...] full post on Hacker News       If you enjoyed this article, please consider sharing it!              Tagged with: functions [...]</description>
		<content:encoded><![CDATA[<p>[...] full post on Hacker News       If you enjoyed this article, please consider sharing it!              Tagged with: functions [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39582</link>
		<dc:creator>John</dc:creator>
		<pubDate>Mon, 07 Jun 2010 14:04:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39582</guid>
		<description>Thanks for catching the typo. I updated the post.</description>
		<content:encoded><![CDATA[<p>Thanks for catching the typo. I updated the post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39580</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Mon, 07 Jun 2010 13:59:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39580</guid>
		<description>&gt; Function log1p(x) = log(1 + p)
typo, should be: ... = log(1 + x)</description>
		<content:encoded><![CDATA[<p>&gt; Function log1p(x) = log(1 + p)<br />
typo, should be: &#8230; = log(1 + x)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tweets that mention Math library functions that seem unnecessary — The Endeavour -- Topsy.com</title>
		<link>http://www.johndcook.com/blog/2010/06/07/math-library-functions-that-seem-unnecessary/comment-page-1/#comment-39579</link>
		<dc:creator>Tweets that mention Math library functions that seem unnecessary — The Endeavour -- Topsy.com</dc:creator>
		<pubDate>Mon, 07 Jun 2010 13:29:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=5548#comment-39579</guid>
		<description>[...] This post was mentioned on Twitter by John D. Cook, Tracy Harms. Tracy Harms said: RT @JohnDCook: New post: Math library functions that seem unnecessary http://bit.ly/auoC65 [...]</description>
		<content:encoded><![CDATA[<p>[...] This post was mentioned on Twitter by John D. Cook, Tracy Harms. Tracy Harms said: RT @JohnDCook: New post: Math library functions that seem unnecessary <a href="http://bit.ly/auoC65" rel="nofollow">http://bit.ly/auoC65</a> [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.467 seconds -->

