I am familiar with the inline option.  What it does is not what I had
in mind.  I should have been more specific.  I meant independent C
implementations.  IBM C and IBM PL/I share the same optimizing and
code-generation machinery.

A [simple] mathematical example will make the appropriate distinctions clearer.

Consider

declare i signed binary fixed(63,0), ((x, y) real, z complex) decimal
float(16), abs builtin ;
. . .
i = abs(i) ;      /* example 1 */
x = abs(x) ;    /* example 2 */
y = abs(z) ;    /* example 3 */

Example 1 and example 2 are always evaluated by trivial compiled code.
 They reduce conceptually to a single machine instruction.

Example 3 is instead evaluated by a library subroutine.  Why?  Recall
that for complex
z = a + bi, abs(z) = sqrt(a**2 + b**2).

Here, as usual, generic functions employing syntactically identical
constructs are evaluated in datatype- and domain-specific ways.   (All
this is of course irrelevant for FORTRAN-like C, which does not have
generic functions.)

John Gilmore, Ashland, MA 01721 - USA

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to