I'm Scott Robert Ladd, a consulting software engineer and writer. On this web site, you'll find information about the professional services I provide, the books I've written, and my own open source software products (described below).
Embedded Database Engine
Itzam/Core 3.1.1
Itzam/C++ 2.0.0
Itzam/Core is a deliberately portable and concise C library for creating and manipulating keyed-access database files containing variable-length, random access records. Information is referenced by a user-defined key value; indexes may be combined with or separate from data. File locking supports safe and simultaneous access to database files for multiple processes, threads, and users. Itzam/Core scales from clusters to embedded systems, and can be compiled with any Standard ANSI/ISO C compiler, GCC, and Microsoft Visual C++.
Itzam/C++ defines templates for both simple and complex database classes, and supports B-tree and hash table indexes with unique or duplicate keys. Itzam/C++ also includes built-in multithreaded resource locking and transaction support. Complete class documentation is generated directly from in the commented source code.
Evolutionary Computing Framework
Evocosm is a C++ framework for programming a wide variety of evolutionary algorithms, ranging from genetic algorithms to agent simulations. Evocosm is the foundation for Acovea.
Evolutionary algorithms come in a variety of shapes and flavors, but at their core, they share certain characteristics: populations that reproduce and mutate through a series of generations, producing future generations based on some measure of fitness. An amazing variety of algorithms can be built on that general framework, which leads me to construct a set of core classes as the basis for future applications. As of version 3.3.0, Evocosm supports OpenMP to take advantage of multicore systems.
If you want to see Evocosm in a practical application, take a look at the Acovea project — Analysis of Compiler Options Via Evolutionary Algorithm, a tool for analyzing compilers.
Mathematics
Brahe is where I put all sorts of useful mathematic functions that don't seem to fit anywhere else. Among the bits and pieces here, you'll find:
-
A function,
brahe_sigdig, that rounds floating-point values to a specific number of significant digits -- very useful in scientific and engineering applications. - Several pseudorandom number generators, including the Marsenne Twister, various algorithms by Marsaglia, and ISAAC.
- Least common multiple and greatest common denominator functions.
- A few trigonometry functions for finding the inversions of hyperbolic sine, cosine, and tangent.
Education
Unit Circle shows the relationship between angles and trigonometric functions like sine and cosine. To do this, the program implements an interactive "unit circle" (radius = 1) diagram, where the user can click or drag to set angles and see how the values of trigonometric functions change accordingly.
The inspiration for this program was provided by my home-schooled daughters, who had difficulty understanding the nature of trigonometry. As an educational tool, Unit Circle has been a success, and it may evolve into a larger application for exploring other aspects of trigonometry and geometry.
The program isn't rocket science, but did provide an opportunity to work with the Cairo graphics library used in the latest versions of the GTK+ toolkit.
Performance Analysis via Genetic Algorithm
Acovea is an optimization tool, similar in purpose to profiling. Traditional function-level profiling identifies the algorithms most influential in a program's performance; Acovea is then applied to those algorithms to find the compiler flags and options that generate the fastest code. Acovea is also useful for testing combinations of flags for pessimistic interactions, and for testing the reliability of the compiler.

