/[gcl]/gcl/o/num_arith.c
ViewVC logotype

Diff of /gcl/o/num_arith.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.15 by camm, Wed Aug 25 03:10:14 2004 UTC revision 1.16 by camm, Sat Nov 27 22:19:35 2004 UTC
# Line 30  Foundation, 675 Mass Ave, Cambridge, MA Line 30  Foundation, 675 Mass Ave, Cambridge, MA
30  void  void
31  zero_divisor(void);  zero_divisor(void);
32    
33  object fixnum_add(int i, int j)  object fixnum_add(fixnum i, fixnum j)
34  {  {
35    
36    if (i>=0)    if (i>=0)
37     { if (j<= (MOST_POSITIVE_FIX-i))     { if (j<= (MOST_POSITIVE_FIX-i))
38        { MYmake_fixnum(return,i+j);        { return make_fixnum(i+j);
39        }        }
40     MPOP(return,addss,i,j);     MPOP(return,addss,i,j);
41     } else { /* i < 0 */     } else { /* i < 0 */
42       if ((MOST_NEG_FIXNUM -i) <= j) {       if ((MOST_NEGATIVE_FIX -i) <= j) {
43         MYmake_fixnum(return,i+j);         return make_fixnum(i+j);
44       }       }
45     MPOP(return,addss,i,j);     MPOP(return,addss,i,j);
46     }     }
47  }  }
48  /* return i - j */  /* return i - j */
49  object fixnum_sub(int i, int j)  object fixnum_sub(fixnum i, fixnum j)
50  {    {  
51    
52    if (i>=0)    if (i>=0)
53     { if (j >= (i - MOST_POSITIVE_FIX))     { if (j >= (i - MOST_POSITIVE_FIX))
54        { MYmake_fixnum(return,i-j);        { return make_fixnum(i-j);
55        }        }
56     MPOP(return,subss,i,j);     MPOP(return,subss,i,j);
57     } else { /* i < 0 */     } else { /* i < 0 */
58       if ((MOST_NEG_FIXNUM -i) <= -j) {       if ((MOST_NEGATIVE_FIX -i) <= -j) {
59         MYmake_fixnum(return,i-j);         return make_fixnum(i-j);
60       }       }
61     MPOP(return,subss,i,j);     MPOP(return,subss,i,j);
62     }     }
# Line 320  one_plus(object x) Line 320  one_plus(object x)
320          case t_fixnum:          case t_fixnum:
321                        
322            if (fix(x)< MOST_POSITIVE_FIX-1) {            if (fix(x)< MOST_POSITIVE_FIX-1) {
323              MYmake_fixnum(return,fix(x)+1);              return make_fixnum(fix(x)+1);
324            }            }
325            MPOP(return,addss,1,fix(x));            MPOP(return,addss,1,fix(x));
326          case t_bignum:          case t_bignum:

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26