[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-seo-326761-105":3,"detail-sidebar-cat-0-en-105":81,"doc-detail-326761-en":131},{"code":4,"msg":5,"data":6},0,"ok",{"site_id":7,"language":8,"slug":9,"title":10,"keywords":11,"description":12,"schema_data":13,"social_meta":74,"head_meta":76,"extra_data":78,"updated_unix":80},105,"en","writing-scientific-software-a-guide-to-good-style","WRITING SCIENTIFIC SOFTWARE - A GUIDE TO GOOD STYLE","","WRITING SCIENTIFIC SOFTWARE provides practical guidance for designing, writing, testing, debugging, and maintaining numerical software used across graphics, weather forecasting, chemistry, engineering, biology, and finance. It explains good practices and common pitfalls, emphasizing clear, reusable code with attention to speed, clarity, flexibility, and interface design. The book covers testing for bugs, accuracy, and performance, discusses allocation and parameter-passing strategies, and extends into advanced efficiency topics like memory hierarchies, loop optimizations, and data structure design.",{"@graph":14,"@context":73},[15,34,56],{"@type":16,"itemListElement":17},"BreadcrumbList",[18,23,27,31],{"item":19,"name":20,"@type":21,"position":22},"https://docshare.wps.com","Home","ListItem",1,{"item":24,"name":25,"@type":21,"position":26},"https://docshare.wps.com/document/","Document",2,{"item":28,"name":29,"@type":21,"position":30},"https://docshare.wps.com/document/research-report/","Research & Report",3,{"item":32,"name":10,"@type":21,"position":33},"https://docshare.wps.com/document/writing-scientific-software-a-guide-to-good-style/326761/",4,{"url":32,"name":10,"@type":35,"image":36,"author":41,"headline":10,"publisher":44,"fileFormat":47,"inLanguage":8,"description":12,"dateModified":48,"datePublished":49,"encodingFormat":47,"isAccessibleForFree":50,"interactionStatistic":51},"DigitalDocument",{"url":37,"@type":38,"width":39,"height":40},"https://docshare.wps.com/thumbnails/writing-scientific-software-a-guide-to-good-style/326761.png","ImageObject",300,407,{"name":42,"@type":43},"Levi","Person",{"url":19,"name":45,"@type":46},"DocShare","Organization","application/pdf","2026-11-14","2026-09-21",true,{"@type":52,"interactionType":53,"userInteractionCount":55},"InteractionCounter",{"@type":54},"ViewAction",15,{"@type":57,"mainEntity":58},"FAQPage",[59,65,69],{"name":60,"@type":61,"acceptedAnswer":62},"What core skills does the book emphasize for scientific programming?","Question",{"text":63,"@type":64},"It focuses on designing, writing, testing, debugging, and modifying numerical software, with an emphasis on producing good, clear code for speed, clarity, flexibility, and reusability.","Answer",{"name":66,"@type":61,"acceptedAnswer":67},"How does the book help readers improve correctness and reliability?",{"text":68,"@type":64},"It covers testing strategies to find bugs and validate numerical accuracy and performance, along with guidance on algorithm stability versus problem stability and accurate discretization.",{"name":70,"@type":61,"acceptedAnswer":71},"What efficiency and memory topics are included?",{"text":72,"@type":64},"It addresses efficiency in time and memory, including cache and memory hierarchies, loop blocking and unrolling, dynamic memory allocation, pipelining, and techniques for optimizing deep memory hierarchies.","https://schema.org",{"og:url":32,"og:type":75,"og:title":10,"og:site_name":45,"og:description":12},"article",{"robots":77,"canonical":32},"index,follow",{"doc_id":79,"site_id":7},326761,1790644893,{"code":4,"msg":82,"data":83},"success",[84,88,92,96,101,106,111,115,120,123,127],{"id":22,"doc_module":4,"doc_module_name":25,"category_name":85,"show_sort_weight":86,"slug":87},"Story & Novel",90,"story-novel",{"id":26,"doc_module":4,"doc_module_name":25,"category_name":89,"show_sort_weight":90,"slug":91},"Literature",80,"literature",{"id":33,"doc_module":4,"doc_module_name":25,"category_name":93,"show_sort_weight":94,"slug":95},"Exam",70,"exam",{"id":97,"doc_module":4,"doc_module_name":25,"category_name":98,"show_sort_weight":99,"slug":100},5,"Comic",60,"comic",{"id":102,"doc_module":4,"doc_module_name":25,"category_name":103,"show_sort_weight":104,"slug":105},6,"Technology",50,"technology",{"id":107,"doc_module":4,"doc_module_name":25,"category_name":108,"show_sort_weight":109,"slug":110},7,"Healthcare",40,"healthcare",{"id":112,"doc_module":4,"doc_module_name":25,"category_name":29,"show_sort_weight":113,"slug":114},8,30,"research-report",{"id":116,"doc_module":4,"doc_module_name":25,"category_name":117,"show_sort_weight":118,"slug":119},9,"Religion & Spirituality",20,"religion-spirituality",{"id":118,"doc_module":4,"doc_module_name":25,"category_name":121,"show_sort_weight":118,"slug":122},"World Cup","world-cup",{"id":124,"doc_module":4,"doc_module_name":25,"category_name":125,"show_sort_weight":124,"slug":126},10,"Lifestyle","lifestyle",{"id":128,"doc_module":4,"doc_module_name":25,"category_name":129,"show_sort_weight":97,"slug":130},19,"General","general",{"code":4,"msg":82,"data":132},{"doc_id":79,"user_id":133,"nickname":42,"user_avatar":134,"doc_module":4,"category_id":112,"category_name":29,"doc_title":10,"doc_description":12,"doc_content":135,"file_id":136,"file_url":137,"file_type":138,"file_size":139,"view_count":55,"is_deleted":4,"is_public":22,"is_downloadable":22,"audit_status":22,"page_count":140,"language":141,"language_code":8,"site_id":7,"html_lang":8,"table_of_contents":142,"faqs":143,"seo_title":144,"seo_description":12,"update_tm":145,"read_time":146,"preview_page_count":4},7971461740909,"https://ap-avatar.wpscdn.com/davatar_155a257f0dc6eb9ab79c44ca47cae57d","WRITING SCIENTIFIC SOFTWARE: A GUIDE TO GOOD STYLE  \nThe core ofscientiﬁc computing is designing, writing, testing, debugging and modifying numerical software for application to a vast range of areas: from graphics, weather forecasting, and chemistry to engineering, biology, and ﬁnance. Scientists, engineers, and computer scientists need to write good, clear code, for speed, clarity,ﬂexibility, and ease of re-use.  \nOliveira and Stewart provide here a guide to writing numerical software, pointing out good practices to follow, and pitfalls to avoid. By following their advice, the reader will learn how to write efﬁcient 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++, along with other examples in C, C++, Fortran 90 and Java scattered throughout the book.  \nCommon issues in numerical computing are dealt with: for example, whether to allocate or pass “scratch” memory for temporary use, how to pass parameters to a function that is itself passed to a routine, how to allocate multidimensional arraysin C/C++/Java, and how to create suitable interfaces for routines and libraries. Advanced topics, such as recursive data structures, template programming and type binders for numerical computing, blocking and unrolling loops for efﬁciency, how to design software for deep memory hierarchies, and amortized doubling for efﬁcient memory use, are also included.  \nThis manual of scientiﬁc computing style will prove to be an essential addition to the bookshelf and lab of everyone who writes numerical software.  \nWRITING SCIENTIFIC SOFTWARE: A GUIDE FOR GOOD STYLE  \nSUELY OLIVEIRA AND DAVID E . STEWART  \nUniversity of Iowa  \ncambridge university press  \nCambridge, New York, Melbourne, Madrid, Cape Town, Singapore, São Paulo  \nCambridge University Press  \nThe Edinburgh Building, Cambridge cb2 2ru, UK  \nPublished in the United States of America by Cambridge University Press, New York [www.cambridge.org](www.cambridge.org)  \nInformation on this [title: www.cambridge.org/9780521858960](title: www.cambridge.org/9780521858960)  \nThis publication is in copyright. Subject to statutory exception and to the provision of relevant collective licensing agreements, no reproduction of any part may take place without the written permission of Cambridge University Press.  \nFirst published in print format 2006  \nisbn-13 978-0-521-85896-0hardback isbn-10 0-521-85896-8 hardback  \nisbn-13 978-0-521-67595-6 paperback isbn-10 0-521-67595-2 paperback  \nCambridge University Press has no responsibility for the persistence or accuracy of urls for external or third-party internet websites referred to in this publication, and does not guarantee that any content on such websites is, or will remain, accurate or appropriate.  \nContents  \nPreface page ix  \nPart I Numerical Software 1  \n1 Why numerical software? 3  \n1.1 Efﬁcient kernels 4  \n1.2 Rapid change 5  \n1.3 Large-scale problems 6  \n2 Scientiﬁc computation and numerical analysis 8  \n2.1 The trouble with real numbers 8  \n2.2 Fixed-point arithmetic 18  \n2.3 Algorithm stability vs. problem stability 19  \n2.4 Numerical accuracy and reliability 23  \n3 Priorities 30  \n3.1 Correctness 30  \n3.2 Numerical stability 32  \n3.3 Accurate discretization 32  \n3.4 Flexibility 33  \n3.5 Efﬁciency: time and memory 35  \n4 Famous disasters 36  \n4.1 Patriot missiles 36  \n4.2 Ariane 5 37  \n4.3 Sleipner A oil rig collapse 38  \n5 Exercises 39  \nPart II Developing Software 43  \n6 Basics of computer organization 45  \n6.1 Under the hood: what a CPU does 45  \n6.2 Calling routines: stacks and registers 47  \n6.3 Allocating variables 51  \n6.4 Compilers, linkers, and loaders 53  \nvi Contents  \n7 Software design 57  \n7.1 Software engineering 57  \n7.2 Software life-cycle 57  \n7.3 Programming in the large 59  \n7.4 Programming in the small 61  \n7.5 Programming in the middle 67  \n7.6 Interface de","cbCaijWNXCDz4N1S","https://ap.wps.com/l/cbCaijWNXCDz4N1S","pdf",916426,316,"English","# Preface\n# Part I Numerical Software\n## Why numerical software?\n## Scientific computation and numerical analysis\n## Priorities\n## Famous disasters\n## Exercises\n# Part II Developing Software\n## Basics of computer organization\n## Software design\n## Data structures\n## Design for testing and debugging\n## Exercises\n# Part III Efficiency in Time, Efficiency in Memory\n## Be algorithm aware\n## Computer architecture and efficiency\n## Global vs. local optimization\n## Grabbing memory when you need it","[{\"question\":\"What core skills does the book emphasize for scientific programming?\",\"answer\":\"It focuses on designing, writing, testing, debugging, and modifying numerical software, with an emphasis on producing good, clear code for speed, clarity, flexibility, and reusability.\"},{\"question\":\"How does the book help readers improve correctness and reliability?\",\"answer\":\"It covers testing strategies to find bugs and validate numerical accuracy and performance, along with guidance on algorithm stability versus problem stability and accurate discretization.\"},{\"question\":\"What efficiency and memory topics are included?\",\"answer\":\"It addresses efficiency in time and memory, including cache and memory hierarchies, loop blocking and unrolling, dynamic memory allocation, pipelining, and techniques for optimizing deep memory hierarchies.\"}]","WRITING SCIENTIFIC SOFTWARE - A GUIDE TO GOOD STYLE | PDF",1789975267,796]