[][src]Crate oars

Summary

The oars crate is a Rust library designed to faciliate the construction, verification, and usage of orthogonal arrays, as well as strong orthogonal arrays for statistical experiments and Monte Carlo simulations.

There is an OAConstructor trait which marks whether a struct has a method that can construct an orthogonal array. The structs generally take the parameters necessary for configuring the construction method.

There are also general methods available to verify that a point set matches up with the orthogonal array parameters, and convert points from an orthogonal array to a point set and back.

Many of the techniques used in this library were either taken from or inspired by Art Owen's currently unpublished book about Monte Carlo integration. This library was also developed through the Dartmouth Visual Computing Lab under the tutelage of Dr. Wojciech Jarosz.

Example Usage

use oars::constructors::Bose;
use oars::oa::{OAConstructor, normalize, verify};
use oars::Integer;

// Configure the parameters for the bose construction
let bose = Bose {
    prime_base: 3,
    dimensions: 3,
};

// Use the OAConstructor method to generate the orthogonal array
let oa = bose.gen().unwrap();

// Verify that the orthogonal array is correct according to its parameters
assert!(verify(&oa));

// Convert the orthogonal array into a point set usable for Monte Carlo, without jittering
let points = normalize(&oa, 0.0, true);

Modules

constructors

Various constructors that implement the OAConstructor trait, and provide methods to generate orthogonal arrays. Each struct contains the configuration parameters necessary for the construction method, and the gen method (from the trait) will construct an orthogonal array from the given parameters.

oa

The generic interface to define an orthogonal array and generic construction methods. This module also defines a few construction methods.

soa

The generic interface to define a strong orthogonal array (SOA) and a trait for constructing SOAs This module also defines a few construction methods, as well as provide a verification method to ensure that the resulting points are stratified as an SOA should be.

Traits

Float

A generic floating point type.

Integer

A generic integer type.