ftp.nice.ch/pub/next/developer/languages/lisp/AKCL.1.599.s.tar.gz#/akcl-1-599/V/c/num_arith.c

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,&quot);
  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.