C Library of Mathematical Odds & Ends
Brahe is where I put all sorts of useful mathematical functions that don't seem to fit anywhere else. Among the bits and pieces here, you'll find:
brahe_sigdig, that rounds floating-point values to a specific number of significant digits -- very useful in scientific and engineering applications.
- Several pseudorandom number generators, including the Marsenne Twister, various algorithms by Marsaglia, and ISAAC.
- Least common multiple and greatest common denominator functions.
- A few trigonometry functions for finding the inversions of hyperbolic sine, cosine, and tangent.
- Functions to turn boring binary integers into pretty comma-delimited or human readable text (as in "two hundred ninety-nine thousand, seven hundred ninety-two").
I implemented Brahe as a static link C library for portability. This only causes problems under Microsoft's .NET platform, which is somewhat antagonistic toward traditional C code. When time permits, I'll write a "safe" wrapper for Brahe. In the mean time, PInvoke works reasonably well if you're working with managed code.
As always, I'm interested in your comments.