(j3.2006) Public Comment J32013

Michael Ingrassia michaeli
Tue Jul 8 20:23:04 EDT 2008

To: J3
From: Michael Ingrassia
Subject: Public Comment J32013
Date: 2008 July 08

Commenter's Subject was "additional intrinsic functions"

I suggest adding a few more functions to the list
of intrinsic functions.

The standard should include an intrinsic function
named COMPLEX.  The function should be of the form

       COMPLEX(X, [Y, KIND])

where X, Y, and KIND are defined as for the
intrinsic function CMPLX.  Unlike CMPLX, if both
X AND Y are present and are REAL and KIND is not
present, the kind type parameter values of X and
Y shall be the same and the kind type parameter
value of the result shall be the same as the kind
type parameter values of X and Y.

The degree trigonometric functions COSD, SIND, and
TAND are supplied in most Fortran implementations
already.  I have seen several examples of functions
written by users to implement the degree
trigonometric functions.  Those functions often
produce poor results.  Producing good results
requires a better understanding of floating-point
arithmetic than many users have.  Producing
high-quality results (good to within 0.5+epsilon
ulps) is probably beyond the ability of all but a
few dozen users.

Fortran should also supply routines the functions
EXPM1 and LOGP1, where EXPM1(X) computes EXP(X-1.0)
and LOGP1(X) computes LOG(X+1.0).  The functions
should be computed to greater accuracy than the
straightforward implementation.  These are functions
for people who know very well how floating-point
arithmetic works.  They offer knowledgeable users
a chance to produce highly accurate results in
some cases where it would be difficult to produce
accurate results without using such functions.


More information about the J3 mailing list