Evaluation of a Java Computer Algebra System

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

Abstract

This paper evaluates the suitability of Java as an implementation language for the foundations of a computer algebra library. The design of basic arithmetic and multivariate polynomial interfaces and classes have been presented in [1]. The library is type-safe due to its design with Java’s generic type parameters and thread-safe using Java’s concurrent programming facilities. We evaluate some key points of our library and differences to other computer algebra systems.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Kredel, H.: On the Design of a Java Computer Algebra System. In: Proc. PPPJ 2006, University of Mannheim, pp. 143–152 (2006)Google Scholar
  2. 2.
    Kredel, H.: On a Java Computer Algebra System, its performance and applications. In: PPPJ 2006, Science of Computer Programming. Elsevier, Amsterdam (in print, 2008) (special issue)Google Scholar
  3. 3.
    Kredel, H.: The Java algebra system. Technical report (since 2000), http://krum.rz.uni-mannheim.de/jas/
  4. 4.
    Sun Microsystems, Inc.: The Java development kit. Technical report (accessed 2007) May (1994-2007), http://java.sun.com/
  5. 5.
    Grabmaier, J., Kaltofen, E., Weispfenning, V. (eds.): Computer Algebra Handbook. Springer, Heidelberg (2003)Google Scholar
  6. 6.
    Jenks, R., Sutor, R. (eds.): axiom The Scientific Computation System. Springer, Heidelberg (1992)MATHGoogle Scholar
  7. 7.
    Bronstein, M.: Sigmait - a strongly-typed embeddable computer algebra library. In: Proc. DISCO 1996, University of Karlsruhe, pp. 22–33 (1996)Google Scholar
  8. 8.
    Watt, S.: In: Aldor. in Computer Algebra Handbook, pp. 265–270. Springer, Heidelberg (2003)Google Scholar
  9. 9.
    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
  10. 10.
    Buchmann, J., Pfahler, T.: LiDIA. In: Computer Algebra Handbook, pp. 403–408. Springer, Heidelberg (2003)Google Scholar
  11. 11.
    Noro, M., Takeshima, T.: Risa/Asir–a computer algebra system. In: Proc. ISSAC 1992, pp. 387–396. ACM Press, New York (1992)CrossRefGoogle Scholar
  12. 12.
    Kredel, H., Pesch, M.: MAS: The Modula-2 Algebra System. In: Computer Algebra Handbook, pp. 421–428. Springer, Heidelberg (2003)Google Scholar
  13. 13.
    Gruntz, D., Weck, W.: A Generic Computer Algebra Library in Oberon. Manuscript available via Citeseer (1994)Google Scholar
  14. 14.
    Collins, G.E., Loos, R.G.: ALDES and SAC-2. ACM SIGSAM Bull. 12(2), 19 (1982)Google Scholar
  15. 15.
    Stein, W.: SAGE Mathematics Software (Version 2.7). The SAGE Group (2007) (accessed 2007, November), http://www.sagemath.org
  16. 16.
    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
  17. 17.
    Niculescu, V.: A design proposal for an object oriented algebraic library. Technical report, Studia Universitatis Babes-Bolyai (2003)Google Scholar
  18. 18.
    Niculescu, V.: OOLACA: an object oriented library for abstract and computational algebra. In: OOPSLA Companion, pp. 160–161. ACM, New York (2004)Google Scholar
  19. 19.
    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)CrossRefGoogle Scholar
  20. 20.
    Conrad, M.: The Java class package com.perisic.ring. Technical report (accessed 2006) (September 2002-2004), http://ring.perisic.com/
  21. 21.
    Becker, M.Y.: Symbolic Integration in Java. PhD thesis, Trinity College, University of Cambridge (2001)Google Scholar
  22. 22.
    Jolly, R.: jscl-meditor - java symbolic computing library and mathematical editor. Technical report (accessed 2007, September) (since 2003), http://jscl-meditor.sourceforge.net/
  23. 23.
    Platzer, A.: The Orbital library. Technical report, University of Karlsruhe(2005), http://www.functologic.com/
  24. 24.
    Dautelle, J.M.: JScience: Java tools and libraries for the advancement of science. Technical report (accessed 2007, May 2005-2007), http://www.jscience.org/
  25. 25.
    Musser, D., Schupp, S., Loos, R.: Requirement oriented programming - concepts, implications and algorithms. 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
  26. 26.
    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
  27. 27.
    Becker, T., Weispfenning, V.: Gröbner Bases - A Computational Approach to Commutative Algebra. Graduate Texts in Mathematics. Springer, Heidelberg (1993)MATHGoogle Scholar
  28. 28.
    Geddes, K.O., Czapor, S.R., Labahn, G.: Algorithms for Computer Algebra. Kluwer, Dordrecht (1993)Google Scholar
  29. 29.
    Kredel, H.: Evaluation of a Java Computer Algebra System. In: Proceedings ASCM 2007, National University of Singapore (2007)Google Scholar
  30. 30.
    Arnold, K., Gosling, J., Holmes, D.: The Java Programming Language, 4th edn. Addison-Wesley, Reading (2005)Google Scholar
  31. 31.
    Stansifer, R., Baumgartner, G.: A Proposal to Study Type Systems for Computer Algebra. Technical Report 90-07, Johannes Kepler University, Linz, Austria (1990)Google Scholar
  32. 32.
    Baumgartner, G., Russo, V.F.: Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software - Practice and Experience 25(8), 863–889 (1995)CrossRefGoogle Scholar
  33. 33.
    Liskov, B.: Data abstraction and hierarchy. In: OOPSLA 1987: Addendum to the proceedings on Object-oriented programming systems, languages and applications (Addendum), pp. 17–34. ACM, New York (1987)CrossRefGoogle Scholar
  34. 34.
    Abdali, S.K., Cherry, G.W., Soiffer, N.: An object-oriented approach to algebra system design. In: Char, B.W. (ed.) Proc. SYMSAC 1986, pp. 24–30. ACM Press, New York (1986)CrossRefGoogle Scholar
  35. 35.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Weseley (1995)Google Scholar
  36. 36.
    Kredel, H.: A systems perspective on A3L. In: Proc. A3L: Algorithmic Algebra and Logic 2005, University of Passau, pp. 141–146 (April 2005)Google Scholar
  37. 37.
    Meyer, B.: Genericity versus inheritance. In: OOPSLA, pp. 391–405 (1986)Google Scholar
  38. 38.
    Poll, E., Thomson, S.: The type system of Aldor. Technical report, Computing Science Institute Nijmegen (1999)Google Scholar
  39. 39.
    Fateman, R.J.: Advances and trends in the design and construction of algebraic manipulation systems. In: Proc. ISSAC 1990, pp. 60–67. ACM Press, New York (1990)CrossRefGoogle Scholar
  40. 40.
    Sun Microsystems, Inc.: Improvements to program execution speed (accessed 2007, May 10 2004), http://java.sun.com/j2se/1.5.0/docs/guide/performance/speed.html
  41. 41.
    Fateman, R.J.: Draft: Comparing the speed of programs for sparse polynomial multiplication (accessed 2007, May 5 2002), http://www.cs.berkeley.edu/~fateman/papers/fastmult.pdf
  42. 42.
    Apache Software Foundation: Commons-Math: The Jakarta mathematics library. Technical report (accessed 2007, May 18 2003-2007), http://jakarta.apache.org/commons/
  43. 43.
    Bull, J.M., Smith, L.A., Pottage, L., Freeman, R.: Benchmarking Java against C and Fortran for scientific applications. In: Proc. Joint ACM Java Grande and ISCOPE 2001 Conf. ACM Press, New York (2001)Google Scholar
  44. 44.
    Click, C.: Performance myths revisited. In: JavaOne (2005) (accessed January 2008), http://gceclub.sun.com.cn/java_one_online/2005/TS-3268/ts-3268.pdf
  45. 45.
    Lewis, J., Neumann, U.: Performance of Java versus C++. Technical report (accessed 2008) (January 2004), http://www.idiom.com/~zilla/Computer/javaCbenchmark.html
  46. 46.
    Lea, K.: The Java is faster than C++. Technical report (accessed 2008) (January 2005), http://www.kano.net/javabench/
  47. 47.
    Dragan, L., Watt, S.: Performance Analysis of Generics in Scientific Computing. In: Proceedings of Seventh International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, pp. 90–100. IEEE Computer Society, Los Alamitos (2005)Google Scholar
  48. 48.
    GoogleDirectoryContributors: Computers - programming - languages - comparison and review. Technical report (accessed 2008) (January 2008), http://directory.google.com/Top/Computers/Programming/Languages/Comparison_and_Review/

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

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

Personalised recommendations