IPB
X   Site Message
(Message will auto close in 2 seconds)

Welcome Guest ( Log In | Register )

question about how JPL handled double precision on IBM 7094 in the 60
ncc1701d
post Apr 20 2019, 06:37 PM
Post #1


Junior Member
**

Group: Members
Posts: 91
Joined: 21-August 06
Member No.: 1063



Hello,
I have a question about they handled double precision floating point numbers at JPL in the 60s on the IBM 7094. First I give you a quote then ask the question.

John Strand: Author of the book Memoirs of an Astrophyscist Path to the Planets who worked at JPL in the 60s said the following on page 63

"The IBM 7040-7094 Direct Couple was the joing of two main frames. One computer handled
I/O and the other was principally for number crunching. The operating system was batch mode.
Double precision used two single precision floating-point words each with seperate characteristics and mantissas. I will never for forget this single precision augmentation because of the work necessary to unpack both words from the octal dump in order to find the decimal number. True double precsion with a single characteristic and mantissa would have to wait"....etc
Later in the book it says: "The IBM 360 had a single characteristic and mantissa for its double precision word." IBM 360 came right after the IBM 7094.

My question is if anyone knows about this method of combining 2 single precision words in order to make 1 double precision word? I am trying to read a binary file that may have used this method since the data was created on a IMB 7094 computer which came before the IBM 360. Nasa archives people say they dont have access anymore to orginal fortran programs that might give me some clues about my problem or the format and I have no way to get in touch with the books author so I am curious if anyone knows about this method?

this link here:
https://nssdc.gsfc.nasa.gov/nssdc/formats/I...4_7090_7094.htm
refers to 2 words that would make up a double precision floating point but it doesnt look like the "Second 36-bit Word" has its own characteristic AND mantissa or does it?
I am trying to reconsile what the auther said about his "I will never forget" comment about how he handled double precision and what my link says about how nasa handled double precision on the IBM 7094.
Any opinions, insights or info on this subject would be helpfull.
thanks
Go to the top of the page
 
+Quote Post
 
Start new topic
Replies
nogal
post Apr 21 2019, 03:54 PM
Post #2


Senior Member
****

Group: Members
Posts: 1009
Joined: 15-June 09
From: Lisbon, Portugal
Member No.: 4824



I worked a lot with FORTRAN IV on an IBM 360 Model 44. The architecture seems to be quite different from the 7094 (which I never worked with). As mcaplinger says the compiler would handle these subtleties.

If the need to peek inside a floating-point number word or double word would arise, in FORTRAN IV, we would set up overlapping COMMON areas in different program modules (for instance main and a subroutine) one with real numbers defined and the other with an overlapping string. Using the string we could manipulate any byte (character) - this was devil-daring code!

Looks like the 7094 mantissa for floating-point numbers was in binary (base 2) but the 360 one was in base 16. So 6 hexadecimal numbers (or 14 in the double precision case) allowed representation of numbers between 16−65 to 1663 (approx. 5.39761 × 10−79 to 7.237005 × 1075). The 360 exponent had a bias of 64, while the 7094 seems to have had biases of 128 (short precision) and 1024 (double precision).

In the 360 the hardware would operate directly on the single or double word and those would have to start on a "word boundary" - a byte with an address multiple of four - or "double word boundary". The compiler would allocate the areas according to the variable's type definition.

Post here or PM me if I can be of further assistance. Cheers
Fernando
Go to the top of the page
 
+Quote Post
mcaplinger
post Apr 21 2019, 05:24 PM
Post #3


Senior Member
****

Group: Members
Posts: 2559
Joined: 13-September 05
Member No.: 497



QUOTE (nogal @ Apr 21 2019, 07:54 AM) *
If the need to peek inside a floating-point number word or double word would arise, in FORTRAN IV, we would set up overlapping COMMON areas in different program modules (for instance main and a subroutine) one with real numbers defined and the other with an overlapping string.

Standard Fortran didn't have anything like a character type until Fortran 77, though IIRC there might have been non-standard extensions in some compilers before then. https://en.wikipedia.org/wiki/Hollerith_constant

I guess you could COMMON a floating-point value with an integer and extract the bytes with divisions; I certainly hope this was uncommon in code.


--------------------
Disclaimer: This post is based on public information only. Any opinions are my own.
Go to the top of the page
 
+Quote Post

Posts in this topic


Reply to this topicStart new topic

 



RSS Lo-Fi Version Time is now: 17th December 2024 - 05:13 AM
RULES AND GUIDELINES
Please read the Forum Rules and Guidelines before posting.

IMAGE COPYRIGHT
Images posted on UnmannedSpaceflight.com may be copyrighted. Do not reproduce without permission. Read here for further information on space images and copyright.

OPINIONS AND MODERATION
Opinions expressed on UnmannedSpaceflight.com are those of the individual posters and do not necessarily reflect the opinions of UnmannedSpaceflight.com or The Planetary Society. The all-volunteer UnmannedSpaceflight.com moderation team is wholly independent of The Planetary Society. The Planetary Society has no influence over decisions made by the UnmannedSpaceflight.com moderators.
SUPPORT THE FORUM
Unmannedspaceflight.com is funded by the Planetary Society. Please consider supporting our work and many other projects by donating to the Society or becoming a member.