about summary refs log tree commit diff
path: root/sourcecodes/parameter_learning/normpdf.m
diff options
context:
space:
mode:
authorziejd22021-02-24 14:36:59 -0600
committerziejd22021-02-24 14:36:59 -0600
commit25b843f6bbacb1937bdb960777b73acbece64115 (patch)
tree88645b9d1d8a0eea19d7229555bf8805571bc8b7 /sourcecodes/parameter_learning/normpdf.m
parent33cedf36248f616aa37d1462c69a4a3058a5d92e (diff)
downloadBNW-25b843f6bbacb1937bdb960777b73acbece64115.tar.gz
GENENET8 update
Diffstat (limited to 'sourcecodes/parameter_learning/normpdf.m')
-rw-r--r--sourcecodes/parameter_learning/normpdf.m50
1 files changed, 50 insertions, 0 deletions
diff --git a/sourcecodes/parameter_learning/normpdf.m b/sourcecodes/parameter_learning/normpdf.m
new file mode 100644
index 00000000..2b154f02
--- /dev/null
+++ b/sourcecodes/parameter_learning/normpdf.m
@@ -0,0 +1,50 @@
+function p = normpdf(x,m,s);
+% Normal probability density function
+%
+% pdf = normpdf(x,m,s);
+%
+% Computes the PDF of a the normal distribution 
+%    with mean m and standard deviation s
+%    default: m=0; s=1;
+% x,m,s must be matrices of same size, or any one can be a scalar. 
+%
+% see also: NORMCDF, NORMINV 
+
+% Reference(s):
+
+%	Version 1.28   Date: 23.Sep.2002
+%	Copyright (c) 2000-2002 by  Alois Schloegl <a.schloegl@ieee.org>	
+
+%    This program is free software; you can redistribute it and/or modify
+%    it under the terms of the GNU General Public License as published by
+%    the Free Software Foundation; either version 2 of the License, or
+%    (at your option) any later version.
+%
+%    This program is distributed in the hope that it will be useful,
+%    but WITHOUT ANY WARRANTY; without even the implied warranty of
+%    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+%    GNU General Public License for more details.
+%
+%    You should have received a copy of the GNU General Public License
+%    along with this program; if not, write to the Free Software
+%    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+if nargin==1,
+        m=0;s=1;
+elseif nargin==2,
+        s=1;
+end;        
+
+% allocate output memory and check size of argument
+z = (x-m)./s;		% if this line causes an error, input arguments do not fit. 
+
+%p = ((2*pi)^(-1/2))*exp(-z.^2/2)./s;
+SQ2PI = 2.5066282746310005024157652848110;
+p = exp(-z.^2/2)./(s*SQ2PI);
+
+p((x==m) & (s==0)) = inf;
+
+p(isinf(z)~=0) = 0;
+
+p(isnan(x) | isnan(m) | isnan(s) | (s<0)) = nan;
+