From 709e8a55598a481266f5981f04889a7ed10af1f8 Mon Sep 17 00:00:00 2001 From: AJ Rossini Date: Sat, 20 Oct 2007 23:01:07 +0200 Subject: [PATCH] probability distributions factored out, but there will be some problems to fix. --- cffiglue.lsp | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- dists.lsp | 28 ++++++++++++-------- lispstat.asd | 17 ++++++++----- 3 files changed, 109 insertions(+), 19 deletions(-) diff --git a/cffiglue.lsp b/cffiglue.lsp index 9d4270f..559ebd1 100644 --- a/cffiglue.lsp +++ b/cffiglue.lsp @@ -4,6 +4,7 @@ ;;;; ;;;; Copyright (c) 1991, by Luke Tierney. ;;;; Copyright (c) 2007, by Carlos Ungil. +;;;; Copyright (c) 2007, by AJ Rossini . ;;;; Permission is granted for unrestricted use. ;;;; Tested (but the results have not been checked): @@ -14,7 +15,86 @@ ;;;; Untested ;;;; numgrad numhess minfo-maximize -(in-package :lisp-stat-basics) +(defpackage :lisp-stat-ffi-int + (:use :common-lisp + :cffi) + (:export + + chol-decomp-front + lu-decomp-front lu-solve-front + sv-decomp-front + qr-decomp-front + + rcondest-front + make-rotation-front + + eigen-front + + la-range-to-rseq + spline-front + + kernel-dens-front + kernel-smooth-front + + base-lowess-front + + numgrad-front + numhess-front + base-minfo-maximize + + one-uniform-rand + base-log-gamma + + base-normal-cdf + base-normal-quant + base-normal-dens + one-normal-rand + base-bivnorm-cdf + + base-cauchy-cdf + base-cauchy-quant + base-cauchy-dens + one-cauchy-rand + + base-gamma-cdf + base-gamma-quant + base-gamma-dens + one-gamma-rand + + base-chisq-cdf + base-chisq-quant + base-chisq-dens + one-chisq-rand + + base-beta-cdf + base-beta-quant + base-beta-dens + one-beta-rand + + base-t-cdf + base-t-quant + base-t-dens + one-t-rand + + base-f-cdf + base-f-quant + base-f-dens + one-f-rand + + base-poisson-cdf + base-poisson-quant + base-poisson-dens + one-poisson-rand + + base-binomial-cdf + base-binomial-quant + base-binomial-dens + one-binomial-rand + + +)) + +(in-package :lisp-stat-ffi-int) (cffi:load-foreign-library (concatenate 'string @@ -51,7 +131,6 @@ (defun null-ptr-p (p) (cffi:null-pointer-p p)) (defun ptr-eq (p q) (cffi:pointer-eq p q)) - (cffi:defcfun ("la_base_allocate" ccl-la-base-allocate) :pointer (n :int) (m :int)) (defun la-base-allocate (n m) diff --git a/dists.lsp b/dists.lsp index f25352b..5701940 100644 --- a/dists.lsp +++ b/dists.lsp @@ -12,16 +12,24 @@ ;;;; Package Setup ;;;; - -(in-package :lisp-stat-basics) - -(export '(log-gamma uniform-rand normal-cdf normal-quant normal-dens - normal-rand bivnorm-cdf cauchy-cdf cauchy-quant cauchy-dens - cauchy-rand gamma-cdf gamma-quant gamma-dens gamma-rand - chisq-cdf chisq-quant chisq-dens chisq-rand beta-cdf beta-quant - beta-dens beta-rand t-cdf t-quant t-dens t-rand f-cdf f-quant - f-dens f-rand poisson-cdf poisson-quant poisson-pmf poisson-rand - binomial-cdf binomial-quant binomial-pmf binomial-rand)) +(defpackage :lisp-stat-probability + (:use :common-lisp + :lisp-stat-ffi-int + :lisp-stat-macros) + (:export + log-gamma + uniform-rand + normal-cdf normal-quant normal-dens normal-rand bivnorm-cdf + cauchy-cdf cauchy-quant cauchy-dens cauchy-rand + gamma-cdf gamma-quant gamma-dens gamma-rand + chisq-cdf chisq-quant chisq-dens chisq-rand + beta-cdf beta-quant beta-dens beta-rand + t-cdf t-quant t-dens t-rand + f-cdf f-quant f-dens f-rand + poisson-cdf poisson-quant poisson-pmf poisson-rand + binomial-cdf binomial-quant binomial-pmf binomial-rand)) + +(in-package :lisp-stat-probability) (defmacro defbaserand (name onefun &rest args) `(defun ,name (n ,@args) diff --git a/lispstat.asd b/lispstat.asd index 77f0f2b..0b0cdd3 100644 --- a/lispstat.asd +++ b/lispstat.asd @@ -60,6 +60,12 @@ Last touched 1991, then in 2005--2007." (:lispstat-lsp-source-file "linalg" :depends-on ("lsmath" "matrices")) + (:file "optimize" :depends-on ("lsobjects" + "lstypes")) + (:lispstat-lsp-source-file "cffiglue" + :depends-on ("optimize")) + (:lispstat-lsp-source-file "dists" + :depends-on ("cffiglue")) (:lispstat-lsp-source-file "lsbasics" :depends-on ("lsobjects" @@ -68,12 +74,9 @@ Last touched 1991, then in 2005--2007." "sequence" "lsfloat" "matrices" - "linalg")) + "linalg" + "dists")) - (:lispstat-lsp-source-file "cffiglue" - :depends-on ("lsbasics")) - (:lispstat-lsp-source-file "dists" - :depends-on ("lsbasics")) (:lispstat-lsp-source-file "ladata" :depends-on ("lsbasics")) @@ -91,12 +94,12 @@ Last touched 1991, then in 2005--2007." :depends-on ("lsobjects" "lsmath" "data" )) - (:file "optimize" :depends-on ("lsobjects" - "lstypes")) (:lispstat-lsp-source-file "bayes" :depends-on ("lsobjects" "lsmath" "dists")) + + (:file "ls-user" :depends-on ("lsobjects" "lsbasics" ;; and more! -- 2.11.4.GIT