Freshly Printed - allow 8 days lead
Writing Scientific Software
A Guide to Good Style
A manual and guide to good scientific computing style, explaining how to write good software and how to test it for bugs, accuracy and performance.
Suely Oliveira (Author), David E. Stewart (Author)
9780521675956, Cambridge University Press
Paperback, published 7 September 2006
316 pages
17.4 x 24.6 x 1.6 cm, 0.549 kg
'The book is a useful tool working in the filed of scientific computations…' Zentralblatt MATH
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.
Part I. Numerical Software: 1. Why numerical software?
2. Scientific computation and numerical analysis
3. Priorities
4. Famous disasters
5. Exercises
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
11. Exercises
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
Bibliography
Index.
Subject Areas: Computer programming / software development [UM], Numerical analysis [PBKS]