changeset 99:f58bbc4a42f8

fix
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Thu, 18 Feb 2016 21:39:33 +0900
parents a099b533af0e
children 94ec38d9bdc6
files paper/c4.tex paper/master_paper.pdf
diffstat 2 files changed, 14 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/paper/c4.tex	Thu Feb 18 21:13:37 2016 +0900
+++ b/paper/c4.tex	Thu Feb 18 21:39:33 2016 +0900
@@ -258,11 +258,6 @@
 \label{fig:iodivsuc}
 \end{figure}
 
-Boyer-Moore String Search は文字列処理の Task を生成する前に、Skip Table を生成している。
-そして Boyer-Moore String Search に必要な情報を bm という構造体にまとめ、この構造体をそれぞれの Task に送信している。
-(ソースコード\ref{src:bmTMmain})
-%check global の説明
-
 \begin{lstlisting}[frame=lrbt,label=src:bmTMmain,caption=Boyer-Moore String Search の TMmain,numbers=left]
 typedef struct bm {
     int* skip_table;
@@ -305,6 +300,15 @@
 }
 \end{lstlisting}
 
+ソースコード\ref{src:bmTMmain} 27 行目で検索する文字列を取得する。
+その後、検索文字列と文字列の長さを取り、それに基いて \verb+skip_table+ を生成する。
+そして Boyer-Moore String Search に必要な情報を bm という構造体にまとめ、この構造体をそれぞれの Task に送信している。
+
+%check global の説明 IJ
+33行目 \verb+w->global+ で検索時に必要な情報を渡している。
+\verb+w->global+で設定されたデータは、計算する Task や Print する Task でも利用することが可能になる。
+
+ソースコード\ref{src:bmexec}の 28 行目にて、TMmain で設定した \verb+bmp+ を受け取っている。
 
 \begin{lstlisting}[frame=lrbt,label=src:bmexec,caption=Boyer-Moore String Search の記述,numbers=left]
 static int BM_method(unsigned char *text,int text_len,
@@ -342,6 +346,10 @@
     return 0;
 }
 \end{lstlisting}
+ソースコード\ref{src:bmexec} の3-20行目は Boyer-Moore String Search のメインルーチンである。
+pattern の末尾から比較していき、pattern の先頭までマッチしたら、カウンターを 1 増やす。
+
+17行目は比較して一致しなかった場合であり、ミスマッチを起こしたファイルの文字を見て pattern を後ろにいくつずらすか決定される。
 
 \begin{lstlisting}[frame=lrbt,label=src:bmprint,caption=Boyer-Moore String Search の Print Task,numbers=left]
 static int
@@ -356,6 +364,7 @@
     return 0;
 }
 \end{lstlisting}
+ソースコード\ref{src:bmprint} で
 
 \section{正規表現}
 % 正規表現の話を 2 ページずつぐらいで
Binary file paper/master_paper.pdf has changed