summaryrefslogtreecommitdiff
path: root/src/common/dlrgint.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/dlrgint.c')
-rw-r--r--src/common/dlrgint.c252
1 files changed, 0 insertions, 252 deletions
diff --git a/src/common/dlrgint.c b/src/common/dlrgint.c
deleted file mode 100644
index 3ca79d1..0000000
--- a/src/common/dlrgint.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * dlrgint.c - versions of "large integer" routines for compiled programs
- * that do not support large integers.
- */
-#define COMPILER 1
-#include "../h/rt.h"
-
-/*
- *****************************************************************
- *
- * Routines in the first set are only called when large integers
- * exist and thus these versions will never be called. They need
- * only have the correct signature and compile without error.
- */
-
-/*
- * bignum -> file
- */
-void bigprint(f, da)
-FILE *f;
-dptr da;
- {
- }
-
-/*
- * bignum -> real
- */
-double bigtoreal(da)
-dptr da;
- {
- return 0.0;
- }
-
-/*
- * bignum -> string
- */
-int bigtos(da, dx)
-dptr da, dx;
- {
- return 0;
- }
-
-/*
- * da -> dx
- */
-int cpbignum(da, dx)
-dptr da, dx;
- {
- return 0;
- }
-
-/*
- * da / db -> dx
- */
-int bigdiv(da, db, dx)
-dptr da, db, dx;
- {
- return 0;
- }
-
-/*
- * da % db -> dx
- */
-int bigmod(da, db, dx)
-dptr da, db, dx;
- {
- return 0;
- }
-
-/*
- * iand(da, db) -> dx
- */
-int bigand(da, db, dx)
-dptr da, db, dx;
- {
- return 0;
- }
-
-/*
- * ior(da, db) -> dx
- */
-int bigor(da, db, dx)
-dptr da, db, dx;
- {
- return 0;
- }
-
-/*
- * xor(da, db) -> dx
- */
-int bigxor(da, db, dx)
-dptr da, db, dx;
- {
- return 0;
- }
-
-/*
- * negative if da < db
- * zero if da == db
- * positive if da > db
- */
-word bigcmp(da, db)
-dptr da, db;
- {
- return (word)0;
- }
-
-/*
- * ?da -> dx
- */
-int bigrand(da, dx)
-dptr da, dx;
- {
- return 0;
- }
-
-/*
- *************************************************************
- *
- * The following routines are called when overflow has occurred
- * during ordinary arithmetic.
- */
-
-/*
- * da + db -> dx
- */
-int bigadd(da, db, dx)
-dptr da, db;
-dptr dx;
- {
- t_errornumber = 203;
- t_errorvalue = nulldesc;
- t_have_val = 0;
- return Error;
- }
-
-/*
- * da * db -> dx
- */
-int bigmul(da, db, dx)
-dptr da, db, dx;
- {
- t_errornumber = 203;
- t_errorvalue = nulldesc;
- t_have_val = 0;
- return Error;
- }
-
-/*
- * -i -> dx
- */
-int bigneg(da, dx)
-dptr da, dx;
- {
- t_errornumber = 203;
- t_errorvalue = nulldesc;
- t_have_val = 0;
- return Error;
- }
-
-/*
- * da - db -> dx
- */
-int bigsub(da, db, dx)
-dptr da, db, dx;
- {
- t_errornumber = 203;
- t_errorvalue = nulldesc;
- t_have_val = 0;
- return Error;
- }
-
-/*
- * ********************************************************
- *
- * The remaining routines each requires different handling.
- */
-
-/*
- * real -> bignum
- */
-int realtobig(da, dx)
-dptr da, dx;
- {
- return Failed; /* conversion cannot be done */
- }
-
-/*
- * da ^ db -> dx
- */
-int bigpow(da, db, dx)
-dptr da, db, dx;
- {
- C_integer r;
- extern int over_flow;
-
- /*
- * Just do ordinary interger exponentiation and check for overflow.
- */
- r = iipow(IntVal(*da), IntVal(*db));
- if (over_flow) {
- k_errornumber = 203;
- k_errortext = "";
- k_errorvalue = nulldesc;
- have_errval = 0;
- return Error;
- }
- MakeInt(r, dx);
- return Succeeded;
- }
-
-/*
- * string -> bignum
- */
-word bigradix(sign, r, s, end_s, result)
-int sign; /* '-' or not */
-int r; /* radix 2 .. 36 */
-char *s, *end_s; /* input string */
-union numeric *result; /* output T_Integer or T_Lrgint */
- {
- /*
- * Just do string to ordinary integer.
- */
- return radix(sign, r, s, end_s, result);
- }
-
-/*
- * bigshift(da, db) -> dx
- */
-int bigshift(da, db, dx)
-dptr da, db, dx;
- {
- uword ci; /* shift in 0s, even if negative */
- C_integer cj;
-
- /*
- * Do an ordinary shift - note that db is always positive when this
- * routine is called.
- */
- ci = (uword)IntVal(*da);
- cj = IntVal(*db);
- /*
- * Check for a shift of WordSize or greater; return an explicit 0 because
- * this is beyond C's defined behavior. Otherwise shift as requested.
- */
- if (cj >= WordBits)
- ci = 0;
- else
- ci <<= cj;
- MakeInt(ci, dx);
- return Succeeded;
- }