diff options
author | dos-reis <gdr@axiomatics.org> | 2010-07-28 08:21:13 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2010-07-28 08:21:13 +0000 |
commit | ba91d65da984ba19dff664422ca48b2a179ea4b9 (patch) | |
tree | f3b17799c39c335e74f5b497bf4f6a5dd814b0b2 /src/algebra/si.spad.pamphlet | |
parent | 0b252ef7247d7c46b66c8996d52e80cff75e7062 (diff) | |
download | open-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.pamphlet | 16 |
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 |