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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Kredel, H.: On the Design of a Java Computer Algebra System. In: Proc. PPPJ 2006, University of Mannheim, pp. 143–152 (2006)
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)
Kredel, H.: The Java algebra system. Technical report (since 2000), http://krum.rz.uni-mannheim.de/jas/
Sun Microsystems, Inc.: The Java development kit. Technical report (accessed 2007) May (1994-2007), http://java.sun.com/
Grabmaier, J., Kaltofen, E., Weispfenning, V. (eds.): Computer Algebra Handbook. Springer, Heidelberg (2003)
Jenks, R., Sutor, R. (eds.): axiom The Scientific Computation System. Springer, Heidelberg (1992)
Bronstein, M.: Sigmait - a strongly-typed embeddable computer algebra library. In: Proc. DISCO 1996, University of Karlsruhe, pp. 22–33 (1996)
Watt, S.: In: Aldor. in Computer Algebra Handbook, pp. 265–270. Springer, Heidelberg (2003)
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)
Buchmann, J., Pfahler, T.: LiDIA. In: Computer Algebra Handbook, pp. 403–408. Springer, Heidelberg (2003)
Noro, M., Takeshima, T.: Risa/Asir–a computer algebra system. In: Proc. ISSAC 1992, pp. 387–396. ACM Press, New York (1992)
Kredel, H., Pesch, M.: MAS: The Modula-2 Algebra System. In: Computer Algebra Handbook, pp. 421–428. Springer, Heidelberg (2003)
Gruntz, D., Weck, W.: A Generic Computer Algebra Library in Oberon. Manuscript available via Citeseer (1994)
Collins, G.E., Loos, R.G.: ALDES and SAC-2. ACM SIGSAM Bull. 12(2), 19 (1982)
Stein, W.: SAGE Mathematics Software (Version 2.7). The SAGE Group (2007) (accessed 2007, November), http://www.sagemath.org
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)
Niculescu, V.: A design proposal for an object oriented algebraic library. Technical report, Studia Universitatis Babes-Bolyai (2003)
Niculescu, V.: OOLACA: an object oriented library for abstract and computational algebra. In: OOPSLA Companion, pp. 160–161. ACM, New York (2004)
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)
Conrad, M.: The Java class package com.perisic.ring. Technical report (accessed 2006) (September 2002-2004), http://ring.perisic.com/
Becker, M.Y.: Symbolic Integration in Java. PhD thesis, Trinity College, University of Cambridge (2001)
Jolly, R.: jscl-meditor - java symbolic computing library and mathematical editor. Technical report (accessed 2007, September) (since 2003), http://jscl-meditor.sourceforge.net/
Platzer, A.: The Orbital library. Technical report, University of Karlsruhe(2005), http://www.functologic.com/
Dautelle, J.M.: JScience: Java tools and libraries for the advancement of science. Technical report (accessed 2007, May 2005-2007), http://www.jscience.org/
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)
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)
Becker, T., Weispfenning, V.: Gröbner Bases - A Computational Approach to Commutative Algebra. Graduate Texts in Mathematics. Springer, Heidelberg (1993)
Geddes, K.O., Czapor, S.R., Labahn, G.: Algorithms for Computer Algebra. Kluwer, Dordrecht (1993)
Kredel, H.: Evaluation of a Java Computer Algebra System. In: Proceedings ASCM 2007, National University of Singapore (2007)
Arnold, K., Gosling, J., Holmes, D.: The Java Programming Language, 4th edn. Addison-Wesley, Reading (2005)
Stansifer, R., Baumgartner, G.: A Proposal to Study Type Systems for Computer Algebra. Technical Report 90-07, Johannes Kepler University, Linz, Austria (1990)
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)
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)
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)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Weseley (1995)
Kredel, H.: A systems perspective on A3L. In: Proc. A3L: Algorithmic Algebra and Logic 2005, University of Passau, pp. 141–146 (April 2005)
Meyer, B.: Genericity versus inheritance. In: OOPSLA, pp. 391–405 (1986)
Poll, E., Thomson, S.: The type system of Aldor. Technical report, Computing Science Institute Nijmegen (1999)
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)
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
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
Apache Software Foundation: Commons-Math: The Jakarta mathematics library. Technical report (accessed 2007, May 18 2003-2007), http://jakarta.apache.org/commons/
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)
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
Lewis, J., Neumann, U.: Performance of Java versus C++. Technical report (accessed 2008) (January 2004), http://www.idiom.com/~zilla/Computer/javaCbenchmark.html
Lea, K.: The Java is faster than C++. Technical report (accessed 2008) (January 2005), http://www.kano.net/javabench/
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)
GoogleDirectoryContributors: Computers - programming - languages - comparison and review. Technical report (accessed 2008) (January 2008), http://directory.google.com/Top/Computers/Programming/Languages/Comparison_and_Review/
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kredel, H. (2008). Evaluation of a Java Computer Algebra System. In: Kapur, D. (eds) Computer Mathematics. ASCM 2007. Lecture Notes in Computer Science(), vol 5081. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-87827-8_10
Download citation
DOI: https://doi.org/10.1007/978-3-540-87827-8_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-87826-1
Online ISBN: 978-3-540-87827-8
eBook Packages: Computer ScienceComputer Science (R0)