Cambridge Catalogue  
  • Help
Home > Catalogue > Writing Scientific Software
Writing Scientific Software


  • Page extent: 316 pages
  • Size: 247 x 174 mm
  • Weight: 0.549 kg


 (ISBN-13: 9780521675956 | ISBN-10: 0521675952)

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.

• 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


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.


'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 Recipes

'The book is a useful tool working in the filed of scientific computations…' Zentralblatt MATH

printer iconPrinter friendly version AddThis