X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fnan-2.5.5%2Ftpdf.m;fp=octave_packages%2Fnan-2.5.5%2Ftpdf.m;h=75234961e9622ec8abe0b03ea092193ec383dcf4;hp=0000000000000000000000000000000000000000;hb=f5f7a74bd8a4900f0b797da6783be80e11a68d86;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/nan-2.5.5/tpdf.m b/octave_packages/nan-2.5.5/tpdf.m new file mode 100644 index 0000000..7523496 --- /dev/null +++ b/octave_packages/nan-2.5.5/tpdf.m @@ -0,0 +1,49 @@ +function p = tpdf(x,n) +% TPDF returns student probability density +% +% pdf = tpdf(x,DF); +% +% Computes the PDF of a the student distribution +% with DF degreas of freedom +% x,DF must be matrices of same size, or any one can be a scalar. +% +% see also: TINV, TCDF, NORMPDF, NORMCDF, NORMINV + +% Reference(s): + +% $Id: tpdf.m 9033 2011-11-08 20:58:07Z schloegl $ +% Copyright (C) 2000-2003,2008,2009,2010 by Alois Schloegl +% This function is part of the NaN-toolbox +% http://pub.ist.ac.at/~schloegl/matlab/NaN/ + +% 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, see . + +% allocate memory and check size of arguments +p = x+n; % if this line causes an error, size of input arguments do not fit. +ix = (n>0) & (n~=inf) & ~isnan(x); + +% make size of x and n equal +n = x+n-x; +x = x+n-n; + +% workaround for invalid arguments in BETA +if any(ix) +p(ix) = (exp (-(n(ix)+1).*log(1+x(ix).^2./n(ix))/2) ./ (sqrt(n(ix)).* beta(n(ix)/2, 1/2))); +end; +p(~ix)= NaN; + +% shape output +p = reshape(p,size(x)); + +%!assert(tpdf(NaN,4),NaN)