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


Title:

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

Author:

Daoqi Yang

Publisher:

Springer Science & Business Media (2001)

Pages:

440pp

Reviewer:

Francis Glassborow

Reviewed:

August 2006

Rating:

★★☆☆☆


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

operator+
in terms of
operator+=
but give no explanation.

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

complex<>
types.

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 Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.