Functional programming concepts and straight-line programs in computer algebra

  • Authors:
  • N. Bruno;J. Heintz;G. Matera;R. Wachenchauzer

  • Affiliations:
  • Department of Computer Science, Columbia University, New York, NY;Departamento de Matemática, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires and CONICET, Argentina and Departamento de Matemáticas, Estadística y Computaci ...;Instituto de Desarrollo Humano, Universidad Nacional de General Sarmiento, Campus Universitario, J.M. Gutierrez 1150, Los Polvorines, 1613 Buenos Aires, Argentina;Departamento de Computación, Facultad de Ingeniería, Universidad de Buenos Aires, Paseo Colón 850, 1063 Buenos Aires, Argentina

  • Venue:
  • Mathematics and Computers in Simulation
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper we present MILONGA, a language based on functional programming concepts, which was designed for the implementation of a new generation of nonterm-rewriting elimination algorithms for multivariate polynomial solving [J. Pure Appl. Alg. 124 (1998) 101-146; J. Pure Appl. Alg. 117/118 (1997) 277-317; Appl. Alg. Eng. Commun. Comput. 11 (4) (2001) 239-296; J. Complex. 17 (1) (2001) 154-211].These new algorithms profit from an alternative representation of multivariate polynomials by means of straight-line programs [Algebraic complexity theory, in: Handbook of Theoretical Computer Science, Elsevier, Amsterdam, 1990, pp. 634-671 (Chapter 11); Algebraic complexity theory, in: Grundlehren der mathematischen Wissenschaften, Vol. 315, Springer, Berlin, 1997] allowing an exponential improvement of theoretical complexity--with respect to computing time and memory space--upon traditional, term-rewriting procedures.There is a strong analogy between the way how these algorithms employ straight-line programs and the way how functional programming languages treat functions as first-class citizens. Taking advantage of this circumstance, the MILONGA language enables us to analyze the relevance of the functional programming paradigm for the particular kind of task of polynomial equation solving.The paper contains an exhaustive do-it-yourself description of the programming philosophy of MILONGA, of the development of its compiler, of the operational semantics of its run-time system and of the implementation of a couple of fundamental computer algebra procedures in this language.The practical efficiency of this philosophy and implementation is outlined by comparative benchmarking on significant test examples.