<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">VS a MS kompilator to maju priamo v moznostiach<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">j.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Hw-list <hw-list-bounces@list.hw.cz> <b>On Behalf Of
</b>Pavel Hudecek<br>
<b>Sent:</b> Monday, May 6, 2024 2:51 PM<br>
<b>To:</b> hw-list@list.hw.cz<br>
<b>Subject:</b> Re: Rychlý výpis integer čísla<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">Je vlastně nějaký zavedený způsob, že autor napíše zapouzdřenou funkci optimalizovanou na paměť, pak další verzi na velikost kódu a třetí na rychlost, aby se pak použila verze podle aktuálně zvolené optimalizace?<br>
<br>
PH<o:p></o:p></p>
<div>
<p class="MsoNormal">Dne 06.05.2024 v 14:00 Martin Záruba napsal(a):<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p><span style="font-family:"Arial",sans-serif">Jasně. Ale pokud je to knihovní (zapouzdřená) funkce, neměla by být napsaná v assembleru, aby fungovala tak nejefektivněji (paměť, rychlost) jak je možné?</span><o:p></o:p></p>
<pre>Martin Záruba<o:p></o:p></pre>
<div>
<p class="MsoNormal">Dne 6.5.2024 v 13:19 Pavel Hudeček napsal(a):<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal">Mohu se mýlit, ale mám za to, že pokud tomu něco nebrání, překladač v této situaci nechá provést jedno dělení a použije oba výsledky.
<br>
<br>
Jinak mě vlastně nenapadá, k čemu by nějaké revoluční zrychleni převodu bin-dec v současné době bylo dobré. Nějak si nedovedu představit, kde by se konvertovalo obrovské množství čísel a ještě k tomu se okolo nedělalo nic jiného, aby ta konverze tvořila nezanedbatelnou
 část zátěže... <br>
<br>
Jestli by tento algoritmus dokázal třeba zrychlit nepochopitelně pomalej Open/Libre Office? Asi taky spíš ne.
<br>
<br>
Ale jako akademická zajímavost se mi to líbí:-) <br>
<br>
PH <br>
<br>
Dne 06.05.2024 v 12:45 <a href="mailto:snail@snailinstruments.com">snail@snailinstruments.com</a> napsal(a):
<br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal">Každý, kdo programoval dělení v assmebleru, ví, že s podílem získá zároveň i zbytek. Zadarmo, ani jeden takt navíc. Pokud tedy tradiční algoritmus vyžaduje jedno dělení a jedno modulo na číslici, ušetříme 50% času už jenom tím, že nebudeme
 zahazovat vedlejší produkt z operace dělení. Ovšem ve vyšších jazycích neexistuje způsob, jak předat zároveň podíl i zbytek.
<br>
<br>
J. Hanzal <br>
<br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal">jak tady před nedávnem běžela debata o funkci printf() a o převodu čísla
<br>
do řetězce obecně - náhodou jsem dneska narazil na tenhle článek: <br>
<br>
<a href="https://www.cantorsparadise.com/1-8x-faster-integer-printing-algorithm-52d43bd265e0">https://www.cantorsparadise.com/1-8x-faster-integer-printing-algorithm-52d43bd265e0</a>
<br>
<br>
Autor používá zcela nový algoritmus k tomu, aby dostal integer do <br>
řetězce podstatně rychleji než je klasika. Třeba se to někomu bude hodit. <o:p></o:p></p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</div>
</body>
</html>