Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Statistical Distributions multi library wrapper. Uses Ruby by default and C (statistics2/GSL) or Java extensions where available.
Ruby
branch: master
Failed to load latest commit information.
benchmark Added power benchmark
bin Added Weibull Distribution, fixed syntactical errors in bin/distribut…
data/template Updated history
lib For now, omited java spec on travis
spec Reduced the precision on beta pdf (10 to 9 decs)
vendor/java Added initial java support for Normal and Poisson distribution. Specs…
.gitignore Added Weibull
.travis.yml For now, omited java spec on travis
Gemfile For now, omited java spec on travis
History.txt Updated history
LICENCE.md Documentation: Convert to Markdown
Manifest.txt Added Weibull
README.md
Rakefile All test passes
distribution.gemspec Deleted hoe dependence. Added gemspec

README.md

Distribution Quick Start

git clone https://github.com/sciruby/distribution

Description:

Statistical Distributions library. Includes Normal univariate and bivariate, T, F, Chi Square, Binomial, Hypergeometric, Exponential, Poisson, Beta, LogNormal and Gamma.

Uses Ruby by default and C (statistics2/GSL) or Java extensions where available.

Includes code from statistics2 on Normal, T, F and Chi Square ruby code [http://blade.nagaokaut.ac.jp/~sinara/ruby/math/statistics2]

Synopsis:

  • Returns Gaussian PDF for x pdf=Distribution::Normal.pdf(x)
  • Returns Gaussian CDF for x cdf=Distribution::Normal.cdf(x)
  • Returns inverse CDF (or p-value) for x pv=Distribution::Normal.p_value(x)

System Requirements:

To increase (notably!) the speed, please install

  • Ruby 1.9-2.1: rb-gsl
  • Java: Not yet implemented

User Installation:

  gem install distribution

To speep up

  gem install gsl

Developers:

After checking out the source, run:

  $ rake newb

This task will install any missing dependencies, run the tests/specs, and generate the RDoc.

If you want to provide a new distribution, /lib/distribution run

  $ distribution --new your_distribution

This should create the main distribution file, the directory with ruby and gsl engines and the rspec on /spec directory.

API Structure

Distribution::.(cdf|pdf|p_value|rng)

On discrete distributions, exact Ruby implementations of pdf, cdf and p_value could be provided, using

  Distribution::<name>.exact_(cdf|pdf|p_value)

module Distribution::Shorthand provides (you guess?) shortands method to call all methods

  <Distribution shortname>_(cdf|pdf|p|r)

On discrete distributions, exact cdf, pdf and p_value are

  <Distribution shortname>_(ecdf|epdf|ep)

Shortnames for distributions:

  • Normal: norm
  • Bivariate Normal: bnor
  • T: tdist
  • F: fdist
  • Chi Square: chisq
  • Binomial: bino
  • Hypergeometric: hypg
  • Exponential: expo
  • Poisson: pois
  • Beta: beta
  • Gamma: gamma
  • LogNormal: lognormal

API Structure Example

  Distribution::T.cdf

could be called after including Distribution::Shorthand

  tdist_cdf

Features

  • Very fast ruby 1.8.7/1.9.+ implementation, with improved method to calculate factorials and others common functions
  • All methods tested on several ranges. See spec/

Issues

  • On Jruby and Rubinius, BivariateNormal returns incorrect pdf

For current issues see the issue tracker pages

Something went wrong with that request. Please try again.