To: J3 Members J3/17-115 From: Van Snyder Subject: Comments on Clause 16 References: 17-007 Date: 2017 February 01 1. Edits ======== [341:28 16.2.1p1] After "procedures" insert "have explicit interface and therefore" [342:29 16.2.4p2] Replace "and" with a comma. After "MAXLOC" insert ", or REDUCE". [344:2+1 16.4p3] There's no line number for the first line of the paragraph. [344:2+2 16.4p3] The usual character for joining two alternative right-hand sides of an equation is \left\{, not \left(. [344:5 16.4p3] Start a new paragraph at "The integer parameters..." because the sentence isn't exclusively about the model for real numbers, which is the topic of the remainder of the paragraph. [346:15+ 16.7p2] Insert a NOTE "NOTE 16.9a All standard intrinsic elemental procedures are pure." [352:2 16.7p4] Delete "a" before "segment A". There is no "a" before "segment B" later in the same sentence. [354:7 16.9.2p5] This is a bit pedantic, but a perverse reader might wonder about the possibility to use the negative square root. Insert "+" before \sqrt{x^2+y^2}, or put \left| and \right| before and after it. [358:26 16.9.16] The POINTER argument is required to be a pointer. Case(iii) begins "If TARGET ... is a procedure pointer." Therefore delete ", if the procedure is a procedure pointer," because both arguments are pointers, and therefore the clause is not necessary. Indeed, it invites one to re-read the paragraph to make sure there's not a subtle point that is not being understood. [371:18 16.9.49p3] Replace "Its result shall have" with "Its result shall be a scalar that has". [390:9 16.9.87p5] This is a bit pedantic, but a perverse reader might wonder about the possibility to use the negative square root. Insert "+" before \sqrt{X^2+Y^2}, or put \left| and \right| before and after it. [416:14 16.9.146p3] It is too easy to read the description as requiring ROUND to appear if X is of type real and MOLD is of type integer. One must read it quite carefully to verify it does not say "if and only if". Replace "ROUND shall be present ... type integer" with "ROUND shall not be present if X is not of type real or MOLD is not of type integer." [422:18-19 16.9.161p3] Insert "scalar" before "arguments". Replace "have" with "be a scalar that has". 2. Questions without edits ========================== Are atomic subroutines impure? Why? [344:15-16 16.5p1] The paragraph seems inconsistent. The first sentence says it performs an action on its ATOM argument, and determination of the value to be assigned to its OLD argument, atomically. Then the second sentence says that only the action on the ATOM is performed atomically. Which is it?