<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=BKM-Algorithmus</id>
	<title>BKM-Algorithmus - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=BKM-Algorithmus"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=BKM-Algorithmus&amp;action=history"/>
	<updated>2026-05-26T05:16:40Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=BKM-Algorithmus&amp;diff=1022099&amp;oldid=prev</id>
		<title>~2025-54323-0: /* Tabellen für die C++-Beispiele */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=BKM-Algorithmus&amp;diff=1022099&amp;oldid=prev"/>
		<updated>2025-09-06T19:27:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Tabellen für die C++-Beispiele&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der &amp;#039;&amp;#039;&amp;#039;BKM-Algorithmus&amp;#039;&amp;#039;&amp;#039; ist ein iterativer [[Algorithmus]], mit dessen Hilfe sich die [[Logarithmus]]- und [[Exponentialfunktion]] effizient in [[Digitaltechnik|digitalen Schaltungen]] berechnen lassen. Er wurde 1994 von J. C. Bajard, S. Kla und Jean-Michel Muller entwickelt, wovon sich auch die Bezeichnung ableitet.&amp;lt;ref&amp;gt;{{Literatur |Autor=J. Bajard, S. Kla, Jean-Michel Muller |Titel=A new hardware algorithm for complex elementary functions |Sammelwerk=IEEE Transactions on Computers |Band=43 |Nummer=8 |Datum=1994 |ISSN=0018-9340 |Seiten=955–963 |DOI=10.1109/12.295857}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Allgemeines ==&lt;br /&gt;
