• Corpus ID: 466074


  author={Virginia Niculescu},
Object oriented programming and design patterns introduce a high level of abstraction that allows us to implement and work with math- ematical abstractions. Classic algebraic libraries, based on imperative pro- gramming, contain subalgorithms for working with polynomials, matrices, vectors, etc. Their big inconvenience is the dependency on types. For exam- ple, a polynomial can be built over any kind of algebraic unitary commutative ring (R;+;⁄), and we have to define a dierent set of… 

Figures from this paper

Building an object oriented computational algebra system based on design patterns

  • Virginia NiculescuG. Moldovan
  • Computer Science
    Seventh International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC'05)
  • 2005
This paper analyzes and design the kernel for an object oriented computational algebra system based on design patterns, which allows for significant flexibility and abstraction in the field of algebraic libraries.

OOLACA: an object oriented library for abstract and computational algebra

This work analyzes and design an object oriented algebraic library, that allows working not only with concrete algebraic structures, but also with abstract algebraic structure, and works with them in abstract and concrete mathematical ways.


This article analyzes the suitability of using parametric polymorphism, in an object-oriented programming context, for implementation of algebraic structures, showing some advantages but also some problems.

Generic, Type-Safe and Object Oriented Computer Algebra Software

A modular approach to computer algebra software is discussed: usage of state-of-the-art memory management and run-time systems, usage of strongly typed, generic, object oriented programming languages, and usage of general purpose, dynamic interactive expression interpreters.

Multivariate Greatest Common Divisors in the Java Computer Algebra System

This paper exemplifies that the type design and implementation of JAS is suitable for the implementation of several greatest common divisor algorithms for multivariate polynomials, and introduces a parallel proxy for gcd implementations which runs different implementations concurrently.

Unique Factorization Domains in the Java Computer Algebra System

  • H. Kredel
  • Computer Science, Mathematics
    Automated Deduction in Geometry
  • 2008
This paper describes the implementation of recursive algorithms in unique factorization domains, namely multivariate polynomial greatest common divisors (gcd) and factorization into irreducible parts

How to turn a scripting language into a domain specific language for computer algebra

The requirements for a scripting language in computer algebra are discussed and whether the languages Python, Ruby, Groovy and Scala meet these requirements are checked and it is concluded that any of the languages is suitable for the purpose.

Categories as Type Classes in the Scala Algebra System

  • R. Jolly
  • Computer Science, Mathematics
  • 2013
A characterization of the categorical view of computer algebra is proposed and type classes are introduced as an alternate abstraction scheme and shown to be eventually better suited for modeling categories.

On a Java computer algebra system, its performance and applications

  • H. Kredel
  • Computer Science
    Sci. Comput. Program.
  • 2008

Symbolic Script Programming for Java

The concept of `symbolic programming' is introduced and its usefulness is shown by prototypes of symbolic polynomials and polynomial rings.



LAPACK++: A design overview of object-oriented extensions for high performance linear algebra

The authors present an overview of the object-oriented design of the matrix and decomposition classes in C++ and discuss its impact on elegance, generality, and performance.

The Java Programming Language

The Java (TM)Programming Language, Second Edition, is the definitive resource for all serious Java programmers and lets you in on the rationale behind Java's design, direct from the language's creator, as well as the tradeoffs involved in using specific features.

Parameterized types for Java

The rationale for the design decisions and the impact of the extension on other parts of Java, including arrays and the class library are discussed, and optional extensions to the Java virtual machine to allow parameterized bytecodes are described, and how to verify them efficiently.

STL tutorial and reference guide - C++ programming with the standard template library

This second edition of the STL Tutorial and Reference Guide is fully updated to reflect all of the changes made to STL for the final ANSI/ISO C++ language standard and has been expanded with new chapters and appendices.

Design patterns: elements of reuseable object-oriented software

The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns. The nice thing is, most experienced OOP designers will find out

Document for the Basic Linear Algebra Subprograms (BLAS) standard: BLAS Technical Forum

Permission to copy without fee all or part of this material is granted, provided the University of Tennessee copyright notice and the title of this document appear, and notice is given that copying

Elements of Modern Algebra

The treatment is rigorous and self-contained, in keeping with the objectives of training the student in the techniques of algebra and of providing a bridge to higher-level mathematical courses.

OoLALA: an object oriented analysis and design of numerical linear algebra

This paper reviews the design of a sequential object oriented linear algebra library that addresses a wide range of numerical linear algebra functionality while the reviewed object oriented libraries concen trate on parts of such functionality.

Thinking in Java, http://www.EckelObjects.com

  • 2000

Elements of Modern Algebra, PWS-Kent

  • 1992