aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/si.spad.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2010-07-28 08:21:13 +0000
committerdos-reis <gdr@axiomatics.org>2010-07-28 08:21:13 +0000
commitba91d65da984ba19dff664422ca48b2a179ea4b9 (patch)
treef3b17799c39c335e74f5b497bf4f6a5dd814b0b2 /src/algebra/si.spad.pamphlet
parent0b252ef7247d7c46b66c8996d52e80cff75e7062 (diff)
downloadopen-axiom-ba91d65da984ba19dff664422ca48b2a179ea4b9.tar.gz
* algebra/integer.spad.pamphlet (Integer): Use builtin functions
%irem and %iquo. * algebra/si.spad.pamphlet (SingleInteger): Likewise.
Diffstat (limited to 'src/algebra/si.spad.pamphlet')
-rw-r--r--src/algebra/si.spad.pamphlet16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/algebra/si.spad.pamphlet b/src/algebra/si.spad.pamphlet
index 98fe1168..6a7ef5a3 100644
--- a/src/algebra/si.spad.pamphlet
+++ b/src/algebra/si.spad.pamphlet
@@ -181,9 +181,9 @@ IntegerNumberSystem(): Category ==
-- Lisp dependencies
--- EQ, ABSVAL, TIMES, INTEGER-LENGTH, HASHEQ, REMAINDER
+-- EQ, ABSVAL, TIMES, INTEGER-LENGTH, HASHEQ,
-- QSLESSP, QSGREATERP, QSADD1, QSSUB1, QSMINUS, QSPLUS, QSDIFFERENCE
--- QSTIMES, QSREMAINDER, QSODDP, QSZEROP, QSMAX, QSMIN, QSNOT, QSAND
+-- QSTIMES,, QSODDP, QSZEROP, QSMAX, QSMIN, QSNOT, QSAND
-- QSOR, QSXOR, QSLEFTSHIFT, QSADDMOD, QSDIFMOD, QSMULTMOD
@@ -215,6 +215,8 @@ SingleInteger(): Join(IntegerNumberSystem,OrderedFinite,BooleanLogic,Logic,OpenM
import %iadd: (%,%) -> % from Foreign Builtin
import %isub: (%,%) -> % from Foreign Builtin
import %imul: (%,%) -> % from Foreign Builtin
+ import %irem: (%,%) -> % from Foreign Builtin
+ import %iquo: (%,%) -> % from Foreign Builtin
import %ineg: % -> % from Foreign Builtin
import %iabs: % -> % from Foreign Builtin
import %imax: (%,%) -> % from Foreign Builtin
@@ -312,8 +314,8 @@ SingleInteger(): Join(IntegerNumberSystem,OrderedFinite,BooleanLogic,Logic,OpenM
x:% * y:% == %imul(x,y)
x:% ** n:NonNegativeInteger ==
(%ipow(x, n)$Foreign(Builtin) pretend Integer)::%
- x quo y == QSQUOTIENT(x,y)$Lisp
- x rem y == QSREMAINDER(x,y)$Lisp
+ x quo y == %iquo(x,y)
+ x rem y == %irem(x,y)
divide(x, y) == CONS(QSQUOTIENT(x,y)$Lisp,QSREMAINDER(x,y)$Lisp)$Lisp
gcd(x,y) == %igcd(x,y)
abs(x) == %iabs x
@@ -339,7 +341,7 @@ SingleInteger(): Join(IntegerNumberSystem,OrderedFinite,BooleanLogic,Logic,OpenM
[m pretend Matrix(Integer), v pretend Vector(Integer)]
positiveRemainder(x,n) ==
- r := QSREMAINDER(x,n)$Lisp
+ r := %irem(x,n)
negative? r =>
negative? n => x - n
r + n
@@ -348,8 +350,8 @@ SingleInteger(): Join(IntegerNumberSystem,OrderedFinite,BooleanLogic,Logic,OpenM
coerce(x:Integer):% == per x
random() ==
- seed := REMAINDER(TIMES(MULTIPLIER,seed)$Lisp,MODULUS)$Lisp
- REMAINDER(seed,BASE)$Lisp
+ seed := TIMES(MULTIPLIER,seed)$Lisp rem MODULUS
+ seed rem BASE
random(n) == RANDOM(n)$Lisp