xvi www.syngress.com
did it, and especially why I continue to work on them fo r free. The best I can
explain it is, “Because I can”–which seems odd and pe rhaps too terse for a dult
conversation. I often qualify it with “I am able, I am willing,” which perhaps
explains it better. I am the first to admit there is nothing that special with what
I have done. Perhaps others can see tha t, too, and then we would have a society
to be proud of. My LibTom projects are what I am doing to give back to society
in the form of tools and k nowledge that can help others in their endeavors.
I sta rted writing this book because it was the most logical task to further my
goal of open academia. The LibTomMa th source code itself was wr itten to be easy
to follow and learn from. There are times, however, where pure C source code
does not explain the algorithms properly– hence this book. The book literally
starts with the foundation of the library and works itself outward to the more
complicated algorithms. The use of both pseudo–code and verbatim source code
provides a duality of “theory” and “practice” the computer science students of
the world shall appreciate. I never deviate too far from relatively stra ightforward
algebra, and I hope this book ca n be a valuable learning asset.
This book, and indeed much of the LibTom projects, would not exist in its
current form if it were not for a plethora of kind people donating their time,
resources , and kind words to help supp ort my work. Writing a text of significant
length (along with the source code) is a tiresome and lengthy proc e ss. Cur rently,
the LibTom project is five years old, composed of literally thousands of users and
over 100,000 lines of source code, T
E
X, and other material. People like Mads
Rassmussen and Greg Ro se were there at the beginning to encoura ge me to work
well. It is ama z ing how timely validation from others can boost morale to c ontinue
the project. Definitely, my parents were there for me by providing room and board
during the many months of work in 2003.
Both Gr eg and Mads were invaluable s ources o f support in the early stages
of this project. The initial draft of this text, released in August 2003, was the
project of several months of dedicated work. Long hours and still going to school
were a constant drain of energy that would not have lasted without support.
Of course this book would not be here if it were not for the success of the var-
ious LibTom projects. That success is not only the product of my hard work, but
also the contribution of hundreds of other people. People like Colin Percival, Sky
Schultz, Wayne Scott, J Harper, Dan Kaminsky, Lance James, Simon Johnson,
Greg Rose, Clay Culver, Jochen Ka tz, Zhi Chen, Zed Shaw, Andrew Mann, Matt
Johnston, Steven Dake, Richard Amacker, Stefan Arentz, Richard Outerbridge,
Martin Carpenter, Cra ig Schlenter, John Kuhns, Bruce Guenter, Adam Miller,
Wesley Shields, John Dirk, Jean– Luc Cooke, Michael Heyman, Nelson Bolyard,