My C Programming Page

Please note -- unless otherwise indicated, all codes on this page are licensed by the copyright holder (me) under the terms of two licensing options:
Mozilla MPL v2.0 and later
GNU LGPL v3.0 and later

The primary reason for this is incompatiblity between MPL and GPL codes, so the LGPL is provided as an alternative licensing scheme. My (admittedly simplistic) understanding of licensing is this:

Also please note as specified in these licenses that NO WARRANTY OF ANY KIND is provided with any software on this site. I believe that the source code is bug-free, but use at your own risk!

I'm a big fan of GTK as a GUI toolkit. The GtkNumericEntry is a child class of the GtkEntry that operates sort of like a spinner does. The user is restricted to entering numbers but this class allows for more flexible display format with emphasis on scientific notation. There are calls to set minimum and maximum ranges either as [greater/less than] or [greater/less than or equal to] options. I have had need of it in several programs for entering scientific-type data.

Equation Parser
I have written a scientific equation parser in C that evaluates a string formula and computes the result. A few powerful features in this tool are: (1) one can declare variables and then evaluate the equation repeatedly with different values of the variables, and (2) in addition to most everything defined in math.h, the user can declare their own functions to be used in the equations.

GTK OpenGL Widget
Here is a GTK widget I have built that integrates an OpenGL canvas. This is done in a platform independent way and compiles (at least for me) on X11, Win32, and OSX platforms.

This is a C++ template header that uses operator overlaoding to create multi-dimensional array classes for C++ with application for CFD or similiar HPC codes in mind. I've purposely kept the classes as lightweight as possible. An optional pre-processor definition will check for out-of-bounds access.