A fast perfect shuffle for n≤64

Describes a perfect shuffle using a bitset and the original pencil-and-paper Fisher-Yates method.

Quaternion swing twist decomposition

Given a unit quaternion $Q$ factor into a pair such that $Q = Q_rQ_a$ where $a$ is a predefined axis and $r$ is an orthogonal axis. This is commonly called swing-twist decomposition.

Random number draws with fixed parity

Describes simple transforms to generate random numbers with a given parity and the math background.

A cheap normal distribution approximation

A brief explaination and implementation of the standard normal distribution approximation "on the cheap".

Error growth of composing rotations

Some quick-n-dirty empirical results to spitball the error growth on composing rotations

Basic uniform random floating-point values

Micropost on unbiased uniform float generation on $\left(0,1\right]$, $\left[-1,1\right)$ and $\left[-1,1\right)$. The latter two have twice the number of samples as the standard method.

Solve power-of-two LCG for constants

A quick derivation of solving for LCG constants (power-of-two modulus) given three sequential outputs of the generator.

A design and implementation of sincospi in binary32

Walks through constructing faithfully rounded $\sin\left(\pi x\right)$ and $\cos\left(\pi x\right)$.

Generating the log of a uniform random float

Sketches out some possible implementations of taking the logarithm of a uniform floating point value.

Computing floating point additive recurrence

Computing Weyl (additive recurrence) sequences in float-point has some gotchas.

FMA: solve quadratic equation

Micro-post on title.

FMA: extended precision addition and multiplication by constant

Brushstrokes using FMAs to compute: K+x and Kx with K in higher than native precision.

Tau and the art of Windmill jousting

TLDR: Use tau if you want, but you need a good argument to say pi was a historic mistake.

Got Gamma?

A breakdown on my joke approximation of $x^{2.2}$

A slerp by half

Some notes computing the rotation half away between two inputs

Can an involution be a competitive bit finalizer?

A feasibility study to determine if an involution can be competitive (quality and cost) bit mixer.

Comments on the Avalanche Effect

A quick overview of what "Avalanche Effect" properties are, why they can be used to test and search for PRNGs and overview of how to convert the property into a comparision measurement.

Some comments on approximately equal FP comparisons

In which I point to some other peoples blog posts and make some minor comments.

Measuring ULP distance

Some code for measuring the ULP distance between floats with comments.

Floating point division with known divisor

A small note on division removal