]> mj.ucw.cz Git - ga.git/commitdiff
Bug fixes.
authorMartin Mares <mj@ucw.cz>
Sat, 30 Dec 2006 22:10:36 +0000 (23:10 +0100)
committerMartin Mares <mj@ucw.cz>
Sat, 30 Dec 2006 22:10:36 +0000 (23:10 +0100)
7-ram/7-ram.tex

index c49cf5bd214518c80e6412f0130dfb15a7eeea7a..69b3f4b55edee23bb9b5607672712fbd15ca270e 100644 (file)
@@ -237,10 +237,10 @@ z
 
 \>Rozcvièka: {\I nejpravìj¹í jednièka} ve~dvojkovém èísle (hodnota, nikoliv pozice):
 \alik{
-        x&=\0\1\9\9\9\0\1\1\0\0\9\9\9\0 \cr
- x - 1&=\0\1\9\9\9\0\1\0\1\1\9\9\9\1 \cr
- x \land (x - 1)&=\0\1\9\9\9\0\1\0\0\0\9\9\9\0 \cr
- x \oplus (x \land (x - 1))&=\0\0\9\9\9\0\0\1\0\0\9\9\9\0 \cr}
+        x&=\0\1\9\9\9\0\1\1\0\0\0\0\0\0 \cr
+ x - 1&=\0\1\9\9\9\0\1\0\1\1\0\0\0\1 \cr
+ x \land (x - 1)&=\0\1\9\9\9\0\1\0\0\0\0\0\0\0 \cr
+ x \oplus (x \land (x - 1))&=\0\0\9\9\9\0\0\1\0\0\0\0\0\0 \cr}
 
 \>Nyní uká¾eme, jak RAM pou¾ívat jako vektorový poèítaè, který umí paralelnì
 poèítat se v¹emi prvky vektoru, pokud se dají zakódovat do~jediného slova.
@@ -259,7 +259,7 @@ prolo
 \:$\<Sum>(x)$ -- seète v¹echny slo¾ky vektoru (pøedpokládáme, ¾e se vejdou do~$b$~bitù):
 
 \numlist\nalpha
-\:sèítáním modulo $\1^{n+1}$ (uvìdomte si, ¾e $\1\0^{n+1}\bmod \1^{n+1}=1$)
+\:vymodulením èíslem $\1^{b+1}$ (to funguje, proto¾e $\1\0^{b+1}\bmod \1^{b+1}=1$), nebo
 \:násobením vhodnou konstantou:
 \setbox0=\hbox{~$x_{n-1}$}
 \slotwd=\wd0
@@ -283,7 +283,7 @@ $\hrulefill$\cr
 \rule
 \[r_{n-1}] \dd \[r_2] \[r_1] \[s_n] \dd \[s_3] \[s_2] \[s_1] \cr
 }
-Zde je výsledkem je dokonce vektor v¹ech èásteèných souètù:
+Zde je výsledkem dokonce vektor v¹ech èásteèných souètù:
 $s_k=\sum_{i=0}^{k-1}x_i$, $r_k=\sum_{i=k}^{n-1}x_i$.
 \endlist
 
@@ -297,13 +297,12 @@ $x_i<y_i$, jinak~0.
 -~ \0 \[y_{n-1}] \0 \[y_{n-2}] \[\cdots] \0 \[y_1] \0 \[y_0]  \cr
 }
 
-Ve~vektoru $y$ nahradíme prokládací nuly jednièkami a odeèteme vektor~$y$.
-Ve~výsledku se jednièky zmìní na~nuly právì u tìch slo¾ek, kde $x_i < y_i$.
+Ve~vektoru $x$ nahradíme prokládací nuly jednièkami a odeèteme vektor~$y$.
+Ve~výsledku se tyto jednièky zmìní na~nuly právì u tìch slo¾ek, kde $x_i < y_i$.
 Pak je ji¾ staèí posunout na~správné místo a okolní bity vynulovat.
 
 \:$\<Rank>(\alpha,x)$ -- spoèítá, kolik slo¾ek vektoru~$x$ je men¹ích ne¾~$\alpha$:
-
-\alik{\<Rank>(\alpha,x) = \<Sum>(\<Cmp>(\<Replicate>(\alpha),x))\cr}
+$$\<Rank>(\alpha,x) = \<Sum>(\<Cmp>(\<Replicate>(\alpha),x)).$$
 
 \:$\<Insert>(\alpha,x)$ -- zatøídí hodnotu $\alpha$ do~setøídìného vektoru~$x$:
 
@@ -312,11 +311,11 @@ zat
 existující hodnoty).
 
 \:$\<Unpack>(\alpha)$ -- vytvoøí vektor, jeho¾ slo¾ky jsou bity zadaného èísla
-(jinými slovy prolo¾í bity $b$~nulami).
+(jinými slovy prolo¾í bity bloky $b$~nul).
 
-Nejdøíve èíslo~$\alpha$ replikuje, pak anduje vhodnou bitovou maskou,
+Nejdøíve èíslo~$\alpha$ replikujeme, pak andujeme vhodnou bitovou maskou,
 aby v~$i$-té slo¾ce zùstal pouze $i$-tý bit a ostatní se vynulovaly,
-a pak provede $\<Cmp>$ s~vektorem samých nul.
+a pak provedeme $\<Cmp>$ s~vektorem reprezentovaným touté¾ bitovou maskou.
 
 \:$\<Unpack>_\varphi(\alpha)$ -- podobnì jako pøedchozí operace, ale bity je¹tì
 prohází podle nìjaké pevné funkce $\varphi$:
@@ -326,7 +325,7 @@ Sta
 \:$\<Pack>(x)$ -- dostane vektor nul a jednièek a vytvoøí èíslo, jeho¾ bity
 jsou právì slo¾ky vektoru (jinými slovy ¹krtne nuly mezi bity):
 
-Pøedstavím si, ¾e slo¾ky èísla jsou o~jeden bit krat¹í a provedu \<Sum>.
+Pøedstavíme si, ¾e slo¾ky èísla jsou o~jeden bit krat¹í a provedeme \<Sum>.
 Napøíklad pro $n=4$ a $b=4$:
 
 \setbox0=\hbox{$x_3$}
@@ -351,7 +350,8 @@ to nevad
 
 \>Nyní je¹tì nìkolik operací s~normálními èísly. Zatím pøedpokládejme,
 ¾e pro~$b$-bitová èísla na~vstupu budeme mít k~dispozici $b^2$-bitový
-pracovní prostor.
+pracovní prostor, tak¾e budeme moci pou¾ívat vektory s~$b$ slo¾kami
+po~$b$ bitech.
 
 \itemize\ibull
 
@@ -376,9 +376,9 @@ pos
 \alpha\oplus(\alpha-1)&=       \0\9\9\9\0\1\1\1\1\1\cr
 }
 
-\:$\<MSB>(\alpha)$ -- Most Significant Bit (nejpravìj¹í):
+\:$\<MSB>(\alpha)$ -- Most Significant Bit (pozice nejvy¹¹í jednièky):
 
-Z~\<LSB> pomocí zrcadlení.
+Z~\<LSB> pomocí zrcadlení (operací \<Permute>).
 
 \endlist