Author Archives: mischasan

About mischasan

I've had the privilege to work in a field where abstract thinking has concrete value. That applies at the macro level --- optimizing actions on terabyte database --- or the micro level --- fast parallel string searches in memory. You can find my documents on production-system radix sort (NOT just for academics!) and some neat little tricks for developers, on my blog My e-mail sig (since 1976): Engineers think equations approximate reality. Physicists think reality approximates the equations. Mathematicians never make the connection.

“Unusual uses of SSE2” posted to github

In this month’s frenzy of putting source code out there in a usable form, I’ve posted source to github for the SSE2 implementations of string search, BNDM search, sorting [16] doubles, and bit-matrix transpose; plus some convenience tools for SSE2. … Continue reading

Posted in bit, bit matrix transpose, bit shift, ffs, SSE2, string search, Uncategorized | 2 Comments

A tiny asynchronous DNS client posted to github

There’s a world out there beyond the “bind” daemon … and this DNS client library can access it and show you how it works. This is my reference model for writing a tiny independent library plugin to another event-loop mainline, … Continue reading

Posted in Uncategorized | Tagged | Leave a comment

HXFILE source posted to github

In case you’ve read my paper on highly-concurrent linear hash files, and want to see/use the source, I’ve posted it to It’s been a lot of fun, and I’ve used it in an OLAP product and some performant key-value … Continue reading

Posted in Uncategorized | 2 Comments

Aho-Corasick code posted to github

You may be interested in the source code for my best-of-both-worlds Aho-Corasick implementation. It runs on a state-transition matrix (the fastest implementation) in an interleaved array (the smallest-data implementation). Typically 2.5 bytes of state machine for each byte of pattern … Continue reading

Posted in Uncategorized | 4 Comments

SSE2 bit matrix transpose special case … 8 x 256 … for Marek

It turns out that Marek’s Idea of the Day: Bitsliced SipHash used my SSE2 bit-matrix transpose routine, but it wasn’t fast enough. This is normally the case for SSE2: the more specific the problem, the better the code can be. I … Continue reading

Posted in algorithm, bit, bit shift, SSE2 | Tagged , , | Leave a comment

Non-recursive Make part 3 – a tool for the fearless

In part 1, I mentioned that it is typically painful to attack a large project that uses recursive make. Nonetheless, if you’re willing to make the effort, here’s a tool to help you pick apart what’s really going on in … Continue reading

Posted in make, non-recursive make | Leave a comment

The “C” preprocessor: not as cryptic as you’d think

The C preprocessor is a modest macro-expansion language (check out “m4” if you want to see an immodest one).  Basic symbols and function-macros are convenient for giving meaningful names to constants and tiny function calls, with the rewarding feeling that … Continue reading

Posted in bit shift, preprocessor | Tagged , , , , , , | 6 Comments