James T. Smith


C++ Toolkit for Engineers and Scientists

Second edition

Springer, 1999


Click here for the publisher's web page for the book.

This is a revised and updated edition of C++ for Scientists and Engineers, Intertext/McGraw-Hill 1991. The first edition of the current book was published in 1997 by International Thomson Computer Press, which went out of business.  This new edition covers exactly the same material as the 1991 book, but uses templates thoroughly in implementing the new version of the MSP mathematical software toolkit. In addition, exception-handling is implemented for all routines. The book contained a CD-ROM with compiled MSP code and source code for demonstration programs. For the MSP source code ask me to email you the contents of that CD.

QA76.73.C153S654   ISBN 0-387-98797-5

For more information, click on:

Zentralblatt review

Text errata

MSP corrections and updates
Table of contents
C++Toolkit2.jpg (283240 bytes)



Text errata


Page 290, last formula, exponent of  (-1)  should be  k + l  not  k + 1.  (Thanks to David Sklar.)


MSP corrections and updates


For this book, MSP was implemented with Borland C++ Version 5.0.   Since then, I have adapted MSP to the Microsoft Visual C++ Win32 Console Applications environment, porting all MSP features except hardware exception handling.   The adapted source code was included on the MSP source code CD.   For details of the adaptation, click here.

I'll post corrections and further updates here as I discover and implement them.


Table of Contents

For more detail, select a chapter:

1 Introduction 7 Matrix classes
2 Software organization 8 Matrix computations
3 Computing with scalars 9 Iterative solution of systems of equations
4 Solving scalar equations Appendix: Selected source code
5 Vector classes Bibliography
6 Polynomial classes  


1 Introduction

1.1 Who needs this book?

1.2 Working with software tools

1.3 This book's structure

1.4 C, C++, and Borland C++

1.5 This book's MSP software tool kit

1.6 References and further topics


2 Software organization

2.1 Software layers

2.2 C++ minor features

2.3 Overloading

2.4 Abstract data types and classes

2.5 Member and friend functions

2.6 Constructors and destructors

2.7 Derived classes

2.8 Exceptions


3 Computing with scalars

3.1 MSP General module

3.2 Integer arithmetic

3.3 Floating point arithmetic

3.4 Math.H Library functions

3.5 Complex.H Library functions

3.6 Testing Library functions

3.7 Handling Math.H exceptions

3.8 Handling floating point exceptions

3.9 MSP Scalar module

3.10 MSP ElemFunc module


4 Solving scalar equations

4.1 Preliminaries

4.2 Bisection method

4.3 Fixpoint iteration

4.4 Newton-Raphson iteration


5 Vector classes

5.1 Vector module infrastructure

5.2 Vector algebra functions

5.3 Vector module demonstration


6 Polynomial classes

6.1 Polynom module infrastructure

6.2 Polynomial algebra functions

6.3 Polynomial roots


7 Matrix classes

7.1 Matrix module infrastructure

7.2 Matrix algebra functions


8 Matrix computations

8.1 Systems of linear equations

8.2 Gauss elimination

8.3 Determinants

8.4 Gauss elimination software

8.5 General rectangular systems

8.6 Matrix inverses

8.7 Testing with Hilbert matrices

8.8 Eigenvalues


9 Iterative solution of systems of equations

9.1 Fixpoint iteration

9.2 Jacobi and Gauss-Seidel methods for linear systems

9.3 Newton's method for nonlinear systems


Appendix: Selected source code

A.1 Vector and matrix display output functions

A.2 MSP header files

A.3 Example mathematical function with intermediate output

A.4 Accompanying diskette





Back to Publications, James T. Smith home page, Department home page, University home page

15 November 2022