You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ibm Array of IBM floating point numbers, REAL*8 values.
29
+
cray Array of CRAY floating point numbers.
30
+
n Number of elements in arrays to convert, integer.
31
+
```
32
+
33
+
<aname="description"></a>
34
+
35
+
# Description
36
+
37
+
cfdc converts floating point double precision numbers to Cray floating point numbers
38
+
39
+
cfcd converts floating point Cray numbers to floating point double precision IBM numbers
40
+
41
+
Routines are written in VS FORTRAN and thus are available for both CMS and AIX/370 systems. They could be compiled by either 'fortvs' command under VM/CMS or 'fvs' command under AIX/370.
42
+
43
+
Precision of the conversion is the best possible. When floating point formats differ in number of bits for mantissa, which affects data precision, the least mantissa bits are rounded. When formats differ in number of bits for exponent, which affects the range of data, the biggest possible value or zero value is assigned if the old number can't be represented.
44
+
45
+
Routines convert data in memory and must be invoked with three arguments: input array name, output array name, and number of elements in each of two arrays. When called from a C program, the last parameter must be passed by the pointer. The same variable name can be used for the first and the second arguments. This means that conversion can be done "in place" thus saving memory space, if necessary.
46
+
47
+
The table below shows a summary of conversion time per element in microseconds of virtual cpu time on a 3090 J processor. Each entry represents the average value of one thousand conversions of an array with a thousand elements.
48
+
49
+
```
50
+
----------------------------------
51
+
| Routine name | Time to convert |
52
+
----------------------------------
53
+
| cfdc | 0.83 |
54
+
| cfcd | 0.75 |
55
+
----------------------------------
56
+
```
57
+
58
+
<aname="notes"></a>
59
+
60
+
# Notes
61
+
62
+
1. Non-normalized numbers with zero exponents are kept intact.
63
+
64
+
2. In IBM to CRAY conversion, precision in the mantissa could be lost by rounding off the least significant bits. 0 <= |error| <= .18E-14 (From 5 to 8 least significant bits out of 56 mantissa bits could be rounded.)
65
+
66
+
3. CRAY to IBM conversion does not incur the lost of mantissa accuracy.
67
+
68
+
4. CRAY values that don't fit IBM standard are converted to either the biggest IBM values (positive or negative) or to zero.
0 commit comments