php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #70568 atan2 returns NAN
Submitted: 2015-09-24 08:59 UTC Modified: 2018-03-17 17:47 UTC
Votes:1
Avg. Score:4.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: goodnickoff at gmail dot com Assigned: cmb (profile)
Status: Feedback Package: Math related
PHP Version: * OS: *
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2015-09-24 08:59 UTC] goodnickoff at gmail dot com
Description:
------------
If both parameters are INF or -INF sometimes atan2 function returns NAN but sometimes -2.3561944901923.

results on different versions of PHP and OS:

-2.3561944901923%
PHP 5.5.27 (cli) (built: Jul 23 2015 00:21:59) 
macos 64bit


NAN  
PHP 5.4.39 (cli) (built: Mar 19 2015 22:16:19) 
Thread Safety enabled
Windows NT 6.1 build 7601 (Windows 7 Business Edition Service Pack 1) i586 x86


-2.3561944901923
PHP Version 5.5.21 Build Date Jan 21 2015 14:38:49
Thread Safety enabled
Windows NT CZC4433C6H-HP 6.1 build 7601 (Windows 7 Business Edition Service Pack 1) AMD64


NAN
PHP 5.6.11 (cli) (built: Jul  9 2015 20:55:40) x86
Thread Safety enabled
Windows NT 10.0; Win64; x64 (Build 10240)



Test script:
---------------
php -r 'echo atan2(-INF, -INF);'

Expected result:
----------------
-2.3561944901923

Actual result:
--------------
NAN

Patches

php-5.6.13-atan2.diff (last revision 2015-09-30 22:13 UTC) by n13 at inbox dot ru)

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2015-09-24 09:24 UTC] goodnickoff at gmail dot com
-Operating System: All +Operating System: * -PHP Version: 5.6.13 +PHP Version: *
 [2015-09-24 09:24 UTC] goodnickoff at gmail dot com
Occurs on different versions of PHP
 [2015-09-24 12:05 UTC] goodnickoff at gmail dot com
This happens on 32 bit php installed on 64 bit OS.
 [2015-09-30 20:51 UTC] n13 at inbox dot ru
GCC 4.8.1 from MinGW and VS Community 2013 gives the same result
Code:
  printf("%lf\n",atan2(-INFINITY,-INFINITY));
  printf("%lf\n",atan2(+INFINITY,-INFINITY));
  printf("%lf\n",atan2(-INFINITY,+INFINITY));
  printf("%lf\n",atan2(+INFINITY,+INFINITY));
Output:
  -1.#IND00
  -1.#IND00
  -1.#IND00
  -1.#IND00
Output from gcc 4.9.2 (Debian)
  -2.356194
   2.356194
  -0.785398
   0.785398
 [2018-03-17 17:47 UTC] cmb@php.net
-Status: Open +Status: Feedback -Assigned To: +Assigned To: cmb
 [2018-03-17 17:47 UTC] cmb@php.net
This issue appears to be indeed related to the C compiler or the
runtime environment.  I'm not convinced that we should apply a
workaround similar to the one in the supplied patch, especially,
since the issue appears to have been resolved for MSVC 14 and 15
at least.

Can anybody else reproduce the described misbehavior with
supported PHP versions on contemporary compilers/runtimes?
 
PHP Copyright © 2001-2018 The PHP Group
All rights reserved.
Last updated: Sun Nov 19 01:31:42 2017 UTC