$ od -c -N 50000 [_CDCSL_93-16_]<1>Cedar>release>FloatOps>RealImplSupport.c
0000000    /   *       R   e   a   l   I   m   p   l   S   u   p   p   o
0000020    r   t   .   c  \n  \t   C   o   p   y   r   i   g   h   t    
0000040  323       1   9   8   8   ,       1   9   9   0       b   y    
0000060    X   e   r   o   x       C   o   r   p   o   r   a   t   i   o
0000100    n   .           A   l   l       r   i   g   h   t   s       r
0000120    e   s   e   r   v   e   d   .  \n  \t   M   i   c   h   a   e
0000140    l       P   l   a   s   s   ,       M   a   r   c   h       2
0000160    ,       1   9   8   8       3   :   3   9   :   4   5       p
0000200    m       P   S   T  \n  \t   B   r   y   a   n       L   y   l
0000220    e   s       O   c   t   o   b   e   r       1   8   ,       1
0000240    9   8   8       3   :   0   0   :   4   0       p   m       P
0000260    D   T  \n  \t   R   u   s   s       A   t   k   i   n   s   o
0000300    n   ,       D   e   c   e   m   b   e   r       2   0   ,    
0000320    1   9   9   0       1   :   4   6   :   4   3       p   m    
0000340    P   S   T  \n  \t   *   /  \n  \t  \t  \n   /   *       m   u
0000360    s   t       b   e       c   o   m   p   i   l   e   d       w
0000400    i   t   h       -   f   s   i   n   g   l   e       *   /  \n
0000420   \n   /   *       R   e   a   l   I   m   p   l   S   u   p   p
0000440    o   r   t   .   c       p   r   o   v   i   d   e   s       t
0000460    h   e       h   o   o   k   s       i   n   t   o       c    
0000500    f   l   o   a   t   i   n   g   -   p   o   i   n   t       s
0000520    u   p   p   o   r   t       t   h   a   t       a   r   e    
0000540    r   e   q   u   i   r   e   d       b   y       B   a   s   i
0000560    c   s   .   m   e   s   a       a   n   d       R   e   a   l
0000600    I   m   p   l   .   m   e   s   a       *   /  \n  \n   #   i
0000620    n   c   l   u   d   e       <   m   a   t   h   .   h   >  \n
0000640   \t  \n   t   y   p   e   d   e   f       i   n   t       R   E
0000660    A   L   3   2   ;  \n   t   y   p   e   d   e   f       u   n
0000700    s   i   g   n   e   d       w   o   r   d   ,       *   p   t
0000720    r   ;  \n  \n   R   E   A   L   3   2       X   R   _   R   E
0000740    A   L   3   2   _   f   r   o   m   _   d   o   u   b   l   e
0000760    (   )   ;  \n   d   o   u   b   l   e       X   R   _   d   o
0001000    u   b   l   e   _   f   r   o   m   _   R   E   A   L   3   2
0001020    (   )   ;  \n  \n   R   E   A   L   3   2       X   R   _   R
0001040    E   A   L   3   2   _   f   r   o   m   _   d   o   u   b   l
0001060    e   (   d   )       d   o   u   b   l   e       d   ;       {
0001100   \n  \t   f   l   o   a   t       f       =       d   ;  \n  \t
0001120    r   e   t   u   r   n       (   *   (   (   R   E   A   L   3
0001140    2   *   )       &   f   )   )   ;  \n  \t   }   ;  \n  \n   d
0001160    o   u   b   l   e       X   R   _   d   o   u   b   l   e   _
0001200    f   r   o   m   _   R   E   A   L   3   2   (   r   )       R
0001220    E   A   L   3   2       r   ;       {  \n  \t   r   e   t   u
0001240    r   n       (   *   (   (   f   l   o   a   t   *   )       &
0001260    r   )   )   ;  \n  \t   }   ;  \n  \n   e   x   t   e   r   n
0001300        i   n   t       X   R   _   R   E   A   L   3   2   _   F
0001320    i   x   (   r   )       R   E   A   L   3   2       r   ;    
0001340    {  \n  \t   i   n   t       i   ;  \n  \t   i       =       (
0001360    i   n   t   )       (   *   (   f   l   o   a   t       *   )
0001400    (   &   r   )   )   ;  \n  \t   r   e   t   u   r   n   (   i
0001420    )   ;  \n  \t   }   ;  \n  \n   e   x   t   e   r   n       i
0001440    n   t       X   R   _   R   E   A   L   3   2   _   R   o   u
0001460    n   d   (   r   )       R   E   A   L   3   2       r   ;    
0001500    {  \n  \t   /   *       t   h   i   s       i   s       a    
0001520    r   e   l   a   t   i   v   e   l   y       e   x   p   e   n
0001540    s   i   v   e   ,       b   u   t       c   o   r   r   e   c
0001560    t   ,       r   o   u   n   d       t   o       n   e   a   r
0001600    e   s   t       *   /  \n  \t   w   o   r   d       w       =
0001620        r   ;  \n  \t   w   o   r   d       a   b   s   w       =
0001640        (   w       <   <       1   )       >   >       1   ;    
0001660    /   *       q   u   i   c   k       a   n   d       c   h   e
0001700    a   p       h   a   c   k       f   o   r       a   b   s   o
0001720    l   u   t   e       v   a   l   u   e       *   /  \n  \t   f
0001740    l   o   a   t       f       =       (   *   (   f   l   o   a
0001760    t       *   )   (   &   a   b   s   w   )   )   ;  \n  \t   f
0002000    l   o   a   t       h       =       0   .   5   ;  \n  \t   i
0002020    n   t       r   n   d       =       f   +   h   ;           /
0002040    *       r   o   u   n   d       t   o   w   a   r   d   s    
0002060    n   e   a   r   e   s   t       (   r   o   u   g   h   l   y
0002100    )       *   /  \n  \t   f   l   o   a   t       r   f       =
0002120        r   n   d   ;  \n  \t   f   l   o   a   t       d   f    
0002140    =       r   f       -       f   ;  \n  \t   i   f       (   d
0002160    f       =   =       h   )       i   f       (   (   r   n   d
0002200        &       1   )       =   =       1   )       r   n   d    
0002220    =       r   n   d       -       1   ;  \n  \t   i   f       (
0002240    w       !   =       a   b   s   w   )       r   n   d       =
0002260        -   r   n   d   ;  \n  \t   r   e   t   u   r   n       (
0002300    r   n   d   )   ;  \n  \t   }   ;  \n  \n   e   x   t   e   r
0002320    n       i   n   t       X   R   _   R   E   A   L   3   2   _
0002340    C   e   i   l   i   n   g   (   r   )       R   E   A   L   3
0002360    2       r   ;       {  \n  \t   i   n   t       t   e   m   p
0002400    ;  \n  \t   f   l   o   a   t       f   o   o       =       (
0002420    *   (   f   l   o   a   t       *   )       (   &   r   )   )
0002440    ;  \n  \t   t   e   m   p       =       (   i   n   t   )    
0002460    f   o   o   ;  \n  \t   i   f       (   r       <   =       0
0002500    )       r   e   t   u   r   n       (   t   e   m   p   )   ;
0002520   \n  \t   i   f       (   t   e   m   p       =   =       f   o
0002540    o   )       r   e   t   u   r   n       (   t   e   m   p   )
0002560    ;  \n  \t   r   e   t   u   r   n       (   t   e   m   p   +
0002600    1   )   ;  \n  \t   }   ;  \n  \n   e   x   t   e   r   n    
0002620    i   n   t       X   R   _   R   E   A   L   3   2   _   F   l
0002640    o   o   r   (   r   )       R   E   A   L   3   2       r   ;
0002660        {  \n  \t   i   n   t       t   e   m   p   ;  \n  \t   f
0002700    l   o   a   t       f   o   o       =       (   *   (   f   l
0002720    o   a   t       *   )       (   &   r   )   )   ;  \n  \t   t
0002740    e   m   p       =       (   i   n   t   )       f   o   o   ;
0002760   \n  \t   i   f       (   r       >   =       0   )       r   e
0003000    t   u   r   n       (   t   e   m   p   )   ;  \n  \t   i   f
0003020        (   t   e   m   p       =   =       f   o   o   )       r
0003040    e   t   u   r   n       (   t   e   m   p   )   ;  \n  \t   r
0003060    e   t   u   r   n       (   t   e   m   p       -       1   )
0003100    ;  \n  \t   }   ;  \n  \n   e   x   t   e   r   n       i   n
0003120    t       X   R   _   R   e   a   l   C   o   m   p   a   r   e
0003140    (   x   ,       y   )       R   E   A   L   3   2       x   ,
0003160        y   ;       {  \n  \t   /   *       r   e   t   :       0
0003200        -   -   >       x       <       y   ,       1       -   -
0003220    >       x       =       y   ,       2       -   -   >       x
0003240        >       y       *   /  \n  \t   i   n   t       t   e   m
0003260    p   ;  \n  \t   f   l   o   a   t       x   f       =       (
0003300    *   (   f   l   o   a   t       *   )       (   &   x   )   )
0003320    ;  \n  \t   f   l   o   a   t       y   f       =       (   *
0003340    (   f   l   o   a   t       *   )       (   &   y   )   )   ;
0003360   \n  \t   i   f       (   x   f       <       y   f   )       r
0003400    e   t   u   r   n       (   0   )   ;  \n  \t   i   f       (
0003420    x   f       >       y   f   )       r   e   t   u   r   n    
0003440    (   2   )   ;  \n  \t   r   e   t   u   r   n       (   1   )
0003460    ;  \n  \t   }   ;  \n  \n                                    
0003467