Towards automatic synthesis of linear algebra programs

Automating the writing of efficient computer programs from an abstract specification of the computation that they are to perform is discussed. Advantages offered by automatic synthesis of programs include economy, reliability, and improved service. The synthesis of simple linear algebra programs is considered in general and then illustrated for the usual matrix product, a column-oriented matrix product, a rank-one update matrix product, and a program to multiply three matrices. The accumulation of inner products and transformational implementation of program synthesis addressed. The discussion attempts to illustrate both the general strategy of the syntheses and how various tactics can be adapted to make the syntheses proceed deterministically to programs that are optimal with respect to certain criteria. (RWR)