136x 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.