Skip to content
CoreSource checked

SplitMix64

SplitMix64 generates deterministic pseudorandom sequences from a seed.

Quick Facts

Compact metadata for implementation and discovery.

Category
Randomness & Sampling
Difficulty
Intermediate
Family
Randomness and Sampling
Tier
Core
Status
Verified
Review
Source Checked
Sources
1
Formulas
0
Relationships
3
Code example
Ready
Visualization
Ready

Overview

SplitMix64 is a randomness and sampling method that generates samples, estimates, or pseudorandom values while controlling distribution and variance. It is most useful when repeatable sample behavior matters as much as raw randomness.

Core Concepts

probability distributionrandom variatevariance controlrandom drawdistributionestimate

Quick facts

Complexity

Runtime and memory behavior at a glance.

Best

O(n)

Average

O(n)

Worst

O(n^2)

Space

O(n)

When to Use

  • Use SplitMix64 when sample quality, reproducibility, or distribution shape affects the result.
  • Use it when deterministic seeds and distribution checks can be part of testing.

When Not to Use

  • Avoid when the target distribution is poorly defined.
  • Avoid when independence, burn-in, or seeding assumptions cannot be tested.

What It Does

  • Draws or transforms random values
  • Controls bias, variance, or coverage
  • Returns samples for simulation or estimation

Use Cases

  • Monte Carlo estimation
  • Simulation
  • Randomized testing

Inputs

  • Target distribution or population
  • Random seed or random source
  • Sample count

Outputs

  • Random samples
  • Estimated statistic
  • Generated sequence

Pseudocode

  1. 1.Initialize the random source and sampling parameters
  2. 2.Draw or transform candidate values
  3. 3.Accept, weight, or store samples according to the method
  4. 4.Repeat until the requested sample count is reached
  5. 5.Return the sample set or estimate

Canonical Example

Input
target = small distribution, samples = 5, seed = 7
Output
five repeatable samples or an estimate
Explanation
SplitMix64 uses the seed and sampling rule to produce values with the intended distribution or coverage.

Implementation Notes

  • Expose the seed and record enough parameters to reproduce samples.
  • Test distribution behavior with small deterministic checks before large simulations.

Common Pitfalls

  • Using an untracked seed makes results hard to reproduce.
  • Confusing distribution quality with visual randomness can hide bias.

Interactive Mechanism Walkthrough

Iterative Convergence & State Trajectory

Show samples accumulating over the target distribution or sample space.

SplitMix64 mechanism walkthrough step 1 of 5x₀x₁x₂x*
Step 1 of 5: Initialize the random source and sampling parameters
sampling

Notes

SplitMix64 operates in O(n) time and O(n) space within the Randomness and Sampling family. Often compared with Rejection Sampling and Importance Sampling.

Sources (1)

What each reference supports for this entry.

Fast Splittable Pseudorandom Number Generators

Paper

Reference for SplitMix-style splittable generators, mixing functions, and 64-bit state progression.

Open source

Explore Next

Good next jumps from the relationship graph, ranked for useful discovery.

SplitMix64 advances a 64-bit state with a Weyl increment and applies a strong mixing function.

SplitMix64 is commonly used to initialize xoshiro-family states.

Tags

Randomness & SamplingSampling