Der BKM-Algorithmus ist wie [[CORDIC]]-Algorithmus ein so genannter &amp;#039;&amp;#039;Shift-and-add-Algorithmus&amp;#039;&amp;#039;, der auf bitweisen Verschiebungen und ganzzahligen Additionen in [[Addierwerk]]en basiert. Divisionen werden ausschließlich mit negativen Potenzen von 2 durchgeführt, welche sich in digitalen Schaltungen direkt als bitweise Verschiebung implementieren lassen. Der Algorithmus kommt im Gegensatz zu dem CORDIC-Verfahren ohne Skalierungsfaktor aus und verwendet [[Logarithmentabelle]]n anstelle der bei CORDIC notwendigen [[Arkustangens und Arkuskotangens|Arkustangens]]-Tabelle.&lt;br /&gt;
&lt;br /&gt;
Die Berechnung eines Funktionswertes erfolgt in einem Iterationsverfahren mit einer Konvergenzrate von ungefähr einem Bit pro Durchlauf. Aufgrund dieses Umstands wird dieser Algorithmus manchmal auch als &amp;#039;&amp;#039;Bitalgorithmus&amp;#039;&amp;#039; bezeichnet.&lt;br /&gt;
&lt;br /&gt;
== Herleitung ==&lt;br /&gt;
Gegeben sei die [[Iteration|Iterationsvorschrift]]&lt;br /&gt;
:&amp;lt;math&amp;gt;x_{n+1} = x_n\cdot (1+d_n \cdot 2^{-n})&amp;lt;/math&amp;gt;&lt;br /&gt;
mit &amp;lt;math&amp;gt;x_0 = 1&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;d_n \in \{0,1\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Die Iterationsvorschrift ist per [[Induktion (Mathematik)|Induktion]] identisch mit&lt;br /&gt;
:&amp;lt;math&amp;gt;x_{n+1} = \prod_{i=0}^n (1+2^{-i})^{d_i}&amp;lt;/math&amp;gt;&lt;br /&gt;
Sind alle &amp;lt;math&amp;gt;d_n = 0&amp;lt;/math&amp;gt;, so sind alle &amp;lt;math&amp;gt;x_n = 1&amp;lt;/math&amp;gt;. Sind alle &amp;lt;math&amp;gt;d_n = 1&amp;lt;/math&amp;gt; gilt &amp;lt;math&amp;gt;x_\infty\approx 4{,}768&amp;lt;/math&amp;gt;&amp;lt;ref&amp;gt;Für weitere Nachkommastellen siehe {{OEIS|A081845}}.&amp;lt;/ref&amp;gt;. Tatsächlich kann mit der Iterationsvorschrift bei geeigneter Wahl der &amp;lt;math&amp;gt;d_n&amp;lt;/math&amp;gt; jede reelle Zahl &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; im Bereich &amp;lt;math&amp;gt;1 \leqq x \lessapprox 4{,}768&amp;lt;/math&amp;gt; als [[Grenzwert (Folge)|Grenzwert]] dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Weiterhin gelte die Iterationsvorschrift&lt;br /&gt;
:&amp;lt;math&amp;gt;y_{n+1} = y_n + d_n \cdot \ln(1+2^{-n})&amp;lt;/math&amp;gt;&lt;br /&gt;
mit &amp;lt;math&amp;gt;y_0 = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
oder äquivalent dazu&lt;br /&gt;
:&amp;lt;math&amp;gt;y_{n+1} = \sum_{i=0}^n d_i \cdot \ln(1+2^{-i}) = \ln\left(\prod_{i=0}^n (1+2^{-i})^{d_i}\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Für numerische Berechnungen wird &amp;lt;math&amp;gt;A_n=\ln(1+2^{-n})&amp;lt;/math&amp;gt; durch eine vorab berechnete Tabelle realisiert.&lt;br /&gt;
&lt;br /&gt;
Es folgt sofort, dass &amp;lt;math&amp;gt;y_n=\ln(x_n)&amp;lt;/math&amp;gt; für alle &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; gilt.&lt;br /&gt;
Mit denselben Überlegungen wie oben ergibt sich für den Logarithmus&lt;br /&gt;
der Bereich &amp;lt;math&amp;gt;0 \leqq y = \ln(x) \lessapprox 1{,}562&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Logarithmusfunktion ==&lt;br /&gt;
Um die Logarithmusfunktion zu berechnen (dies wird beim BKM-Algorithmus auch als &amp;#039;&amp;#039;L-mode&amp;#039;&amp;#039; bezeichnet), wird in jedem Schritt getestet, ob &amp;lt;math&amp;gt;x_n \cdot (1+2^{-n}) \le x&amp;lt;/math&amp;gt; ist. Wenn ja, wird &amp;lt;math&amp;gt;x_{n+1}&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;y_{n+1}&amp;lt;/math&amp;gt; berechnet. Nach &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; Schritten ist der Funktionswert mit einem Fehler &amp;lt;math&amp;gt;\Delta \ln(x) \le 2^{-N}&amp;lt;/math&amp;gt; bestimmt.&lt;br /&gt;
&lt;br /&gt;
Beispiel als C++-Programm (Tabelle &amp;lt;code&amp;gt;[[#Tabellen für die C++-Beispiele|A_e]]&amp;lt;/code&amp;gt; unten):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot; style=&amp;quot;font-size: 75%; max-width: 576px;&amp;quot;&amp;gt;&lt;br /&gt;
 double log_e (const double Argument, const int Bits = 53) // 1 &amp;lt;= Argument &amp;lt;= 4.768462058&lt;br /&gt;
 {&lt;br /&gt;
    double  x = 1.0, y = 0.0, s = 1.0;&lt;br /&gt;
&lt;br /&gt;
    for (int k = 0; k &amp;lt; Bits; k++) {&lt;br /&gt;
      double const  z = x + x*s;&lt;br /&gt;
      if (z &amp;lt;= Argument) {&lt;br /&gt;
          x  = z;&lt;br /&gt;
          y += A_e[k];&lt;br /&gt;
      }&lt;br /&gt;
      s *= 0.5;&lt;br /&gt;
    }&lt;br /&gt;
    return y;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch andere Logarithmen lassen sich ohne Mehraufwand berechnen. Enthält die Tabelle die Werte für einen anderen Logarithmus als den zur Basis [[Eulersche Zahl|e]], dann berechnet die Funktionen eben diesen Logarithmus (Tabelle [[#Tabellen für die C++-Beispiele|&amp;lt;code&amp;gt;A_2&amp;lt;/code&amp;gt;]] ebenfalls im Anhang):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot; style=&amp;quot;font-size: 75%; max-width: 576px;&amp;quot;&amp;gt;&lt;br /&gt;
 double log_2 (const double Argument, const int Bits = 53) // 1 &amp;lt;= Argument &amp;lt;= 4.768462058&lt;br /&gt;
 {&lt;br /&gt;
    double  x = 1.0, y = 0.0, s = 1.0;&lt;br /&gt;
&lt;br /&gt;
    for (int k = 0; k &amp;lt; Bits; k++) {&lt;br /&gt;
      double const  z = x + x*s;&lt;br /&gt;
      if (z &amp;lt;= Argument) {&lt;br /&gt;
          x  = z;&lt;br /&gt;
          y += A_2[k];&lt;br /&gt;
      }&lt;br /&gt;
      s *= 0.5;&lt;br /&gt;
    }&lt;br /&gt;
    return y;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der erlaubte Bereich für das Argument ist der gleiche (1&amp;amp;nbsp;≤&amp;amp;nbsp;&amp;lt;code&amp;gt;Argument&amp;lt;/code&amp;gt;&amp;amp;nbsp;≤&amp;amp;nbsp;4,768462058…). Im Fall des Logarithmus zur Basis&amp;amp;nbsp;2 kann man den Exponenten vorher abtrennen (erhält damit den ganzzahligen Anteil des Logarithmus) und wendet auf das Restargument (welches zwischen 1 und 2 liegt) den Bitalgorithmus an. Da das Argument kleiner als 2,384231… ist, braucht die Iterationsschleife von &amp;#039;&amp;#039;k&amp;#039;&amp;#039; erst ab 1 anzufangen.&lt;br /&gt;
&lt;br /&gt;
== Exponentialfunktion ==&lt;br /&gt;
Um die Exponentialfunktion zu berechnen (dies wird beim BKM-Algorithmus auch als &amp;#039;&amp;#039;E-mode&amp;#039;&amp;#039; bezeichnet), wird in jedem Schritt getestet, ob &amp;lt;math&amp;gt;y_n + \ln(1+2^{-n}) \le y&amp;lt;/math&amp;gt; ist. Wenn ja, wird &amp;lt;math&amp;gt;x_{n+1}&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;y_{n+1}&amp;lt;/math&amp;gt; berechnet. Nach &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; Schritten ist der Funktionswert mit einem Fehler &amp;lt;math&amp;gt;\Delta \exp(x) \le 2^{-N}&amp;lt;/math&amp;gt; bestimmt.&lt;br /&gt;
&lt;br /&gt;
Beispiel als C++-Programm (Tabelle &amp;lt;code&amp;gt;[[#Tabellen für die C++-Beispiele|A_e]]&amp;lt;/code&amp;gt; unten):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot; style=&amp;quot;font-size: 75%; max-width: 576px;&amp;quot;&amp;gt;&lt;br /&gt;
 double exp (const double Argument, const int Bits = 54)	// 0 &amp;lt;= Argument &amp;lt;= 1.5620238332&lt;br /&gt;
 {&lt;br /&gt;
   double  x = 1.0, y = 0.0, s = 1.0;&lt;br /&gt;
&lt;br /&gt;
   for (int k = 0; k &amp;lt; Bits; k++) {&lt;br /&gt;
      double const  z = y + A_e[k];&lt;br /&gt;
      if (z &amp;lt;= Argument) {&lt;br /&gt;
         y = z;&lt;br /&gt;
         x = x + x*s;&lt;br /&gt;
      }&lt;br /&gt;
      s *= 0.5;&lt;br /&gt;
   }&lt;br /&gt;
   return x;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tabellen für die C++-Beispiele ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot; style=&amp;quot;font-size: 75%; max-width: 720px;&amp;quot;&amp;gt;&lt;br /&gt;
 static const double A_e [] =	// A_e[k] = ln (1 + 0.5^k)&lt;br /&gt;
 {&lt;br /&gt;
   0.693147180559945297099404706000, 0.405465108108164392935428259000, 0.223143551314209769962616701000,&lt;br /&gt;
   0.117783035656383447138088388000, 0.060624621816434840186291518000, 0.030771658666753686222134530000,&lt;br /&gt;
   0.015504186535965253358272343000, 0.007782140442054949100825041000, 0.003898640415657322636221046000,&lt;br /&gt;
   0.001951220131261749216850870000, 0.000976085973055458892686544000, 0.000488162079501351186957460000,&lt;br /&gt;
   0.000244110827527362687853374000, 0.000122062862525677363338881000, 0.000061033293680638525913091000,&lt;br /&gt;
   0.000030517112473186377476993000, 0.000015258672648362398138404000, 0.000007629365427567572417821000,&lt;br /&gt;
   0.000003814689989685889381171000, 0.000001907346813825409407938000, 0.000000953673861659188260005000,&lt;br /&gt;
   0.000000476837044516323000000000, 0.000000238418550679858000000000, 0.000000119209282445354000000000,&lt;br /&gt;
   0.000000059604642999033900000000, 0.000000029802321943606100000000, 0.000000014901161082825400000000,&lt;br /&gt;
   0.000000007450580569168250000000, 0.000000003725290291523020000000, 0.000000001862645147496230000000,&lt;br /&gt;
   0.000000000931322574181798000000, 0.000000000465661287199319000000, 0.000000000232830643626765000000,&lt;br /&gt;
   0.000000000116415321820159000000, 0.000000000058207660911773300000, 0.000000000029103830456310200000,&lt;br /&gt;
   0.000000000014551915228261000000, 0.000000000007275957614156960000, 0.000000000003637978807085100000,&lt;br /&gt;
   0.000000000001818989403544200000, 0.000000000000909494701772515000, 0.000000000000454747350886361000,&lt;br /&gt;
   0.000000000000227373675443206000, 0.000000000000113686837721610000, 0.000000000000056843418860806400,&lt;br /&gt;
   0.000000000000028421709430403600, 0.000000000000014210854715201900, 0.000000000000007105427357600980,&lt;br /&gt;
   0.000000000000003552713678800490, 0.000000000000001776356839400250, 0.000000000000000888178419700125,&lt;br /&gt;
   0.000000000000000444089209850063, 0.000000000000000222044604925031, 0.000000000000000111022302462516,&lt;br /&gt;
   0.000000000000000055511151231258, 0.000000000000000027755575615629, 0.000000000000000013877787807815,&lt;br /&gt;
   0.000000000000000006938893903907, 0.000000000000000003469446951954, 0.000000000000000001734723475977,&lt;br /&gt;
   0.000000000000000000867361737988, 0.000000000000000000433680868994, 0.000000000000000000216840434497,&lt;br /&gt;
   0.000000000000000000108420217249, 0.000000000000000000054210108624, 0.000000000000000000027105054312,&lt;br /&gt;
 };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot; style=&amp;quot;font-size: 75%; max-width: 576px;&amp;quot;&amp;gt;&lt;br /&gt;
 static const double A_2 [] =	// A_2[k] = log_2 (1 + 0.5^k)&lt;br /&gt;
 {&lt;br /&gt;
   1.0000000000000000000000000000000000000000000000000000000000000000000000000000,&lt;br /&gt;
   0.5849625007211561814537389439478165087598144076924810604557526545410982276485,&lt;br /&gt;
   0.3219280948873623478703194294893901758648313930245806120547563958159347765589,&lt;br /&gt;
   0.1699250014423123629074778878956330175196288153849621209115053090821964552970,&lt;br /&gt;
   0.0874628412503394082540660108104043540112672823448206881266090643866965081686,&lt;br /&gt;
   0.0443941193584534376531019906736094674630459333742491317685543002674288465967,&lt;br /&gt;
   0.0223678130284545082671320837460849094932677948156179815932199216587899627785,&lt;br /&gt;
   0.0112272554232541203378805844158839407281095943600297940811823651462712311786,&lt;br /&gt;
   0.0056245491938781069198591026740666017211096815383520359072957784732489771013,&lt;br /&gt;
   0.0028150156070540381547362547502839489729507927389771959487826944878598909400,&lt;br /&gt;
   0.0014081943928083889066101665016890524233311715793462235597709051792834906001,&lt;br /&gt;
   0.0007042690112466432585379340422201964456668872087249334581924550139514213168,&lt;br /&gt;
   0.0003521774803010272377989609925281744988670304302127133979341729842842377649,&lt;br /&gt;
   0.0001760994864425060348637509459678580940163670081839283659942864068257522373,&lt;br /&gt;
   0.0000880524301221769086378699983597183301490534085738474534831071719854721939,&lt;br /&gt;
   0.0000440268868273167176441087067175806394819146645511899503059774914593663365,&lt;br /&gt;
   0.0000220136113603404964890728830697555571275493801909791504158295359319433723,&lt;br /&gt;
   0.0000110068476674814423006223021573490183469930819844945565597452748333526464,&lt;br /&gt;
   0.0000055034343306486037230640321058826431606183125807276574241540303833251704,&lt;br /&gt;
   0.0000027517197895612831123023958331509538486493412831626219340570294203116559,&lt;br /&gt;
   0.0000013758605508411382010566802834037147561973553922354232704569052932922954,&lt;br /&gt;
   0.0000006879304394358496786728937442939160483304056131990916985043387874690617,&lt;br /&gt;
   0.0000003439652607217645360118314743718005315334062644619363447395987584138324,&lt;br /&gt;
   0.0000001719826406118446361936972479533123619972434705828085978955697643547921,&lt;br /&gt;
   0.0000000859913228686632156462565208266682841603921494181830811515318381744650,&lt;br /&gt;
   0.0000000429956620750168703982940244684787907148132725669106053076409624949917,&lt;br /&gt;
   0.0000000214978311976797556164155504126645192380395989504741781512309853438587,&lt;br /&gt;
   0.0000000107489156388827085092095702361647949603617203979413516082280717515504,&lt;br /&gt;
   0.0000000053744578294520620044408178949217773318785601260677517784797554422804,&lt;br /&gt;
   0.0000000026872289172287079490026152352638891824761667284401180026908031182361,&lt;br /&gt;
   0.0000000013436144592400232123622589569799954658536700992739887706412976115422,&lt;br /&gt;
   0.0000000006718072297764289157920422846078078155859484240808550018085324187007,&lt;br /&gt;
   0.0000000003359036149273187853169587152657145221968468364663464125722491530858,&lt;br /&gt;
   0.0000000001679518074734354745159899223037458278711244127245990591908996412262,&lt;br /&gt;
   0.0000000000839759037391617577226571237484864917411614198675604731728132152582,&lt;br /&gt;
   0.0000000000419879518701918839775296677020135040214077417929807824842667285938,&lt;br /&gt;
   0.0000000000209939759352486932678195559552767641474249812845414125580747434389,&lt;br /&gt;
   0.0000000000104969879676625344536740142096218372850561859495065136990936290929,&lt;br /&gt;
   0.0000000000052484939838408141817781356260462777942148580518406975851213868092,&lt;br /&gt;
   0.0000000000026242469919227938296243586262369156865545638305682553644113887909,&lt;br /&gt;
   0.0000000000013121234959619935994960031017850191710121890821178731821983105443,&lt;br /&gt;
   0.0000000000006560617479811459709189576337295395590603644549624717910616347038,&lt;br /&gt;
   0.0000000000003280308739906102782522178545328259781415615142931952662153623493,&lt;br /&gt;
   0.0000000000001640154369953144623242936888032768768777422997704541618141646683,&lt;br /&gt;
   0.0000000000000820077184976595619616930350508356401599552034612281802599177300,&lt;br /&gt;
   0.0000000000000410038592488303636807330652208397742314215159774270270147020117,&lt;br /&gt;
   0.0000000000000205019296244153275153381695384157073687186580546938331088730952,&lt;br /&gt;
   0.0000000000000102509648122077001764119940017243502120046885379813510430378661,&lt;br /&gt;
   0.0000000000000051254824061038591928917243090559919209628584150482483994782302,&lt;br /&gt;
   0.0000000000000025627412030519318726172939815845367496027046030028595094737777,&lt;br /&gt;
   0.0000000000000012813706015259665053515049475574143952543145124550608158430592,&lt;br /&gt;
   0.0000000000000006406853007629833949364669629701200556369782295210193569318434,&lt;br /&gt;
   0.0000000000000003203426503814917330334121037829290364330169106716787999052925,&lt;br /&gt;
   0.0000000000000001601713251907458754080007074659337446341494733882570243497196,&lt;br /&gt;
   0.0000000000000000800856625953729399268240176265844257044861248416330071223615,&lt;br /&gt;
   0.0000000000000000400428312976864705191179247866966320469710511619971334577509,&lt;br /&gt;
   0.0000000000000000200214156488432353984854413866994246781519154793320684126179,&lt;br /&gt;
   0.0000000000000000100107078244216177339743404416874899847406043033792202127070,&lt;br /&gt;
   0.0000000000000000050053539122108088756700751579281894640362199287591340285355,&lt;br /&gt;
   0.0000000000000000025026769561054044400057638132352058574658089256646014899499,&lt;br /&gt;
   0.0000000000000000012513384780527022205455634651853807110362316427807660551208,&lt;br /&gt;
   0.0000000000000000006256692390263511104084521222346348012116229213309001913762,&lt;br /&gt;
   0.0000000000000000003128346195131755552381436585278035120438976487697544916191,&lt;br /&gt;
   0.0000000000000000001564173097565877776275512286165232838833090480508502328437,&lt;br /&gt;
   0.0000000000000000000782086548782938888158954641464170239072244145219054734086,&lt;br /&gt;
   0.0000000000000000000391043274391469444084776945327473574450334092075712154016,&lt;br /&gt;
   0.0000000000000000000195521637195734722043713378812583900953755962557525252782,&lt;br /&gt;
   0.0000000000000000000097760818597867361022187915943503728909029699365320287407,&lt;br /&gt;
   0.0000000000000000000048880409298933680511176764606054809062553340323879609794,&lt;br /&gt;
   0.0000000000000000000024440204649466840255609083961603140683286362962192177597,&lt;br /&gt;
   0.0000000000000000000012220102324733420127809717395445504379645613448652614939,&lt;br /&gt;
   0.0000000000000000000006110051162366710063906152551383735699323415812152114058,&lt;br /&gt;
   0.0000000000000000000003055025581183355031953399739107113727036860315024588989,&lt;br /&gt;
   0.0000000000000000000001527512790591677515976780735407368332862218276873443537,&lt;br /&gt;
   0.0000000000000000000000763756395295838757988410584167137033767056170417508383,&lt;br /&gt;
   0.0000000000000000000000381878197647919378994210346199431733717514843471513618,&lt;br /&gt;
   0.0000000000000000000000190939098823959689497106436628681671067254111334889005,&lt;br /&gt;
   0.0000000000000000000000095469549411979844748553534196582286585751228071408728,&lt;br /&gt;
   0.0000000000000000000000047734774705989922374276846068851506055906657137209047,&lt;br /&gt;
   0.0000000000000000000000023867387352994961187138442777065843718711089344045782,&lt;br /&gt;
   0.0000000000000000000000011933693676497480593569226324192944532044984865894525,&lt;br /&gt;
   0.0000000000000000000000005966846838248740296784614396011477934194852481410926,&lt;br /&gt;
   0.0000000000000000000000002983423419124370148392307506484490384140516252814304,&lt;br /&gt;
   0.0000000000000000000000001491711709562185074196153830361933046331030629430117,&lt;br /&gt;
   0.0000000000000000000000000745855854781092537098076934460888486730708440475045,&lt;br /&gt;
   0.0000000000000000000000000372927927390546268549038472050424734256652501673274,&lt;br /&gt;
   0.0000000000000000000000000186463963695273134274519237230207489851150821191330,&lt;br /&gt;
   0.0000000000000000000000000093231981847636567137259618916352525606281553180093,&lt;br /&gt;
   0.0000000000000000000000000046615990923818283568629809533488457973317312233323,&lt;br /&gt;
   0.0000000000000000000000000023307995461909141784314904785572277779202790023236,&lt;br /&gt;
   0.0000000000000000000000000011653997730954570892157452397493151087737428485431,&lt;br /&gt;
   0.0000000000000000000000000005826998865477285446078726199923328593402722606924,&lt;br /&gt;
   0.0000000000000000000000000002913499432738642723039363100255852559084863397344,&lt;br /&gt;
   0.0000000000000000000000000001456749716369321361519681550201473345138307215067,&lt;br /&gt;
   0.0000000000000000000000000000728374858184660680759840775119123438968122488047,&lt;br /&gt;
   0.0000000000000000000000000000364187429092330340379920387564158411083803465567,&lt;br /&gt;
   0.0000000000000000000000000000182093714546165170189960193783228378441837282509,&lt;br /&gt;
   0.0000000000000000000000000000091046857273082585094980096891901482445902524441,&lt;br /&gt;
   0.0000000000000000000000000000045523428636541292547490048446022564529197237262,&lt;br /&gt;
   0.0000000000000000000000000000022761714318270646273745024223029238091160103901,&lt;br /&gt;
 };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Jean-Michel Muller&lt;br /&gt;
   |Titel=Elementary Functions. Algorithms and Implementation&lt;br /&gt;
   |Auflage=2.&lt;br /&gt;
   |Verlag=Birkhäuser&lt;br /&gt;
   |Ort=Boston MA u.&amp;amp;nbsp;a.&lt;br /&gt;
   |Datum=2006&lt;br /&gt;
   |ISBN=0-8176-4372-9}}&lt;br /&gt;
*{{Literatur&lt;br /&gt;
   |Autor=Günter Jorke, Bernhard Lampe, Norbert Wengel&lt;br /&gt;
   |Titel=Arithmetische Algorithmen der Mikrorechentechnik&lt;br /&gt;
   |Auflage=1.&lt;br /&gt;
   |Verlag=VEB Verlag Technik&lt;br /&gt;
   |Ort=Berlin&lt;br /&gt;
   |Datum=1989&lt;br /&gt;
   |ISBN=3-341-00515-3&lt;br /&gt;
   |Seiten=280–282&lt;br /&gt;
   |Kommentar=EAN: 9783341005156&lt;br /&gt;
   |Online=[https://books.google.de/books/about/Arithmetische_Algorithmen_der_Mikroreche.html?id=DqYWAQAAMAAJ books.google.de]}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://perso.ens-lyon.fr/nathalie.revol/publis/RY00.pdf &amp;#039;&amp;#039;Accelerated Shift-and-Add algorithms&amp;#039;&amp;#039;.] (PDF; 181 kB).&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Algorithmus]]&lt;br /&gt;
[[Kategorie:Computerarithmetik]]&lt;/div&gt;</summary>
		<author><name>~2025-54323-0</name></author>
	</entry>
</feed>