From 258d6427280f1ee0cce0dcdf12c38ad65b5e36cc Mon Sep 17 00:00:00 2001 From: dos-reis Date: Tue, 6 Jan 2009 06:53:21 +0000 Subject: * interp/sys-utility.boot (getVMType): IndexList are lists. * interp/g-util.boot (isSubDomain): Tidy. * interp/g-opt.boot (isVMConstantForm): New. (findVMFreeVars): Likewise. * interp/define.boot (insertViewMorphisms): Remove. (emitSubdomainInfo): New. (checkVariableName): Likewise. (checkParameterNames): Likewise. (checkRepresentation): Set $subdomain where appropriate. (compDefines): Check parameter names. (compDefineFunctor1): Propagate subdomain info. (doIt): Don't call insertViewMorphisms. * interp/compiler.boot (setqSingle): Check variable name. (compIterator): Likewise. (commonSuperType): New. (satisfies): Likewise. (coerceSubset): Use them to implemen cross-subdomain coercion. (coerceSuperset): New. (comCoerce1): Use it. (compPer): New. (compRep): Likewise. * interp/c-util.boot (getRepresentation): New. (proclaimCapsuleFunction): Improve for specialized subdomains. * algebra/stream.spad.pamphlet: Don't use `per' as variable name. * algebra/si.spad.pamphlet (size$SingleInteger): Tidy. (coerce$SingleInteger): Likewise. * algebra/reclos.spad.pamphlet (nonNull$RealClosure): Don't use `rep' as parameter name. * algebra/data.spad.pamphlet (Byte): Now a subdomain of NonNegativeInteger. Tidy. --- src/algebra/si.spad.pamphlet | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'src/algebra/si.spad.pamphlet') diff --git a/src/algebra/si.spad.pamphlet b/src/algebra/si.spad.pamphlet index 809a9f67..b6767706 100644 --- a/src/algebra/si.spad.pamphlet +++ b/src/algebra/si.spad.pamphlet @@ -319,9 +319,7 @@ SingleInteger(): Join(IntegerNumberSystem,OrderedFinite,Logic,OpenMath) with submod(a,b,p) == QSDIFMOD(a,b,p)$Lisp negative?(x) == QSMINUSP$Lisp x size() == (MAXINT -$Lisp MININT +$Lisp 1$Lisp) pretend NonNegativeInteger - index i == - i > size() => error ["index %1b out of range",i] - per(i + MININT - 1$Lisp) + index i == per(i + MININT - 1$Lisp) lookup x == (x -$Lisp MININT +$Lisp 1$Lisp) pretend PositiveInteger @@ -336,9 +334,7 @@ SingleInteger(): Join(IntegerNumberSystem,OrderedFinite,Logic,OpenMath) with QSPLUS(r, n)$Lisp r - coerce(x:Integer):% == - (x <= rep max) and (x >= rep min) => per x - error "integer too large to represent in a machine word" + coerce(x:Integer):% == per x random() == seed := REMAINDER(TIMES(MULTIPLIER,seed)$Lisp,MODULUS)$Lisp -- cgit v1.2.3