@TechReport{ it:2004-020, author = {Malin Ljungberg and Krister {\AA}hlander}, title = {Generic Programming Aspects of Symmetry Exploiting Numerical Software}, institution = {Department of Information Technology, Uppsala University}, department = {Division of Scientific Computing}, year = {2004}, number = {2004-020}, month = may, note = {To appear in the proceedings of the mini-symposium ``Software Concepts and Free Software for PDEs'' of the ECCOMAS 2004 congress, Jyv{\"a}skyl{\"a}, Finland, 24-28 July 2004}, abstract = {The use of the generalized Fourier transform as a means to diagonalize certain types of equivariant matrices, and thus speeding up the solution of numerical systems, is discussed. Such matrices may arise in various applications with geometrical symmetries, for example when the boundary element method is used to solve an electrostatic problem in the exterior of a symmetric object. The method is described in detail for an object with a triangular symmetry, and the feasibility of the method is confirmed by numerical experiments. The design of numerical software for this kind of applications is a challenge. It is argued that generic programming is very suitable in this context, mainly because it is type safe and promotes polymorphism capabilities in link time. A generic C++ design of important mathematical abstractions such as groups, vector spaces, and group algebras, is outlined, illustrating the potential provided by generative programming techniques. The integration of explicit support for various data layouts for efficiency tuning purposes is discussed. } }