Scilab Home Page | Wiki | Bug Tracker | Forge | Mailing List Archives | Scilab Online Help | File Exchange
ATOMS : Distfun details
Please login or create an account

Distfun

Distribution functions
(4923 downloads for this version - 66040 downloads for all versions)
Details
Version
0.8
A more recent valid version with binaries for Scilab 5.4 exists: 0.9
Authors
Michael Baudin
Prateek Papriwal
Pierre Lecuyer
Luc Devroye
Jean-Philippe Chancelier
Michael A. Malcolm
Cleve B. Moler
George Marsaglia
Arif Zaman
Barry W. Brown
James Lovato
Kathy Russell
Makoto Matsumoto
Takuji Nishimura
Bruno Pincon
Richard Brent
John Burkardt
Owner Organization
INRIA, DIGITEO and others
Maintainers
Michael Baudin
Prateek Papriwal
License
Dependencies
Creation Date
March 28, 2014
Source created on
Scilab 5.4.x
Binaries available on
Scilab 5.4.x:
Linux 32-bit Windows 32-bit Windows 64-bit MacOSX Linux 64-bit
Install command
--> atomsInstall("distfun")
Description
            The goal of this toolbox is to provide accurate distribution functions. 
The provided functions are designed to be compatible with Matlab.

The goals of this toolbox are the following.
 * All functions are tested with tables (actually, csv datasets).
   The tests includes accuracy tests, so that the accuracy 
   should by from 13 to 15 significant digits in most cases.
 * For each distribution, we have 
   * the probability distribution function (PDF)
   * the cumulated distribution function (CDF)
   * the inverse CDF
   * the random number generator
   * the statistics (mean and variance)
 * The CDF provides the upper and the lower tail of the 
   distribution, for accuracy reasons. 
 * The uniform random numbers are of high quality.
   The default is to use the Mersenne-Twister generator.   
 * Each function has a consistent help page.
   This removes confusions in the meaning 
   of the parameters and clarifies the differences 
   with other computing languages (e.g. R).
   
The design is similar to Matlab's distribution functions. 
A significant difference with Matlab's function is that both 
the upper and lower tails are available in "distfun", while 
Matlab only provides the lower tail. 
Hence, "distfun" should provide a better accuracy when 
probabilities close to 1 are computed (e.g. p=0.9999). 

There are many interesting, positive, differences with Scilab, Stixbox, or other
tools. For a full set of motivations, please read :

http://forge.scilab.org/index.php/p/distfun/
   
Features
--------

For each distribution x, we provide five functions :
 * distfun_xcdf : x CDF
 * distfun_xinv : x Inverse CDF
 * distfun_xpdf : x PDF
 * distfun_xrnd : x random numbers
 * distfun_xstat : x mean and variance

Distributions available :
 * Beta (with x=beta)
 * Binomial (with x=bino)
 * Chi-Squared (with x=chi2)
 * Extreme Value (with x=ev)
 * Exponential (with x=exp)
 * F (with x=f)
 * Gamma (with x=gam)
 * Geometric (with x=geo)
 * Hypergeometric (with x=hyge)
 * LogNormal (with x=logn)
 * LogUniform (with x=logu)
 * Multinomial (with x=mn)
 * Multivariate Normal (with x=mvn)
 * Negative Binomial (with x=nbin)
 * Noncentral F (with x=ncf)
 * Noncentral T (with x=nct)
 * Noncentral Chi-Squared (with x=ncx2)
 * Normal (with x=norm)
 * Poisson (with x=poi)
 * T (with x=t)
 * Truncated Normal (with x=tnorm)
 * Uniform Discrete (with x=unid)
 * Uniform (with x=unif)
 * Weibull (with x=wbl)

Tutorial
 * dispfun_tutorial : A tutorial of the Distfun toolbox.
 * dispfun_plots : A collection of distribution function plots.

Support
 * distfun_betainc : Regularized Incomplete Beta function
 * distfun_erfcinv : Inverse erfc function
 * distfun_gammainc : Regularized incomplete Gamma function
 * distfun_genericpdf : Compute the PDF from the CDF.
 * distfun_getpath : Returns path of current module
 * distfun_inthisto : Discrete histogram
 * distfun_permrnd : Random permutation
 * distfun_plotintcdf :  Plots an integer CDF
 * distfun_verboseset : Set verbose mode.

Random Number Generator
 * rng_overview : An overview of the Random Number Generators of the Distfun
toolbox.
 * distfun_genget : Get the current random number generator
 * distfun_genset : Set the current random number generator
 * distfun_seedget : Get the current state of the current random number
generator
 * distfun_seedset : Set the current state of the current random number
generator
 * distfun_streamget : Get the current stream
 * distfun_streaminit : Initializes the current stream
 * distfun_streamset : Set the current stream            
Files (6)
[1.59 MB]
Source code archive

