REVIEW - C++ and Object-Oriented Numeric Computing for Scientists and Engineers


C++ and Object-Oriented Numeric Computing for Scientists and Engineers


Daoqi Yang


Springer Science & Business Media (2001)




Francis Glassborow


August 2006



I have to be honest and tell you that I get irritated by this kind of book. The title starts the problem for me. You would expect (or at least I would) a book that starts with the assumption that the reader is familiar with programming and C++ in particular. You would be mistaken.

This is an introductory text on C++ aimed at scientists and engineers. That would be OK if the book tackled programming in C++ in a way that is appropriate to what I call the incidental programmer - someone who needs to program as part of their work or profession but who is a professional in some other discipline. Such people need a good clear introduction on how to express the problems of their discipline in C++. They need the full power of the high-level abstractions provided by the Standard Library (and should be told about both Boost and other specialist quality libraries).

What these people do not need is a tedious introduction to low level C++ with a lot of emphasis on its C ancestry.

Let me give you an example of what sticks in my gullet. The author wants to spend some time on operator overloading so he writes a chapter on implementing classes for complex numbers, vectors (mathematical ones) and matrices. The first of these is already fully designed and implemented in the Standard Library complete with specialisations for all the floating point types and facilities for mixing the different specialisations. What we find in the book is a partial implementation of a complex number type with doubles used for the real and imaginary parts. There is no discussion of the reasons for the design. For example, the author correctly implements

in terms of
but give no explanation.

Later, in chapter 7 (on templates), he gives the briefest of introductions to the Standard


Perhaps I should not go on, because I clearly have no sympathy for the author's approach. From my perspective the material is too low level, too skimpy, lacks explanation of either how the implementation works or how the reader might use C++ in his/her discipline. This book is clearly ill-suited to the ordinary novice and, in my opinion, does not tackle the use of C++ by mathematicians, scientists or engineers. There is a place for a good clear introduction to numerical programming using C++ but this book is not it.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept All Cookies" you agree ACCU can store cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

By clicking "Share IP Address" you agree ACCU can forward your IP address to third-party sites to enhance the information presented on the site, and that these sites may store cookies on your device.