(j3.2006) Asymmetry of REAL, CMPLX
Mon Jan 7 19:38:02 EST 2008
Van Snyder wrote:
> Assuming no KIND argument...
> Where REAL has a real, integer or BOZ argument, its result kind is
> default real.
This is type conversion.
> Where REAL has a complex argument, its result kind is the same as the
This is not type conversion - just component extraction.
> Where CMPLX has a complex, integer or BOZ argument, its result kind is
> default real.
Type conversion again.
> Where CMPLX has a real argument, its result kind is still default real,
Also type conversion. Consistent with all the other cases above.
> NOT the same as the argument. This is the one that's singled out for
> unexpected behavior, and shouldn't be.
I guess it is not unexpected to me.
> REAL <=> COMPLEX ought to work consistently, not REAL => COMPLEX working
> one way, and COMPLEX => REAL working differently.
But they are different animals. Why should they work the same?
> Dan has pointed out that there have been other proposals for a new
> intrinsic, spelt COMPLEX e.g., that would provide symmetry. That's just
> sugar for CMPLX with a KIND argument;
What is the KIND of the result of these:
I think this is also likely to be confusing.
> it doesn't solve the real problem,
> which is the surprising asymmetry that costs time, money and
> J3 mailing list
> J3 at j3-fortran.org
Bill Long longb at cray.com
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120
More information about the J3