The Motley Fool Discussion Boards

Previous Page

Fun & Games / Math Recreations & Puzzles

URL:  http://boards.fool.com/lorencobb-not-in-gnu-fortran-i-believe-the-29560828.aspx

Subject:  Re: A (complex) puzzle Date:  9/23/2011  3:06 PM
Author:  rmhj Number:  5785 of 5858

LorenCobb: Not in Gnu Fortran, I believe. The Fortran call log(x), where x is complex, generates a complex answer (the principal value of the complex logarithm). These doc files

http://gcc.gnu.org/onlinedocs/gfortran/LOG.html

say as much, though they do not specify what would happen if the log function is called on a negative constant.


That is what I'd expect, FORTRAN having had COMPLEX data types since day IV (if not earlier). However, the argument is a REAL (or integer?), and I've long since forgotten FORTRAN's type conversion and promotion rules (and I don't know what they say about evaluation of constants at compile time). Unlike C, they're probably quite strict (ISTR that parentheses are inviolate in FORTRAN).

If you're angling to do all this in complex arithmetic, then the result probably comes out very weird if you apply Euler's identity, e^(i(theta)) = cos(theta) = i*sin(theta) after doing the original exponent rearrangement. If you do, then you get the ln(-4) ~= 1.386... + pi*i. Multiply by 3/2 (2.07944... + 4.7123...i) and exponentiate, and the result is -8i.

But I think most of us would understand any of these answers (domain error, 8, -8i).

rj
Copyright 1996-2014 trademark and the "Fool" logo is a trademark of The Motley Fool, Inc. Contact Us