$ od -c -N 50000 [_CDMiwok_01_]<bonsai2.0>cedar>release>FloatOps>RealImplSupport.c!1
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   o
0001160    u   b   l   e       X   R   _   d   o   u   b   l   e   _   f
0001200    r   o   m   _   R   E   A   L   3   2   (   r   )       R   E
0001220    A   L   3   2       r   ;       {  \n  \t   r   e   t   u   r
0001240    n       (   *   (   (   f   l   o   a   t   *   )       &   r
0001260    )   )   ;  \n  \t   }  \n  \n   e   x   t   e   r   n       i
0001300    n   t       X   R   _   R   E   A   L   3   2   _   F   i   x
0001320    (   r   )       R   E   A   L   3   2       r   ;       {  \n
0001340   \t   i   n   t       i   ;  \n  \t   i       =       (   i   n
0001360    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   n   t    
0001440    X   R   _   R   E   A   L   3   2   _   R   o   u   n   d   (
0001460    r   )       R   E   A   L   3   2       r   ;       {  \n  \t
0001500    /   *       t   h   i   s       i   s       a       r   e   l
0001520    a   t   i   v   e   l   y       e   x   p   e   n   s   i   v
0001540    e   ,       b   u   t       c   o   r   r   e   c   t   ,    
0001560    r   o   u   n   d       t   o       n   e   a   r   e   s   t
0001600        *   /  \n  \t   w   o   r   d       w       =       r   ;
0001620   \n  \t   w   o   r   d       a   b   s   w       =       (   w
0001640        <   <       1   )       >   >       1   ;       /   *    
0001660    q   u   i   c   k       a   n   d       c   h   e   a   p    
0001700    h   a   c   k       f   o   r       a   b   s   o   l   u   t
0001720    e       v   a   l   u   e       *   /  \n  \t   f   l   o   a
0001740    t       f       =       (   *   (   f   l   o   a   t       *
0001760    )   (   &   a   b   s   w   )   )   ;  \n  \t   f   l   o   a
0002000    t       h       =       0   .   5   ;  \n  \t   i   n   t    
0002020    r   n   d       =       f   +   h   ;           /   *       r
0002040    o   u   n   d       t   o   w   a   r   d   s       n   e   a
0002060    r   e   s   t       (   r   o   u   g   h   l   y   )       *
0002100    /  \n  \t   f   l   o   a   t       r   f       =       r   n
0002120    d   ;  \n  \t   f   l   o   a   t       d   f       =       r
0002140    f       -       f   ;  \n  \t   i   f       (   d   f       =
0002160    =       h   )       i   f       (   (   r   n   d       &    
0002200    1   )       =   =       1   )       r   n   d       =       r
0002220    n   d       -       1   ;  \n  \t   i   f       (   w       !
0002240    =       a   b   s   w   )       r   n   d       =       -   r
0002260    n   d   ;  \n  \t   r   e   t   u   r   n       (   r   n   d
0002300    )   ;  \n  \t   }  \n  \n   e   x   t   e   r   n       i   n
0002320    t       X   R   _   R   E   A   L   3   2   _   C   e   i   l
0002340    i   n   g   (   r   )       R   E   A   L   3   2       r   ;
0002360        {  \n  \t   i   n   t       t   e   m   p   ;  \n  \t   f
0002400    l   o   a   t       f   o   o       =       (   *   (   f   l
0002420    o   a   t       *   )       (   &   r   )   )   ;  \n  \t   t
0002440    e   m   p       =       (   i   n   t   )       f   o   o   ;
0002460   \n  \t   i   f       (   r       <   =       0   )       r   e
0002500    t   u   r   n       (   t   e   m   p   )   ;  \n  \t   i   f
0002520        (   t   e   m   p       =   =       f   o   o   )       r
0002540    e   t   u   r   n       (   t   e   m   p   )   ;  \n  \t   r
0002560    e   t   u   r   n       (   t   e   m   p   +   1   )   ;  \n
0002600   \t   }  \n  \t  \n   e   x   t   e   r   n       i   n   t    
0002620    X   R   _   R   E   A   L   3   2   _   F   l   o   o   r   (
0002640    r   )       R   E   A   L   3   2       r   ;       {  \n  \t
0002660    i   n   t       t   e   m   p   ;  \n  \t   f   l   o   a   t
0002700        f   o   o       =       (   *   (   f   l   o   a   t    
0002720    *   )       (   &   r   )   )   ;  \n  \t   t   e   m   p    
0002740    =       (   i   n   t   )       f   o   o   ;  \n  \t   i   f
0002760        (   r       >   =       0   )       r   e   t   u   r   n
0003000        (   t   e   m   p   )   ;  \n  \t   i   f       (   t   e
0003020    m   p       =   =       f   o   o   )       r   e   t   u   r
0003040    n       (   t   e   m   p   )   ;  \n  \t   r   e   t   u   r
0003060    n       (   t   e   m   p       -       1   )   ;  \n  \t   }
0003100   \n  \n   e   x   t   e   r   n       i   n   t       X   R   _
0003120    R   e   a   l   C   o   m   p   a   r   e   (   x   ,       y
0003140    )       R   E   A   L   3   2       x   ,       y   ;       {
0003160   \n  \t   /   *       r   e   t   :       0       -   -   >    
0003200    x       <       y   ,       1       -   -   >       x       =
0003220        y   ,       2       -   -   >       x       >       y    
0003240    *   /  \n  \t   i   n   t       t   e   m   p   ;  \n  \t   f
0003260    l   o   a   t       x   f       =       (   *   (   f   l   o
0003300    a   t       *   )       (   &   x   )   )   ;  \n  \t   f   l
0003320    o   a   t       y   f       =       (   *   (   f   l   o   a
0003340    t       *   )       (   &   y   )   )   ;  \n  \t   i   f    
0003360    (   x   f       <       y   f   )       r   e   t   u   r   n
0003400        (   0   )   ;  \n  \t   i   f       (   x   f       >    
0003420    y   f   )       r   e   t   u   r   n       (   2   )   ;  \n
0003440   \t   r   e   t   u   r   n       (   1   )   ;  \n  \t   }  \n
0003460   \n                                                            
0003461