[1.55 MB]
Linux 32-bit binary for Scilab 5.4.x
Linux 32-bit
Automatically generated by the ATOMS compilation chain

[2.02 MB]
Windows 32-bit binary for Scilab 5.4.x
Windows 32-bit
Automatically generated by the ATOMS compilation chain

[2.04 MB]
Windows 64-bit binary for Scilab 5.4.x
Windows 64-bit
Automatically generated by the ATOMS compilation chain

[1.50 MB]
MacOSX binary for Scilab 5.4.x
MacOSX version
Automatically generated by the ATOMS compilation chain

[1.56 MB]
Linux 64-bit binary for Scilab 5.4.x
Linux 64-bit
Automatically generated by the ATOMS compilation chain

News (0)
Comments (3)     Leave a comment 
Comment from Michael Baudin -- March 28, 2014, 10:39:16 PM    
This is the changelog of this release. 
This release adds many new features, improves several existing ones and fixes several 
bugs. 

distfun (v0.8)
    * Added the crand generator, from C language.
    * Ported all rnd function to C for performance reasons :
      * distfun_normrnd
      * distfun_unifrnd
      * distfun_betarnd 
      * distfun_binornd 
      * distfun_chi2rnd 
      * distfun_exprnd 
      * distfun_frnd 
      * distfun_gamrnd 
      * distfun_geornd 
      * distfun_hygernd 
      * distfun_lognrnd 
      * distfun_poissrnd 
      * distfun_trnd 
      http://forge.scilab.org/index.php/p/distfun/issues/1085/

  * Created a uniform discrete distribution :
      * distfun_unidrnd 
      * distfun_unidstat
      * distfun_unidcdf
      * distfun_unidpdf
      * distfun_unidstat
      This is a fix for 
      http://forge.scilab.org/index.php/p/distfun/issues/1065/

  * New Multinomial distribution 
      distfun_mnrnd 
      distfun_mnstat 
      distfun_mnpdf 
      but the cdf and inv functions are still missing.
    This fixes the bug #972.
http://forge.scilab.org/index.php/p/distfun/issues/972/

  * Deleted distfun_cov function, to fix bug :
      http://forge.scilab.org/index.php/p/distfun/issues/1103/
      To update your code, please install Stixbox, 
      and replace :

C=distfun_cov(x)

with :

C=cov(x)

    * Created distfun_permrnd for random permutations.
      This fixes the bug :
      http://forge.scilab.org/index.php/p/distfun/issues/1066/

    * Created Negative Binomial distribution :
      * distfun_nbinrnd 
      * distfun_nbinstat
      * distfun_nbincdf
      * distfun_nbinpdf
      * distfun_nbinstat

    * Created Noncentral Chi-Square distribution :
      * distfun_ncx2rnd 
      * distfun_ncx2stat
      * distfun_ncx2cdf
      * distfun_ncx2pdf
      * distfun_ncx2stat
      The current implementation has accuracy limitations.

    * Added figures for Gumbel distribution in Tutorial.
      http://forge.scilab.org/index.php/p/distfun/issues/1125
    
    * Created Noncentral F distribution.
      * distfun_ncfrnd 
      * distfun_ncfstat
      * distfun_ncfcdf
      * distfun_ncfpdf
      * distfun_ncfstat
      The current implementation has accuracy limitations.
    
    * Created Noncentral T distribution :
      * distfun_nctrnd 
      * distfun_nctstat
      * distfun_nctcdf
      * distfun_nctpdf
      * distfun_nctstat

    * Removed hidden rndmarkov function :
      No help, no test, not in the scope.

    * Created Multivariate Normal distribution :
      * distfun_mvnrnd 
      * distfun_mvnpdf

    * Created Weibull distribution :
      * distfun_wblrnd 
      * distfun_wblstat
      * distfun_wblcdf
      * distfun_wblpdf
      * distfun_wblstat
    This fixes bug #973
http://forge.scilab.org/index.php/p/distfun/issues/973

    * The Extreme Value distribution is now in C
http://forge.scilab.org/index.php/p/distfun/issues/1396/

    * Simplified computation of log(1+x) in the C 
      library.
      This fixes bug #988 :
http://forge.scilab.org/index.php/p/distfun/issues/988

    * Created distfun_gammainc, based on the internal lib. 
      This is a solid alternative to specfun_gammainc, which 
      uses Scilab's cdfgam.
    * Created distfun_betainc. 
Comment from Michael Baudin -- November 9, 2014, 10:08:00 PM    
Hi,

Thanks for sharing your requirements. 
I just pushed v0.9:

http://atoms.scilab.org/toolboxes/distfun/0.9

Hope this will be useful to you !

Best regards,

Michal
Leave a comment
You must register and log in before leaving a comment.
Email notifications
Send me email when this toolbox has changes, new files or a new release.
You must register and log in before setting up notifications.