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: 2015-09-24 12:05 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:
Status: Open 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
 
PHP Copyright © 2001-2018 The PHP Group
All rights reserved.
Last updated: Sun Nov 19 01:31:42 2017 UTC