Matrices are essential in many fields of computer science, especially when large amounts of data must be handled efficiently. Despite this demand for matrix software, we were unable to find a Java library which was flexible enough to match all our needs. In this paper, we present the Universal Java Matrix Package (UJMP), an innovative software architecture in Java to store and process matrices with interfaces to external data sources such as Excel files or SQL-databases, allowing to handle data which would not fit into main memory.In contrast to all other approaches which we are aware of, our package is the only one to support very large matrices with up to 2^63 rows or columns. In addition, the use of variable argument lists provides a convenient way for accessing multi-dimensional data without the need to specify dimensionality at compile time. Arbitrary data types be handled through the use of Java Generics. Another key feature is the strict separation of interfaces and classes, making data storage implementation and math engine exchangeable, at runtime. This flexible architecture allows the user to decide whether operations should be optimized for speed or memory usage and makes the system easily extendable through existing libraries, incorporating their individual strengths.
[1]
Samuel P. Midkiff,et al.
High Performance Numerical Computing in Java: Language and Compiler Issues
,
1999,
LCPC.
[2]
F. A. Seiler,et al.
Numerical Recipes in C: The Art of Scientific Computing
,
1989
.
[3]
Jack J. Dongarra,et al.
JLAPACK-compiling LAPACK Fortran to Java
,
1999,
Sci. Program..
[4]
James P. Denier,et al.
An Introduction to Programming and Numerical Methods in MATLAB
,
2005
.
[5]
Golub Gene H. Et.Al.
Matrix Computations, 3rd Edition
,
2007
.
[6]
Guy L. Steele,et al.
The Java Language Specification
,
1996
.
[7]
James Gosling,et al.
The Java Language Specification, 3rd Edition
,
2005
.
[8]
Guy L. Steele,et al.
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
,
2005
.
[9]
Robert H. Halstead,et al.
Matrix Computations
,
2011,
Encyclopedia of Parallel Computing.