Scientific software for investigation of dynamical systems usually allows the user to specify systems in the form of functions in some language. There are several problems related to this: how to compute derivatives of these functions (since numerical algorithms need to compute first and higher order derivatives) and how to convert these functions and their derivatives to a machine suitable form. The key issues are minimal effort required from the user to manipulate functions and high efficiency in calculations that extensively compute functions and their derivatives. This work presents some solutions to these problems which are incorporated in C<font size=-1>ONTENT</font>, a new program for bifurcation analisys of dynamical systems. Derivatives are built during a three-stage process by means of transforming C source given by the user for right-hand sides into a C++ program which constructs another C program for computing derivatives. A special C++ class with overloaded operators and functions is used to produce this C program during the execution of the C++ program. A description of a dynamical system (i.e., functions and their derivatives) is compiled and linked as a dynamic library during a C<font size=-1>ONTENT</font> session. This does not require linking with the rest of software. Dynamic libraries for different systems are created, loaded, and functions in them are accessed without necessity to quit C<font size=-1>ONTENT</font>.

Processors (acm D.3.4), Miscellaneous (acm I.1.m), Object-oriented Programming (acm D.1.5)
Department of Analysis, Algebra and Geometry [AM]

Levitin, V.V. (1995). Computation of functions and their derivatives in Content. Department of Analysis, Algebra and Geometry [AM]. CWI.