#41108 [Ver->Csd]: document when pow() and friends first allowed negative exponents

From: Date: Wed, 16 May 2007 21:49:41 +0000
Subject: #41108 [Ver->Csd]: document when pow() and friends first allowed negative exponents
References: 1  Groups: php.doc 
Request: Send a blank email to phpdoc+get-969376327@lists.php.net to get a copy of this message
ID: 41108 Updated by: ljbuesch@php.net Reported By: jack dot nerad at comcast dot net -Status: Verified +Status: Closed Bug Type: Documentation problem PHP Version: Irrelevant New Comment: This bug has been fixed in the documentation's XML sources. Since the online and downloadable versions of the documentation need some time to get updated, we would like to ask you to be a bit patient. Thank you for the report, and for helping us make our documentation better. Previous Comments: ------------------------------------------------------------------------ [2007-05-16 13:57:17] ljbuesch at purdue dot edu As long as anyone isn't against the last patch, I will submit that patch later tonight and close this bug report. ------------------------------------------------------------------------ [2007-04-19 02:27:02] ljbuesch at purdue dot edu Just a quick note on the Windows platform comment... it was commented in the previous bug report and not in the source comments. ------------------------------------------------------------------------ [2007-04-19 02:25:38] ljbuesch at purdue dot edu I apologize for not taking a better look at this documentation bug. It appears that from bug#25751 was the first one to report that you cannot use negative bases in pow(). This is because it in the bug report, it would have resulted in a complex number, which PHP (at that time) did not support. I am unsure if PHP supports complex numbers at this time. In the bug report, it had shown a bogus result for the computation. In the comments for math.c, version 1.69 it said that for PHP <=4.0.6 it would return bogus results for the Windows platform. Since the bug report did not include a version number, I would assume that it was using that version. In bug#40729, it was shown that PHP can do negative bases in an example, and they assumed that it was a mistake made in the the pow() documentation, and that what they meant was that it couldn’t do negative exponents (an error in the fix for #25751). The documentation was then changed to say it cannot handle negative powers. I am not sure how you wanted the examples to be commented though, so I did what I thought was best. ### Eclipse Workspace Patch 1.0 #P PHPDoc Index: en/reference/math/functions/pow.xml =================================================================== RCS file: /repository/phpdoc/en/reference/math/functions/pow.xml,v retrieving revision 1.11 diff -u -r1.11 pow.xml --- en/reference/math/functions/pow.xml 31 Mar 2007 19:18:23 -0000 1.11 +++ en/reference/math/functions/pow.xml 19 Apr 2007 02:24:46 -0000 @@ -16,11 +16,6 @@ Returns <parameter>base</parameter> raised to the power of <parameter>exp</parameter>. </para> - <note> - <para> - PHP cannot handle negative <parameter>exp</parameter>s. - </para> - </note> <warning> <para> In PHP 4.0.6 and earlier <function>pow</function> always returned @@ -76,7 +71,8 @@ <entry>Since 4.0.6</entry> <entry> The function will now return <type>integer</type> results if possible, - before this it always returned a <type>float</type> result. + before this it always returned a <type>float</type> result. For older + versions, you may receive a bogus result for complex numbers. </entry> </row> <row> @@ -104,8 +100,8 @@ echo pow(-1, 20); // 1 echo pow(0, 0); // 1 -echo pow(-1, 5.5); // error - +echo pow(-1, 5.5); // PHP >4.0.6 NAN +echo pow(-1, 5.5); // PHP <=4.0.6 1.#IND ?> ]]> </programlisting> ------------------------------------------------------------------------ [2007-04-18 21:46:24] tularis@php.net Looks like php 4.2.0 introduced better pow() support (the whole function was re-done at revision 1.70 (just before 4.2.0rc1 release). ------------------------------------------------------------------------ [2007-04-18 21:32:27] philip@php.net Thank you guys for the bug report and patch, it's the right idea but the php manual has change logs for functions. Tasks for tackling this bug report: - Find out exactly which PHP version(s) this behavior changed - Add an entry to the changelog role in math/functions/pow.xml - Add an example to these docs using a negative exponent, and if appropriate add version info within the example comments - Decide if other functions were affected by this change in the php sources (See also: NEWS, php-src/) - If a 'fairly recent' change, add a nice example that works in all versions - Clean user notes A good starting place: - http://cvs.php.net/viewvc.cgi/php-src/ext/standard/math.c?view=log - http://php.net/manual/en/function.pow ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/41108 -- Edit this bug report at http://bugs.php.net/?id=41108&edit=1

« previous php.doc (#969376327) next »