bugGNU Octave - Bugs: bug #44280, atan, atand have different phase...

 
 

bug #44280: atan, atand have different phase from other SW when outside principal branch.

Submitted by:  None
Submitted on:  Tue 17 Feb 2015 01:31:28 AM UTC  
 
Category: Octave FunctionSeverity: 3 - Normal
Priority: 5 - NormalItem Group: Incorrect Result
Status: FixedAssigned to: None
Originator Name: jeff pantazesOriginator Email: -unavailable-
Open/Closed: ClosedRelease: 3.8.1
Operating System: Mac OS

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Tue 17 Feb 2015 04:35:03 PM UTC, comment #5:

@Michael: You're right. Even if other SW packages have chosen a particular phase for the return value, we need to follow Matlab's lead in this regard for compatibility. Closing report.

Rik <rik5>
Project Administrator
Tue 17 Feb 2015 04:30:43 PM UTC, comment #4:

in Matlab 2014a:

>> atand(5i)


ans =

-90.0000 +11.6157i

>> atan(5i)


ans =

-1.5708 + 0.2027i

>> version


ans =

8.3.0.532 (R2014a)

Should we accept this and leave things as they are?

Michael Godfrey <godfrey>
Project Member
Tue 17 Feb 2015 04:12:42 PM UTC, comment #3:

Thanks. This has already been partially addressed in the development branch that will be released as Octave 4.0 within the next month or so. The NEWS file reads

However, I do note that atan (and by extension atand), do not produce the same phase. Re-titling the bug report to reflect this remaining issue.

Rik <rik5>
Project Administrator
Tue 17 Feb 2015 04:14:51 AM UTC, comment #2:

Oh, I notice you have version 3.8.1. The complex conjugation for asin() may be this bug

https://savannah.gnu.org/bugs/?func=detailitem&item_id=43349

that was fixed in October 2014. So maybe this isn't as severe a problem as I thought. So, that is atan() that has a problem (atand is derivative of atan).

Dan Sebald <sebald>
Tue 17 Feb 2015 03:31:14 AM UTC, comment #1:

Thanks for reporting this. I've confirmed one bug for sure.

Here's what I'm seeing on a linux system:

>> asind(3)

ans = 90.000 - 100.998i

>> atand(5i)

ans = -90.000 + 11.616i

>> atan(5i)

ans = -1.57080 + 0.20273i

>> asin(3)

ans = 1.5708 - 1.7627i

This looks to be an incorrect formula for arc tangent in liboctave/numberic/lo-mappers.c:

I think it should be (i - x) / (i + x) in the argument of the complex logarithm. Or i/2 * (ln(i-x) - ln(i+x)). In the case of x=5i, something for which the argument of the logarithm is solely imaginary (i.e., -4i and 6i), the imaginary portion of the logarithm in both cases is -pi/2i - -pi/2i = -pi*i, multiplying by i/2 gives us pi/2, or 90 degrees.

So, yes, atand() seems like a bug. But more than that we should have some good test cases to find these bugs, and that's a bit of a project.

But I don't know why your build of Octave is having problems with asin() as well. Different library for the Apple products? I don't know. I will look into this more and try making some guesses.

Dan Sebald <sebald>
Tue 17 Feb 2015 01:31:28 AM UTC, original submission:

GNU Octave, version 3.8.1
Octave was configured for "x86_64-apple-darwin14.1.0".

octave --eval "asind(3)" yields 90.000 + 100.998i
however wolfram alpha yields
89.999999999999...-100.9979734210524220... i
Please note the negative sign next to the imaginary number.
My personal calculations give 90 + -100.997973421052i
Again I am noting the negative sign not the rounding.

Found same for:
octave --eval "atand(5i)"
result: -90.000 + 11.616i
wolfram alpha:
89.99999999... + 11.61571971720673661409100... i
personal:
90+11.6157197172067i
note the -90 instead of 90

atan(5i)
octave: -1.57080 + 0.20273i
wolfram alpha: 1.5707963267... + 0.20273255... i
personal: 1.570796326+0.202732554i

asin(3)
octave: 1.5708 + 1.7627i
wolfram alpha: 1.570796326... -1.7627471740... i
personal: 1.570796326+-1.76274717i

Most likely I am in error, if so I apologize ahead of time. Thanks for looking at this.

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by godfrey (Posted a comment)
  • -unavailable- added by rik5 (Posted a comment)
  • -unavailable- added by sebald (Posted a comment)
  • -unavailable- added by None (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 17 Feb 2015 04:35:03 PM UTCrik5StatusNone=>Fixed
      Open/ClosedOpen=>Closed
    Tue 17 Feb 2015 04:12:42 PM UTCrik5Summaryasin, asind, atan, and atand may have incorrect values=>atan, atand have different phase from other SW when outside principal branch.

    Back to the top


    Powered by Savane 3.1-cleanup1