diff options
| -rw-r--r-- | lisp/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/calc/calc-comb.el | 42 |
2 files changed, 35 insertions, 13 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b809757a9de..a59c7d623b4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2007-06-24 Jay Belanger <jay.p.belanger@gmail.com> | ||
| 2 | |||
| 3 | * calc/calc-comb.el (math-init-random-base,math-prime-test): | ||
| 4 | Use math-read-number-simple to insert constants. | ||
| 5 | (math-prime-test): Redo calculation of sum. | ||
| 6 | |||
| 1 | 2007-06-23 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> | 7 | 2007-06-23 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> |
| 2 | 8 | ||
| 3 | * textmodes/bibtex.el (bibtex-entry-format): New options | 9 | * textmodes/bibtex.el (bibtex-entry-format): New options |
diff --git a/lisp/calc/calc-comb.el b/lisp/calc/calc-comb.el index d4d2ce19528..515995a2e74 100644 --- a/lisp/calc/calc-comb.el +++ b/lisp/calc/calc-comb.el | |||
| @@ -560,9 +560,15 @@ | |||
| 560 | nil | 560 | nil |
| 561 | (if (Math-integerp var-RandSeed) | 561 | (if (Math-integerp var-RandSeed) |
| 562 | (let* ((seed (math-sub 161803 var-RandSeed)) | 562 | (let* ((seed (math-sub 161803 var-RandSeed)) |
| 563 | (mj (1+ (math-mod seed '(bigpos 0 0 1)))) | 563 | (mj (1+ (math-mod seed |
| 564 | (mk (1+ (math-mod (math-quotient seed '(bigpos 0 0 1)) | 564 | (eval-when-compile |
| 565 | '(bigpos 0 0 1)))) | 565 | (math-read-number-simple "1000000"))))) |
| 566 | (mk (1+ (math-mod (math-quotient | ||
| 567 | seed | ||
| 568 | (eval-when-compile | ||
| 569 | (math-read-number-simple "1000000"))) | ||
| 570 | (eval-when-compile | ||
| 571 | (math-read-number-simple "1000000"))))) | ||
| 566 | (i 0)) | 572 | (i 0)) |
| 567 | (setq math-random-table (cons 'vec (make-list 55 mj))) | 573 | (setq math-random-table (cons 'vec (make-list 55 mj))) |
| 568 | (while (<= (setq i (1+ i)) 54) | 574 | (while (<= (setq i (1+ i)) 54) |
| @@ -811,7 +817,9 @@ | |||
| 811 | (error "Argument must be an integer")) | 817 | (error "Argument must be an integer")) |
| 812 | ((Math-integer-negp n) | 818 | ((Math-integer-negp n) |
| 813 | '(nil)) | 819 | '(nil)) |
| 814 | ((Math-natnum-lessp n '(bigpos 0 0 8)) | 820 | ((Math-natnum-lessp n |
| 821 | (eval-when-compile | ||
| 822 | (math-read-number-simple "8000000"))) | ||
| 815 | (setq n (math-fixnum n)) | 823 | (setq n (math-fixnum n)) |
| 816 | (let ((i -1) v) | 824 | (let ((i -1) v) |
| 817 | (while (and (> (% n (setq v (aref math-primes-table | 825 | (while (and (> (% n (setq v (aref math-primes-table |
| @@ -824,15 +832,23 @@ | |||
| 824 | ((not (equal n (car math-prime-test-cache))) | 832 | ((not (equal n (car math-prime-test-cache))) |
| 825 | (cond ((= (% (nth 1 n) 2) 0) '(nil 2)) | 833 | (cond ((= (% (nth 1 n) 2) 0) '(nil 2)) |
| 826 | ((= (% (nth 1 n) 5) 0) '(nil 5)) | 834 | ((= (% (nth 1 n) 5) 0) '(nil 5)) |
| 827 | (t (let ((dig (cdr n)) (sum 0)) | 835 | (t (let ((q n) (sum 0)) |
| 828 | (while dig | 836 | (while (not (eq q 0)) |
| 829 | (if (cdr dig) | 837 | (setq sum (% |
| 830 | (setq sum (% (+ (+ sum (car dig)) | 838 | (+ |
| 831 | (* (nth 1 dig) 1000)) | 839 | sum |
| 832 | 111111) | 840 | (calcFunc-mod |
| 833 | dig (cdr (cdr dig))) | 841 | q |
| 834 | (setq sum (% (+ sum (car dig)) 111111) | 842 | (eval-when-compile |
| 835 | dig nil))) | 843 | (math-read-number-simple |
| 844 | "1000000")))) | ||
| 845 | 111111)) | ||
| 846 | (setq q | ||
| 847 | (math-quotient | ||
| 848 | q | ||
| 849 | (eval-when-compile | ||
| 850 | (math-read-number-simple | ||
| 851 | "1000000"))))) | ||
| 836 | (cond ((= (% sum 3) 0) '(nil 3)) | 852 | (cond ((= (% sum 3) 0) '(nil 3)) |
| 837 | ((= (% sum 7) 0) '(nil 7)) | 853 | ((= (% sum 7) 0) '(nil 7)) |
| 838 | ((= (% sum 11) 0) '(nil 11)) | 854 | ((= (% sum 11) 0) '(nil 11)) |