
70 GPGPU Programming for Games and Science
Exercise 2.13 The pseudocode of Listing 2.25 does not handle an input ra-
tional with zero denominator. Modify the pseudocode to handle such a rational
input.
Conversion from
Rational to binary64. In Equation (2.52), r
smin
=0.
¯
0
51
1 ∗
2
−1022
, r
smax
=0.
¯
1
52
∗ 2
−1022
, r
nmin
=1.
¯
0
52
∗ 2
−1022
, r
nmax
=1.
¯
1
52
∗ 2
1023
,
r
∞
=2
1024
, r
smin
/2=2
−1075
,(r
smax
+ r
nmin
)/2=0.
¯
1
53
∗2
−1022
,and(r
nmax
+
r
∞
)/2=1.
¯
1
53
∗ 2
1023
.
The pseudocode for the conversion is a trivial modification of that for the
conversion to
binary32. Replace binary32 with binary64, uint32 t with uint64 t,
int32 t with int64 t, −150 with −1075, −149 with −1074, −126 with −