1  typedef union
       2  {
       3    double value;
       4    struct
       5    {
       6      unsigned long msw;
       7      unsigned long lsw;
       8    } parts;
       9  } ieee_double_shape_type;
      10  
      11  double f (int iy)
      12  {
      13    double z, t;
      14    ieee_double_shape_type u, v;
      15  
      16    if (iy == 1)
      17      return 0;
      18  
      19    u.parts.msw = iy;
      20    u.parts.lsw = 0;
      21    z = u.value;
      22    v.parts.msw = iy;
      23    v.parts.lsw = 0;
      24    t = v.value;
      25    return 1.0+z+t+t;
      26  }