You can subscribe to this list here.
2000 
_{Jan}
(16) 
_{Feb}
(21) 
_{Mar}
(49) 
_{Apr}
(35) 
_{May}
(25) 
_{Jun}
(15) 
_{Jul}
(17) 
_{Aug}
(15) 
_{Sep}
(12) 
_{Oct}
(18) 
_{Nov}
(42) 
_{Dec}
(31) 

2001 
_{Jan}
(35) 
_{Feb}
(24) 
_{Mar}
(53) 
_{Apr}
(59) 
_{May}
(124) 
_{Jun}
(134) 
_{Jul}
(92) 
_{Aug}
(74) 
_{Sep}
(75) 
_{Oct}
(95) 
_{Nov}
(47) 
_{Dec}
(32) 
2002 
_{Jan}
(191) 
_{Feb}
(143) 
_{Mar}
(279) 
_{Apr}
(287) 
_{May}
(106) 
_{Jun}
(96) 
_{Jul}
(95) 
_{Aug}
(126) 
_{Sep}
(184) 
_{Oct}
(152) 
_{Nov}
(84) 
_{Dec}
(136) 
2003 
_{Jan}
(170) 
_{Feb}
(64) 
_{Mar}
(202) 
_{Apr}
(142) 
_{May}
(103) 
_{Jun}
(145) 
_{Jul}
(56) 
_{Aug}
(204) 
_{Sep}
(130) 
_{Oct}
(91) 
_{Nov}
(32) 
_{Dec}
(130) 
2004 
_{Jan}
(89) 
_{Feb}
(208) 
_{Mar}
(190) 
_{Apr}
(61) 
_{May}
(111) 
_{Jun}
(126) 
_{Jul}
(121) 
_{Aug}
(90) 
_{Sep}
(65) 
_{Oct}
(80) 
_{Nov}
(90) 
_{Dec}
(95) 
2005 
_{Jan}
(63) 
_{Feb}
(106) 
_{Mar}
(105) 
_{Apr}
(90) 
_{May}
(99) 
_{Jun}
(96) 
_{Jul}
(197) 
_{Aug}
(144) 
_{Sep}
(128) 
_{Oct}
(123) 
_{Nov}
(232) 
_{Dec}
(153) 
2006 
_{Jan}
(210) 
_{Feb}
(69) 
_{Mar}
(37) 
_{Apr}
(74) 
_{May}
(123) 
_{Jun}
(51) 
_{Jul}
(91) 
_{Aug}
(25) 
_{Sep}
(98) 
_{Oct}
(98) 
_{Nov}
(87) 
_{Dec}
(33) 
2007 
_{Jan}
(43) 
_{Feb}
(41) 
_{Mar}
(27) 
_{Apr}
(18) 
_{May}
(20) 
_{Jun}
(18) 
_{Jul}
(35) 
_{Aug}
(35) 
_{Sep}
(21) 
_{Oct}
(75) 
_{Nov}
(41) 
_{Dec}
(28) 
2008 
_{Jan}
(34) 
_{Feb}
(28) 
_{Mar}
(33) 
_{Apr}
(26) 
_{May}
(45) 
_{Jun}
(35) 
_{Jul}
(36) 
_{Aug}
(32) 
_{Sep}
(87) 
_{Oct}
(70) 
_{Nov}
(98) 
_{Dec}
(96) 
2009 
_{Jan}
(94) 
_{Feb}
(79) 
_{Mar}
(9) 
_{Apr}
(10) 
_{May}
(5) 
_{Jun}
(54) 
_{Jul}
(49) 
_{Aug}
(65) 
_{Sep}
(61) 
_{Oct}
(16) 
_{Nov}
(61) 
_{Dec}
(70) 
2010 
_{Jan}
(2) 
_{Feb}
(67) 
_{Mar}
(8) 
_{Apr}
(30) 
_{May}
(19) 
_{Jun}
(2) 
_{Jul}
(17) 
_{Aug}
(30) 
_{Sep}
(23) 
_{Oct}
(20) 
_{Nov}
(47) 
_{Dec}
(12) 
2011 
_{Jan}
(44) 
_{Feb}
(46) 
_{Mar}
(20) 
_{Apr}
(74) 
_{May}
(35) 
_{Jun}
(37) 
_{Jul}
(5) 
_{Aug}
(14) 
_{Sep}

_{Oct}
(8) 
_{Nov}
(6) 
_{Dec}
(1) 
2012 
_{Jan}
(18) 
_{Feb}
(12) 
_{Mar}
(22) 
_{Apr}
(6) 
_{May}
(16) 
_{Jun}
(17) 
_{Jul}
(10) 
_{Aug}
(13) 
_{Sep}
(2) 
_{Oct}
(8) 
_{Nov}
(10) 
_{Dec}
(1) 
2013 
_{Jan}
(19) 
_{Feb}
(14) 
_{Mar}
(12) 
_{Apr}
(3) 
_{May}
(33) 
_{Jun}
(12) 
_{Jul}
(20) 
_{Aug}
(5) 
_{Sep}
(5) 
_{Oct}
(17) 
_{Nov}
(15) 
_{Dec}
(4) 
2014 
_{Jan}
(8) 
_{Feb}
(4) 
_{Mar}
(17) 
_{Apr}

_{May}
(16) 
_{Jun}
(10) 
_{Jul}
(7) 
_{Aug}

