Extending reliability (Extended Abstract>: Transformational tailoring of abstract mathematical software
Over the past decade, mathematical software libraries have matured from small, usually locally-assembled, collections of subroutines to large, commercially-provided libraries which are approaching the status of standards [Aird; Du Croz; Fox]**. Despite the high quality of such libraries and the obvious economic advantages of using routines whose development cost has been shared with many other users, applications programmers, when asked: “Why don't you use routine XYZ from IMSL, or from NAC, or from PORT?” frequently reply that library routines are too general, that they need a routine which takes advantage of special features of their problem, and that since they could not use a library routine without modifying it, they might as well write their own routine from scratch.
 In many, if not most, instances, the latter assertion could be easily refuted by a simple competition on selected test problems. However, the need for a routine adapted, or tailored, to a particular problem is more difficult to dismiss. It usually arises from considerations of efficiency, which may range from the perceived inefficiency of the presence of unused options in a routine to the practical impossibility of using a routine whose data representation is utterly incompatible with that needed in the rest of the applications program.