Object Oriented Numerics
OON = OOP for Numerics
ObjectOriented Programming (OOP) paradigms give you access to welldefined mechanisms for modular design, reuse of code, code extensions and code specialization.
OOP supports the way you think and encourages computer implementation of your abstractions.
It prepares the ground for safer codes, shorter development cycles and reduced man costs  it provides more power and elegance, and more fun!
So what about ObjectOriented Numerics (OON)?
We consider OON to be the art of adapting the paradigms of OOP to numerical applications.
The real challenge of OON is to offer the full flexibility of OOP in a way that gives as efficient computations as you are used to, e.g. from tailored FORTRAN programs.
Human and Computational Efficiency
Some people say that this is not possible  you can't get the flexibility of objectoriented software and have computationally efficient codes at the same time.
We say: Yes, you can!
The quest for efficiency can be met by compromising some of the design issues advocated by the OO purists.
These compromises are driven by a single and sacred design goal: The CPUintensive numerics at low level computations must be implemented with a highly tuned FORTRAN or Clike style.
This approach will pervade the total design. However, the top level interfaces of the code can still be constructed to provide the typical flexibility of OOP.
For us, this is the core of OON and underpins all our development.
OON References
Read more about OON! The following books and papers gives you more information about OON and related issues:

Computational Partial Differential Equations  Numerical Methods and Diffpack Programming

H. P. Langtangen,
Lecture Notes in Computational Science and Engineering,
SpringerVerlag, 1999

Numerical Methods and Software Tools in Industrial Mathematics

M. Dæhlen and A. Tveito (eds.).
Birkhäuser, 1997 (ISBN 081763973X).
In particular:
 "ObjectOriented Numerics", pp. 726.
 "Basic Tools for Linear Algebra", pp. 2744.
 "Software Tools for Modelling Scattered Data", pp. 4560.
 "A Comprehensive Set of Tools for Solving Partial Differential Equations", pp. 6190.
 "On the Numerical Study of C++ in Scientific Computing", pp. 91118.

Modern Software Tools for Scientific Computing

E. Arge, A. M. Bruaset and H. P. Langtangen (eds.).
Birkhäuser, 1997 (ISBN 0817639748).
In particular:
 "The SCIRun Computational Steering System", pp. 344.
 "ObjectOriented Solvers for Initial Value Problems", pp. 4562.
 "On the Efficient Implementation of Multilevel Adaptive Methods", pp. 125142.
 "Efficient Management of Parallelism in ObjectOriented Numerical Software Libraries", pp. 163202.
 "Increasing the Efficiency and Reliability of Software Development for Systems of PDEs", pp. 247268.
 "Object Oriented Surface Design", pp. 271288.
 "ObjectOriented Scattered Data Modelling with Siscat", pp. 289308.

Scientific and Engineering C++

J. J. Barton and L. R. Nackman.
Addison Wesley, 1994 (ISBN 0201533936).
For further resources on OON and advanced C++ programming,
check out our
documentation.