Abstract
Combining symbolic algebra with numerical computation has become an effective way of solving many scientific and engineering problems. One of the difficulties in practice is producing concise, efficient, stable code from the large expressions generated in symbolic algebra. Most of the existing optimization techniques are applied after an operation or algorithm has been performed. We introduce techniques using high-level knowledge which are to be applied while the output expressions are generated.
This work was supported by grants A5471 and A5471 of the Natural Sciences and Engineering Research Council of Canada. Second author's present address: Department of Computer Science, University of Tennessee, Knoxville Tennessee U.S.A. 37996-1301.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Melvin A. Breuer. Generation of Optimal Code for Expressions via Factorization. Communications of the ACM, 12(6):333–340, June 1969.
Richard L. Brenner. Simplifying Large Algebraic Expressions by Computer. In V. Ellen Golden, editor, Proceedings of the 1984 Macsyma User's Conference, pages 50–109. General Electric, Schenectady, New York, July 1984.
B. W. Char, K. O. Geddes, G. H. Gonnet, and S. M. Watt. Maple User's Guide. WATCOM Publications Ltd., Waterloo, Ontario, Canada, 4 edition, 1985.
Cook Jr., G. O. Development of a Magnetohydrodynamic Code for Axisymmetric, High-Beta Plasmas with Complex Magnetic Fields. PhD thesis, Lawrence Livermore National Laboratory, University of California, Livermore, 1982. Also available as report from Lawrence Livermore National Laboratory, Livermore.
Kevin Cahill and Randolph Reeder. Using MACSYMA to Write Long FORTRAN Codes for Simplicial-Interpolative Lattice Gauge Theory. Research Report DOE-UNM-85/3, Department of Physics and Astronomy, University of New Mexico, Department of Physics and Astronomy, University of New Mexico, Albuquerque, New Mexico 87131, July 1985.
Richard J. Fateman. Optimal Code for Serial and Parallel Computation. Communications of the ACM, 12(12):694–695, December 1969.
Andreas Griewank. Book review of Numerical Derivatives and Nonlinear Analysis. SIAM Review, 30(2):327–329, June 1988.
Leo P. Harten. Using Macsyma to Generate (Somewhat) Optimized FORTRAN Code. In V. Ellen Golden, editor, Proceedings of the 1984 Macsyma User's Conference, pages 524–544. General Electric, Schenectady, New York, July 1984.
Anthony C. Hearn. Structure: The Key to Improved Algebraic Computation. In The Second Symposium on Symbolic and Algebraic Computation by Computers, RIKEN, Japan, 21–22 August 1984, pages 18-1–18-16. RSYMSAC, 1984.
B. J. A. Hulshof and J. A. van Hulzen. An Expression Compression Package for REDUCE based on Factorization and Controlled Expansion. Twente University of Technology, Department of Computer Science, Enschede, the Netherlands, 1985.
Masao Iri. Simultaneous computation of functions, partial derivatives and estimates of rounding errors — complexity and practicality —. Japan Journal of Applied Mathematics, 1:223–252, 1984.
G. Kedem. Automatic Differentiation of Computer Programs. ACM Transactions on Mathematical Software, 6(2):150–165, June 1980.
Harriet Kagiwada, Robert Kalaba, Nima Rosakhoo, and Karl Spingarn. Numerical Derivatives and Nonlinear Analysis, volume 31 of Mathematical Concepts and Methods in Science and Engineering. Plenum Press, Inc., 1986.
D. E. Knuth. The Art of Computer Programming, volume 2. Addison-Wesley Publishing Company, Reading, Massachusetts, 2nd edition, 1981. Seminumerical Algorithms.
C. Mesztenyi and C. Witzgall. Stable Evaluation of Polynomials. Journal of Research of the National Bureau of Standards — B. Mathematics and Mathematical Physics, 71B(1):11–17, January–March 1967.
E. Ng and B. W. Char. Gradient and Jacobian Computation for Numerical Applications. In V. Ellen Golden, editor, Proceedings of the 1979 Macsyma User's Conference, pages 604–621. NASA, Washington, D.C., June 1979.
Louis B. Rall. Automatic Differentiation: Techniques and Applications. Lecture Notes in Computer Science 120. Spring-Verlag, Berlin, Germany, 1981.
John R. Rice. Numerical Methods, Software, and Analysis, chapter 3, pages 33–58. McGraw-Hill, Inc., New York, IMSL Reference edition, 1983.
R. H. Risch. The Problem of Integration in Finite Terms. Transactions of the American Mathematical Society, 139:167–189, May 1969.
Bert Speelpenning. Compiling Fast Partial Derivatives of Functions Given by Algorithms. PhD thesis, Department of Computer Science, University of Illinois at Urbana-Champaign, Urbana, Illinois 61801, January 1980.
Stanly Steinberg and Patrick Roache. Using Vaxima to Write Fortran Code. In V. Ellen Golden, editor, Proceedings of the 1984 Macsyma User's Conference, pages 1–22. General Electric, Schenectady, New York, July 1984.
J. A. van Hulzen. Breuer's grow factor algorithm in computer algebra. In Proceedings of the 1981 ACM Symposium on Symbolic and Algebraic Computation, pages 100–104, 1981.
J. A. van Hulzen. Code Optimization of Multivariate Polynomial Schemes: A Pragmatic Approach. In J. A. van Hulzen, editor, Computer Algebra, Eurocal 83 (European Computer Algebra Conference, London, England, March 1983, pages 286–300, Berlin, 1983. Springer-Verlag.
J. A. van Hulzen and B. J. A. Hulshof. An Expression Analysis Package for REDUCE. SIGSAM Bulletin, 16(4):32–44, 1982.
Paul S. Wang. FINGER: A Symbolic System for Automatic Generation of Numerical Programs in Finite Element Analysis. Journal of Symbolic Computation, 2(3):305–316, September 1986.
Michael C. Wirth. On the Automation of Computational Physics. PhD thesis, University of California, Davis, October 1980. Also available as Lawrence Livermore National Laboratory, Livermore, Report UCRL-52996 (October 1980).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mutrie, M.P.W., Char, B.W., Bartels, R.H. (1989). Expression optimization using high-level knowledge. In: Davenport, J.H. (eds) Eurocal '87. EUROCAL 1987. Lecture Notes in Computer Science, vol 378. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-51517-8_90
Download citation
DOI: https://doi.org/10.1007/3-540-51517-8_90
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-51517-3
Online ISBN: 978-3-540-48207-9
eBook Packages: Springer Book Archive