To: J3 07-330 From: Bill Long Subject: BOZ args to intrinsics, and other bit fixes Date: 2007 November 09 References: J3/07-007r3, WG5/N1695 Discussion Part 4 of paper N1695 contains the list of new intrinsics related to bit manipulation for which BOZ arguments are allowed. Edits are provided to put this capability back into the f08 draft. Also, the standard text about intepreting integers as bit sequences is added to some of the new shift intrinsics since those functions are now described in terms of type integer rather than type bits. A wording fix for SHIFTL is also supplied. Edits to 07-007r3: -------------------------------- At the following locations: [382:18-21] In 13.7.78 IAND, [384:34-385:1] In 13.7.84 IEOR, [386:33-36] In 13.7.88 IOR, replace the Argument and Result Characteristics descriptions with: "Arguments. I shall be of type integer or a . J shall be of type integer or a . If both I and J are of type integer they shall have the same kind type parameter. I and J shall not both be s. Result Characteristics. Same as I if I is of type integer; otherwise, same as J." ----------------------------- At the following locations: [371:14-18] In 13.7.55 DSHIFTL, [371:27-31] In 13.7.56 DSHIFTR, replace the Argument and Result Characteristics descriptions with: "Arguments. I shall be of type integer or a . J shall be of type integer or a . If both I and J are of type integer they shall have the same kind type parameter. I and J shall not both be s. SHFT shall be of type integer. It shall be nonnegative. It shall be less than or equal to BIT_SIZE(I) if I is of type integer; otherwise it shall be less than or equal to BIT_SIZE(J). Result Characteristics. Same as I if I is of type integer; otherwise, same as J." ----------------------------- At the following locations: [371:19] In 13.7.55 DSHIFTL, [371:32] In 13.7.56 DSHIFTR, [382:22] In 13.7.78 IAND, [385:2] In 13.7.84 IEOR, [386:37] In 13.7.88 IOR, add this sentence at the beginning of the "Result value." paragraph: "If one I or J is a , its value is first converted to type integer with the kind type parameter of the other." ----------------------------- At the following locations: [371:21+] In 13.7.55 DSHIFTL, [371:34+] In 13.7.56 DSHIFTR, add a new paragraph at the end of the Result Value section: "The model for the interpretation of an integer value as a sequence of bits is in 13.3." ----------------------------- [397:34-398:2] In 13.7.114 MERGE_BITS, replace the Arguments and Result Characteristics paragraphs with: "Arguments. I shall be of type integer or a . J shall be of type integer or a . If both I and J are of type integer they shall have the same kind type parameter. I and J shall not both be s. MASK shall be of type integer or a . If MASK is of type integer, it shall have the same kind type parameter as I if I is of type integer, and the same kind type parameter as J if J is of type integer. Result Characteristics. Same as I if I is of type integer; otherwise, same as J." [398:3] In 13.7.114 MERGE_BITS, add two new sentences at the beginning of the Result Value paragrpah: "If one I or J is a , its value is first converted to type integer with the kind type parameter of the other. If MASK is a , its value is first converted to type integer with the kind type parameter of the result." ----------------------------- The sentence structure for the Result Value paragraphs of SHIFTL and SHIFTR should be more similar. [417:9] In the Result Value paragraph of 13.7.154 SHIFTL replace "The result has a value equal to " with "The value of the result is" to match the form in SHIFTR at [417:18].