Mathematica: a system for doing mathematics by computer
Mathematica: a system for doing mathematics by computer
Circuits, Systems, and Signal Processing
Fork Algebras in Algebra, Logic and Computer Science
Fork Algebras in Algebra, Logic and Computer Science
Adaptive Strassen's matrix multiplication
Proceedings of the 21st annual international conference on Supercomputing
Anatomy of high-performance matrix multiplication
ACM Transactions on Mathematical Software (TOMS)
Transforming Data by Calculation
Generative and Transformational Techniques in Software Engineering II
Library generation for linear transforms
Library generation for linear transforms
Operator Language: A Program Generation Framework for Fast Kernels
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Language Engineering and Rigorous Software Development
Really Rethinking 'Formal Methods'
Computer
EMNLP '10 Proceedings of the 2010 Conference on Empirical Methods in Natural Language Processing
Matrices as arrows!: a biproduct approach to typed linear algebra
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Cryptol: high assurance, retargetable crypto development and validation
MILCOM'03 Proceedings of the 2003 IEEE conference on Military communications - Volume II
Quantitative Kleene coalgebras
Information and Computation
Encyclopedia of Parallel Computing
Encyclopedia of Parallel Computing
Monads need not be endofunctors
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
Hi-index | 0.00 |
Interested in formalizing the generation of fast running code for linear algebra applications, the authors show how an index-free, calculational approach to matrix algebra can be developed by regarding matrices as morphisms of a category with biproducts. This shifts the traditional view of matrices as indexed structures to a type-level perspective analogous to that of the pointfree algebra of programming. The derivation of fusion, cancellation and abide laws from the biproduct equations makes it easy to calculate algorithms implementing matrix multiplication, the central operation of matrix algebra, ranging from its divide-and-conquer version to its vectorization implementation. From errant attempts to learn how particular products and coproducts emerge from biproducts, not only blocked matrix algebra is rediscovered but also a way of extending other operations (e.g. Gaussian elimination) blockwise, in a calculational style, is found. The prospect of building biproduct-based type checkers for computer algebra systems such as Matlab(TM) is also considered.