The basics of the GUI is standard GTK stuff. The calculator is a single function machine that validates the input and generates the output through table lookup. My guess is that at least some of the worst constructs of C are represented. If you need any help on figuring it out you should use C a couple of years on small dedicated systems talking to hardware :-) Hint: look at manual page rand(3) or POSIX 1003.1-2003 and try to locate the constants in the table and the application of the function in the code. Then you only need to decipher the table.