HPC
A multi-dimensional ADT from first principles
Multi-dimensional arrays are an abstract data type used in every single numerical program out there. They can be used to track tracers in 2D or 3D physics simulations, as matrices in linear algebra, as portfolios in financial modelling and in countless other scenarios. Let's dive into the foundations of a possible implementation in C.
Read EssayPlaying magic tricks with randomness
What do Video games, statistics and data bases all have in common? They all need to use random number generators. But how does a deterministic machine generate randomness? Obviously the answer is it doesn't, but we've gotten pretty damn good at faking it. Let's learn how.
Read EssayA Gentle Introduction to Automatic Differentiation
Differentiation is hard enough when it's in abstract on a math test, but what about when it's living, breathing code? Let's learn how modern numerical computing frameworks like Julia, Pytorch, Tensorflow and JAX all take gradients without ever being told how to do it.
Read Essay