Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion Transfer and variables that don't use all their storage space.
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
glen herrmannsfeldt  
View profile  
 More options Apr 9 2007, 8:48 am
Newsgroups: comp.lang.fortran
From: glen herrmannsfeldt <g...@ugcs.caltech.edu>
Date: Mon, 09 Apr 2007 04:48:58 -0800
Local: Mon, Apr 9 2007 8:48 am
Subject: Re: Transfer and variables that don't use all their storage space.
Brooks Moses wrote:

(snip)

> I would contend that this reading is incorrect -- that, in particular,
> if E has a bit representation that is not one of the canonical bit
> representations for a logical variable, then the inner transfer
> statement is illegal according to the comments in the beginning of
> section 13.7 which state that a program is not allowed to invoke an
> intrinsic with arguments that produce out-of-range results.  And further
> that the double-transfer identity requirement obviously is only meant to
> apply when both transfer calls, taken independently, are legal.

In Fortran 66, before CHARACTER variables, the standard allowed
storing of character data, read and written with A format, in
other types of variables.  It was, then, fairly easy to get bit
representations that would not normally be allowed for that data
type, especially for LOGICAL.  In that case, one would have to
be careful how the data was used, but it was at least expected
that assignment to another variable would work.

> Is that a reasonable contention?

In general, I don't believe so.  There are some conditions which I
might wonder about, one is floating point.  On machines with
unnormalized values, assignment might do normalization.

> Further, a strictly literal reading of the beginning of section 13.7
> would suggest that when transferring a value to a real number, NaN
> should be returned if the bit representation is not a legal real number.
>  In particular, this might apply for 80-bit real numbers that are stored
> in 12 bytes, if the extraneous 12 bytes are non-zero (or whatever their
> "usual" state is).  I'm hoping that this is reading things excessively
> finely, but I suppose I should ask rather than assuming such.

Assignment of 12 byte reals could be done by byte copying, instead of
loading into a floating point register and storing from there.

-- glen


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.