FOXBOX: a system for manipulating symbolic objects in black box representation

The dreaded phenomenon of expression swell in symbolic computation can be palliated by adopting implicit representations for symbolic objects, such as straight-line programs or so-called black box representations. In the latter, each expression is a symbolic object, more specifically, a computer program with a set of statically initialized data, which takes as input a value for each variable and then produces the value of the symbolic object it represents at the specified point. In this thesis we introduce F sc OXB sc OX, a software package that puts in practice the black box representation of symbolic objects and provides algorithms for performing the symbolic calculus with such representations. Improved versions of the algorithms found in Kaltofen and Trager (Journal of Symbolic Computing, vol. 9, nr. 3, p. 311 (1990)) and Kaltofen and Diaz (International Symposium on Symbolic and Algebraic Computation '95,) p. 232) are discussed. Also we describe an interpolation scheme based on a Zippel's algorithm (Journal of Symbolic Computing, vol. 9, nr. 3, p. 375 (1990)) that optimizes the number of required black box evaluations. The design of F sc OXB sc OX is intended to demonstrate how plug-in software components can be employed for generally used symbolic systems. Our implementation incorporates data types parameterized by arbitrary coefficient domains and generic algorithms. By providing a mechanism for interfacing to general purpose computer algebra systems, we broaden F sc OXB scOX's applicability. Furthermore we provide a distribution mechanism that allows for parallel and distributed execution of F sc OXB sc OX programs independent of the underlying parallel architecture. Finally, we present the results of several challenge problems which exercise our F sc OXB sc OX library and represent the first symbolic solutions of such problems.

[1]  Úlfar Erlingsson,et al.  Generic Gram-Schmidt orthogonalization by exact division , 1996, ISSAC '96.

[2]  Erich Kaltofen,et al.  Greatest common divisors of polynomials given by straight-line programs , 1988, JACM.

[3]  Anthony Skjellum,et al.  Using MPI - portable parallel programming with the message-parsing interface , 1994 .

[4]  M.N. Sastry,et al.  Structure and interpretation of computer programs , 1986, Proceedings of the IEEE.

[5]  Dima Grigoriev,et al.  Algorithms for Computing Sparse Shifts for Multivariate Polynomials , 1995, ISSAC '95.

[6]  Erich Kaltofen,et al.  On computing determinants of matrices without divisions , 1992, ISSAC '92.

[7]  Erich Kaltofen,et al.  On computing greatest common divisors with polynomials given by black boxes for their evaluations , 1995, ISSAC '95.

[8]  Ronitt Rubinfeld,et al.  A new modular interpolation algorithm for factoring multivariate polynominals , 1994, ANTS.

[9]  Erich Kaltofen,et al.  Computing with Polynomials Given By Black Boxes for Their Evaluations: Greatest Common Divisors, Factorization, Separation of Numerators and Denominators , 1990, J. Symb. Comput..

[10]  Richard D. Jenks,et al.  AXIOM: the scientific computation system , 1992 .

[11]  Keith O. Geddes,et al.  Algorithms for computer algebra , 1992 .

[12]  Erich Kaltofen,et al.  Improved Sparse Multivariate Polynomial Interpolation Algorithms , 1988, ISSAC.

[13]  Erich Kaltofen,et al.  A system for manipulating polynomials given by straight-line programs , 1986, SYMSAC '86.

[14]  Hoon Hong,et al.  The Design of the SACLIB/PACLIB Kernels , 1993, DISCO.

[15]  Dima Grigoriev,et al.  Algorithms for Computing Sparse Shifts for Multivariate Polynomials , 1995, ISSAC.

[16]  David R. Musser,et al.  STL tutorial and reference guide - C++ programming with the standard template library , 1996, Addison-Wesley professional computing series.

[17]  Erich Kaltofen,et al.  On rank properties of Toeplitz matrices over finite fields , 1996, ISSAC '96.

[18]  Richard Zippel,et al.  Interpolating Polynomials from Their Values , 1990, J. Symb. Comput..

[19]  Erich Kaltofen,et al.  Process Scheduling in DSC and the Large Sparse Linear Systems Challenge , 1995, J. Symb. Comput..

[20]  John Abbott,et al.  A report on OpenMath: a protocol for the exchange of mathematical information , 1996, SIGS.

[21]  Erich Kaltofen,et al.  Factorization of Polynomials Given by Straight-Line Programs , 1989, Adv. Comput. Res..

[22]  Neil Soiffer,et al.  An object-oriented approach to algebra system design , 1986, SYMSAC '86.

[23]  Erich Kaltofen,et al.  A Distributed Approach to Problem Solving in Maple , 1994 .

[24]  Erich Kaltofen,et al.  Dagwood: a system for manipulating polynomials given by straight-line programs , 1988, TOMS.

[25]  Erich Kaltofen,et al.  Factoring high-degree polynomials by the black box Berlekamp algorithm , 1994, ISSAC '94.

[26]  William Gropp,et al.  Skjellum using mpi: portable parallel programming with the message-passing interface , 1994 .

[27]  Erich Kaltofen,et al.  Process Scheduling in DSC and the Large Sparse Linear Systems Challenge , 1993, DISCO.

[28]  Stephen M. Watt,et al.  A first report on the A# compiler , 1994, ISSAC '94.

[29]  Jack Dongarra,et al.  PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing , 1995 .

[30]  Erich Kaltofen,et al.  Computing with polynomials given by black boxes for their evaluations: greatest common divisors, factorization, separation of numerators and denominators , 1988, [Proceedings 1988] 29th Annual Symposium on Foundations of Computer Science.

[31]  Hoon Hong,et al.  The Design of the SACLIB/PACLIB Kernels , 1995, J. Symb. Comput..

[32]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.