The ttime package provides a simplified time management routines. I was tired of constantly having to write a time subtraction routine when I was doing timing using getrusage and other functions. This creates yet another time struct for storage. This is not a large issue since included is a set of macros that convert to/from timespec and timeval. Due to the convient nature of C macros, you can find the difference between two timespec's a and b, and store the results in c like:
c = TTIME_TOTS(tt_sub(TTIME_FMTS(a), TTIME_FMTS(b)));
The additonal structure was provided so that in the future if we need sub-nanosecond timing, that the library can be upgraded w/o major modifications to the consumers of the library.
Please see the README and ttime.h in the source package for more information.