aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Belanger2007-06-24 14:30:14 +0000
committerJay Belanger2007-06-24 14:30:14 +0000
commit40cddce8bd63f840f17a1fbe72c68ead91dcd3c7 (patch)
tree917787077c36ca70464576508500087caffc64ac
parent2793c9bb612afd0d80ca3f9874798cc1247db24a (diff)
downloademacs-40cddce8bd63f840f17a1fbe72c68ead91dcd3c7.tar.gz
emacs-40cddce8bd63f840f17a1fbe72c68ead91dcd3c7.zip
(math-init-random-base,math-prime-test): Use math-read-number-simple
to insert constants. (math-prime-test): Redo calculation of sum.
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/calc/calc-comb.el42
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 @@
12007-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
12007-06-23 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> 72007-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))