diff options
author | dos-reis <gdr@axiomatics.org> | 2008-12-30 22:43:08 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2008-12-30 22:43:08 +0000 |
commit | 636dd9db98bb535d79160cc33f326261fb880a92 (patch) | |
tree | ccba52558b8745e1c220b4a067fd2062dd25657e /src | |
parent | 60e2bd05a1d4b49386274a0bea74c476d3783aa7 (diff) | |
download | open-axiom-636dd9db98bb535d79160cc33f326261fb880a92.tar.gz |
* algebra/si.spad.pamphlet (size$SingleInteger): Compute value as
extended integer.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/algebra/si.spad.pamphlet | 4 | ||||
-rw-r--r-- | src/algebra/strap/SINT.lsp | 150 |
3 files changed, 82 insertions, 77 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 117ce374..af11fcf6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2008-12-30 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * algebra/si.spad.pamphlet (size$SingleInteger): Compute value as + extended integer. + 2008-12-27 Gabriel Dos Reis <gdr@cs.tamu.edu> * interp/define.boot (compDefineFunctor1): Remove dead code. diff --git a/src/algebra/si.spad.pamphlet b/src/algebra/si.spad.pamphlet index 224976c8..809a9f67 100644 --- a/src/algebra/si.spad.pamphlet +++ b/src/algebra/si.spad.pamphlet @@ -318,12 +318,12 @@ SingleInteger(): Join(IntegerNumberSystem,OrderedFinite,Logic,OpenMath) with addmod(a,b,p) == QSADDMOD(a,b,p)$Lisp submod(a,b,p) == QSDIFMOD(a,b,p)$Lisp negative?(x) == QSMINUSP$Lisp x - size() == (MAXINT - MININT + 1$Lisp) pretend NonNegativeInteger + 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) lookup x == - (x - MININT + 1$Lisp) pretend PositiveInteger + (x -$Lisp MININT +$Lisp 1$Lisp) pretend PositiveInteger reducedSystem(m, v) == diff --git a/src/algebra/strap/SINT.lsp b/src/algebra/strap/SINT.lsp index 2678a626..7db8a6cd 100644 --- a/src/algebra/strap/SINT.lsp +++ b/src/algebra/strap/SINT.lsp @@ -444,7 +444,7 @@ (QSMINUSP |x|)) (DEFUN |SINT;size;Nni;49| ($) - (QSPLUS (QSDIFFERENCE |$ShortMaximum| |$ShortMinimum|) 1)) + (+ (- |$ShortMaximum| |$ShortMinimum|) 1)) (DEFUN |SINT;index;Pi$;50| (|i| $) (COND @@ -453,8 +453,7 @@ (SPADCALL |i| (|getShellEntry| $ 78))))) ('T (- (+ |i| |$ShortMinimum|) 1)))) -(DEFUN |SINT;lookup;$Pi;51| (|x| $) - (QSPLUS (QSDIFFERENCE |x| |$ShortMinimum|) 1)) +(DEFUN |SINT;lookup;$Pi;51| (|x| $) (+ (- |x| |$ShortMinimum|) 1)) (DEFUN |SINT;reducedSystem;MVR;52| (|m| |v| $) (DECLARE (IGNORE $)) @@ -516,7 +515,7 @@ (RETURN (PROGN (LETT |dv$| '(|SingleInteger|) . #0=(|SingleInteger|)) - (LETT $ (|newShell| 108) . #0#) + (LETT $ (|newShell| 109) . #0#) (|setShellEntry| $ 0 |dv$|) (|setShellEntry| $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#)) @@ -566,42 +565,43 @@ |SINT;index;Pi$;50| |SINT;lookup;$Pi;51| (|Vector| 5) (|Record| (|:| |mat| 25) (|:| |vec| 81)) (|Vector| $) |SINT;reducedSystem;MVR;52| |SINT;positiveRemainder;3$;53| - |SINT;coerce;I$;54| |SINT;random;$;55| |SINT;random;2$;56| + (63 . |min|) |SINT;coerce;I$;54| |SINT;random;$;55| + |SINT;random;2$;56| (|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $)) |SINT;unitNormal;$R;57| (|Fraction| 5) - (|Union| 91 '"failed") (|Union| $ '"failed") (|Float|) + (|Union| 92 '"failed") (|Union| $ '"failed") (|Float|) (|DoubleFloat|) (|Pattern| 5) (|PatternMatchResult| 5 $) (|InputForm|) (|Union| 5 '"failed") (|List| $) - (|Record| (|:| |coef| 100) (|:| |generator| $)) - (|Union| 100 '"failed") + (|Record| (|:| |coef| 101) (|:| |generator| $)) + (|Union| 101 '"failed") (|Record| (|:| |coef1| $) (|:| |coef2| $) (|:| |generator| $)) (|Record| (|:| |coef1| $) (|:| |coef2| $)) - (|Union| 104 '"failed") (|Factored| $) + (|Union| 105 '"failed") (|Factored| $) (|SparseUnivariatePolynomial| $)) - '#(~= 63 ~ 69 |zero?| 74 |xor| 79 |unitNormal| 85 - |unitCanonical| 90 |unit?| 95 |symmetricRemainder| 100 - |subtractIfCan| 106 |submod| 112 |squareFreePart| 119 - |squareFree| 124 |sizeLess?| 129 |size| 135 |sign| 139 - |shift| 144 |sample| 150 |retractIfCan| 154 |retract| 159 - |rem| 164 |reducedSystem| 170 |recip| 181 |rationalIfCan| - 186 |rational?| 191 |rational| 196 |random| 201 |quo| 210 - |principalIdeal| 216 |prime?| 221 |powmod| 226 - |positiveRemainder| 233 |positive?| 239 |permutation| 244 - |patternMatch| 250 |one?| 257 |odd?| 262 |not| 267 - |nextItem| 272 |negative?| 277 |multiEuclidean| 282 - |mulmod| 288 |min| 295 |max| 305 |mask| 315 |lookup| 320 - |length| 325 |lcm| 330 |latex| 341 |invmod| 346 |init| 352 - |index| 356 |inc| 361 |hash| 366 |gcdPolynomial| 371 |gcd| - 377 |factorial| 388 |factor| 393 |extendedEuclidean| 398 - |exquo| 411 |expressIdealMember| 417 |even?| 423 - |euclideanSize| 428 |divide| 433 |differentiate| 439 |dec| - 450 |copy| 455 |convert| 460 |coerce| 485 |characteristic| - 505 |bit?| 509 |binomial| 515 |base| 521 |associates?| 525 - |addmod| 531 |abs| 538 |\\/| 543 |Zero| 549 |Or| 553 |One| - 559 |OMwrite| 563 |Not| 587 D 592 |And| 603 >= 609 > 615 = - 621 <= 627 < 633 |/\\| 639 - 645 + 656 ** 662 * 674) + '#(~= 67 ~ 73 |zero?| 78 |xor| 83 |unitNormal| 89 + |unitCanonical| 94 |unit?| 99 |symmetricRemainder| 104 + |subtractIfCan| 110 |submod| 116 |squareFreePart| 123 + |squareFree| 128 |sizeLess?| 133 |size| 139 |sign| 143 + |shift| 148 |sample| 154 |retractIfCan| 158 |retract| 163 + |rem| 168 |reducedSystem| 174 |recip| 185 |rationalIfCan| + 190 |rational?| 195 |rational| 200 |random| 205 |quo| 214 + |principalIdeal| 220 |prime?| 225 |powmod| 230 + |positiveRemainder| 237 |positive?| 243 |permutation| 248 + |patternMatch| 254 |one?| 261 |odd?| 266 |not| 271 + |nextItem| 276 |negative?| 281 |multiEuclidean| 286 + |mulmod| 292 |min| 299 |max| 309 |mask| 319 |lookup| 324 + |length| 329 |lcm| 334 |latex| 345 |invmod| 350 |init| 356 + |index| 360 |inc| 365 |hash| 370 |gcdPolynomial| 375 |gcd| + 381 |factorial| 392 |factor| 397 |extendedEuclidean| 402 + |exquo| 415 |expressIdealMember| 421 |even?| 427 + |euclideanSize| 432 |divide| 437 |differentiate| 443 |dec| + 454 |copy| 459 |convert| 464 |coerce| 489 |characteristic| + 509 |bit?| 513 |binomial| 519 |base| 525 |associates?| 529 + |addmod| 535 |abs| 542 |\\/| 547 |Zero| 553 |Or| 557 |One| + 563 |OMwrite| 567 |Not| 591 D 596 |And| 607 >= 613 > 619 = + 625 <= 631 < 637 |/\\| 643 - 649 + 660 ** 666 * 678) '((|noetherian| . 0) (|canonicalsClosed| . 0) (|canonical| . 0) (|canonicalUnitNormal| . 0) (|multiplicativeValuation| . 0) (|noZeroDivisors| . 0) @@ -647,56 +647,56 @@ (|OrderedSet|) (|AbelianSemiGroup|) (|SemiGroup|) (|Logic|) (|RealConstant|) (|RetractableTo| 5) (|SetCategory|) - (|OpenMath|) (|ConvertibleTo| 94) - (|ConvertibleTo| 95) - (|CombinatorialFunctionCategory|) + (|OpenMath|) (|ConvertibleTo| 95) (|ConvertibleTo| 96) - (|ConvertibleTo| 98) (|ConvertibleTo| 5) + (|CombinatorialFunctionCategory|) + (|ConvertibleTo| 97) + (|ConvertibleTo| 99) (|ConvertibleTo| 5) (|CoercibleFrom| $$) (|CoercibleFrom| 5) (|BasicType|) (|CoercibleTo| 28)) - (|makeByteWordVec2| 107 + (|makeByteWordVec2| 108 '(1 8 7 0 9 3 8 7 0 10 10 11 2 8 7 0 5 12 1 8 7 0 13 0 14 0 15 2 8 0 10 14 16 1 8 7 0 17 1 8 7 0 18 1 8 7 0 19 1 - 5 28 0 29 1 0 0 5 32 1 77 28 0 78 2 0 - 21 0 0 1 1 0 0 0 40 1 0 21 0 64 2 0 0 - 0 0 47 1 0 89 0 90 1 0 0 0 1 1 0 21 0 - 1 2 0 0 0 0 1 2 0 93 0 0 1 3 0 0 0 0 - 0 74 1 0 0 0 1 1 0 106 0 1 2 0 21 0 0 - 1 0 0 55 76 1 0 5 0 1 2 0 0 0 0 71 0 - 0 0 1 1 0 99 0 1 1 0 5 0 1 2 0 0 0 0 - 58 1 0 25 26 27 2 0 82 26 83 84 1 0 - 93 0 1 1 0 92 0 1 1 0 21 0 1 1 0 91 0 - 1 1 0 0 0 88 0 0 0 87 2 0 0 0 0 57 1 - 0 101 100 1 1 0 21 0 1 3 0 0 0 0 0 1 - 2 0 0 0 0 85 1 0 21 0 1 2 0 0 0 0 1 3 - 0 97 0 96 97 1 1 0 21 0 65 1 0 21 0 - 63 1 0 0 0 41 1 0 93 0 1 1 0 21 0 75 - 2 0 102 100 0 1 3 0 0 0 0 0 72 0 0 0 - 38 2 0 0 0 0 67 0 0 0 37 2 0 0 0 0 66 - 1 0 0 0 1 1 0 77 0 80 1 0 0 0 70 1 0 - 0 100 1 2 0 0 0 0 1 1 0 10 0 1 2 0 0 - 0 0 1 0 0 0 1 1 0 0 77 79 1 0 0 0 49 - 1 0 68 0 69 2 0 107 107 107 1 1 0 0 - 100 1 2 0 0 0 0 61 1 0 0 0 1 1 0 106 - 0 1 2 0 103 0 0 1 3 0 105 0 0 0 1 2 0 - 93 0 0 1 2 0 102 100 0 1 1 0 21 0 1 1 - 0 55 0 1 2 0 59 0 0 60 1 0 0 0 1 2 0 - 0 0 55 1 1 0 0 0 50 1 0 0 0 1 1 0 94 - 0 1 1 0 95 0 1 1 0 96 0 1 1 0 98 0 1 - 1 0 5 0 31 1 0 0 5 86 1 0 0 0 1 1 0 0 - 5 86 1 0 28 0 30 0 0 55 1 2 0 21 0 0 - 1 2 0 0 0 0 1 0 0 0 36 2 0 21 0 0 1 3 - 0 0 0 0 0 73 1 0 0 0 62 2 0 0 0 0 43 - 0 0 0 34 2 0 0 0 0 46 0 0 0 35 2 0 7 - 8 0 23 3 0 7 8 0 21 24 2 0 10 0 21 22 - 1 0 10 0 20 1 0 0 0 44 1 0 0 0 1 2 0 - 0 0 55 1 2 0 0 0 0 45 2 0 21 0 0 1 2 - 0 21 0 0 1 2 0 21 0 0 39 2 0 21 0 0 1 - 2 0 21 0 0 48 2 0 0 0 0 42 1 0 0 0 51 - 2 0 0 0 0 53 2 0 0 0 0 52 2 0 0 0 55 - 56 2 0 0 0 77 1 2 0 0 0 0 54 2 0 0 5 - 0 33 2 0 0 55 0 1 2 0 0 77 0 1))))) + 5 28 0 29 1 0 0 5 32 1 77 28 0 78 0 + 21 0 86 2 0 21 0 0 1 1 0 0 0 40 1 0 + 21 0 64 2 0 0 0 0 47 1 0 90 0 91 1 0 + 0 0 1 1 0 21 0 1 2 0 0 0 0 1 2 0 94 0 + 0 1 3 0 0 0 0 0 74 1 0 0 0 1 1 0 107 + 0 1 2 0 21 0 0 1 0 0 55 76 1 0 5 0 1 + 2 0 0 0 0 71 0 0 0 1 1 0 100 0 1 1 0 + 5 0 1 2 0 0 0 0 58 1 0 25 26 27 2 0 + 82 26 83 84 1 0 94 0 1 1 0 93 0 1 1 0 + 21 0 1 1 0 92 0 1 1 0 0 0 89 0 0 0 88 + 2 0 0 0 0 57 1 0 102 101 1 1 0 21 0 1 + 3 0 0 0 0 0 1 2 0 0 0 0 85 1 0 21 0 1 + 2 0 0 0 0 1 3 0 98 0 97 98 1 1 0 21 0 + 65 1 0 21 0 63 1 0 0 0 41 1 0 94 0 1 + 1 0 21 0 75 2 0 103 101 0 1 3 0 0 0 0 + 0 72 0 0 0 38 2 0 0 0 0 67 0 0 0 37 2 + 0 0 0 0 66 1 0 0 0 1 1 0 77 0 80 1 0 + 0 0 70 1 0 0 101 1 2 0 0 0 0 1 1 0 10 + 0 1 2 0 0 0 0 1 0 0 0 1 1 0 0 77 79 1 + 0 0 0 49 1 0 68 0 69 2 0 108 108 108 + 1 1 0 0 101 1 2 0 0 0 0 61 1 0 0 0 1 + 1 0 107 0 1 2 0 104 0 0 1 3 0 106 0 0 + 0 1 2 0 94 0 0 1 2 0 103 101 0 1 1 0 + 21 0 1 1 0 55 0 1 2 0 59 0 0 60 1 0 0 + 0 1 2 0 0 0 55 1 1 0 0 0 50 1 0 0 0 1 + 1 0 95 0 1 1 0 96 0 1 1 0 97 0 1 1 0 + 99 0 1 1 0 5 0 31 1 0 0 5 87 1 0 0 0 + 1 1 0 0 5 87 1 0 28 0 30 0 0 55 1 2 0 + 21 0 0 1 2 0 0 0 0 1 0 0 0 36 2 0 21 + 0 0 1 3 0 0 0 0 0 73 1 0 0 0 62 2 0 0 + 0 0 43 0 0 0 34 2 0 0 0 0 46 0 0 0 35 + 2 0 7 8 0 23 3 0 7 8 0 21 24 2 0 10 0 + 21 22 1 0 10 0 20 1 0 0 0 44 1 0 0 0 + 1 2 0 0 0 55 1 2 0 0 0 0 45 2 0 21 0 + 0 1 2 0 21 0 0 1 2 0 21 0 0 39 2 0 21 + 0 0 1 2 0 21 0 0 48 2 0 0 0 0 42 1 0 + 0 0 51 2 0 0 0 0 53 2 0 0 0 0 52 2 0 + 0 0 55 56 2 0 0 0 77 1 2 0 0 0 0 54 2 + 0 0 5 0 33 2 0 0 55 0 1 2 0 0 77 0 1))))) '|lookupComplete|)) (MAKEPROP '|SingleInteger| 'NILADIC T) |