C++ and Object-oriented Numeric Computing for Scientists and Engineers Review
This book intends to be an easy, concise, but rather complete introduction to the ISO/ANSI C++ language, with applications to object oriented numeric computation for students and professionals in science and engineering. It introduces concepts, techniques, and standard libraries of C++ in a manner that is easy to understand using examples such as vectors, matrices, complex numbers, and integrals, which are familiar and useful to a typical student or professonal in science and engineering.
Besides introducing basic and advanced features of C++, the book contains an introduction and C++ programs for many numeric methods such as polynomial interpolation, numerical integration, direct and iterative algorithms for solving systems of linear equations in real and complex domains, methods for solving nonlinear equations, ordinary and partial differential equations with real and complex coefficients. These methods are fundamental in scientific and engineering computing.
This book gives numerous examples and techniques on how to reduce (C and Fortran style) run-time overhead and improve program efficiency and elegancy. Such techniques include function objects, deferred evaluation for operator overloading, expression templates, template metaprograms, and replacing certain virtual functions by templates. It also introduces tools on how to manage source files, create libraries, and debug and profile programs.
The book can be used as a textbook for students in science and engineering and a reference book for experienced scientific C++ programmers.
--------------------------------------------------------------------------------
C++, What a Programming Language Should Be!
C++'s object oriented and general programming features enable the programmer to write few codes and support an evolving process of code development. For example, One version of C++ program of preconditioned conjugate gradient and GMRES methods can be used for full (storing every entry of a matrix), banded (zero entries outside of a band along the main diagonal are not stored to save memory), and sparse (only non-zero entries of a matrix are stroed to save memory) matrices, and for real and complex single, double, long double precisions. It would require 18 versions in Fortran 77 or Fortan 90. Six versions of C code may do it, but will be much less efficient. If one later decides to add a symmetric (only store lower triangular part of a matrix to save memory) matrix storage format, then 6 more versions of Fortan code (for real, complex, and single, double, long double precisions) need be added. The same C++ program for conjugat gradient and GMRES methods still can handle this situation without any change. C++ code of preconditioned conjugat gradient and GMRES methods are given in Chapter 11 (last chapter) of the book, which work for full, banded, sparse, and other matrices in real and complex domains.
C++ has features (compound assignment operators, templates, function objects, high performance computing library such as valarray) that can be faster than Fortran 77 and C. For example, passing a pointer to a function as an argument to another function can be avoided in many C++ programs by using templates, which can improve the speed of execution by a factor of 2 on many compilers and machines. Running time comparisons with C and Fortran style function passing are done in various places of the book.
C++ provides standard libraries on data structures such as vector, set, list, map, stack, queue, valarray, and on algorithms such as sort() and find(). They come with any standard C++ compiler and can be much more efficient, convenient, and portable than codes written a typical or expert programmer. For example, using these libraries, it is much easier to write finite element programs on unstructured grids and grid generation programs in C++ than in Fortran and C. A disussion of these standard libraries and algorithms are given in various chapters of the book.
C++ programs resemble numerical algorithms more than in Fortran or C. For exmaple, we can write v = v1 + v2 for vector addition and v1 = m*v2 for (sparse, banded, or full) matrix-vector multiplication. The C++ code for the conjugate gradient method (for solving linear systems of algebraic equations) looks very much like the algorithm, which enhances readibility and maintainability. Besides, such operator overloading from built-in types to user-defined types can be done without sacrifice of run-time speed (see Chapter 6 of the book).
Rating :
Price : $109.00
Offer Price : $59.97
Overviews
This new text/reference presents an accessible, concise, but rather complete, introduction to the C++ programming language with special emphasis on object-oriented numeric computation for scientific and engineering program development. The description of the language is in compliance with ISO/ANSI standards and is platform independent for maximum versatility. Requiring only basic calculus and linear algebra as prerequisites, the book introduces concepts, techniques, and standard libraries of C++ in a manner that is easy to understand and uses such familiar examples as vectors, matrices, integrals, and complex numbers. It also contains an introduction to C++ programs for applications with many numberic methods that are fundamental to science and engineering computing: polynomial evaluation and interpolation; numeric integration; methods for solving nonlinear equations; systems of linear equations in full, band, and sparse matrix storage formats; and ordinary and partial differential equations. Numerous techniques and examples are provided on how to reduce (C and Fortran) run-time overhead and improve program efficiency. Topics and features: *concise coverage of C++ programming concepts with object-oriented emphasis*numerous examples, coding tools, sample programs and exercises for reinforcement and self-study purposes*develops and uses basic and advanced features, as well as standard libraries of C++*covers many fundamental numeric methods for scientific and engineering computing applications*downloadable user-defined numeric linear algebra library available from author web site With an accessible style, intuitive topic development, and numerous examples, the book is an excellent resource and guide to the power, versatility and efficiency of C++ programming for numeric computing applications. Advanced students, practitioners and professionals in computer science, engineering and scientific computing in general will find the book a practical guide and resource for their work and applications program development.
Affordable Price at Store Check Price Now!
Customer Review
Recommended, but know what you get - Giuseppe A. Paleologo - Riverdale, NY United States
There is widespread agreement that Kernighan & Richie's introduction to C is one of the best books on any programming language ever written. Sadly, no book on C++ has achieved this distinction. The complexity of the language is mostly to blame. Personally, I am averse to any 1000-page "primer" that aims to explain C++ from scratch up to intermediate level, with plenty of diversions, illustrations of secondary language features and a menagerie of typographic symbols, all the same getting to discuss classes at page 500. Those are better thought of as bloated references. Instead, C++ a third language, and C a second if only because a) C is not for absolute beginners and b) C programming style is often found in C++ legacy code. But if this is the case, the reader can read and understand succinct explanations of the new features of C++, and be quickly reminded of its similarities with C, or warned of the differences.
If you agree with my own preferences, this book is for you. It goes to the point and follows a linear, focused thread. Knowledge of C is not strictly required, but I can't see how can you accept double pointers as your personal saviours if you haven't seen them before. It's rather complete, but not all-encompassing. Topics are discussed clearly and the organizing principles are emphasized first, with the inevitable exceptions coming later. Examples are many. They are sometime thought in C but written in C++, which is no mortal sin. Because of the plain, assured style, and the approach to its subjects, the book reminds me of K&R. Not a small compliment to pay.
The book also offers advice on programming style, mostly with an eye on numerical computing. It can be used a very high-level reference, to be complemented by a comprehensive one (my favorite is C++ in a nutshell). And each advanced subject of C++ deserves its own book, especially templates and metaprogramming. Avoid the "primers".
Summing up, this is not a book for complete beginners, but more a textbook for a course or self-instruction. It's by no means a first and last book on C++. Such book has not been written yet. Know your needs and what you get.
Great book for Scientists and Engineers - G. L. Sinsley - State College, PA United States
I was required to read this book for a class, and am quite glad I did read it. It proviedes a very good introduction to C++ for those who aren't familiar with it. Even more importantly, however, are the great examples of how to use C++ for Numerical Methods, which makes it a good book for more experienced programmers as well.
*** Product Information and Prices Stored: Apr 24, 2010 11:09:11
Visit : Best Objective-C Programming Textbooks Best Objective-C Textbooks Best Cocoa Programming Textbooks Best Deals & Reviews On Sagaform Picnic Backpack Cheap Price & Reviews On Stewart Calculus Early Vectors Best Deals And Reviews On Best Objective-C Book
0 comments:
Post a Comment