Compile Time Symbolic Derivation with C++ Templates
Joseph Gil, IBM T.J. Watson Research Center;
Zvi Gutterman, Technion Israel Institute of Technology
C++ templates are already recognized as a powerful linguistic mechanism,
whose usefulness transcends the realization of traditional generic
containers. In the same venue, this paper reports on a somewhat
surprising application of templates for computing the symbolic
derivative of expression. Specifically, we describe a software package
based on templates, called SEMT, which allows the programmer to create
symbolic expressions, substitute variables in them, and compute their
derivatives. SEMT is unique in that these manipulations are all done at
compile time. In other words, SEMT effectively coerces the compiler to
do symbolic computation as part of the compilation process. Beyond the
theoretical interest, SEMT can be practically applied in the efficient,
generic and easy to use implementation of many numerical algorithms.
- View the full text of this paper in
HTML form and
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.