Integer Division by Constants: Optimal Bounds

The integer division of a numerator n by a divisor d gives a quotient q and a remainder r. Optimizing compilers accelerate software by replacing the division of n by d with the division of c * n (or c * n + c) by m for convenient integers c and m chosen so that they approximate the reciprocal: c/m ~...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:arXiv.org 2021-06
Hauptverfasser: Lemire, Daniel, Bartlett, Colin, Kaser, Owen
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page
container_issue
container_start_page
container_title arXiv.org
container_volume
creator Lemire, Daniel
Bartlett, Colin
Kaser, Owen
description The integer division of a numerator n by a divisor d gives a quotient q and a remainder r. Optimizing compilers accelerate software by replacing the division of n by d with the division of c * n (or c * n + c) by m for convenient integers c and m chosen so that they approximate the reciprocal: c/m ~= 1/d. Such techniques are especially advantageous when m is chosen to be a power of two and when d is a constant so that c and m can be precomputed. The literature contains many bounds on the distance between c/m and the divisor d. Some of these bounds are optimally tight, while others are not. We present optimally tight bounds for quotient and remainder computations.
doi_str_mv 10.48550/arxiv.2012.12369
format Article
fullrecord <record><control><sourceid>proquest_arxiv</sourceid><recordid>TN_cdi_arxiv_primary_2012_12369</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2525895907</sourcerecordid><originalsourceid>FETCH-LOGICAL-a527-58afc3995852ed040d5cb64ad71e7d35602f68c5c6ead72e83c9103fefb76fe3</originalsourceid><addsrcrecordid>eNotj11LwzAYhYMgOOZ-wK4seN2avOmbD--0Oh0MduHuS9om0jHTmrTD_Xvr5tWBw-HwPIQsGc1yhUgfTPhpjxlQBhkDLvQVmQHnLFU5wA1ZxLinlIKQgMhnJF37wX7akLy0xza2nU-qU1J0Pg7GD_Ex2fZD-2UOyXM3-ibekmtnDtEu_nNOPlavu-I93Wzf1sXTJjUIMkVlXM21RoVgG5rTButK5KaRzMqGo6DghKqxFnbqwCpea0a5s66Swlk-J3eX17NK2YeJIJzKP6XyrDQt7i-LPnTfo41Due_G4CekEhBQadRU8l9YPU2c</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2525895907</pqid></control><display><type>article</type><title>Integer Division by Constants: Optimal Bounds</title><source>arXiv.org</source><source>Free E- Journals</source><creator>Lemire, Daniel ; Bartlett, Colin ; Kaser, Owen</creator><creatorcontrib>Lemire, Daniel ; Bartlett, Colin ; Kaser, Owen</creatorcontrib><description>The integer division of a numerator n by a divisor d gives a quotient q and a remainder r. Optimizing compilers accelerate software by replacing the division of n by d with the division of c * n (or c * n + c) by m for convenient integers c and m chosen so that they approximate the reciprocal: c/m ~= 1/d. Such techniques are especially advantageous when m is chosen to be a power of two and when d is a constant so that c and m can be precomputed. The literature contains many bounds on the distance between c/m and the divisor d. Some of these bounds are optimally tight, while others are not. We present optimally tight bounds for quotient and remainder computations.</description><identifier>EISSN: 2331-8422</identifier><identifier>DOI: 10.48550/arxiv.2012.12369</identifier><language>eng</language><publisher>Ithaca: Cornell University Library, arXiv.org</publisher><subject>Computer Science - Data Structures and Algorithms ; Integers ; Optimization ; Quotients</subject><ispartof>arXiv.org, 2021-06</ispartof><rights>2021. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><rights>http://creativecommons.org/licenses/by/4.0</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>228,230,780,784,885,27924</link.rule.ids><backlink>$$Uhttps://doi.org/10.1016/j.heliyon.2021.e07442$$DView published paper (Access to full text may be restricted)$$Hfree_for_read</backlink><backlink>$$Uhttps://doi.org/10.48550/arXiv.2012.12369$$DView paper in arXiv$$Hfree_for_read</backlink></links><search><creatorcontrib>Lemire, Daniel</creatorcontrib><creatorcontrib>Bartlett, Colin</creatorcontrib><creatorcontrib>Kaser, Owen</creatorcontrib><title>Integer Division by Constants: Optimal Bounds</title><title>arXiv.org</title><description>The integer division of a numerator n by a divisor d gives a quotient q and a remainder r. Optimizing compilers accelerate software by replacing the division of n by d with the division of c * n (or c * n + c) by m for convenient integers c and m chosen so that they approximate the reciprocal: c/m ~= 1/d. Such techniques are especially advantageous when m is chosen to be a power of two and when d is a constant so that c and m can be precomputed. The literature contains many bounds on the distance between c/m and the divisor d. Some of these bounds are optimally tight, while others are not. We present optimally tight bounds for quotient and remainder computations.</description><subject>Computer Science - Data Structures and Algorithms</subject><subject>Integers</subject><subject>Optimization</subject><subject>Quotients</subject><issn>2331-8422</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2021</creationdate><recordtype>article</recordtype><sourceid>ABUWG</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><sourceid>GOX</sourceid><recordid>eNotj11LwzAYhYMgOOZ-wK4seN2avOmbD--0Oh0MduHuS9om0jHTmrTD_Xvr5tWBw-HwPIQsGc1yhUgfTPhpjxlQBhkDLvQVmQHnLFU5wA1ZxLinlIKQgMhnJF37wX7akLy0xza2nU-qU1J0Pg7GD_Ex2fZD-2UOyXM3-ibekmtnDtEu_nNOPlavu-I93Wzf1sXTJjUIMkVlXM21RoVgG5rTButK5KaRzMqGo6DghKqxFnbqwCpea0a5s66Swlk-J3eX17NK2YeJIJzKP6XyrDQt7i-LPnTfo41Due_G4CekEhBQadRU8l9YPU2c</recordid><startdate>20210629</startdate><enddate>20210629</enddate><creator>Lemire, Daniel</creator><creator>Bartlett, Colin</creator><creator>Kaser, Owen</creator><general>Cornell University Library, arXiv.org</general><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>L6V</scope><scope>M7S</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope><scope>AKY</scope><scope>GOX</scope></search><sort><creationdate>20210629</creationdate><title>Integer Division by Constants: Optimal Bounds</title><author>Lemire, Daniel ; Bartlett, Colin ; Kaser, Owen</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a527-58afc3995852ed040d5cb64ad71e7d35602f68c5c6ead72e83c9103fefb76fe3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2021</creationdate><topic>Computer Science - Data Structures and Algorithms</topic><topic>Integers</topic><topic>Optimization</topic><topic>Quotients</topic><toplevel>online_resources</toplevel><creatorcontrib>Lemire, Daniel</creatorcontrib><creatorcontrib>Bartlett, Colin</creatorcontrib><creatorcontrib>Kaser, Owen</creatorcontrib><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science &amp; Engineering Collection</collection><collection>ProQuest Central (Alumni Edition)</collection><collection>ProQuest Central UK/Ireland</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Engineering Database</collection><collection>Publicly Available Content Database</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection><collection>arXiv Computer Science</collection><collection>arXiv.org</collection><jtitle>arXiv.org</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Lemire, Daniel</au><au>Bartlett, Colin</au><au>Kaser, Owen</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Integer Division by Constants: Optimal Bounds</atitle><jtitle>arXiv.org</jtitle><date>2021-06-29</date><risdate>2021</risdate><eissn>2331-8422</eissn><abstract>The integer division of a numerator n by a divisor d gives a quotient q and a remainder r. Optimizing compilers accelerate software by replacing the division of n by d with the division of c * n (or c * n + c) by m for convenient integers c and m chosen so that they approximate the reciprocal: c/m ~= 1/d. Such techniques are especially advantageous when m is chosen to be a power of two and when d is a constant so that c and m can be precomputed. The literature contains many bounds on the distance between c/m and the divisor d. Some of these bounds are optimally tight, while others are not. We present optimally tight bounds for quotient and remainder computations.</abstract><cop>Ithaca</cop><pub>Cornell University Library, arXiv.org</pub><doi>10.48550/arxiv.2012.12369</doi><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier EISSN: 2331-8422
ispartof arXiv.org, 2021-06
issn 2331-8422
language eng
recordid cdi_arxiv_primary_2012_12369
source arXiv.org; Free E- Journals
subjects Computer Science - Data Structures and Algorithms
Integers
Optimization
Quotients
title Integer Division by Constants: Optimal Bounds
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-10T11%3A33%3A25IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_arxiv&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Integer%20Division%20by%20Constants:%20Optimal%20Bounds&rft.jtitle=arXiv.org&rft.au=Lemire,%20Daniel&rft.date=2021-06-29&rft.eissn=2331-8422&rft_id=info:doi/10.48550/arxiv.2012.12369&rft_dat=%3Cproquest_arxiv%3E2525895907%3C/proquest_arxiv%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2525895907&rft_id=info:pmid/&rfr_iscdi=true