We review 3 different applications of the same development methodology.
We

begin by using a very expressive, appropriate Domain Specific Language
(in

this case mathematics as embodied in a Computer Algebra System), to
write

down very precise problem definitions, using their most natural
formulation.

Once these problems are defined, this forms an implicit definition of a
unique

solution. From the problem statement, our model, we use mathematical

transformations to make the problem simpler to solve computationally. We

call this crucial step Òmodel manipulation.Ó With the model rephrased in

more computational terms, we can also derive various quantities directly

from this model, which greatly simplify traditional numeric solutions,
our

eventual goal. From all this data, we then use standard code generation

and code transformation techniques to generate lower-level code to
perform

the final numerical steps. This methodology is very flexible, generates
faster

code, and generates code which would have been all but impossible for a

human programmer to get correct.