This is num_arith.c in view mode; [Download] [Up]
Changes file for /usr/local/src/kcl/./c/num_arith.c Created on Wed May 15 11:52:07 1991 Usage \n@s[Original text\n@s|Replacement Text\n@s] See the file rascal.ics.utexas.edu:/usr2/ftp/merge.c for a program to merge change files. Anything not between "\n@s[" and "\n@s]" is a simply a comment. This file was constructed using emacs and merge.el Enhancements Copyright (c) W. Schelter All rights reserved. by (Bill Schelter) wfs@carl.ma.utexas.edu ****Change:(orig (10 10 a)) @s[*/ #include "include.h" @s|*/ #include "include.h" #include "mp.h" @s] ****Change:(orig (16 17 c)) @s[int most, least; { object z; @s|int most, least; { static long u [4] = {0x01010004 ,0x01010004, 0,0}; GEN w; int l; if(most) {setlgef(u,4),l=4;} else {l=3; setlgef(u,3);} MP_START_LOW(w,u,l); MP_NEXT_UP(w) = least; if (most) MP_NEXT_UP(w) = most; return make_integer(u); } @s] ****Change:(orig (19 29 d)) @s[ z = alloc_object(t_bignum); vs_push(z); z->big.big_car = least; z->big.big_cdr = NULL; @s, z->big.big_cdr = NULL; return(vs_pop); } @s| @s] ****Change:(orig (31 51 d)) @s[bignum3(most, middle, least) int most, middle, least; { object z; @s, return(vs_pop); } object @s| @s] ****Change:(orig (54 95 c)) @s[{ int s, h, l; object z; @s, return(make_fixnum(s*l)); @s|{ MPOP(return,mulss,i,j); @s] ****Change:(orig (99 160 d)) @s[fix_big_times(i, b) int i; object b; { @s, return((object)z); } object @s| @s] ****Change:(orig (200 219 c)) @s[ if((i = fix(x)) == 0) return(y); if((j = fix(y)) == 0) return(x); @s, return(bignum2(-2, k & MASK)); @s| MPOP(return, addss,fix(x),fix(y)); @s] ****Change:(orig (221 233 c)) @s[ if ((i = fix(x)) == 0) return(y); z = (object)copy_big(y); vs_push(z); @s, vs_reset; return(z); @s| MPOP(return, addsi,fix(x),MP(y)); @s] ****Change:(orig (258 270 c)) @s[ if((j = fix(y)) == 0) return(x); z = (object)copy_big(x); vs_push(z); @s, vs_reset; return(z); @s| MPOP(return,addsi,fix(y),MP(x)); @s] ****Change:(orig (272 276 c)) @s[ z = (object)big_plus(x, y); vs_push(z); z = normalize_big_to_object(z); vs_reset; @s, return(z); @s| MPOP(return,addii,MP(y),MP(x)); @s] ****Change:(orig (409 431 c)) @s[ i = fix(x); if(i == 0) return(small_fixnum(1)); if(i > 0) @s, fix(z) = i; return(z); } @s| MPOP(return, addss,1,fix(x)); @s] ****Change:(orig (433 434 c)) @s[ return(number_plus(x, small_fixnum(1))); @s| MPOP(return, addsi,1,MP(x)); @s] ****Change:(orig (478 478 a)) @s[ case t_fixnum: switch(type_of(y)) { @s| case t_fixnum: switch(type_of(y)) { #define MOST_NEG_FIXNUM (1 << 31) @s] ****Change:(orig (480 497 c)) @s[ if((j = fix(y)) == 0) return(x); if((i = fix(x)) >= 0) if (j < 0) @s, return(bignum2(-2, k & MASK)); @s| MPOP(return,subss,fix(x),fix(y)); @s] ****Change:(orig (499 511 c)) @s[ z = (object)big_minus(y); vs_push(z); if ((i = fix(x)) == 0) ; @s, vs_reset; return(z); @s| MPOP(return, subsi,fix(x),MP(y)); @s] ****Change:(orig (536 548 c)) @s[ if((j = fix(y)) == 0) return(x); z = (object)copy_big(x); vs_push(z); @s, vs_reset; return(z); @s| MPOP(return,subis,MP(x),fix(y)); @s] ****Change:(orig (550 556 c)) @s[ y = (object)big_minus(y); vs_push(y); z = (object)big_plus(x, y); vs_push(z); @s, vs_reset; return(z); @s| MPOP(return,subii,MP(x),MP(y)); @s] ****Change:(orig (688 709 c)) @s[ i = fix(x); if(i == 0) return(small_fixnum(-1)); if(i > 0) { @s, return(bignum2(-2, i & MASK)); @s| MPOP(return,addss,fix(x),-1); @s] ****Change:(orig (711 712 c)) @s[ return(number_minus(x, small_fixnum(1))); @s| MPOP(return,addsi,-1,MP(x)); @s] ****Change:(orig (755 755 c)) @s[ return(bignum2(1, 0)); @s| return make_bignum(ABS_MOST_NEGS); @s] ****Change:(orig (757 758 c)) @s[ return(make_fixnum(-fix(x))); @s| return(make_fixnum(-fix(x))); @s] ****Change:(orig (760 765 c)) @s[ z = (object)big_minus(x); vs_push(z); z = normalize_big_to_object(z); vs_reset; @s, return(z); @s| return big_minus(x); @s] ****Change:(orig (810 810 c)) @s[ return(fixnum_times(fix(x), fix(y))); @s| MPOP(return,mulss,fix(x),fix(y)); @s] ****Change:(orig (812 812 c)) @s[ return(fix_big_times(fix(x), y)); @s| MPOP(return,mulsi,fix(x),MP(y)); @s] ****Change:(orig (835 835 c)) @s[ return(fix_big_times(fix(y), x)); @s| MPOP(return,mulsi,fix(y),MP(x)); @s] ****Change:(orig (837 837 c)) @s[ return(big_big_times(x, y)); @s| MPOP(return,mulii,MP(y),MP(x)); @s] ****Change:(orig (1138 1138 a)) @s[object x, y; object *qp, *rp; @s|object x, y; object *qp, *rp; { GEN res,quot,x0,y0; save_avma; if (type_of(x)==t_fixnum) x0 = stoi(fix(x)); else x0=MP(x); if (type_of(y)==t_fixnum) y0 = stoi(fix(y)); else y0=MP(y); res = dvmdii(x0,y0,"); restore_avma; *qp = make_integer(res); *rp = make_integer(quot); return; } /* old integer_quotient_remainder_1(x, y, qp, rp) object x, y; object *qp, *rp; @s] ****Change:(orig (1197 1199 c)) @s[ y->big.big_car == 0 && y->big.big_cdr->big_car == 1 && y->big.big_cdr->big_cdr == NULL) { @s| MP(y)[2] == MOST_NEGATIVE_FIX && lgef(MP(y)) == 1 && signe(MP(y)) < 0) { @s] ****Change:(orig (1203 1203 c)) @s[ *rp = small_fixnum(0); return; } @s| *rp = small_fixnum(0); return; } @s] ****Change:(orig (1211 1280 c)) @s[ if (ty == t_fixnum) { if (fix(y) == 0) zero_divisor(); x = (object)copy_big(x); @s, *rp = normalize_big_to_object(*rp); vs_reset; return; } @s| if (ty == t_fixnum) { MPOP(*qp = ,divis,MP(x),fix(y)); *rp = make_fixnum(hiremainder); return; } @s] ****Change:(orig (1281 1281 a)) @s[ else @s| else if (ty == t_bignum) #define Dvmdii(a,b) dvmdii(a,b,&p1) {GEN p1; MPOP(*qp = ,dvmdii,MP(x),MP(y)); *rp = make_integer(p1); return;} else @s] ****Change:(orig (1284 1284 c)) @s[ } FEwrong_type_argument(Sinteger, y); @s| } FEwrong_type_argument(Sinteger, x); @s] ****Change:(orig (1285 1285 a)) @s[} @s|} */ @s]
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.