I have recently been working on a vector/matrix math library for C (with some optional C++ features). It is now complete and passes all tests on all platforms. The only thing left is documentation, and I'm not officially releasing it until that is done, but it might also take me some time to get to, so sharing the lib here as-is, for anyone interested (feedback appreciated). The lib itself is around 2600 lines, but the whole file is close to 20kloc, because the entire test suite is appended to the end (but under a conditional compilation flag, so it can be skipped without adding anything noticeable to the compile time).
The aim here has been to make something fairly comprehensive, trying to mimic most of the things available in HLSL/GLSL and D3DX9, focusing more on convenience and completeness than performance. It is not optimized in the way some other math libs sets out to be. I don't pad structs, I don't use SIMD intrinsics, just the simplest form of every expression, and the compiler gets to do with it as it will (from what I've seen it's able to still do a decent job in many cases).