Unique Factorization Domains in the Java Computer Algebra System

  • Heinz Kredel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6301)


This paper describes the implementation of recursive algorithms in unique factorization domains, namely multivariate polynomial greatest common divisors (gcd) and factorization into irreducible parts in the Java computer algebra library (JAS). The implementation of gcds, resultants and factorization is part of the essential building blocks for any computation in algebraic geometry, in particular in automated deduction in geometry. There are various implementations of these algorithms in procedural programming languages. Our aim is an implementation in a modern object oriented programming language with generic data types, as it is provided by Java programming language. We exemplify that the type design and implementation of JAS is suitable for the implementation of several greatest common divisor algorithms and factorization of multivariate polynomials. Due to the design we can employ this package in very general settings not commonly seen in other computer algebra systems. As for example, in the coefficient arithmetic for advanced Gröbner basis computations like in polynomial rings over rational function fields or (finite, commutative) regular rings. The new package provides factory methods for the selection of one of the several implementations for non experts. Further we introduce a parallel proxy for gcd implementations which runs different implementations concurrently.


unique factorization domain multivariate polynomials real roots greatest common divisors 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Arnold, K., Gosling, J., Holmes, D.: The Java Programming Language, 4th edn. Addison-Wesley, Reading (2005)zbMATHGoogle Scholar
  2. 2.
    Becker, M.Y.: Symbolic Integration in Java. PhD thesis, Trinity College, University of Cambridge (2001)Google Scholar
  3. 3.
    Becker, T., Weispfenning, V.: Gröbner Bases - A Computational Approach to Commutative Algebra. Graduate Texts in Mathematics. Springer, Heidelberg (1993)zbMATHGoogle Scholar
  4. 4.
    Bernardin, L., Char, B., Kaltofen, E.: Symbolic computation in Java: an appraisement. In: Dooley, S. (ed.) Proc. ISSAC 1999, pp. 237–244. ACM Press, New York (1999)Google Scholar
  5. 5.
    Bini, D.A., Mourrain, B.: Polynomial test suite from PoSSo and Frisco projects. Technical report (1998), (accessed November 2009)
  6. 6.
    Böge, W., Gebauer, R., Kredel, H.: Some examples for solving systems of algebraic equations by calculating Groebner bases. J. Symb. Comput. 2(1), 83–98 (1986)MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Bronstein, M.: Sigma\(^{\mbox{{it}}}\) - a strongly-typed embeddable computer algebra library. In: Limongelli, C., Calmet, J. (eds.) DISCO 1996. LNCS, vol. 1128, pp. 22–33. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  8. 8.
    Buchmann, J., Pfahler, T.: LiDIA. In: Computer Algebra Handbook, pp. 403–408. Springer, Heidelberg (2003)Google Scholar
  9. 9.
    Chen, X., Wang, D.: Towards an electronic geometry textbook. In: Botana, F., Recio, T. (eds.) ADG 2006. LNCS (LNAI), vol. 4869, pp. 1–23. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  10. 10.
    Cohen, H.: A Course in Computational Algebraic Number Theory. Springer, Heidelberg (1996)Google Scholar
  11. 11.
    Collins, G.E., Loos, R.G.: ALDES and SAC-2 now available. ACM SIGSAM Bull. 12(2), 19 (1982)Google Scholar
  12. 12.
    Collins, G.E., Loos, R.G.: Real Zeros of Polynomials. In: Buchberger, Collins, Loos (eds.) Computing Supplement: Computer Algebra, pp. 83–94. Springer, Heidelberg (1982)Google Scholar
  13. 13.
    Conrad, M.: The Java class package com.perisic.ring. Technical report (2002-2004), (accessed November 2009)
  14. 14.
    Dautelle, J.-M.: JScience: Java tools and libraries for the advancement of science. Technical report (2005-2007), (accessed November 2009)
  15. 15.
    Davenport, H.J., Gianni, P., Trager, B.M.: Scratchpad’s view of algebra II: A categorical view of factorization. In: Proc. ISSAC 1991, Bonn, pp. 32–38. ACM Press, New York (1991)Google Scholar
  16. 16.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1995); Deutsch: Entwurfsmuster. Addison-Wesley Reading (1996)zbMATHGoogle Scholar
  17. 17.
    Geddes, K.O., Czapor, S.R., Labahn, G.: Algorithms for Computer Algebra. Kluwer, Dordrecht (1993)zbMATHGoogle Scholar
  18. 18.
    Georges, A., Buytaert, D., Eeckhout, L.: Statistically rigorous Java performance evaluation. In: ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 57–76. University of Montreal, Quebec (2007)Google Scholar
  19. 19.
    Gräbe, H.-G.: The SymbolicData project. Technical report (2000-2006), (accessed November 2009)
  20. 20.
    Grabmaier, J., Kaltofen, E., Weispfenning, V. (eds.): Computer Algebra Handbook. Springer, Heidelberg (2003)Google Scholar
  21. 21.
    Greuel, G.-M., Pfister, G., Schönemann, H.: Singular - A Computer Algebra System for Polynomial Computations. In: Computer Algebra Handbook, pp. 445–450. Springer, Heidelberg (2003)Google Scholar
  22. 22.
    Gruntz, D., Weck, W.: A Generic Computer Algebra Library in Oberon. Manuscript available via Citeseer (1994)Google Scholar
  23. 23.
    Hohenwarter, M., Fuchs, K.: Combination of dynamic geometry, algebra and calculus in the software system GeoGebra. In: Computer Algebra Systems and Dynamic Geometry Systems in Mathematics Teaching Conference, Pecs, Hungary (2004)Google Scholar
  24. 24.
    Jenks, R., Sutor, R. (eds.): axiom The Scientific Computation System. Springer, Heidelberg (1992)zbMATHGoogle Scholar
  25. 25.
    Jolly, R.: jscl-meditor - Java symbolic computing library and mathematical editor. Technical report (2003), (accessed November 2009)
  26. 26.
    Jolly, R., Kredel, H.: How to turn a scripting language into a domain specific language for computer algebra. Technical report (2008),
  27. 27.
    Kaltofen, E.: Factorization of Polynomials. In: Buchberger, Collins, Loos (eds.) Computing Supplement: Computer Algebra, pp. 95–113. Springer, Heidelberg (1982)Google Scholar
  28. 28.
    Knuth, D.E.: The Art of Computer Programming - Volume 2, Seminumerical Algorithms. Addison-Wesley, Reading (1981)zbMATHGoogle Scholar
  29. 29.
    Kredel, H.: On the Design of a Java Computer Algebra System. In: Proc. PPPJ 2006, pp. 143–152. University of Mannheim (2006)Google Scholar
  30. 30.
    Kredel, H.: Evaluation of a Java Computer Algebra System. In: Proceedings ASCM 2007, pp. 59–62. National University of Singapore (2007)Google Scholar
  31. 31.
    Kredel, H.: Evaluation of a Java computer algebra system. In: Kapur, D. (ed.) ASCM 2007. LNCS (LNAI), vol. 5081, pp. 121–138. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  32. 32.
    Kredel, H.: Multivariate greatest common divisors in the Java Computer Algebra System. In: Proc. Automated Deduction in Geometry (ADG), pp. 41–61. East China Normal University, Shanghai (2008)Google Scholar
  33. 33.
    Kredel, H.: On a Java Computer Algebra System, its performance and applications. Science of Computer Programming 70(2-3), 185–207 (2008)MathSciNetCrossRefzbMATHGoogle Scholar
  34. 34.
    Kredel, H.: Comprehensive Gröbner bases in a Java Computer Algebra System. In: Proceedings ASCM 2009, pp. 77–90. Kyushu University, Fukuoka (2009)Google Scholar
  35. 35.
    Kredel, H.: Distributed parallel Gröbner bases computation. In: Proc. Workshop on Engineering Complex Distributed Systems (ECDS) at CISIS 2009, Pages on CD–ROM, University of Fukuoka, Japan (2009)Google Scholar
  36. 36.
    Kredel, H.: Distributed hybrid Gröbner bases computation. In: Proc. Workshop on Engineering Complex Distributed Systems (ECDS) at CISIS 2010, University of Krakow, Poland (2010) (page to appear)Google Scholar
  37. 37.
    Kredel, H.: The Java algebra system (JAS), Technical report (2000),
  38. 38.
    Kredel, H., Pesch, M.: MAS: The Modula-2 Algebra System. In: Computer Algebra Handbook, pp. 421–428. Springer, Heidelberg (2003)Google Scholar
  39. 39.
    Lewis, R.H., Wester, M.: Comparison of polynomial-oriented computer algebra systems. SIGSAM Bull. 33(4), 5–13 (1999)CrossRefzbMATHGoogle Scholar
  40. 40.
    Liang, T., Wang, D.: Towards a geometric-object-oriented language. In: Hong, H. (ed.) Proc. Automated Deduction in Geometry 2004, Florida, USA (2004)Google Scholar
  41. 41.
    Loos, R.: Generalized Polynomial Remainder Sequences. In: Buchberger, Collins, Loos (eds.) Computing Supplement: Computer Algebra, pp. 115–138. Springer, Heidelberg (1982)Google Scholar
  42. 42.
    Musser, D.R., Schupp, S., Loos, R.: Requirement oriented programming. In: Jazayeri, M., Musser, D.R., Loos, R.G.K. (eds.) Dagstuhl Seminar 1998. LNCS, vol. 1766, pp. 12–24. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  43. 43.
    Niculescu, V.: A design proposal for an object oriented algebraic library. Technical report, Studia Universitatis “Babes-Bolyai” (2003)Google Scholar
  44. 44.
    Niculescu, V.: OOLACA: an object oriented library for abstract and computational algebra. In: OOPSLA Companion, pp. 160–161. ACM, New York (2004)Google Scholar
  45. 45.
    Noro, M., Takeshima, T.: Risa/Asir - a computer algebra system. In: Proc. ISSAC 1992, pp. 387–396. ACM Press, New York (1992)Google Scholar
  46. 46.
    Platzer, A.: The Orbital library. Technical report, University of Karlsruhe (2005),
  47. 47.
    Sato, Y., Suzuki, A.: Gröbner bases in polynomial rings over von Neumann regular rings – their applications. In: Proceedings ASCM 2000. Lecture Notes Series on Computing, vol. 8, pp. 59–62. World Scientific Publications, Singapore (2000)Google Scholar
  48. 48.
    Schreiner, W., Hong, H.: PACLIB — a system for parallel algebraic computation on shared memory computers. In: Alnuweiri, H.M. (ed.) Parallel Systems Fair at the Seventh International Parallel Processing Symposium, IPPS 1993, Newport Beach, CA, April 14, pp. 56–61 (1993)Google Scholar
  49. 49.
    Schupp, S., Loos, R.: SuchThat - generic programming works. In: Jazayeri, M., Musser, D.R., Loos, R.G.K. (eds.) Dagstuhl Seminar 1998. LNCS, vol. 1766, pp. 133–145. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  50. 50.
    Stein, W.: SAGE Mathematics Software (Version 2.7). The SAGE Group (2007), (accessed November 2009)
  51. 51.
    Sun Microsystems, Inc. The Java development kit. Technical report (1994-2009), (accessed November 2009)
  52. 52.
    Watt, S.: Aldor. In: Computer Algebra Handbook, pp. 265–270. Springer, Heidelberg (2003)Google Scholar
  53. 53.
    Weispfenning, V.: Gröbner bases for polynomial ideals over commutative regular rings. In: Davenport, J.H. (ed.) ISSAC 1987 and EUROCAL 1987. LNCS, vol. 378, pp. 336–347. Springer, Heidelberg (1989)Google Scholar
  54. 54.
    Weispfenning, V.: Comprehensive Gröbner bases and regular rings. J. Symb. Comput. 41, 285–296 (2006)MathSciNetCrossRefzbMATHGoogle Scholar
  55. 55.
    Whelan, C., Duffy, A., Burnett, A., Dowling, T.: A Java API for polynomial arithmetic. In: Proc. PPPJ 2003, pp. 139–144. Computer Science Press, New York (2003)Google Scholar
  56. 56.
    Ye, Z., Chou, S.-C., Gao, X.-S.: An introduction to Java geometry expert (JGEX). In: Proc. Automated Deduction in Geometry (ADG), pp. 79–85. East China Normal University, Shanghai (2008)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Heinz Kredel
    • 1
  1. 1.IT-CenterUniversity of MannheimGermany

Personalised recommendations