Abstract: The automated application of program transformations is used to derive, from abstractfunctional specifications of numerical mathematical algorithms, highly efficient imperative implementations tailored for execution on sequential, vector and array processors. Emphasis is placedon additional transformations which tailor implementations to use special programming techniques optimized for sparse matrices. Keywords: program transformation, program derivation, sparse matrix, functional specification,vector processor, array processor 1 Introduction Scientific computing is dominated by matrix and vector algorithms, drawn from linear algebra. Many suchalgorithms can be formally defined in a simple, elegant manner that is independent of any particular computational architecture and that is amenable to analysis. Yet their efficient implementation-- and efficiency isnormally paramount in scientific computing-- usually requires a low-level, architecture-specific formulation in a programming language (Fortran or C) that possesses ill-defined semantics. It is thus generally the case that an efficient implementation of a numerical algorithm is almost completelydifferent in form from any high-level definition of the algorithm-- the form of an implementation is dictated as much by the computational architecture as by the computations required by the algorithm. The lack of a readycorrespondence between definition and implementation can make an implementation difficult to construct initially, difficult to verify once constructed and difficult to maintain as the algorithm and implementationtechniques evolve. The strong influence of the computational architecture on an implementation often hinders adaptation for another architecture. Furthermore, linear algebra algorithms can usually be employed for arbitrarily large data sets; practical appli-cations often require data sets for which standard programming techniques would result in an implementatio
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.