(j3.2006) What does this mean?
Bill Long
longb
Mon Oct 31 17:32:43 EDT 2011
On 10/31/11 3:10 PM, Van Snyder wrote:
> Does the following
>
> [13.7.1p2] "A program is prohibited from invoking an intrinsic procedure
> under circumstances where a value to be returned... is outside the range
> of values representable by objects of the specified type and type
> parameters...."
>
> mean "not greater than the most positive value and not less than the
> most negative value," or "not a member of the set of valid values," as
> specified by
For integer results, the first option seems reasonable. For reals
results, I would exclude the values in the interval (-tiny, tiny),
except for zero. Ultimately, this rule is to disallow expressions like
EXP(big_num). The processor has to be given a reasonable chance to
represent the result.
>
> [4.1.2p1] "For each type, there is a set of valid values.... The sets
> of valid values for... real are processor dependent."
>
Is this materially different? The square root of 2 is likely not one of
these "valid values", but the SQRT function returns an "approximation"
so it can hit one of the valid values and be reasonably close to correct.
If you consider Infinity to be in the set of valid values, it is a bit
less clear (for either case).
Cheers,
Bill
> [4.2p1] "A type might be parameterized. In this case, the set of
> values... depend[s] on the values of the parameters."
>
>
> _______________________________________________
> J3 mailing list
> J3 at j3-fortran.org
> http://j3-fortran.org/mailman/listinfo/j3
--
Bill Long longb at cray.com
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc./Cray Plaza, Suite 210/380 Jackson St./St. Paul, MN 55101
More information about the J3
mailing list