Reanimator Ltd specializes in hardcore programming and maths.
This website contains articles and code related to these subjects. I hope you find the articles interesting, and maybe even useful!
This article describes how to quickly find the Nth root using basic arithmetic operations and floating-point bit-twiddling hacks.
These are some thoughts I had last night while staying up far too late thinking about this!
co-NP and NP morally use the same resources (including time) on non-deterministic Turing machines, but you need a metasystem to do it.
The characters on 5x7 LED displays look upright when stationary, but slanted (italic) when moving. Why is that?
I present a novel acceleration structure and raytracing algorithm which explicitly leverages the capabilities of the GPU and avoids the "up and down the tree" nature of kd-tree raytracers.
You're going to use full-blown SVD just to get the pseudoinverse? Really?
How do all these matrix decompositions work, and how do you code them?
Some pretty out-there stuff about procedures having derivatives ...
When is this expression true for random variables A, B and C?
p(A|C) = p(A|B)p(B|C) + p(A|!B)p(!B|C)
Monads have a deep mystery surrounding them, but they're actually a very simple concept. There is nothing magic here - as a C++ programmer you've probably already done this yourself, or at least seen it done, but probably in a different context. Read more for my explanation of monads for C++ programmers.
This article explores the question of how best to isolate a bug in version control using binary chop, when the bug doesn't always manifest. I derive a probabilistic algorithm to solve this "Bayesian Binary Search" problem, from first principles.
DSP textbooks will tell you that a filter graph containing a delay-free loop is "unrealizable". I demonstrate that "unrealizable" doesn't mean you can't code it.
Update 7th Mar 2012: added a worked example.
Should programming languages allow "naked operators" as objects?
IIR filters seem impossible to convert to SIMD code, since they have a tight loop containing an immediate dependency. This article will show you that it's not impossible, given the right maths.