It struck me today, that although I reuse a lot of code and classes, the one thing I tend to rewrite each and every time I start a new program is the mathematics. I dread to think how many hours this has wasted me over the years, so I finally decided to write a toolkit encompassing almost anything maths based. So far I've written a couple of constant utilities, one for mathematical constants, and one for scientific constants and a complex number class. Currently on the list are:
- Matrices
- Data sampling and statistics
- Quadrature (integration) - Rectangle, Trapezium & Simpson's rule ✔
- Numerical differentiation - finite differencing ✔, runge-kutta (and other ODE solvers)
- Graphs
- Vectors ( 2, 3 ✔ and N dimensional)
- Geometry class & trigonometry solvers
- Probability
- Random numbers (Mersenne Twister, other PRNGs)
- Time and date
- Complex numbers ✔
- Bitwise operators ✔
- Mathematical constants ✔
- Scientific constants ✔
It would be great if you could let me know what kinds of maths utilities you would find useful, and even better if you have some of your own code and would like to collaborate with me on this.
Update: Your suggestions:
- Bezier curves (Cubic & Quadratic), Bezier surfaces?