LAPACK Users' guide (third ed.)
LAPACK Users' guide (third ed.)
The Matrix Template Library: Generic Components for High-Performance Scientific Computing
Computing in Science and Engineering
The cost of errors in software development: evidence from industry
Journal of Systems and Software
The Art of UNIX Programming
Statically typed linear algebra in Haskell
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Representation-transparent matrix algorithms with scalable performance
Proceedings of the 21st annual international conference on Supercomputing
Hi-index | 0.00 |
Contemporary C++ matrix libraries model matrices as if the only relevant characteristic of matrix type is its element type and number of dimensions. Actual size of each dimension is usually completely disregarded in the model. Dimension size is treated as dynamic characteristics of matrix object, making a matrix type neither static nor dynamic, but something in between. Logical consequence of data model inconsistency is more or less noticeable discrepancy in the interface design. Matrix model in which element type, number of dimensions and size of each dimension are all treated as equally important characteristic of matrix type is presented in this paper. Proposed matrix model is implemented in the C++ proof-of-concept template library called Typed Matrix Library (TML). Matrices in TML are statically typed objects. Modeling matrices this way enables compile-time correctness verification in matrix operations. At the same time, this approach incurs no run-time overhead compared to the classical one. Arguably, linear algebra programs based on the presented model require no additional information/dependencies to be supplied to the program code than developers are already aware of, thus no extra developers' effort is required in order to use matrices based on this model.