Skip to content

ordo-one/package-distributions

Repository files navigation

Tests Documentation

The package-distributions library is a portable, Foundation-free library for working with statistical distributions in Swift, with a focus on efficient sampling and random number generation.

documentation · license

Requirements

The package-distributions library requires Swift 6.1 or later.

Platform Status
🐧 Linux Tests
🍏 Darwin Tests
🍏 Darwin (iOS) iOS
🍏 Darwin (tvOS) tvOS
🍏 Darwin (visionOS) visionOS
🍏 Darwin (watchOS) watchOS

Check deployment minimums

Examples

import Random

var random: PseudoRandom = .init(seed: 13)

let binomial: (Int64, Int64, Int64, Int64) = (
    Binomial[10, 0.2].sample(using: &random.generator),
    Binomial[10, 0.2].sample(using: &random.generator),
    Binomial[10, 0.2].sample(using: &random.generator),
    Binomial[10, 0.2].sample(using: &random.generator),
)

// Generated binomial samples: (1, 4, 2, 4)

let normal: (Double, Double, Double, Double) = (
    Normal[0, 1].sample(using: &random.generator),
    Normal[0, 1].sample(using: &random.generator),
    Normal[0, 1].sample(using: &random.generator),
    Normal[0, 1].sample(using: &random.generator),
)

// Generated normal samples: (1.031, 1.201, -1.607, -0.243)

About

Performant implementations of statistical distributions in pure Swift

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •