In response to the need for high-performance scientific software, we propose to study ways to ease the production of optimized matrix algebra software. Each step of the code development process presently involves many choices, most requiring expertise in numerical computation, mathematical software, compilers, or computer architecture. The process of converting matrix algebra from abstract algorithms to high-quality implementations is a complex one. When leveraging existing high-performance numerical libraries, the application developer must select the appropriate numerical routines and then devise ways to make these routines run efficiently on the architecture at hand. Once the numerical routine has been identified, the process of including it into a larger application can often be tedious or difficult. The tuning of the application itself then presents a myriad of options generally centered around one or more of the following three approaches: manually optimizing code fragments; using tuned libraries for key numerical algorithms; and, less frequently, using compiler-based source transformation tools for loop-level optimizations. The goals of the proposed research are three-fold. First, we will construct a taxonomy of available software that can be used to build highly-optimized matrix algebra computations. The taxonomy will provide an organized anthology of software components and programming tools needed for that task. The taxonomy will serve as a guide to practitioners seeking to learn what is available for their programming tasks, how to use it, and how the various parts fit together. It will build upon and improve existing collections of numerical software, adding tools for the tuning of matrix algebra computations. Second, we will develop an initial set of tools that operate in conjunction with this taxonomy. In particular, we will provide an interface that takes a high-level description of a matrix algebra computation and produces a customizable code template using the software in the taxonomy. The template will aid the developer at all steps of the process from the initial construction of Basic Linear Algebra Subprogram (BLAS)-based codes through the full optimization of that code. Initially, the tools will accept a MATLAB prototype and produce optimized Fortran or C. Finally, we will advance the state-of-the-art in tuning tools by improving some of the tools included in the taxonomy, broadening their ranges of functionality in terms of problem domains and languages.