3 ;;; Time-stamp: <2010-11-07 11:38:53 tony>
4 ;;; Creation: <2009-03-12 17:14:56 tony>
5 ;;; File: gaussian.lisp
6 ;;; Author: AJ Rossini <blindglobe@gmail.com>
7 ;;; Copyright: (c)2009--, AJ Rossini. Currently licensed under MIT
8 ;;; license. See file LICENSE.mit in top-level directory
10 ;;; Purpose: Gaussian probability law structure and functions
12 ;;; What is this talk of 'release'? Klingons do not make software
13 ;;; 'releases'. Our software 'escapes', leaving a bloody trail of
14 ;;; designers and quality assurance people in its wake.
16 ;;; This organization and structure is new to the 21st Century
17 ;;; version.. Think, "21st Century Schizoid Man".
20 (in-package :cls-probability
)
22 (defun gaussian-probability-density-univariate (x params
))
24 (defclass gaussian-probability-parameters
(probability-parameters)
25 ((mean :documentation
"vector (or value) which denotes the mean structure.")
26 (variance :documentation
"matrix (or value) which denotes covariance structure."))
27 :documentation
"standard mean-variance parameterization for gaussian probability law.")
29 (defclass gaussian-probability-univariate-parameters
(gaussian-probability-parameters)
30 ((mean :documentation
"vector (or value) which denotes the mean structure."
31 :type univariate-value
)
32 (variance :documentation
"matrix (or value) which denotes covariance structure."
33 :type univariate-value
))
34 :documentation
"standard mean-variance parameterization for gaussian probability law.")
36 (defclass gaussian-probability-multivariate-parameters
(gaussian-probability-parameters)
37 ((mean :documentation
"vector (or value) which denotes the mean structure."
39 (variance :documentation
"matrix (or value) which denotes covariance structure."
41 :documentation
"standard mean-variance parameterization for gaussian probability law.")
43 (defgeneric gaussian-probability-density
(x params
)
44 (:documentation
"general gaussian density method.")
45 (:method
((x xarray-vector
)
46 (params gaussian-probability-multivariate-parameters
))
47 ;; compute multivariate likelihood, and if X is something else, convert it an proceed to this method.
50 (params gaussian-probability-univariate-parameters
))
51 (\
(exp (* -
1.0 (/ (- x
(mean params
))
52 (standard-deviation params
))))
53 (sqrt (* 2.0 pi
(variance params
))))))
57 (defclass gaussian-probability-law
(probability-law)