# Chains of recurrences for functions of two variables and their application to surface plotting

• Olaf Bachmann
Part of the Texts and Monographs in Symbolic Computation book series (TEXTSMONOGR)

## Abstract

When generating curves or surfaces of closed-form mathematical functions, usually the most time-consuming task is function evaluation at discrete points. Most programs (among them most of the existing computer algebra systems) achieve this by straightforward evaluations of linearly sampled points through whatever numerical evaluation routines the particular system provides. More specifically, most programs use evaluations of the following form:
$$G\left( {{{x}_{0}} + n{{h}_{x}},{{y}_{0}} + m{{h}_{y}}} \right) for all n = 0, \ldots ,N,m = 0, \ldots ,M$$
for some given two-dimensional function G(x, y), starting points x 0, y 0 and increments h x, h y. For example, the following loop is used inside Maple’s plot 3d function (Char et al. 1988):
$$\begin{gathered} xinc : = \left( {xmax - xmin} \right)/m; yinc : = \left( {ymax - ymin} \right)/n; x: = xmin; \hfill \\ for i from 0 to m do \hfill \\ y : = ymin; \hfill \\ for j from 0 to n do z\left[ {i,j} \right] : = f\left( {x,y} \right); y : = y + yinc od; \hfill \\ x : = x + xinc \hfill \\ od; \hfill \\ \end{gathered}$$

## Keywords

Arithmetic Operation Simplification Rule Computer Algebra System Cost Index Common Lisp

## References

1. Bachmann, O. (1994): MAXIZIC: a Maxima interface to IZIC. RIACA Tech. Rep. 4, Research Institute for Applications of Computer Algebra, Amsterdam, The Netherlands.Google Scholar
2. Bachmann, O., Wang, P. S., Zima, E. V. (1994): Chains of Recurrences: a method to expedite the evaluation of closed-form functions. In: Giesbrecht, M. (ed.): Proceedings of the ACM International Symposium on Symbolic and Algebraic Computation (ISSAC’ 94), Oxford, UK. Association for Computing Machinery, New York, pp. 242–249.Google Scholar
3. Char, B. W., Geddes, K. O., Gonnet, G. H., Monagan, M. B., Watt, S. M. (1988): Maple reference manual, 5th edn. Watcom Publications, Waterloo, Ont.Google Scholar
4. Fateman, R. J., Broughan, K. A., Willcock, D. K., Rettig, D. (1995): Fast floating-point processing in Common Lisp. ACM Trans. Math. Software 21: 26–62.
5. Fournier, R., Kajler, N., Mourrain, B. (1993): IZIC: a portable language-driven tool for mathematical surfaces visualization. In: Miola, A. (ed.): Proceedings of Design and Implementation of Symbolic Computation Systems (DISCO’ 93), Gmunden, Austria. Springer, Berlin Heidelberg New York Tokyo, pp. 341–353 (Lecture notes in computer science, vol. 722).Google Scholar
6. Kaltofen, E. (1988): Greatest common divisors of polynomials given by straight-line programs. J. ACM 35: 231–264.
7. Knuth, D. E. (1981): The art of computer programming, vol. 2, seminumerical algorithms. Addison-Wesley, Reading, MA.
8. Macsyma (1993): Macsyma mathematics reference manual, version 14. Macsyma Inc., Arlington, MA.Google Scholar
9. The MATHLAB Group (1977): Macsyma reference manual, version 9. Laboratory for Computer Science, MIT, Cambridge, MA.Google Scholar
10. Wang, P. S. (1990): A system independent graphing package for mathematical functions. In: Miola, A. (ed.): Proceedings of Design and Implementation of Symbolic Computation Systems (DISCO’ 90), Capri, Italy. Springer, Berlin Heidelberg New York Tokyo, pp. 245–254 (Lecture notes in computer science, vol. 429).Google Scholar
11. Zima, E. V. (1984): Automatic construction of system of recurrence relations. J. Comput. Math. Math. Phys. 24: 193–197.
12. Zima, E. V. (1992): Recurrent relations and speed-up of computations using computer algebra systems. In: Fitch, J. (ed.): Proceedings of Design and Implementation of Symbolic Computation Systems (DISCO’ 92), Bath, UK. Springer, Berlin Heidelberg New York Tokyo, pp. 152–161 (Lecture notes in computer science, vol. 721).Google Scholar