_{Sep}
(1) 
_{Oct}
(25) 
_{Nov}
(6) 
_{Dec}
(1) 
2015 
_{Jan}
(1) 
_{Feb}
(3) 
_{Mar}
(9) 
_{Apr}
(1) 
_{May}
(8) 
_{Jun}

_{Jul}
(16) 
_{Aug}
(13) 
_{Sep}

_{Oct}
(44) 
_{Nov}
(1) 
_{Dec}

S  M  T  W  T  F  S 






1

2
(5) 
3
(6) 
4
(3) 
5
(4) 
6
(1) 
7
(8) 
8
(8) 
9
(5) 
10
(1) 
11
(5) 
12
(4) 
13
(4) 
14
(3) 
15
(5) 
16
(2) 
17
(2) 
18
(4) 
19
(4) 
20
(10) 
21
(10) 
22
(2) 
23
(7) 
24
(8) 
25
(5) 
26
(10) 
27
(7) 
28
(10) 


From: Stefan Kain <smk@us...>  20020210 14:13:35

Hi fellow clispers, I have written the following functions which determine the various floatingpointepsilons. I get discrepancies for the doublefloat*epsilon values on my machine. I don't think, that my FPCoprocessor is wrong. Maybe there is just a wrong definition shipped with clisp. If you want to read, what this all is about, have a look at: http://www.xanalys.com/software_tools/reference/HyperSpec/Body/v_short_.htm Simply load the functions given below and enter into the repl: (testepsilons) Could you give them a try and report your results for your local installation to clisplist? That would be very kind! Thanks! Bye, Stefan =============================================================== (defun testposepsilon (<EPSILON>) (= (float 1 <EPSILON>) (+ (float 1 <EPSILON>) <EPSILON>))) (defun testnegepsilon (<EPSILON>) (= (float 1 <EPSILON>) ( (float 1 <EPSILON>) <EPSILON>))) (defun binarysearch (lower_bound upper_bound old_value precision testfun) (let* ((new_bound (/ (+ (float lower_bound precision) (float upper_bound precision)) 2)) (new_value (float new_bound precision))) (if (= old_value new_value) ;; then ;; (format t "~A ~A~%" old_string new_string) (float upper_bound precision) ;; else (progn ;; (format t "~A ~A~%" (float lower_bound precision) ;; (float upper_bound precision)) (if (funcall testfun new_bound) ;; then (binarysearch new_bound upper_bound new_value precision testfun) ;; else (binarysearch lower_bound new_bound new_value precision testfun)))))) ;;;; test: (defun testepsilons () (let ((fmt "~30E~30E~30E~%")) (format t "~30<~A~>~30<~A~>~30<~A~>~%" "system value" "computed value" "difference") ;; shortfloatepsilon: (format t "shortfloatepsilon:~%") (format t fmt shortfloatepsilon (binarysearch 0.0 1.0 0.0 1.0s0 #'testposepsilon) ( (binarysearch 0.0 1.0 0.0 1.0s0 #'testposepsilon) shortfloatepsilon)) ;; shortfloatnegativeepsilon: (format t "shortfloatnegativeepsilon:~%") (format t fmt shortfloatnegativeepsilon (binarysearch 0.0 1.0 0.0 1.0s0 #'testnegepsilon) ( (binarysearch 0.0 1.0 0.0 1.0s0 #'testnegepsilon) shortfloatnegativeepsilon)) ;; singlefloatepsilon: (format t "singlefloatepsilon:~%") (format t fmt singlefloatepsilon (binarysearch 0.0 1.0 0.0 1.0 #'testposepsilon) ( (binarysearch 0.0 1.0 0.0 1.0 #'testposepsilon) singlefloatepsilon)) ;; singlefloatnegativeepsilon: (format t "singlefloatnegativeepsilon:~%") (format t fmt singlefloatnegativeepsilon (binarysearch 0.0 1.0 0.0 1.0 #'testnegepsilon) ( (binarysearch 0.0 1.0 0.0 1.0 #'testnegepsilon) singlefloatnegativeepsilon)) ;; doublefloatepsilon: (format t "doublefloatepsilon:~%") (format t fmt doublefloatepsilon (binarysearch 0.0 1.0 0.0 1.0d0 #'testposepsilon) ( (binarysearch 0.0 1.0 0.0 1.0d0 #'testposepsilon) doublefloatepsilon)) ;; doublefloatnegativeepsilon: (format t "doublefloatnegativeepsilon:~%") (format t fmt doublefloatnegativeepsilon (binarysearch 0.0 1.0 0.0 1.0d0 #'testnegepsilon) ( (binarysearch 0.0 1.0 0.0 1.0d0 #'testnegepsilon) doublefloatnegativeepsilon)) ;; longfloatepsilon: (format t "longfloatepsilon:~%") (format t fmt longfloatepsilon (binarysearch 0.0 1.0 0.0 1.0l0 #'testposepsilon) ( (binarysearch 0.0 1.0 0.0 1.0l0 #'testposepsilon) longfloatepsilon)) ;;longfloatnegativeepsilon: (format t "longfloatnegativeepsilon:~%") (format t fmt longfloatnegativeepsilon (binarysearch 0.0 1.0 0.0 1.0l0 #'testnegepsilon) ( (binarysearch 0.0 1.0 0.0 1.0l0 #'testnegepsilon) longfloatnegativeepsilon)))) 