The core of scientific computing is designing, writing, testing, debugging and modifying numerical software for application to a vast range of areas: from graphics, meteorology and chemistry to engineering, biology and finance. Scientists, engineers and computer scientists need to write good code, for speed, clarity, flexibility and ease of re-use. Oliveira and Stewart's style guide for numerical software points out good practices to follow, and pitfalls to avoid. By following their advice, readers will learn how to write efficient software, and how to test it for bugs, accuracy and performance. Techniques are explained with a variety of programming languages, and illustrated with two extensive design examples, one in Fortran 90 and one in C++: other examples in C, C++, Fortran 90 and Java are scattered throughout the book. This manual of scientific computing style will be an essential addition to the bookshelf and lab of everyone who writes numerical software.Read more
- Gives tips, hints and guidelines for good style in C, C++, Fortran 90 and Java
- Covers important development tools such as profilers, version control and automated builds
- Describes template programming and techniques for high-performance software
Reviews & endorsements
'Writing Scientific Software bridges the chasm that too often separates numerical analysis from real scientific computing. It is full of tips, tricks, and just plain interesting information. The reader will learn how to write code that takes advantage of many hidden features in modern computer architectures, programming languages, and compilers. This is a book that is full of good sense.' William H. Press, author of Numerical RecipesSee more reviews
'The book is a useful tool working in the filed of scientific computations…' Zentralblatt MATH
Not yet reviewed
Be the first to review
Review was not posted due to profanity×
- Date Published: September 2006
- format: Paperback
- isbn: 9780521675956
- length: 316 pages
- dimensions: 174 x 246 x 16 mm
- weight: 0.549kg
- availability: Available
Table of Contents
Part I. Numerical Software:
1. Why numerical software?
2. Scientific computation and numerical analysis
4. Famous disasters
Part II. Developing Software:
6. Basics of computer organization
7. Software design
8. Modularity and all that
9. Data structures
10. Design for testing and debugging
Part III. Efficiency in Time, Efficiency in Memory:
12. Be algorithm aware
13. Computer architecture and efficiency
14. Global vs. local optimization
15. Grabbing memory when you need it
16. Memory bugs and leaks
Part IV. Tools:
17. Sources of scientific software
18. Unix tools
19. Cubic spline function library
20. Multigrid algorithms
Appendix A: review of vectors and matrices
Appendix B: trademarks
Find resources associated with this titleYour search for '' returned .
Type Name Unlocked * Format Size
This title is supported by one or more locked resources. Access to locked resources is granted exclusively by Cambridge University Press to lecturers whose faculty status has been verified. To gain access to locked resources, lecturers should sign in to or register for a Cambridge user account.
Please use locked resources responsibly and exercise your professional discretion when choosing how you share these materials with your students. Other lecturers may wish to use locked resources for assessment purposes and their usefulness is undermined when the source files (for example, solution manuals or test banks) are shared online or via social networks.
Supplementary resources are subject to copyright. Lecturers are permitted to view, print or download these resources for use in their teaching, but may not change them or use them for commercial gain.
If you are having problems accessing these resources please contact email@example.com.
Sorry, this resource is locked