245x Filetype PDF File size 0.07 MB Source: www.aere.iastate.edu
Book Review: C++ and Object
Oriented Numeric Computing for
Scientists and Engineers
Anupam Sharma ∗
Fluid Mechanics Laboratory,
General Electric Global Research Center,
One Research Circle, ES-500,
Niskayuna, NY-12309, USA.
C++ and Object-Oriented Numeric is a good book for readers who have working
Computing for Scientists and Engineers knowledge of C++ and would like to learn to
Book Author: Daoqi Yang use it for scientific computing.
Publisher: Springer-Verlag New York Unlike other programming books, this book
Pub. Date: July 2000 does not commence with a “hello world” pro-
ISBN: 0-387-98990-0 gram, but introduces another, somewhat in-
Other details: Hardcover, 464 pp. $47.75 volved sample program to explain basic in-
put/output (I/O), variable types, iterators,
and basic C++ program structure. The first
“C++ and Object-Oriented Numeric Com- chapter provides a very useful, and often dis-
puting for Scientists and Engineers” is one of regarded, discussion on numerical limits of the
the few C++ books targeted toward the sci- basic numeric data types (int, float, etc.) pro-
entific community that uses numeric comput- vided by C++. The importance of recognizing
ing as the primary research tool. The book the “finiteness” of the accuracy of computer-
is divided into three parts: the first part in- generated data cannot be emphasized enough.
troduces the reader to general programming Throughout the book the author presents
concepts, the second part focuses on the unique several programming tips for numeric comput-
aspects of C++ as an object oriented program- ing such as offsetting pointers to easily access
ming language, and the third part concludes band matrices. Section four of chapter Four
the book with a description of the C++ stan- deserves a special mention as it briefly intro-
dard libraries on containers and algorithms. duces some essential tools such as Makefile,
The book consists of eleven chapters written timing programs, and linking C/C++ pro-
in 440 pages, and the readers can download grams with Fortran codes. The description is
sample programs used in the text from a dedi- very concise but is enough to allow the reader
cated web-page. The book provides a concise, to start using these features with his codes.
and at some places succinct, description of the The second part of the book begins with a
ISO/ANSI C++ programming language. This succinct description of classes. The descrip-
tion is too brief for a beginner to absorb all the
∗Aerospace Engineer, AIAA Student Member, material in one reading. Perhaps all the impor-
sharma@research.ge.com tant things are covered in this chapter (Chap-
ter Five), but they are not repeated or visu-
1 of 2
ally emphasized to make a lasting impression It does not provide examples of scientific us-
on the reader new to the concept of classes. age for features such as linked lists, sets, etc.
The three essential features of object oriented Examples such as Huffman coding or binary
programming (OOP): data encapsulation, in- search trees could greatly add to the content.
heritance, and polymorphism are only briefly Interested readers should consider Stroustrup1
mentioned in this chapter, but described more for in-depth understanding of these features of
fully in later chapters. C++. In the final chapter, the different ideas
Theauthorhastriedtoconcludeeverychap- presented throughout the book are combined
ter with a section on practical numeric com- and C++codesfor many linear system solvers
puting examples such as interpolation, root are provided.
finding methods etc., which I found to be most Overall, the book is very informative and
appealing. It is often not the concepts of useful to people interested in using OOP for
OOP that users find difficult to comprehend scientific computing. It does little to motivate
but the implementation of OOP style for com- a sequential programmer to choose an OOP
puting problems. The examples and exercises style instead. It could be made more moti-
in this book are very helpful in this regard. vating by adding a chapter or a section listing
The exercise problems are mostly related to the benefits of using the OOP paradigm (sup-
the application of OOP techniques to numeric ported by languages such as C++) over the se-
computing. They are very “doable” and help quential programming style (Fortran, C, etc.).
in understanding the concepts. The book also Thebookisfairly easy to read and understand
provides helpful hints to relatively difficult ex- provided the reader already has a basic under-
ercise problems. standing of the C++ language. Readers with
Thediscussion on efficient techniques for nu- sequential programming experience may also
merical integration using expression templates find the last two parts of the book somewhat
and template meta-programs in chapter Seven difficult to comprehend because of brevity.
is a very revealing description of how the ad- Readers aiming at learning C++ should
2 3 4
vanced features of OOP can be used with- instead consider Shtern, Schildt or Davis.
out losing the efficiency of a sequential pro- Readers looking for a more introductory C++
gram. The book also mentions a few C++ bookonnumericalanalysis may consider Etter
and Ingber5 or Bronson6 as optional texts.
scientific computing libraries such as PETE
and POOMA, which were being developed References
at Los Alamos National Laboratory at the
1B. Stroustrup, “The C++ Programming Lan-
time of publication of the book. A free ver- guage,” Special Edition, Pearson Education, ISBN:
sion of POOMA, FreePOOMA is hosted at 0201700735, 2000.
http://savannah.nongnu.org. Chapter Eight 2V. Shtern, “Core C++: A Software Engineering
describes the concepts of inheritance and poly- Approach,” Prentice Hall, ISBN: 0130857297, 2000.
morphism, virtual functions, abstract classes, 3H. Schildt, “C++ The Complete Reference,”
and discusses efficiency issues with run-time Third Edition, Osborne/McGraw-Hill, ISBN:
polymorphism and suggest the use of static 0078824761, 1998.
(compile-time) polymorphism for higher effi- 4S. R. Davis, “C++ for Dummies,” Fifth Edition,
ciency. John Wiley & Sons Inc., ISBN: 0764568523, 2004.
5D. Etter and J. Ingber, “Engineering Problem
The third and final part of the book deals Solving with C++,” Prentice Hall, ISBN: 0130912662,
with the standard containers and algorithms 2003.
in the Standard Template Library (STL) of 6G. Bronson, “C++ for Engineers and Scientists,”
C++. The explanation provided here is not SecondEdition, Pws Pub Co, ISBN: 0534950604, 1999.
at par with the quality of the rest of the book.
2 of 2
no reviews yet
Please Login to review.