From: <car...@us...> - 2012-01-23 11:19:15
|
Revision: 9558 http://octave.svn.sourceforge.net/octave/?rev=9558&view=rev Author: carandraug Date: 2012-01-23 11:19:04 +0000 (Mon, 23 Jan 2012) Log Message: ----------- lfactorial: new function to specfun package by Akos Marton <mak...@gm...> Modified Paths: -------------- trunk/octave-forge/main/specfun/NEWS Added Paths: ----------- trunk/octave-forge/main/specfun/inst/lfactorial.m Modified: trunk/octave-forge/main/specfun/NEWS =================================================================== --- trunk/octave-forge/main/specfun/NEWS 2012-01-23 11:17:56 UTC (rev 9557) +++ trunk/octave-forge/main/specfun/NEWS 2012-01-23 11:19:04 UTC (rev 9558) @@ -3,7 +3,7 @@ ** The following functions are new: - big_factorial + big_factorial lfactorial Summary of important user-visible changes for specfun 1.1.0: Added: trunk/octave-forge/main/specfun/inst/lfactorial.m =================================================================== --- trunk/octave-forge/main/specfun/inst/lfactorial.m (rev 0) +++ trunk/octave-forge/main/specfun/inst/lfactorial.m 2012-01-23 11:19:04 UTC (rev 9558) @@ -0,0 +1,36 @@ +## Copyright (C) 2012 Akos Marton <mak...@gm...> +## +## 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 3 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 <http://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {Function File} {} lfactorial (@var{n}) +## Return the factorial of @var{n} where @var{n} is a positive integer. +## +## Return value approximated on natural logarithmic scale in order to +## calculate the factorial of large numbers. For +## vector or matrix arguments, return the lfactorial of each element in the +## array. For non-integers see the generalized factorial function +## @code{lgamma}. +## +## @seealso{lgamma, big_factorial} +## @end deftypefn + +function ans = lfactorial (n) + if (nargin != 1) + print_usage (); + elseif (any (n(:) < 0 | n(:) != round (n(:)))) + error ("factorial: N must all be nonnegative integers"); + endif + ans = lgamma (n+1); +endfunction This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |