{"id":"https://openalex.org/W2296141549","doi":"https://doi.org/10.1145/2837614.2837654","title":"Printing floating-point numbers: a faster, always correct method","display_name":"Printing floating-point numbers: a faster, always correct method","publication_year":2016,"publication_date":"2016-01-07","ids":{"openalex":"https://openalex.org/W2296141549","doi":"https://doi.org/10.1145/2837614.2837654","mag":"2296141549"},"language":"en","primary_location":{"id":"doi:10.1145/2837614.2837654","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2837614.2837654","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5048163776","display_name":"Marc Andrysco","orcid":null},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California, San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Marc Andrysco","raw_affiliation_strings":["University of California at San Diego, USA"],"affiliations":[{"raw_affiliation_string":"University of California at San Diego, USA","institution_ids":["https://openalex.org/I36258959"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5002412544","display_name":"Ranjit Jhala","orcid":"https://orcid.org/0000-0002-1802-9421"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California, San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ranjit Jhala","raw_affiliation_strings":["University of California at San Diego, USA"],"affiliations":[{"raw_affiliation_string":"University of California at San Diego, USA","institution_ids":["https://openalex.org/I36258959"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5043665959","display_name":"Sorin Lerner","orcid":"https://orcid.org/0000-0003-3957-0628"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California, San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Sorin Lerner","raw_affiliation_strings":["University of California at San Diego, USA"],"affiliations":[{"raw_affiliation_string":"University of California at San Diego, USA","institution_ids":["https://openalex.org/I36258959"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5048163776"],"corresponding_institution_ids":["https://openalex.org/I36258959"],"apc_list":null,"apc_paid":null,"fwci":1.7424,"has_fulltext":false,"cited_by_count":12,"citation_normalized_percentile":{"value":0.85383431,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"555","last_page":"567"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11697","display_name":"Numerical Methods and Algorithms","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T11697","display_name":"Numerical Methods and Algorithms","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9789000153541565,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11034","display_name":"Digital Filter Design and Implementation","score":0.9717000126838684,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/floating-point","display_name":"Floating point","score":0.7361922860145569},{"id":"https://openalex.org/keywords/decimal","display_name":"Decimal","score":0.6677687168121338},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6664990782737732},{"id":"https://openalex.org/keywords/completeness","display_name":"Completeness (order theory)","score":0.6635265350341797},{"id":"https://openalex.org/keywords/point","display_name":"Point (geometry)","score":0.5417824387550354},{"id":"https://openalex.org/keywords/integer","display_name":"Integer (computer science)","score":0.5358990430831909},{"id":"https://openalex.org/keywords/binary-number","display_name":"Binary number","score":0.5108961462974548},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.49637681245803833},{"id":"https://openalex.org/keywords/arithmetic","display_name":"Arithmetic","score":0.4889642000198364},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.43107470870018005},{"id":"https://openalex.org/keywords/double-precision-floating-point-format","display_name":"Double-precision floating-point format","score":0.4132840633392334},{"id":"https://openalex.org/keywords/arbitrary-precision-arithmetic","display_name":"Arbitrary-precision arithmetic","score":0.4123441278934479},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.24175554513931274},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.20274347066879272}],"concepts":[{"id":"https://openalex.org/C84211073","wikidata":"https://www.wikidata.org/wiki/Q117879","display_name":"Floating point","level":2,"score":0.7361922860145569},{"id":"https://openalex.org/C65045869","wikidata":"https://www.wikidata.org/wiki/Q81365","display_name":"Decimal","level":2,"score":0.6677687168121338},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6664990782737732},{"id":"https://openalex.org/C17231256","wikidata":"https://www.wikidata.org/wiki/Q5156540","display_name":"Completeness (order theory)","level":2,"score":0.6635265350341797},{"id":"https://openalex.org/C28719098","wikidata":"https://www.wikidata.org/wiki/Q44946","display_name":"Point (geometry)","level":2,"score":0.5417824387550354},{"id":"https://openalex.org/C97137487","wikidata":"https://www.wikidata.org/wiki/Q729138","display_name":"Integer (computer science)","level":2,"score":0.5358990430831909},{"id":"https://openalex.org/C48372109","wikidata":"https://www.wikidata.org/wiki/Q3913","display_name":"Binary number","level":2,"score":0.5108961462974548},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.49637681245803833},{"id":"https://openalex.org/C94375191","wikidata":"https://www.wikidata.org/wiki/Q11205","display_name":"Arithmetic","level":1,"score":0.4889642000198364},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.43107470870018005},{"id":"https://openalex.org/C35912277","wikidata":"https://www.wikidata.org/wiki/Q1243369","display_name":"Double-precision floating-point format","level":3,"score":0.4132840633392334},{"id":"https://openalex.org/C83581934","wikidata":"https://www.wikidata.org/wiki/Q527381","display_name":"Arbitrary-precision arithmetic","level":2,"score":0.4123441278934479},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.24175554513931274},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.20274347066879272},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","level":1,"score":0.0},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2837614.2837654","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2837614.2837654","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":15,"referenced_works":["https://openalex.org/W32018260","https://openalex.org/W1500512458","https://openalex.org/W1970992413","https://openalex.org/W1981663184","https://openalex.org/W1986624837","https://openalex.org/W1992823221","https://openalex.org/W2010815523","https://openalex.org/W2012407419","https://openalex.org/W2019912131","https://openalex.org/W2079398856","https://openalex.org/W2104380208","https://openalex.org/W2119352997","https://openalex.org/W2169004268","https://openalex.org/W2752908210","https://openalex.org/W4243124072"],"related_works":["https://openalex.org/W2116803521","https://openalex.org/W2773283032","https://openalex.org/W3150959508","https://openalex.org/W1571090276","https://openalex.org/W2930605373","https://openalex.org/W2012407419","https://openalex.org/W3150370983","https://openalex.org/W2185760795","https://openalex.org/W2239119680","https://openalex.org/W3215589575"],"abstract_inverted_index":{"Floating-point":[0],"numbers":[1],"are":[2],"an":[3],"essential":[4],"part":[5],"of":[6,21,114],"modern":[7],"software,":[8],"recently":[9],"gaining":[10],"particular":[11],"prominence":[12],"on":[13,71],"the":[14,17,90,93,142],"web":[15],"as":[16],"exclusive":[18],"numeric":[19],"format":[20],"Javascript.":[22],"To":[23],"use":[24],"floating-point":[25],"numbers,":[26],"we":[27],"require":[28],"a":[29,85,120],"way":[30],"to":[31,84,101,127],"convert":[32],"binary":[33],"machine":[34],"representations":[35],"into":[36],"human":[37],"readable":[38],"decimal":[39],"outputs.":[40],"Existing":[41],"conversion":[42],"algorithms":[43],"make":[44],"trade-offs":[45],"between":[46],"completeness":[47,63],"and":[48,56,58,68,130,145],"performance.":[49],"The":[50],"classic":[51],"Dragon4":[52],"algorithm":[53,96,123],"by":[54,75,97,104],"Steele":[55],"White":[57],"its":[59],"later":[60],"refinements":[61],"achieve":[62],"---":[64,74],"i.e.":[65],"produce":[66,128],"correct":[67,129],"optimal":[69,131],"outputs":[70],"all":[72,115,134],"inputs":[73,135],"using":[76,105],"arbitrary":[77],"precision":[78],"integer":[79,107],"(bignum)":[80],"arithmetic":[81,108],"which":[82],"leads":[83],"high":[86],"performance":[87,103],"cost.":[88],"On":[89],"other":[91],"hand,":[92],"recent":[94],"Grisu3":[95,144],"Loitsch":[98],"shows":[99],"how":[100],"recover":[102],"native":[106],"but":[109],"sacrifices":[110],"optimality":[111],"for":[112,133],"0.5%":[113],"inputs.":[116],"We":[117],"present":[118],"Errol,":[119],"new":[121],"complete":[122,150],"that":[124],"is":[125],"guaranteed":[126],"results":[132],"while":[136],"simultaneously":[137],"being":[138],"2x":[139],"faster":[140,147],"than":[141,148],"incomplete":[143],"4x":[146],"previous":[149],"methods.":[151]},"counts_by_year":[{"year":2022,"cited_by_count":6},{"year":2021,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":4}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
