Changeset 34 for trunk/statistics

Show
Ignore:
Timestamp:
03/11/08 01:34:13 (8 months ago)
Author:
lhealy
Message:

The classes/types in the different contexts are now gathered together
in one place, in *type-names* for the types and in *data-class-name*
for data classes, populated by #'add-data-class. Both defdata and
defmfun-all use the table and so mapping between various names is
consistent. The data class names are now different, *-double-float
and *-single-float replaces *-double and *-single. The regression
tests give the same results as before.

Location:
trunk/statistics
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • trunk/statistics/absolute-deviation.lisp

    r26 r34  
    11;; Absolute deviation 
    22;; Liam Healy, Sun Dec 31 2006 - 13:19 
    3 ;; Time-stamp: <2008-02-17 16:39:38EST absolute-deviation.lisp> 
     3;; Time-stamp: <2008-03-09 19:21:48EDT absolute-deviation.lisp> 
    44;; $Id$ 
    55 
     
    8181#| 
    8282(make-tests absolute-deviation 
    83   (letm ((vec (vector-double #(-3.21d0 1.0d0 12.8d0))) 
    84            (weights (vector-double #(3.0d0 1.0d0 2.0d0)))) 
     83  (letm ((vec (vector-double-float #(-3.21d0 1.0d0 12.8d0))) 
     84           (weights (vector-double-float #(3.0d0 1.0d0 2.0d0)))) 
    8585      (let ((mean (mean vec))) 
    8686        (list 
     
    9494   (LIST (LIST 6.18d0 6.647777777777779d0 6.18d0)) 
    9595   (MULTIPLE-VALUE-LIST 
    96     (LETM ((VEC (VECTOR-DOUBLE #(-3.21d0 1.0d0 12.8d0))) 
    97            (WEIGHTS (VECTOR-DOUBLE #(3.0d0 1.0d0 2.0d0)))) 
     96    (LETM ((VEC (VECTOR-DOUBLE-FLOAT #(-3.21d0 1.0d0 12.8d0))) 
     97           (WEIGHTS (VECTOR-DOUBLE-FLOAT #(3.0d0 1.0d0 2.0d0)))) 
    9898      (LET ((MEAN (MEAN VEC))) 
    9999        (LIST (ABSOLUTE-DEVIATION VEC) 
  • trunk/statistics/autocorrelation.lisp

    r26 r34  
    11;; Autocorrelation 
    22;; Liam Healy, Sun Dec 31 2006 - 13:19 
    3 ;; Time-stamp: <2008-02-17 18:29:36EST autocorrelation.lisp> 
     3;; Time-stamp: <2008-03-09 19:21:48EDT autocorrelation.lisp> 
    44;; $Id$ 
    55 
     
    3737#| 
    3838(make-tests autocorrelation 
    39   (letm ((vec (vector-double #(-3.21d0 1.0d0 12.8d0)))) 
     39  (letm ((vec (vector-double-float #(-3.21d0 1.0d0 12.8d0)))) 
    4040      (let ((mean (mean vec))) 
    4141        (list 
     
    4949    (LIST -0.04646366834251103d0 -0.04646366834251103d0)) 
    5050   (MULTIPLE-VALUE-LIST 
    51     (LETM ((VEC (VECTOR-DOUBLE #(-3.21d0 1.0d0 12.8d0)))) 
     51    (LETM ((VEC (VECTOR-DOUBLE-FLOAT #(-3.21d0 1.0d0 12.8d0)))) 
    5252      (LET ((MEAN (MEAN VEC))) 
    5353        (LIST (AUTOCORRELATION VEC) 
  • trunk/statistics/covariance.lisp

    r26 r34  
    11;; Covariance 
    22;; Liam Healy, Sun Dec 31 2006 - 13:19 
    3 ;; Time-stamp: <2008-02-17 16:48:17EST covariance.lisp> 
     3;; Time-stamp: <2008-03-09 19:21:49EDT covariance.lisp> 
    44;; $Id$ 
    55 
     
    3939#| 
    4040(make-tests covariance 
    41   (letm ((vec1 (vector-double #(-3.21d0 1.0d0 12.8d0))) 
    42            (vec2 (vector-double #(1.15d0 -1.0d0 0.5d0)))) 
     41  (letm ((vec1 (vector-double-float #(-3.21d0 1.0d0 12.8d0))) 
     42           (vec2 (vector-double-float #(1.15d0 -1.0d0 0.5d0)))) 
    4343      (let ((mean1 (mean vec1)) 
    4444            (mean2 (mean vec2))) 
     
    5454   (MULTIPLE-VALUE-LIST 
    5555    (LETM 
    56         ((VEC1 (VECTOR-DOUBLE #(-3.21d0 1.0d0 12.8d0))) 
    57          (VEC2 (VECTOR-DOUBLE #(1.15d0 -1.0d0 0.5d0)))) 
     56        ((VEC1 (VECTOR-DOUBLE-FLOAT #(-3.21d0 1.0d0 12.8d0))) 
     57         (VEC2 (VECTOR-DOUBLE-FLOAT #(1.15d0 -1.0d0 0.5d0)))) 
    5858      (LET ((MEAN1 (MEAN VEC1)) (MEAN2 (MEAN VEC2))) 
    5959        (LIST (COVARIANCE VEC1 VEC2) 
  • trunk/statistics/higher-moments.lisp

    r26 r34  
    11;; Skewness and kurtosis. 
    22;; Liam Healy, Sun Dec 31 2006 - 14:20 
    3 ;; Time-stamp: <2008-02-17 16:42:59EST higher-moments.lisp> 
     3;; Time-stamp: <2008-03-09 19:21:48EDT higher-moments.lisp> 
    44;; $Id$ 
    55 
     
    121121#| 
    122122(make-tests higher-moments 
    123   (letm ((vec (vector-double #(-3.21d0 1.0d0 12.8d0)))) 
     123  (letm ((vec (vector-double-float #(-3.21d0 1.0d0 12.8d0)))) 
    124124      (let* ((mean (mean vec)) 
    125125             (sd (standard-deviation vec mean))) 
     
    137137          -2.333333333333333d0 -2.333333333333333d0)) 
    138138   (MULTIPLE-VALUE-LIST 
    139     (LETM ((VEC (VECTOR-DOUBLE #(-3.21d0 1.0d0 12.8d0)))) 
     139    (LETM ((VEC (VECTOR-DOUBLE-FLOAT #(-3.21d0 1.0d0 12.8d0)))) 
    140140      (LET* ((MEAN (MEAN VEC)) 
    141141             (SD (STANDARD-DEVIATION VEC MEAN))) 
  • trunk/statistics/mean-variance.lisp

    r26 r34  
    11;; Mean, standard deviation, and variance     
    22;; Liam Healy, Sat Dec  2 2006 - 22:15 
    3 ;; Time-stamp: <2008-02-17 16:35:48EST mean-variance.lisp> 
     3;; Time-stamp: <2008-03-09 19:21:47EDT mean-variance.lisp> 
    44;; $Id$ 
    55 
     
    1111(defmacro defmfun-stats (&rest args) 
    1212  "A defmfun for stats of double, single, and fixnum." 
    13   (defmfun-all 
    14       ;;'(double single fixnum long) 
    15       '(double single fixnum) 
    16       ;;'(:double :float :int :long-double) 
    17       '(:double :float :int) 
    18     "stats" 
    19     'gsl-vector 
    20     args)) 
     13  (defmfun-all 'vector '(double-float single-float fixnum) args "stats")) 
    2114 
    2215(defmacro defmfun-stats-ds (&rest args) 
    2316  "A defmfun for stats of double and single." 
    24   (defmfun-all 
    25       '(double single) 
    26       '(:double :float) 
    27     "stats" 
    28     'gsl-vector 
    29     args)) 
     17  (defmfun-all 'vector '(double-float single-float) args "stats")) 
    3018 
    3119;;;;**************************************************************************** 
     
    3321;;;;**************************************************************************** 
    3422 
    35 (defgeneric mean (gsl-vector) 
     23(defgeneric mean (vector) 
    3624  (:documentation                       ; FDL 
    3725   "The arithmetic mean of the vector. 
     
    3927   \Hat\mu and defined as \Hat\mu = (1/N) \sum x_i.  Returns a double-float.")) 
    4028 
    41 (defmfun-stats mean ((vector gsl-vector)) 
     29(defmfun-stats mean ((vector vector)) 
    4230  "gsl_stats_mean" 
    4331  (((gsl-array vector) :pointer) (1 :int) ((dim0 vector) size)) 
    4432  :c-return :double) 
    4533 
    46 (defgeneric weighted-mean (gsl-vector weights) 
     34(defgeneric weighted-mean (vector weights) 
    4735  (:documentation                       ; FDL 
    4836   "The weighted mean of the dataset, using the set of weights 
     
    5038    \Hat\mu = (\sum w_i x_i) / (\sum w_i).")) 
    5139 
    52 (defmfun-stats-ds weighted-mean ((vector gsl-vector) weights) 
     40(defmfun-stats-ds weighted-mean ((vector vector) weights) 
    5341  "gsl_stats_wmean" 
    5442  (((gsl-array weights) :pointer) (1 :int) 
     
    6048;;;;**************************************************************************** 
    6149 
    62 (defgeneric variance-nom (gsl-vector) 
     50(defgeneric variance-nom (vector) 
    6351  (:documentation                       ; FDL 
    6452   "The estimated, or sample, variance of data.  The 
     
    7563   #'variance-m.")) 
    7664 
    77 (defmfun-stats variance-nom ((vector gsl-vector)) 
     65(defmfun-stats variance-nom ((vector vector)) 
    7866  "gsl_stats_variance" 
    7967  (((gsl-array vector) :pointer) (1 :int) ((dim0 vector) size)) 
     
    8270  :c-return :double) 
    8371 
    84 (defgeneric variance-m (gsl-vector mean) 
     72(defgeneric variance-m (vector mean) 
    8573  (:documentation                       ; FDL 
    8674   "Compute the variance with the mean known to 
    8775   avoid its recomputation.")) 
    8876 
    89 (defmfun-stats variance-m ((vector gsl-vector) mean) 
     77(defmfun-stats variance-m ((vector vector) mean) 
    9078  "gsl_stats_variance_m" 
    9179  (((gsl-array vector) :pointer) (1 :int) 
     
    112100;;;;**************************************************************************** 
    113101 
    114 (defgeneric weighted-variance-nom (gsl-vector weights) 
     102(defgeneric weighted-variance-nom (vector weights) 
    115103  (:documentation                       ; FDL 
    116104   "Compute the weighted variance with the mean unknown.")) 
    117105 
    118 (defmfun-stats-ds weighted-variance-nom ((vector gsl-vector) weights) 
     106(defmfun-stats-ds weighted-variance-nom ((vector vector) weights) 
    119107  "gsl_stats_wvariance" 
    120108  (((gsl-array weights) :pointer) (1 :int) 
     
    124112  :c-return :double) 
    125113 
    126 (defgeneric weighted-variance-m (gsl-vector weights mean) 
     114(defgeneric weighted-variance-m (vector weights mean) 
    127115  (:documentation                       ; FDL 
    128116   "Compute the weighted variance with the mean known to 
    129117   avoid its recomputation.")) 
    130118 
    131 (defmfun-stats-ds weighted-variance-m ((vector gsl-vector) weights mean) 
     119(defmfun-stats-ds weighted-variance-m ((vector vector) weights mean) 
    132120  "gsl_stats_wvariance_m" 
    133121  (((gsl-array weights) :pointer) (1 :int) 
     
    153141;;;;**************************************************************************** 
    154142 
    155 (defgeneric standard-deviation-nom (gsl-vector) 
     143(defgeneric standard-deviation-nom (vector) 
    156144  (:documentation                       ; FDL 
    157145   "The standard deviation, square root of the variance.")) 
    158146 
    159 (defmfun-stats standard-deviation-nom ((vector gsl-vector)) 
     147(defmfun-stats standard-deviation-nom ((vector vector)) 
    160148  "gsl_stats_sd" 
    161149  (((gsl-array vector) :pointer) (1 :int) ((dim0 vector) size)) 
     
    164152  :c-return :double) 
    165153 
    166 (defgeneric standard-deviation-m (gsl-vector mean) 
     154(defgeneric standard-deviation-m (vector mean) 
    167155  (:documentation                       ; FDL 
    168156   "The standard deviation with the mean known to 
    169157   avoid its recomputation.")) 
    170158 
    171 (defmfun-stats standard-deviation-m ((vector gsl-vector) mean) 
     159(defmfun-stats standard-deviation-m ((vector vector) mean) 
    172160  "gsl_stats_sd_m" 
    173161  (((gsl-array vector) :pointer) (1 :int) 
     
    185173;;;;**************************************************************************** 
    186174 
    187 (defgeneric weighted-standard-deviation-nom (gsl-vector weights)) 
     175(defgeneric weighted-standard-deviation-nom (vector weights)) 
    188176 
    189177(defmfun-stats-ds weighted-standard-deviation-nom 
    190     ((vector gsl-vector) weights) 
     178    ((vector vector) weights) 
    191179  "gsl_stats_wsd" 
    192180  (((gsl-array weights) :pointer) (1 :int) 
     
    196184  :c-return :double) 
    197185 
    198 (defgeneric weighted-standard-deviation-m (gsl-vector weights mean)) 
     186(defgeneric weighted-standard-deviation-m (vector weights mean)) 
    199187 
    200188(defmfun-stats-ds weighted-standard-deviation-m 
    201     ((vector gsl-vector) weights mean) 
     189    ((vector vector) weights mean) 
    202190  "gsl_stats_wsd_m" 
    203191  (((gsl-array weights) :pointer) (1 :int) 
     
    216204;;;;**************************************************************************** 
    217205 
    218 (defgeneric variance-with-fixed-mean (gsl-vector mean) 
     206(defgeneric variance-with-fixed-mean (vector mean) 
    219207  (:documentation                       ; FDL 
    220208   "An unbiased estimate of the variance of 
     
    225213    \Hat\sigma^2 = (1/N) \sum (x_i - \mu)^2.")) 
    226214 
    227 (defmfun-stats variance-with-fixed-mean ((vector gsl-vector) mean) 
     215(defmfun-stats variance-with-fixed-mean ((vector vector) mean) 
    228216  "gsl_stats_variance_with_fixed_mean" 
    229217  (((gsl-array vector) :pointer) (1 :int) ((dim0 vector) size) 
     
    231219  :c-return :double) 
    232220 
    233 (defgeneric standard-deviation-with-fixed-mean (gsl-vector mean) 
     221(defgeneric standard-deviation-with-fixed-mean (vector mean) 
    234222  (:documentation                       ; FDL 
    235223   "The standard deviation of data for a fixed population 
     
    238226 
    239227(defmfun-stats standard-deviation-with-fixed-mean 
    240     ((vector gsl-vector) mean) 
     228    ((vector vector) mean) 
    241229  "gsl_stats_sd_with_fixed_mean" 
    242230  (((gsl-array vector) :pointer) (1 :int) ((dim0 vector) size) 
     
    248236;;;;**************************************************************************** 
    249237 
    250 (defgeneric weighted-variance-with-fixed-mean (gsl-vector weights mean) 
     238(defgeneric weighted-variance-with-fixed-mean (vector weights mean) 
    251239  (:documentation                       ; FDL 
    252240   "An unbiased estimate of the variance of weighted 
     
    258246 
    259247(defmfun-stats-ds weighted-variance-with-fixed-mean 
    260     ((vector gsl-vector) weights mean) 
     248    ((vector vector) weights mean) 
    261249  "gsl_stats_wvariance_with_fixed_mean" 
    262250  (((gsl-array weights) :pointer) (1 :int) 
     
    266254 
    267255(defgeneric weighted-standard-deviation-with-fixed-mean 
    268     (gsl-vector weights mean) 
     256    (vector weights mean) 
    269257  (:documentation                       ; FDL 
    270258   "The square root of the corresponding variance 
     
    272260 
    273261(defmfun-stats-ds weighted-standard-deviation-with-fixed-mean 
    274     ((vector gsl-vector) weights mean) 
     262    ((vector vector) weights mean) 
    275263  "gsl_stats_wsd_with_fixed_mean" 
    276264  (((gsl-array weights) :pointer) (1 :int) 
     
    285273#| 
    286274(make-tests mean-variance 
    287   (letm ((vec (vector-double #(-3.21d0 1.0d0 12.8d0))) 
    288            (weights (vector-double #(3.0d0 1.0d0 2.0d0)))) 
     275  (letm ((vec (vector-double-float #(-3.21d0 1.0d0 12.8d0))) 
     276           (weights (vector-double-float #(3.0d0 1.0d0 2.0d0)))) 
    289277      (let ((mean (mean vec)) 
    290278            (wmean (weighted-mean vec weights))) 
     
    321309   (MULTIPLE-VALUE-LIST 
    322310    (LETM 
    323         ((VEC (VECTOR-DOUBLE #(-3.21d0 1.0d0 12.8d0))) 
    324          (WEIGHTS (VECTOR-DOUBLE #(3.0d0 1.0d0 2.0d0)))) 
     311        ((VEC (VECTOR-DOUBLE-FLOAT #(-3.21d0 1.0d0 12.8d0))) 
     312         (WEIGHTS (VECTOR-DOUBLE-FLOAT #(3.0d0 1.0d0 2.0d0)))) 
    325313      (LET ((MEAN (MEAN VEC)) 
    326314            (WMEAN (WEIGHTED-MEAN VEC WEIGHTS))) 
  • trunk/statistics/median-percentile.lisp

    r26 r34  
    11;; Median and percentile 
    22;; Liam Healy, Sun Dec 31 2006 - 13:19 
    3 ;; Time-stamp: <2008-02-17 16:50:24EST median-percentile.lisp> 
     3;; Time-stamp: <2008-03-09 19:19:28EDT median-percentile.lisp> 
    44;; $Id$ 
    55 
     
    3131  :c-return :double 
    3232  :documentation                        ; FDL 
    33   "A quantile value of sorted-data, gsl-vector-double.  The 
     33  "A quantile value of sorted-data, vector-double-float.  The 
    3434   elements of the array must be in ascending numerical order.  The 
    3535   quantile is determined by a fraction between 0 and 1.  For 
     
    5151#| 
    5252(make-tests median-percentile 
    53   (letm ((vec (vector-double #(-3.21d0 1.0d0 12.8d0)))) 
     53  (letm ((vec (vector-double-float #(-3.21d0 1.0d0 12.8d0)))) 
    5454     (median vec)) 
    55   (letm ((vec (vector-double #(-18.0d0 -12.0d0 -3.21d0 0.5d0 1.0d0 2.7d0 12.8d0)))) 
     55  (letm ((vec (vector-double-float 
     56               #(-18.0d0 -12.0d0 -3.21d0 0.5d0 1.0d0 2.7d0 12.8d0)))) 
    5657     (quantile vec 0.75d0))) 
    5758|# 
     
    6162   (LIST 1.0d0) 
    6263   (MULTIPLE-VALUE-LIST 
    63     (LETM ((VEC (VECTOR-DOUBLE #(-3.21d0 1.0d0 12.8d0)))) 
     64    (LETM ((VEC (VECTOR-DOUBLE-FLOAT #(-3.21d0 1.0d0 12.8d0)))) 
    6465      (MEDIAN VEC)))) 
    6566  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL 
    6667   (LIST 1.85d0) 
    6768   (MULTIPLE-VALUE-LIST 
    68     (LETM ((VEC (VECTOR-DOUBLE #(-18.0d0 -12.0d0 -3.21d0 0.5d0 1.0d0 2.7d0 12.8d0)))) 
     69    (LETM ((VEC (VECTOR-DOUBLE-FLOAT 
     70                 #(-18.0d0 -12.0d0 -3.21d0 0.5d0 1.0d0 2.7d0 12.8d0)))) 
    6971      (QUANTILE VEC 0.75d0))))) 
    7072