From: <le...@us...> - 2007-02-15 13:19:54
|
Revision: 331 http://svn.sourceforge.net/qcell/?rev=331&view=rev Author: lessm Date: 2007-02-15 05:19:51 -0800 (Thu, 15 Feb 2007) Log Message: ----------- Modified Paths: -------------- trunk/qcell/baseheaders/basetools.ui trunk/qcell/baseheaders/view3dtools.ui trunk/qcell/doc/licenciate_thesis/chap3/chap3.tex trunk/qcell/doc/licenciate_thesis/chap6/1DTools.png trunk/qcell/doc/licenciate_thesis/chap6/2DTools.png trunk/qcell/doc/licenciate_thesis/chap6/bTools.png trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex trunk/qcell/doc/licenciate_thesis/chap6/observer.png Added Paths: ----------- trunk/qcell/bin/examples/ trunk/qcell/bin/examples/basic3Dexperiment.FQT trunk/qcell/bin/examples/basic3Dexperiment.KI trunk/qcell/bin/examples/basic3Dexperiment.N trunk/qcell/bin/examples/dynamicmodelexample.FQT trunk/qcell/bin/examples/dynamicmodelexample.N Modified: trunk/qcell/baseheaders/basetools.ui =================================================================== --- trunk/qcell/baseheaders/basetools.ui 2007-02-15 10:31:26 UTC (rev 330) +++ trunk/qcell/baseheaders/basetools.ui 2007-02-15 13:19:51 UTC (rev 331) @@ -13,7 +13,7 @@ </rect> </property> <property name="windowTitle" > - <string>BaseTools</string> + <string>Basic Tools</string> </property> <layout class="QVBoxLayout" > <property name="margin" > Modified: trunk/qcell/baseheaders/view3dtools.ui =================================================================== --- trunk/qcell/baseheaders/view3dtools.ui 2007-02-15 10:31:26 UTC (rev 330) +++ trunk/qcell/baseheaders/view3dtools.ui 2007-02-15 13:19:51 UTC (rev 331) @@ -229,7 +229,7 @@ </size> </property> <property name="title" > - <string>Distans</string> + <string>Distance</string> </property> <layout class="QVBoxLayout" > <property name="margin" > Added: trunk/qcell/bin/examples/basic3Dexperiment.FQT =================================================================== --- trunk/qcell/bin/examples/basic3Dexperiment.FQT (rev 0) +++ trunk/qcell/bin/examples/basic3Dexperiment.FQT 2007-02-15 13:19:51 UTC (rev 331) @@ -0,0 +1,5 @@ +FQT +27 2 4 +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 +4: 10 +5: 32 Added: trunk/qcell/bin/examples/basic3Dexperiment.KI =================================================================== --- trunk/qcell/bin/examples/basic3Dexperiment.KI (rev 0) +++ trunk/qcell/bin/examples/basic3Dexperiment.KI 2007-02-15 13:19:51 UTC (rev 331) @@ -0,0 +1,209 @@ +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 + +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 + +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 + +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000001000000000 +00000000001000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 + +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000001000000000 +00000000010000000000 +00000000010000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 + +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000001000000000 +00000000010000000000 +00000000010000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 + +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000001000000000 +00000000001000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 + +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 + +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 + +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 +00000000000000000000 Added: trunk/qcell/bin/examples/basic3Dexperiment.N =================================================================== --- trunk/qcell/bin/examples/basic3Dexperiment.N (rev 0) +++ trunk/qcell/bin/examples/basic3Dexperiment.N 2007-02-15 13:19:51 UTC (rev 331) @@ -0,0 +1,12 @@ +N3 +3 3 3 27 +1 1 1 +123 +456 +789 +ABC +DRE +FGH +IJK +LMN +OPQ Added: trunk/qcell/bin/examples/dynamicmodelexample.FQT =================================================================== --- trunk/qcell/bin/examples/dynamicmodelexample.FQT (rev 0) +++ trunk/qcell/bin/examples/dynamicmodelexample.FQT 2007-02-15 13:19:51 UTC (rev 331) @@ -0,0 +1,4 @@ +FQT +3 4 4 +1 + Added: trunk/qcell/bin/examples/dynamicmodelexample.N =================================================================== --- trunk/qcell/bin/examples/dynamicmodelexample.N (rev 0) +++ trunk/qcell/bin/examples/dynamicmodelexample.N 2007-02-15 13:19:51 UTC (rev 331) @@ -0,0 +1,4 @@ +N1 +3 3 +1 +213 Modified: trunk/qcell/doc/licenciate_thesis/chap3/chap3.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/chap3/chap3.tex 2007-02-15 10:31:26 UTC (rev 330) +++ trunk/qcell/doc/licenciate_thesis/chap3/chap3.tex 2007-02-15 13:19:51 UTC (rev 331) @@ -22,6 +22,9 @@ \item praca krokowa \end{itemize} +\subsubsection {Warunki brzegowe pracy symulatora} +Domy\x9Clnymi warunkami brzegowymi uwzgl\xEAdnionymi w pracy pakietu s\xB9 warunki torusowe. Symulator nie uwzgl\xEAdnia mo\xBFliwo\x9Cci zmiany warunk\xF3w brzegowych. + \subsubsection {Wizualizacja symulacji} Program pozwala wizualizowa\xE6 symulatory LAK(tryb tekstowy), DAK(tryb testowy, tryb graficzny), TAK(tryb graficzny z dwoma trybami perspektywy). @@ -56,14 +59,18 @@ \begin{itemize} \item identyfikator literowy typu funkcji, tj FQT, \item trzy liczby (separowane spacj\xB9): liczba argument\xF3w, liczba warto\x9Cci argumentu i liczba warto\x9Cci funkcji, -\item numery zmiennych sumowanych, +\item numery zmiennych sumowanych (separowane przecinkiem), -\item Wiersze nast\xEApne podaj\xB9 kolejne sumy s (dziesi\xEAtnie) i ci\xB9gi warto\x9Cci dla ustalonego s: $f(s,w_{max}) f(s,w_{max-1}) ... f(s,w_{min})$. +\item Wiersze nast\xEApne podaj\xB9 kolejne sumy s (dziesi\xEAtnie) i ci\xB9gi warto\x9Cci dla ustalonego s: $f(s,w_{max}) f(s,w_{max-1}) ... f(s,w_{min})$, gdzie $w_{max}$ oznacza maksymalny ci\xB9g wyraz\xF3w wolnych w porz\xB9dku leksykograficznym. \end{itemize} + +\item ZIFW - zawiera w kolejnych wierszach: +\item identyfikator literowy typu funkcji, tj ZIFW, +\item trzy liczby (separowane spacj\xB9): liczba argument\xF3w, liczba warto\x9Cci argumentu i liczba warto\x9Cci funkcji, +\item kolejne wiersze zawieraj\xB9 zbiory sterowa\xF1 dla kolejnych warto\x9Cci funkcji +\item kreska (my\x9Clnik) oznacza warto\x9C\xE6 nieokre\x9Clon\xB9 (dowoln\xB9) \end{itemize} - - \item s\xB9siedztwo \begin{itemize} \item N - Jest plikiem przeznaczonym do specyfikowania uk\xB3ad\xF3w s\xB9siedztwa, np. kolejno\x9Cci i po\xB3o\xBFenia s\xB9siad\xF3w kom\xF3rki. Ma on nast\xEApuj\xB9c\xB9 struktur\xEA: @@ -80,12 +87,6 @@ \item KI - Plik opisu konfiguracji inicjalnej. Poszczeg\xF3lne wiersze oddzielone s\xB9 znakami ko\xF1ca linii, \x9Cciany zaznaczone s\xB9 poprzez pust\xB9 lini\xEA w pliku. \end{itemize} -\item formaty wewn\xEAtrzne -\begin{itemize} -\item format zapisu KB wykorzystuj\xB9cy j\xEAzyk XML, -\item wewn\xEAtrzny format opisu FL wykorzystuj\xB9cy j\xEAzyk XML \end{itemize} -\end{itemize} - % vim:fencs=cp1250:fenc=cp1250 Modified: trunk/qcell/doc/licenciate_thesis/chap6/1DTools.png =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap6/2DTools.png =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap6/bTools.png =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex 2007-02-15 10:31:26 UTC (rev 330) +++ trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex 2007-02-15 13:19:51 UTC (rev 331) @@ -91,12 +91,12 @@ \begin{itemize} \item Perspective - tryb perspektywy ludzkiego oka \item Ortho - perspektywa ortogonalna -\item Enable - w\xB3\xB9czenie przekroj\xF3w +\item Enable - przycisk w\xB3\xB9czaj\xB9cy/wy\xB3\xB9czaj\xB9cy tryb przekroju \item xy - przekr\xF3j w p\xB3aszczy\x9Fnie XY \item zy - przekr\xF3j w p\xB3aszczy\x9Fnie ZY \item xz - przekr\xF3j w p\xB3aszczy\x9Fnie XZ -\item przesuni\xEAcie w p\xB3aszczy\x9Fnie przekroju -\item Distans - odleg\xB3o\x9C\xE6 KI od kamery +\item okno przesuni\xEAcie w p\xB3aszczy\x9Fnie stosowanego przekroju +\item Distance - odleg\xB3o\x9C\xE6 \x9Crodka KI od kamery \end{itemize} \subsubsection{2D Text Tools} @@ -107,9 +107,9 @@ \end{figure} Zestaw narz\xEAdzi dla symulatora DAK. Zawiera nast\xEApuj\xB9ce opcje: \begin{itemize} -\item Colors - interpretowanie za pomoc\xB9 kolor\xF3w -\item Symbols - interpretowanie za pomoc\xB9 warto\x9Cci symboli -\item Char - interpretacja za pomoc\xB9 znak\xF3w tekstowych +\item Colors - tryb interpretacji z u\xBFyciem kolor\xF3w +\item Symbols - tryb interpretacji z u\xBFyciem warto\x9Cci symboli +\item Char - tryb interpretacji z u\xBFyciem znak\xF3w tekstowych \item Z Plane - przesuni\xEAcie w p\xB3aszczy\x9Fnie przekroju XY (widocznie jedynie dla KI 3D) \end{itemize} @@ -120,13 +120,10 @@ \caption{1D Tools} \end{figure} Zestaw narz\xEAdzi dla symulatora LAK: -\begin{itemize} -\item Colors - interpretowanie za pomoc\xB9 kolor\xF3w -\item Symbols - interpretowanie za pomoc\xB9 warto\x9Cci symboli -\item Char - interpretacja za pomoc\xB9 znak\xF3w tekstowych -\item Clear - usuni\xEAcie z tabeli poprzednich krok\xF3w symulacji -\end{itemize} +Przyciski "Colors", "Symbols", "Char" odpowiadaj\xB9 funkcjonalno\x9Cci\xB9 odpowiednim przyciskom w oknie "2D Text Tools". +Przycisk "Clear" umo\xBFliwia usuni\xEAcie poprzednich chwil czasowych z tabeli historii widoku 1D. + \subsubsection{Neigborhood Tools} \begin{figure}[!h] \centering @@ -236,7 +233,7 @@ \caption {Wczytywanie konfiguracji z plik\xF3w} \end{figure} -Aby wykona\xE6 kolejne kroi 6.10. +Aby wykona\xE6 kolejne kroi nale\xBFy u\xBFy\xE6 zestawu narz\xEAdzi przedstawionych na rysunku 6.10. \begin{figure}[!h] \centering @@ -246,36 +243,39 @@ \subsection{Podstawowy eksperyment} -Rysunki 6.11 - 6.14 przedstawiaj\xB9 kolejne kroki symulacji. Po analizie por\xF3wnawczej zauwa\xBFy\xE6 mo\xBFna i\xBF widoczne obiekty zaklasyfikowa\xE6 mo\xBFna jako \xB3aziki. +Do przedstawienia poni\xBFszego przyk\xB3adu u\xBFyto plik\xF3w "basic3Dexperiment.FQT", "basic3Dexperiment.N", "basic3Dexperiment.KI" znajduj\xB9cych si\xEA w katalogu "examples". +Po za\xB3adowaniu wszystkich plik\xF3w niezb\xEAdnych do rozpocz\xEAcia eksperymentu uaktywnia si\xEA pasek narz\xEAdzi przedstawiony na rysunku 6.10 i mo\xBFliwe jest wykonywanie kolejnych krok\xF3w eksperymentu. Alternatyw\xB9 dla \xB3adowania pliku KI jest skorzystanie z kreatora konfiguracji znajduj\xB9cego si\xEA w menu "File->New" i r\xEAczna edycja stworzonej KI. + \begin{figure}[!h] \centering \includegraphics[width=4cm]{chap6/iter1} -\caption {Krok 1} +\caption {Przebieg symulacji dla t=0} \end{figure} \begin{figure}[!h] \centering \includegraphics[width=4cm]{chap6/iter2} -\caption {Krok 2} +\caption {Przebieg symulacji dla t=1} \end{figure} \begin{figure}[!h] \centering \includegraphics[width=4cm]{chap6/iter3} -\caption {Krok 3} +\caption {Przebieg symulacji dla t=2} \end{figure} \begin{figure}[!h] \centering \includegraphics[width=4cm]{chap6/iter4} -\caption {Krok 4} +\caption {Przebieg symulacji dla t=3} \end{figure} +Rysunki 6.11 - 6.14 przedstawiaj\xB9 kolejne kroki symulacji z u\xBFyciem KI zawartej w pliku "basic3Dexperiment.KI". Z analizy przebiegu symulacji widoczny obiekt mo\xBFna zaklasyfikowa\xE6 jako \xB3azik. \subsection{Eksperyment dynamicznego dobieranie modelu obliczeniowego} Poni\xBFszy przyk\xB3ad obrazuje spos\xF3b dynamicznego doboru modelu obliczeniowego. -Zadaniem docelowym jest okre\x9Cleni modelu umo\xBFliwiaj\xB9cego obrazowanie kolizji sygna\xB3\xF3w w przestrzeni 1D. Zak\xB3adamy \xBFe sygna\xB3y poruszaj\xB9 si\xEA z pr\xEAdko\x9Cci\xB9 V=1 w przeciwnych kierunkach oraz po kolizj\xB9 pr\xEAdko\x9C\xE6 i kierunek sygna\xB3\xF3w ma pozosta\xE6 bez zmian. Do przedstawienia kolizji niezb\xEAdny jest alfabetu o czterech symbolach oraz s\xB9siedztwo tr\xF3jelementowe. +Zadaniem docelowym jest okre\x9Cleni modelu umo\xBFliwiaj\xB9cego obrazowanie kolizji sygna\xB3\xF3w w przestrzeni 1D. Zak\xB3adamy \xBFe sygna\xB3y poruszaj\xB9 si\xEA z pr\xEAdko\x9Cci\xB9 V=1 w przeciwnych kierunkach oraz po kolizj\xB9 pr\xEAdko\x9C\xE6 i kierunek sygna\xB3\xF3w ma pozosta\xE6 bez zmian. Do przedstawienia kolizji niezb\xEAdny jest alfabetu o czterech symbolach oraz s\xB9siedztwo tr\xF3jelementowe. W poni\xBFszym przyk\xB3adzie u\xBFyto plik\xF3w: "dynamicmodelexample.FQT", "dynamicmodelexample.N". Do stworzenia KI u\xBFyto kreatora KI. \begin{figure}[!h] \centering @@ -283,35 +283,35 @@ \caption {Tabela funkcji nieokre\x9Clonej} \end{figure} -Rysunek {} przedstawia tablice funkcji nieokre\x9Clonej. Stopniowo wykonuj\xB9c kolejne iteracje symulacji u\xBFytkownik wype\xB3nia tablic\xEA funkcji lokalnej. Podczas symulacji ilekro\xE6 nast\xB9pi pr\xF3ba u\xBFycia symbolu nieokre\x9Clonego post\xEAp symulacji zostaje zatrzymany a w tablicy funkcji zaznaczony zostaje symbol nieokre\x9Clony (Rys ). Miejsce wyst\xB9pienia symbolu w wyznaczanej KB r\xF3wnie\xBF zostaje zaznaczone (Rys ). +Rysunek 6.15 przedstawia tablice funkcji nieokre\x9Clonej. Stopniowo wykonuj\xB9c kolejne iteracje symulacji u\xBFytkownik wype\xB3nia tablic\xEA funkcji lokalnej. Podczas symulacji ilekro\xE6 nast\xB9pi pr\xF3ba u\xBFycia symbolu nieokre\x9Clonego post\xEAp symulacji zostaje zatrzymany, a w tablicy funkcji zaznaczony zostaje symbol nieokre\x9Clony (Rys 6.17). Zaznaczenie miejsca wyst\xB9pienia SN w wyznaczanej KB przedstawione zosta\xB3o na rysunku 6.16. \begin{figure}[!h] \centering \includegraphics[width=12cm]{chap6/fview} -\caption {Tabela funkcji nieokre\x9Clonej} +\caption {Obraz KB z zaznaczeniem wyst\xB9pienia SN} \end{figure} \begin{figure}[!h] \centering \includegraphics[width=12cm]{chap6/fdef} -\caption {Tabela funkcji nieokre\x9Clonej} +\caption {Obraz tabeli FL z zaznaczeniem SN} \end{figure} -Rysunek {} uwidacznia tablice funkcji lokalnej zawieraj\xB9cej minimaln\xB9 liczb\xEA okre\x9Clonych warto\x9Cci niezb\xEAdnych do symulacji propagacji sygna\xB3\xF3w bez okre\x9Clenia zachowania podczas kolizji. +Rysunek 6.18 uwidacznia tablice funkcji lokalnej zawieraj\xB9cej minimaln\xB9 liczb\xEA okre\x9Clonych warto\x9Cci funkcji lokalnej niezb\xEAdnych do symulacji propagacji sygna\xB3\xF3w bez okre\x9Clenia zachowania podczas kolizji. \begin{figure}[!h] \centering \includegraphics[width=12cm]{chap6/movelr} -\caption {Tablicy funkcji dla propaguj\xB9cych sygna\xB3\xF3w} +\caption {Obraz tablicy FL dla propaguj\xB9cych sygna\xB3\xF3w} \end{figure} \begin{figure}[!h] \centering \includegraphics[width=12cm]{chap6/compleattable} -\caption {Tablicy funkcji dla propaguj\xB9cych sygna\xB3\xF3w z uwzgl\xEAdnieniem wyst\xB9pienia kolizji} +\caption {Obraz tablicy FL realizuj\xB9cej wyznaczone zadanie} \end{figure} -Rysunek {} przedstawia tablice funkcji okre\x9Clon\xB9 w stopniu wystarczaj\xB9cym do realizacji za\xB3o\xBFe\xF1 docelowego eksperymentu. +Rysunek 6.19 przedstawia tablice funkcji okre\x9Clon\xB9 w stopniu wystarczaj\xB9cym do realizacji za\xB3o\xBFe\xF1 docelowych powy\xBFszego przyk\xB3adu eksperymentu. \begin{figure}[!h] \centering @@ -319,4 +319,6 @@ \caption {Widok pracy AK} \end{figure} +Rysunek 6.20 przedstawia przebieg eksperymentu dla dobranego modelu. Widok poddany zosta\xB3 interpretacji z u\xBFyciem znak\xF3w graficznych w celu osi\xB9gni\xEAcia przejrzysto\x9Cci wynik\xF3w symulacji. + % vim:fencs=cp1250:fenc=cp1250 Modified: trunk/qcell/doc/licenciate_thesis/chap6/observer.png =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dhu...@us...> - 2007-02-16 15:25:36
|
Revision: 332 http://svn.sourceforge.net/qcell/?rev=332&view=rev Author: dhubleizh Date: 2007-02-16 07:25:32 -0800 (Fri, 16 Feb 2007) Log Message: ----------- - a lot of small changes Modified Paths: -------------- trunk/qcell/baseheaders/neigborhoodtools.ui trunk/qcell/doc/licenciate_thesis/chap1/chap1.tex trunk/qcell/doc/licenciate_thesis/chap2/chap2.tex trunk/qcell/doc/licenciate_thesis/chap3/chap3.tex trunk/qcell/doc/licenciate_thesis/chap5/chap5.tex trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex trunk/qcell/doc/licenciate_thesis/chap7/chap7.tex trunk/qcell/doc/licenciate_thesis/style.tex trunk/qcell/doc/licenciate_thesis/titlepage.tex Modified: trunk/qcell/baseheaders/neigborhoodtools.ui =================================================================== --- trunk/qcell/baseheaders/neigborhoodtools.ui 2007-02-15 13:19:51 UTC (rev 331) +++ trunk/qcell/baseheaders/neigborhoodtools.ui 2007-02-16 15:25:32 UTC (rev 332) @@ -6,7 +6,7 @@ <x>0</x> <y>0</y> <width>145</width> - <height>507</height> + <height>234</height> </rect> </property> <property name="maximumSize" > @@ -16,7 +16,7 @@ </size> </property> <property name="windowTitle" > - <string>NeigborhoodTools</string> + <string>NeigbourhoodTools</string> </property> <layout class="QVBoxLayout" > <property name="margin" > @@ -182,126 +182,6 @@ </layout> </widget> </item> - <item> - <widget class="QGroupBox" name="NeigborhoodGroup" > - <property name="minimumSize" > - <size> - <width>0</width> - <height>270</height> - </size> - </property> - <property name="title" > - <string>Neigborhood</string> - </property> - <layout class="QVBoxLayout" > - <property name="margin" > - <number>9</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item> - <widget class="QTableWidget" name="neigborTable" > - <property name="columnCount" > - <number>1</number> - </property> - <column/> - </widget> - </item> - <item> - <widget class="QToolButton" name="ClearSelectedButton" > - <property name="minimumSize" > - <size> - <width>100</width> - <height>20</height> - </size> - </property> - <property name="text" > - <string>Clear selected</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="SetNButton" > - <property name="minimumSize" > - <size> - <width>100</width> - <height>20</height> - </size> - </property> - <property name="text" > - <string>Set selected</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="SetZeroButton" > - <property name="minimumSize" > - <size> - <width>100</width> - <height>20</height> - </size> - </property> - <property name="text" > - <string>Set zero point</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="AddNeigborButton" > - <property name="minimumSize" > - <size> - <width>100</width> - <height>20</height> - </size> - </property> - <property name="text" > - <string>Add neigbor</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="DelNeigborButton" > - <property name="minimumSize" > - <size> - <width>100</width> - <height>20</height> - </size> - </property> - <property name="text" > - <string>Del neigbor</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="toolButton" > - <property name="minimumSize" > - <size> - <width>100</width> - <height>20</height> - </size> - </property> - <property name="text" > - <string>Reload</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="toolButton_2" > - <property name="minimumSize" > - <size> - <width>100</width> - <height>20</height> - </size> - </property> - <property name="text" > - <string>Apply</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> </layout> </widget> <layoutdefault spacing="6" margin="11" /> Modified: trunk/qcell/doc/licenciate_thesis/chap1/chap1.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/chap1/chap1.tex 2007-02-15 13:19:51 UTC (rev 331) +++ trunk/qcell/doc/licenciate_thesis/chap1/chap1.tex 2007-02-16 15:25:32 UTC (rev 332) @@ -11,26 +11,26 @@ \label{sec:ute} Implementowanie symulator\xF3w jest integraln\xB9 cz\xEA\x9Cci\xB9 procesu formu\xB3owania i~dowodzenia nowych teorii. Gdy zdefiniowanie og\xF3lnego modelu opisuj\xB9cego badane zachowanie jest niemo\xBFliwe, przeprowadzenie i~przeanalizowanie pewnej liczby symulacji mo\xBFe prowadzi\xE6 do wyizolowania czynnik\xF3w wp\xB3ywaj\xB9cych na dany proces. W~konsekwencji tworzona jest robocza teoria, kt\xF3r\xB9 nast\xEApnie mo\xBFna pr\xF3bowa\xE6 udoskonala\xE6 lub potwierdzi\xE6 przy pomocy kolejnych eksperyment\xF3w. -Dziedzin\xB9 w kt\xF3rej mo\xBFna wykorzysta\xE6 komputerowe symulowanie jest \ac{DSZ}. \ac{AK} jest modelem \ac{DSZ}. Zbudowanie odpowiedniego narz\xEAdzia do przeprowadzania eksperyment\xF3w na modelach kom\xF3rkowych jest celowe ze wzgl\xEAdu na wk\xB3ad w badanie samej dziedziny \ac{AK} jak i w szerszej perspektywie \ac{DSZ}. W \x9Cwietle spekulacji, i\xBF mechanik\xEA rz\xB9dz\xB9c\xB9 wszech\x9Cwiatem mo\xBFna zamodelowa\xE6 w postaci regu\xB3 \ac{AK}, badanie tej dziedziny mo\xBFe prowadzi\xE6 do rozwi\xB9zania niekt\xF3rych z problem\xF3w nowoczesnej nauki, jak mechanika kwantowa, hydro- i termodynamika, czy wreszcie badania interakcji AIDS z systemem immunologicznym cz\xB3owieka\citep{aica}. +Dziedzin\xB9 w kt\xF3rej mo\xBFna wykorzysta\xE6 komputerowe symulowanie jest \ac{DSZ}. \ac{AK} jest modelem \ac{DSZ}. Zbudowanie odpowiedniego narz\xEAdzia do przeprowadzania eksperyment\xF3w na modelach kom\xF3rkowych jest celowe ze wzgl\xEAdu na wk\xB3ad w badanie samej dziedziny \ac{AK} jak i w szerszej perspektywie \ac{DSZ}. Ponadto symulatory \ac{AK} maj\xB9 swoje praktyczne zastosowania, jak modelowanie aglomeracji miejskich~--- \x9Cledzenie rozmieszczenia mieszka\xF1c\xF3w i korelowanie z przest\xEApstwami, wizualizowanie proces\xF3w biologicznych, jak np. erozja ko\x9Cci, symulowanie zachowania gaz\xF3w, czy rozprzestrzeniania si\xEA po\xBFar\xF3w las\xF3w\citep{aica}. Powy\xBFsze rozumowanie doprowadzi\xB3o do stworzenia pewnej liczby symulator\xF3w. Skupi\xB3y si\xEA one jednak g\xB3\xF3wnie na zaprezentowaniu samej idei \ac{AK}, b\xB9d\x9F na przedstawieniu wybranego, zwykle bardzo w\xB9skiego, zakresu ich dzia\xB3ania. W~literaturze oraz w~internecie nie pojawi\xB3a si\xEA dotychczas inicjatywa opracowania i~zaimplementowania systemu pozwalaj\xB9cego bezpo\x9Crednio por\xF3wnywa\xE6 r\xF3\xBFne typy i modele \ac{AK}. Dzisiejsze systemy komputerowe pozwalaj\xB9 na prowadzenie skomplikowanych oblicze\xF1 w~kr\xF3tkim czasie. Szczeg\xF3lnie na polu tr\xF3jwymiarowej grafiki komputerowej ostatnie lata pe\xB3ne by\xB3y innowacji wielokrotnie zwi\xEAkszaj\xB9cych mo\xBFliwo\x9Cci zwyk\xB3ych komputer\xF3w osobistych. Jest to idealne pod\xB3o\xBFe do pr\xF3by stworzenia symulatora \ac{AK} wykorzystuj\xB9cego mo\xBFliwo\x9Cci sprz\xEAtowe do zaprezentowania nowej jako\x9Cci wizualizacji tr\xF3jwymiarowych proces\xF3w kom\xF3rkowych. Punktem wyj\x9Ccia do podj\xEAcia tematu by\xB3y zaj\xEAcia z przedmiotu ,,Modele system\xF3w dyskretnych'' prowadzone przez dr Paw\xB3a Siwaka\citep{siwy,sicw}. Zosta\xB3y tam wprowadzone i przedstawione kluczowe poj\xEAcia stwarzaj\xB9ce mo\xBFliwo\x9Cci realizacji symulatora modeli kom\xF3rkowych ze znacznymi ulepszeniami funkcjonalnymi, w stosunku do symulator\xF3w znanych z literatury. Do poj\xEA\xE6 tych nale\xBF\xB9: \begin{itemize} -\item chwila zero, nast\xEApna -\item dobieranie modelu, s\xB9siedztw, funkcji -\item funkcja (quasi-)totalistyczna -\item integralno\x9C\xE6 modelu \ac{AK} -\item interpretacja obrazu przetwarzania -\item konfiguracja bie\xBF\xB9ca, nast\xEApna, poczatkowa -\item obserwator lokalny -\item regu\xB3y elementarne + \item idea obserwatora lokalnego i obraz\xF3w dla r\xF3\xBFnych maksymalnych pr\xEAdko\x9Cci propagacji sygna\xB3u $c$ + \item idea cz\xEA\x9Cciowej totalizacji funkcji (funkcje quasi- i wielototalistyczne) + \item rozr\xF3\xBFnienie diagram\xF3w ST i TS + \item parametr przesuni\xEAcia $q$ na diagramach 1-D + \item zasada oddzielania alfabetu symboli (stany kom\xF3rek) od atrybut\xF3w ich wizualizacji znakowej i graficznej (st\xB9d interpretacja symboli w przetwarzancyh konfiguracjach) + \item poj\xEAcie regu\xB3y elementarnej (RE), 5 poziom\xF3w oblicze\xF1 w modelach AK oraz wyznaczanie regu\xB3 modelu LAK metod\xB9 przeszukiwania z nawrotami + \item standaryzacja opis\xF3w s\xB9siedztwa i funkcji lokalnych w plikach (formaty: N1, N2, N3 oraz FQT, FMT) + \item idea symbolu zast\xEApczego dla funkcji i konfiguracji nie w pe\xB3ni okre\x9Clonych \end{itemize} \section{Podzia\xB3 zada\xF1 szczeg\xF3\xB3owych} \label{sec:pzs} -Zakres pracy podzielony zosta\xB3 na dwie cz\xEA\x9Cci. Cz\xEA\x9C\xE6 pierwsz\xB9 wykona\xB3 Cezary Krzy\xBFanowski, cz\xEA\x9C\xE6 drug\xB9~--- Leszek Smentek. Podzia\xB3 oraz om\xF3wienie zada\xF1 szczeg\xF3\xB3owych znajduje si\xEA w~rozdzia\xB3ach \ref{subsec:ck} oraz \ref{subsec:lsm}. +Zakres pracy podzielony zosta\xB3 na dwie cz\xEA\x9Cci. Cz\xEA\x9C\xE6 pierwsz\xB9 wykona\xB3 Cezary Krzy\xBFanowski, cz\xEA\x9C\xE6 drug\xB9~--- Leszek Smentek. Podzia\xB3 oraz om\xF3wienie zada\xF1 szczeg\xF3\xB3owych znajduje si\xEA w~sekcjach \ref{subsec:ck} oraz \ref{subsec:lsm}. \subsection{Zadania szczeg\xF3\xB3owe - cz\xEA\x9C\xE6 pierwsza} \label{subsec:ck} @@ -45,7 +45,7 @@ Przez \x9Crodki intensyfikacji eksperyment\xF3w rozumiane s\xB9 dodatkowe narz\xEAdzia i~tryby wspomagaj\xB9ce zmiany w~modelu, b\xB9d\x9F danych, na bie\xBF\xB9co. Zadanie polega na ich zaprojektowaniu i zaimplementowaniu w budowanym pakiecie programowym (por. \ref{subsubsec:ddm}). \subsubsection{Testy programu} -Przeprowadzone zostan\xB9 dwie fazy test\xF3w. W~pierwszej fazie pakiet przetestowany zostanie pod wzgl\xEAdem poprawno\x9Cci prowadzonych oblicze\xF1 oraz zgodno\x9Cci z~ustalon\xB9 wcze\x9Cniej list\xB9 funkcji(por. \ref{sec:syn} oraz \ref{sec:pob}). W drugiej fazie pakiet zostanie poddany testom wydajno\x9Cciowym oraz subiektywnym testom ergonomii u\xBFytkowania (por. \ref{sec:wyd} oraz \ref{sec:eu\xBF}). +Przeprowadzone zostan\xB9 dwie fazy test\xF3w. W~pierwszej fazie pakiet przetestowany zostanie pod wzgl\xEAdem poprawno\x9Cci prowadzonych oblicze\xF1 oraz zgodno\x9Cci z~ustalon\xB9 wcze\x9Cniej list\xB9 funkcji(por. \ref{sec:syn} oraz \ref{sec:pob}). W drugiej fazie pakiet zostanie oceniony pod wzgl\xEAdem wizualizacji na tle istniej\xB9cych rozwi\xB9za\xF1 oraz poddany testom ergonomii u\xBFytkowania (por. \ref{subsec:owp} oraz \ref{sec:eu\xBF}). \subsectionauthor{Leszek Smentek}{Zadania szczeg\xF3\xB3owe - cz\xEA\x9C\xE6 druga} \label{subsec:lsm} @@ -57,7 +57,7 @@ Przez \x9Crodki doboru danych rozumiany jest zestaw narz\xEAdzi pakietu pozwalaj\xB9cych na swobodn\xB9 generacj\xEA danych eksperymentu oraz podstawowe mo\xBFliwo\x9Cci edycji. \subsubsection {Wizualizacja i tryby eksperyment\xF3w dla r\xF3\xBFnych obserwator\xF3w} -To zadanie szczeg\xF3\xB3owe ma na celu implementacje efektywnej i czytelnej metody wizualizacji prowadzonego eksperymentu zar\xF3wno dla obserwatora globalnego, jak i trybu obserwatora lokalnego. +To zadanie szczeg\xF3\xB3owe ma na celu implementacje efektywnej i czytelnej metody wizualizacji przebiegu przetwarzania zar\xF3wno dla obserwatora globalnego, jak i trybu obserwatora lokalnego. \subsubsection {Opracowanie i wdro\xBFenie \x9Crodk\xF3w dokumentowania eksperyment\xF3w} Powy\xBFsze zadanie szczeg\xF3\xB3owe ma na celu opracowanie metod dokumentowania eksperyment\xF3w umo\xBFliwiaj\xB9cych prezentacje wynik\xF3w symulacji niezale\xBFnie od pakietu. Modified: trunk/qcell/doc/licenciate_thesis/chap2/chap2.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/chap2/chap2.tex 2007-02-15 13:19:51 UTC (rev 331) +++ trunk/qcell/doc/licenciate_thesis/chap2/chap2.tex 2007-02-16 15:25:32 UTC (rev 332) @@ -30,7 +30,7 @@ Przekszta\xB3cenie aktualnego stanu \ac{AK}, {\bf tj. \ac{KB}}, w stan kolejny, {\bf tj. \ac{KN}}, stosuj\xB9c \ac{FL} dla ka\xBFdej kom\xF3rki $\alpha$ jednocze\x9Cnie nazywamy {\bf iteracj\xB9}\citep{si13,siwy}. -Par\xEA w postaci uporz\xB9dkowanego ci\xB9gu stan\xF3w s\xB9siad\xF3w oraz stanu nast\xEApnego kom\xF3rki jaki ten stan implikowanego przez \ac{FL} nazywamy {\bf \ac{RE}}\citep{siit}. +Par\xEA w postaci uporz\xB9dkowanego ci\xB9gu stan\xF3w s\xB9siad\xF3w oraz stanu nast\xEApnego kom\xF3rki jaki ten stan implikuje przez \ac{FL} nazywamy {\bf \ac{RE}}\citep{siit}. Okre\x9Claj\xB9c liczb\xEA przekszta\xB3ce\xF1 \ac{KB} w \ac{KN} m\xF3wimy o {\bf liczbie iteracji}, b\xB9d\x9F o {\bf pokoleniu \ac{AK}}. Aby przedstawi\xE6 przetwarzanie kom\xF3rkowe w czasie definiujemy {\bf chwil\xEA bie\xBF\xB9c\xB9} dla \ac{KB}, oraz o {\bf chwil\xEA nast\xEApn\xB9} dla \ac{KN}. By okre\x9Cli\xE6 punkt odniesienia w czasie u\xBFywamy poj\xEAcia {\bf chwila zero} przetwarzania dla okre\x9Clenia pocz\xB9tku symulacji\citep{siwy}. @@ -60,7 +60,7 @@ \begin{trivlist} \item $|\ac{RE}|$~--- liczno\x9C\xE6 zbioru \ac{RE} \item $|A|$~--- moc alfabetu -\item $|N|$~--- liczno\x9C\xE6 ci\xB9gu s\xB9siad\xF3w definiowanego przez \ac{N} +\item $|N|$~--- d\xB3ugo\x9C\xE6 ci\xB9gu s\xB9siad\xF3w definiowanego przez \ac{N} \end{trivlist} Na podstawie wzoru \ref{equ:ain} mo\xBFna zauwa\xBFy\xE6, i\xBF ju\xBF dla stosunkowo ma\xB3ego alfabetu i s\xB9siedztwa, liczba mo\xBFliwych \ac{RE} przybiera stosunkowo du\xBF\xB9 warto\x9C\xE6. Np. dla s\xB9siedztwa w \ac{TAK} w postaci sze\x9Ccianu 3x3x3 (dwudziestu siedmiu s\xB9siad\xF3w) i binarnego alfabetu liczba mo\xBFliwych \ac{RE} wynosi $2^{27}$, czyli ponad 130 milion\xF3w. Konieczno\x9C\xE6 definiowana tak licznych zbior\xF3w \ac{RE} przez operatora jest nie do przyj\xEAcia, w zwi\xB9zku z tym korzysta si\xEA z innych format\xF3w. @@ -150,16 +150,15 @@ \subsubsection{Zestawienie technik obrazowania przetwarzania kom\xF3rkowego} \label{subsubsec:ztopk} -W punkcie tym przedstawione zosta\xB3y podstawowe techniki obrazowania. +W punkcie tym przedstawione zosta\xB3y niekt\xF3re techniki obrazowania. -\paragraph{dST} Pierwsz\xB9 technik\xB9 jest diagram dST, czyli odk\xB3adanie kolejnych stan\xF3w (S) na osi $OX$ oraz kolejnych \ac{KB} na osi czasu $OY$. Ten typ diagramu przeznaczony jest do prezentowania przetwarzania \ac{LAK}. +\begin{description} + \item[dST] Pierwsz\xB9 technik\xB9 jest diagram dST, czyli odk\xB3adanie kolejnych stan\xF3w (S) na osi $OX$ oraz kolejnych \ac{KB} na osi czasu $OY$. Ten typ diagramu przeznaczony jest do prezentowania przetwarzania \ac{LAK}. + \item[dTS] Jest to diagram koncepcyjnie podobny do diagramu dST. Polega na odk\xB3adaniu kolejnych stan\xF3w na osi $OY$ oraz kolejnych iteracji na osi $OX$. Podobnie jak diagram dST przeznaczony jest do obrazowania przetwarzania w modelu \ac{LAK}. + \item[Plansza]Dla dwuwymiarowych \ac{AK} diagramy dST i dTS nie s\xB9 czytelne. W zwi\xB9zku z tym konfiguracje \ac{DAK} przedstawiane s\xB9 na dwuwymiarowych planszach (pikslowych lub znakowych~--- por. \ref{subsubsec:twy}). W celu przedstawienia zmian w \ac{DAK}, mo\xBFna umieszcza\xE6 kolejne konfiguracje obok siebie, zaznaczaj\xB9c przy tym chwile czasowe, w kt\xF3rych dana konfiguracja wyst\xB9pi\xB3a. + \item[Sze\x9Ccian] W przypadku \ac{TAK} najprostsz\xB9 technik\xB9 wizualizowania jest przyj\xEAcie sze\x9Ccianu jako kszta\xB3tu reprezentuj\xB9cego kom\xF3rk\xEA. Ten spos\xF3b wizualizowania jest intuicyjny dla obserwatora, lecz wprowadza pewne ograniczenia. Mianowicie w naturalny spos\xF3b sze\x9Ccian implikuje posiadanie dok\xB3adnie sze\x9Cciu s\xB9siad\xF3w umiejscowionych prostopadle do ka\xBFdej ze \x9Ccian. W og\xF3lno\x9Cci model \ac{TAK} mo\xBFe definiowa\xE6 inne s\xB9siedztwo. +\end{description} -\paragraph{dTS} Jest to diagram koncepcyjnie podobny do diagramu dST. Polega na odk\xB3adaniu kolejnych stan\xF3w na osi $OY$ oraz kolejnych iteracji na osi $OX$. Podobnie jak diagram dST przeznaczony jest do obrazowania przetwarzania w modelu \ac{LAK}. - -\paragraph{plansza} Dla dwuwymiarowych \ac{AK} diagramy dST i dTS nie s\xB9 czytelne. W zwi\xB9zku z tym konfiguracje \ac{DAK} przedstawiane s\xB9 na dwuwymiarowych planszach (pikslowych lub znakowych~--- por. \ref{subsubsec:twy}). W celu przedstawienia zmian w \ac{DAK}, mo\xBFna umieszcza\xE6 kolejne konfiguracje obok siebie, zaznaczaj\xB9c przy tym chwile czasowe, w kt\xF3rych dana konfiguracja wyst\xB9pi\xB3a. - -\paragraph{sze\x9Ccian} W przypadku \ac{TAK} najprostsz\xB9 technik\xB9 wizualizowania jest przyj\xEAcie sze\x9Ccianu jako kszta\xB3tu reprezentuj\xB9cego kom\xF3rk\xEA. Ten spos\xF3b wizualizowania jest intuicyjny dla obserwatora, lecz wprowadza pewne ograniczenia. Mianowicie w naturalny spos\xF3b sze\x9Ccian implikuje posiadanie dok\xB3adnie sze\x9Cciu s\xB9siad\xF3w umiejscowionych prostopadle do ka\xBFdej ze \x9Ccian. W og\xF3lno\x9Cci model \ac{TAK} mo\xBFe definiowa\xE6 inne s\xB9siedztwo. - \subsubsection{Tryby wizualizowania konfiguracji bie\xBF\xB9cej} \label{subsubsec:twy} @@ -207,7 +206,7 @@ \subsubsection{Historia przetwarzania} \label{subsubsec:hit} -Przechowywanie ca\xB3ej historii przetwarzania pozwala na powr\xF3t do wcze\x9Cniejszych iteracji i dok\xB3adnej analizy, lub zmiany modelu lub danych \ac{AK}. W tym celu pakiet powinien udost\xEApni\xE6 p\xB3ynne poruszanie si\xEA wstecz historii iteracji, edycj\xEA \ac{KB} i~wznowienie symulacji od momentu zmiany. +Przechowywanie ca\xB3ej historii przetwarzania pozwala na powr\xF3t do wcze\x9Cniejszych iteracji i dok\xB3adnej analizy, lub zmiany modelu albo danych \ac{AK}. W tym celu pakiet powinien udost\xEApni\xE6 p\xB3ynne poruszanie si\xEA wstecz historii iteracji, edycj\xEA \ac{KB} i~wznowienie symulacji od momentu zmiany. W~sytuacji idealnej pakiet przechowywa\xB3by ca\xB3a histori\xEA przetwarzania, \xB3\xB9cznie z~rozga\xB3\xEAzieniami wynikaj\xB9cymi z~powrot\xF3w i~zmian, oraz p\xB3ynne poruszanie si\xEA po niej. Modified: trunk/qcell/doc/licenciate_thesis/chap3/chap3.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/chap3/chap3.tex 2007-02-15 13:19:51 UTC (rev 331) +++ trunk/qcell/doc/licenciate_thesis/chap3/chap3.tex 2007-02-16 15:25:32 UTC (rev 332) @@ -10,7 +10,7 @@ Pakiet daje mo\xBFliwo\x9C\xE6 utrwalania efekt\xF3w eksperyment\xF3w w nast\xEApuj\xB9cych trybach: \begin{itemize} \item zapis poszczeg\xF3lnych element\xF3w modelu do osobnych plik\xF3w(KI, N, FL) -\item zapis konfiguracji bie\xBF\xB9cej wraz z historiom przetwarzania do pojedy\xF1czego pliku +\item zapis konfiguracji bie\xBF\xB9cej wraz z histori\xB9 przetwarzania do pojedynczego pliku \item eksport konfiguracji do pliku LIF \end{itemize} @@ -38,7 +38,7 @@ \subsubsection{Edycja KI} Pakiet daje mo\xBFliwo\x9C\xE6 edycji konfiguracji bie\xBF\xB9cej oraz posiada zestaw narz\xEAdzi wspomagaj\xB9cych(wype\xB3nianie obszar\xF3w, kopiowanie/wklejanie obszar\xF3w). -\subsubsection{Wymiana danych ze popularnymi pakietami} +\subsubsection{Wymiana danych z popularnymi pakietami} Aplikacja umo\xBFliwia zapis/odczyt plik\xF3w w formacie "lif" i "life". \subsubsection {Tryby obserwatora} @@ -79,7 +79,7 @@ \item do czterech liczb ca\xB3kowitych: \textit{W K S n} - okre\x9Clenie liczby wierszy, kolumn, \x9Ccian oraz s\xB9siad\xF3w. \item $W_{od} K_{od}, S_{od}$: pozycja odniesienia, od 0 (oznacza po\xB3o\xBFenie okna, lub miejsce zapisu jego wyniku). \end{itemize} -Pozosta\xB3e wiersze podaj\xB9 numery porz\xB9dkowe i rozmieszczenie s\xB9siad\xF3w w tablicy d wymiarowej (liczby od 1 do n). Kolejno\x9C\xE6 \x9Ccian: \textit{s}=0, \textit{s}=1, ..., \textit{s}=\textit{S}-1. +Pozosta\xB3e wiersze podaj\xB9 numery porz\xB9dkowe i rozmieszczenie s\xB9siad\xF3w w tablicy d-wymiarowej (liczby od 1 do n). Kolejno\x9C\xE6 \x9Ccian: \textit{s}=0, \textit{s}=1, ..., \textit{s}=\textit{S}-1. \end{itemize} \item konfiguracja inicjalna Modified: trunk/qcell/doc/licenciate_thesis/chap5/chap5.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/chap5/chap5.tex 2007-02-15 13:19:51 UTC (rev 331) +++ trunk/qcell/doc/licenciate_thesis/chap5/chap5.tex 2007-02-16 15:25:32 UTC (rev 332) @@ -42,56 +42,14 @@ Dodatkowo zwr\xF3cono uwag\xEA na brak ikon/kursor\xF3w u\xB3atwiaj\xB9cych odgadni\xEAcie przeznaczenia poszczeg\xF3lnych tryb\xF3w i~opcji. -\section{Wydajno\x9Cci} -\label{sec:wyd} -Testy wydajno\x9Cci zosta\xB3y przeprowadzone z uwagi na dwa aspekty. Po pierwsze podczas pierwszych pr\xF3b u\xBFytkowania pakietu zarejestrowano znaczy spadek pr\xEAdko\x9Cci generowania kolejnych iteracji przy w\xB3\xB9czonym trybie rejestrowania \ac{RE} (por. \ref{subsubsec:rel}). Po drugie przeci\xEAtne komputery osobiste, nie wykorzystywane do gier komputerowych, nie s\xB9 wyposa\xBFone w zaawansowane uk\xB3ady graficzne, wi\xEAc b\xB3\xEAdem by\xB3oby uzale\xBFnia\xE6 dzia\xB3anie programu od stosunkowo nowego standardu OpenGL 2.0. Standard ten w pe\xB3ni spe\xB3niaj\xB9 jedynie najnowsze uk\xB3ady graficzne. +\subsection{Ocena wizualizacji pakietu} +\label{subsec:owp} +Ocena zaimplementowanego symulatora powsta\xB3a w wyniku por\xF3wnania z mo\xBFliwo\x9Cciami program\xF3w wymienionych w sekcji \ref{sec:pmz}. -\subsection{Platforma testowa} -\label{subsec:pte} -Do test\xF3w wykorzystano komputer przeno\x9Cny firmy IBM, model T42. Parametry komputera testowego zebrane s\xB9 w~tabeli \ref{tab:ppt}. +Dwie podstawowe cechy wyr\xF3\xBFniaj\xB9 zbudowany symulator na tle ju\xBF istniej\xB9cych, mianowicie wizualizacja \ac{TAK} oraz wizualizacja przetwarzania z \ac{OL}. Jak model \ac{TAK} jest znany w literaturze oraz podj\xEAto ju\xBF pr\xF3by obrazowania przetwarzania tr\xF3jwymiarowego, tak koncepcja \ac{OL} jest unikalna dla powsta\xB3ego pakietu programowego\citep{siim,siwy}. -\begin{table}[!htp] - \caption{Parametry platformy testowej\hspace*{\textwidth}} - \centering - \begin{tabular}{l @{ }@{ }@{ }@{ } p{20em}} - Procesor & Intel Pentium M 1.7GHz \\ - \hline - Pami\xEA\xE6 & DDR 1024MB \\ - \hline - Karta graficzna & ATI Technologies Inc. Radeon Mobility M7 (Radeon Mobility 7500) \\ - \hline - System operacyjny & PLD Linux 2.99 (Th) - \end{tabular} - \label{tab:ppt} -\end{table} +Ponadto interpretowanie wyniku przetwarzania, jako jedno z podstawowych wymaga\xF1 ,,idealnego symulatora'', zosta\xB3o zrealizowane w omawianym symulatorze najpe\xB3niej. Analizowane aplikacje zawieraj\xB9 elementy interpretacji, jednak s\xB9 one niejako uboczn\xB9 kwesti\xB9 i zwykle k\xB3opotliw\xB9 w obs\xB3udze przez operatora (np. definiowanie kolor\xF3w w plikach). Interpretowanie za pomoc\xB9 znak\xF3w nie zosta\xB3o zaimplementowane w \xBFadnym z testowanych symulator\xF3w. Tryb tekstowy jest r\xF3wnie\xBF cech\xB9 unikaln\xB9 zrealizowanego pakietu. -Wszelkie tryby oszcz\xEAdzania energii zosta\xB3y wy\xB3\xB9czone. Komputer dzia\xB3a\xB3 z~maksymaln\xB9 mo\xBFliw\xB9 pr\xEAdko\x9Cci\xB9. +Programy z sekcji \ref{sec:pmz} implementuj\xB9 tylko po jednym trybie wizualizowania. Zbudowany symulator oferuje 2 tryby graficzne (dla modeli \ac{TAK} i {DAK}) oraz dwa modele tekstowe (dla modeli \ac{DAK} oraz \ac{LAK}). Jedynie obrazowanie opartych na grafach \ac{AK}, oferowane przez program DDLab, nie zosta\xB3o zrealizowanie. -\subsection{Procedura testowa} -\label{subsec:pte} -Wykorzystano scenariusze stworzone na potrzeby test\xF3w poprawno\x9Cci oblicze\xF1 z~rozdzia\xB3u \ref{sec:pob}. Dla ka\xBFdego z~obiekt\xF3w przeprowadzono 10,000 iteracji. Kluczowym parametrem by\xB3 czas, mierzony osobno dla tryb\xF3w graficznych, jak i~tekstowych. - -\subsection{Automaty jednowymiarowe} -\label{subsec:aje} - - \x8Crednia z wynik\xF3w wszystkich pomiar\xF3w wynosi dwie minuty i~czterdzie\x9Cci sekund. Zauwa\xBFalna jest wyra\x9Fna zale\xBFno\x9C\xE6 wydajno\x9Cci od liczby wierszy widocznych na ekranie. Spowodowane jest to znacznym nak\xB3adem potrzebnym do uaktualniania ca\xB3o\x9Cci tabeli, w~kt\xF3rej wy\x9Cwietlone s\xB9 kolejne iteracje. Z~ka\xBFdym nowym wierszem pojawiaj\xB9cym sie na ekranie przetwarzanie wyra\x9Fnie zwalnia, a\xBF dociera do momentu zape\xB3nienia ca\xB3ej dost\xEApnej przestrzeni. Nast\xEApnie przetwarzanie obywa si\xEA ze sta\xB3a pr\xEAdko\x9Cci\xB9, w~zasadzie niezale\xBFn\xB9 od ilo\x9Cci przechowywanych iteracji. - -Tryb rejestrowania \ac{RE} nie wp\xB3ywa znacz\xB9co na pr\xEAdko\x9C\xE6 oblicze\xF1 \ac{LAK} (w~por\xF3wnaniu do wielowymiarowych \ac{AK}). - -\subsection{Automaty dwuwymiarowe} -\label{subsec:adw} - -Tryb tekstowy dwuwymiarowych \ac{AK} osi\xB9ga\xB3 podobne rezultaty do \ac{LAK}. Czasy nieco si\xEA wyd\xB3u\xBFy\xB3y i~wynios\xB3y \x9Crednio trzy minuty i dwadzie\x9Ccia dwie minuty. Spos\xF3b prezentacji danych, identyczny do trybu jednowymiarowego, charakteryzuje si\xEA tym samym spowalnianiem do momentu ca\xB3kowitego wype\xB3nienia ekranu. - -Graficzna reprezentacja \ac{DAK}, a~co za tym idzie wykorzystanie karty graficznej do uaktualniania stanu kom\xF3rek, zdecydowanie poprawia wyniki. Czas trwania eksperymentu spad\xB3 \x9Crednio o~$23\%$ i wyni\xF3s\xB3 dwie minuty i~czterdzie\x9Cci trzy sekundy, rekompensuj\xB9c tym samym przyrost oblicze\xF1 wynikaj\xB9cych z~dodatkowego wymiaru. - -Rejestrowanie \ac{RE} zauwa\xBFalnie wyd\xB3u\xBFa czas obliczania pojedynczej iteracji. Wynika to przede wszystkim ze znacznego wzrostu liczby \ac{RE} generowanych przez \ac{DAK}. Wp\xB3yw ten jest jednakowy zar\xF3wno dla trybu tekstowego, jak i~graficznego. - -\subsection{Automaty tr\xF3jwymiarowe} -\label{subsec:atr} - -W~przypadku \ac{TAK} dost\xEApny jest jedynie tryb graficzny. Osi\xB9gni\xEAte wyniki s\xB9 do\x9C\xE6 kontrowersyjne i~sprzeczne na pierwszy rzut oka. \x8Credni czas trwania eksperymentu nie przekracza\xB3 trzech minut i~dziesi\xEAciu sekund. Wydawa\xE6 by si\xEA mog\xB3o, i\xBF wprowadzenie trzeciego wymiaru zdecydowanie pogorszy osi\xB9gi programu. Jednak\xBFe nowoczesne karty graficzne optymalizowane s\xB9 pod wzgl\xEAdem przetwarzania grafiki 3D. Nowe rozwi\xB9zania sprz\xEAtowe i~algorytmiczne nie s\xB9 wykorzystywane do wy\x9Cwietlania grafiki 2D. Zysk wynikaj\xB9cy z~ukierunkowania uk\xB3ad\xF3w graficznych jest szczeg\xF3lnie widoczny, gdy podczas przeprowadzania testu wydajno\x9Cci opr\xF3cz prowadzenia oblicze\xF1 dodatkowo manipulujemy wy\x9Cwietlaniem. Powoduje to znaczny spadek og\xF3lnej wydajno\x9Cci w~trybie 2D, podczas gdy tryb tr\xF3jwymiarowy w~zasadzie nie jest widocznie spowolniony, a~jedyne op\xF3\x9Fnienia wynikaj\xB9 raczej z~procedur obs\xB3ugi ruch\xF3w myszki, ni\xBF z~samych manipulacji. - -Natomiast tworzenie listy \ac{RE} w~bardzo znacz\xB9cy spos\xF3b pogarsza osi\xB9gi. Pr\xEAdko\x9C\xE6 spada do $25\%$. Przetwarzanie zwalania do tego stopnia, i\xBF wyra\x9Fnie wida\xE6 przerwy mi\xEAdzy ka\xBFd\xB9 pojedyncz\xB9 iteracj\xB9. Liczba \ac{RE} tworzona w~modelu \ac{TAK} stanowi znaczn\xB9 cz\xEA\x9C\xE6 og\xF3lnej liczby kom\xF3rek do obliczenia. - % vim:fencs=cp1250:fenc=cp1250 Modified: trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex 2007-02-15 13:19:51 UTC (rev 331) +++ trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex 2007-02-16 15:25:32 UTC (rev 332) @@ -43,7 +43,7 @@ \item About - informacje o pakiecie \end{itemize} \subsubsection{Help} -Menu "Help" posiada jedynie pozycje "About wy\x9Cwietlaj\xB9c\xB9 informacje o pakiecie. +Menu "Help" posiada jedynie pozycj\xEA "About" wy\x9Cwietlaj\xB9c\xB9 informacje o pakiecie. \subsection{Zak\xB3adki funkcji} Zak\xB3adki funkcji umo\xBFliwiaj\xB9 nawigacj\xEA pomi\xEAdzy poszczeg\xF3lnymi trybami wizualizacji, a tak\xBFe pomi\xEAdzy narz\xEAdziami funkcji lokalnej, s\xB9siedztwa oraz symboli. @@ -55,7 +55,7 @@ \item 1D Text View - widok symulatora LAK \item Symbols - interpretacja symboli \item Function - tabela funkcji lokalnej -\item Neigborhood - widok s\xB9siedztwa +\item Neighbourhood - widok s\xB9siedztwa \end{itemize} Podczas pracy symulatora w modelu TAK zak\xB3adki "2D Text View" oraz "2D Graphics View" przedstawiaj\xB9 przekr\xF3j sze\x9Ccianu KB w p\xB3aszczy\x9Fnie XY. przesuni\xEAcie p\xB3aszczyzny okre\x9Clone jest polem "Z Plane" w oknie "2D Text Tools". @@ -124,11 +124,11 @@ Przyciski "Colors", "Symbols", "Char" odpowiadaj\xB9 funkcjonalno\x9Cci\xB9 odpowiednim przyciskom w oknie "2D Text Tools". Przycisk "Clear" umo\xBFliwia usuni\xEAcie poprzednich chwil czasowych z tabeli historii widoku 1D. -\subsubsection{Neigborhood Tools} +\subsubsection{Neighbourhood Tools} \begin{figure}[!h] \centering \includegraphics[width=3cm]{chap6/NTools} -\caption{Neigborhood Tools} +\caption{Neighbourhood Tools} \end{figure} Zestaw narz\xEAdzi do konfigurowania s\xB9siedztwa: \begin{itemize} @@ -164,7 +164,7 @@ Aby oddali\xE6/przybli\xBFy\xE6 widok nale\xBFy u\xBFy\xE6 \x9Crodkowego k\xF3\xB3ka myszy. \subsection{Edycja konfiguracji bie\xBF\xB9cej} -Edycja konfiguracji mo\xBFliwa jedynie w trybie obserwatora globalnego po za\xB3adowaniu wszystkich element\xF3w modelu(FL, N, KI). +Edycja konfiguracji mo\xBFliwa jest jedynie w trybie obserwatora globalnego po za\xB3adowaniu wszystkich element\xF3w modelu(FL, N, KI). \subsubsection{Edycja bezpo\x9Crednia} Aby bezpo\x9Crednio edytowa\xE6 KB automatu nale\xBFy wybra\xE6 tryb "Edit" z okna "Basic Tools". Ka\xBFdorazowe zaznaczenie za pomoc\xB9 kursora kom\xF3rki KB spowoduje zmian\xEA symbolu na zaznaczony w tabeli symboli. @@ -225,7 +225,7 @@ \item zapis wynik\xF3w \end{itemize} -Dob\xF3r modelu odbywa si\xEA poprzez wczytanie plik\xF3w konfiguracji funkcji lokalnej oraz s\xB9siedztwa. W tym celu nale\xBFy wybra\xE6 z menu g\xB3\xF3wnego zak\xB3adk\xEA "File" nast\xEApnie pozycje "Open". Po wczytaniu s\xB9siedztwa ("Neigborhood"), funkcji lokalnej ("Function"), oraz konfiguracji inicjalnej ("World") mo\xBFliwe jest wykonanie kolejnych iteracji symulacji. +Dob\xF3r modelu odbywa si\xEA poprzez wczytanie plik\xF3w konfiguracji funkcji lokalnej oraz s\xB9siedztwa. W tym celu nale\xBFy wybra\xE6 z menu g\xB3\xF3wnego zak\xB3adk\xEA "File" nast\xEApnie pozycje "Open". Po wczytaniu s\xB9siedztwa ("Neighbourhood"), funkcji lokalnej ("Function"), oraz konfiguracji inicjalnej ("World") mo\xBFliwe jest wykonanie kolejnych iteracji symulacji. \begin{figure}[!h] \centering @@ -238,7 +238,7 @@ \begin{figure}[!h] \centering \includegraphics[width=14cm]{chap6/step} -\caption {Narz\xEAdzia iterowanie krok\xF3w} +\caption {Narz\xEAdzia iterowania krok\xF3w} \end{figure} \subsection{Podstawowy eksperyment} @@ -273,14 +273,15 @@ Rysunki 6.11 - 6.14 przedstawiaj\xB9 kolejne kroki symulacji z u\xBFyciem KI zawartej w pliku "basic3Dexperiment.KI". Z analizy przebiegu symulacji widoczny obiekt mo\xBFna zaklasyfikowa\xE6 jako \xB3azik. -\subsection{Eksperyment dynamicznego dobieranie modelu obliczeniowego} +\subsection{Eksperyment dynamicznego dobierania modelu obliczeniowego} Poni\xBFszy przyk\xB3ad obrazuje spos\xF3b dynamicznego doboru modelu obliczeniowego. -Zadaniem docelowym jest okre\x9Cleni modelu umo\xBFliwiaj\xB9cego obrazowanie kolizji sygna\xB3\xF3w w przestrzeni 1D. Zak\xB3adamy \xBFe sygna\xB3y poruszaj\xB9 si\xEA z pr\xEAdko\x9Cci\xB9 V=1 w przeciwnych kierunkach oraz po kolizj\xB9 pr\xEAdko\x9C\xE6 i kierunek sygna\xB3\xF3w ma pozosta\xE6 bez zmian. Do przedstawienia kolizji niezb\xEAdny jest alfabetu o czterech symbolach oraz s\xB9siedztwo tr\xF3jelementowe. W poni\xBFszym przyk\xB3adzie u\xBFyto plik\xF3w: "dynamicmodelexample.FQT", "dynamicmodelexample.N". Do stworzenia KI u\xBFyto kreatora KI. +Zadaniem docelowym jest okre\x9Cleni modelu umo\xBFliwiaj\xB9cego obrazowanie kolizji sygna\xB3\xF3w w przestrzeni 1D. Zak\xB3adamy \xBFe sygna\xB3y poruszaj\xB9 si\xEA z pr\xEAdko\x9Cci\xB9 V=1 w przeciwnych kierunkach oraz po kolizj\xB9 pr\xEAdko\x9C\xE6 i kierunek sygna\xB3\xF3w ma pozosta\xE6 bez zmian. Do przedstawienia kolizji niezb\xEAdny jest alfabet o czterech symbolach oraz s\xB9siedztwo tr\xF3jelementowe. W poni\xBFszym przyk\xB3adzie u\xBFyto plik\xF3w: "dynamicmodelexample.FQT", "dynamicmodelexample.N". Do stworzenia KI u\xBFyto kreatora KI. \begin{figure}[!h] \centering \includegraphics[width=12cm]{chap6/undefinedfunction} \caption {Tabela funkcji nieokre\x9Clonej} +\label{fig:tfn} \end{figure} Rysunek 6.15 przedstawia tablice funkcji nieokre\x9Clonej. Stopniowo wykonuj\xB9c kolejne iteracje symulacji u\xBFytkownik wype\xB3nia tablic\xEA funkcji lokalnej. Podczas symulacji ilekro\xE6 nast\xB9pi pr\xF3ba u\xBFycia symbolu nieokre\x9Clonego post\xEAp symulacji zostaje zatrzymany, a w tablicy funkcji zaznaczony zostaje symbol nieokre\x9Clony (Rys 6.17). Zaznaczenie miejsca wyst\xB9pienia SN w wyznaczanej KB przedstawione zosta\xB3o na rysunku 6.16. Modified: trunk/qcell/doc/licenciate_thesis/chap7/chap7.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/chap7/chap7.tex 2007-02-15 13:19:51 UTC (rev 331) +++ trunk/qcell/doc/licenciate_thesis/chap7/chap7.tex 2007-02-16 15:25:32 UTC (rev 332) @@ -1,17 +1,16 @@ \chapterauthor{Cezary Krzy\xBFanowski}{Wnioski} \label{chap:wni} \begin{enumerate} - \item W celu zapoznania si\xEA z symulacj\xB9 \ac{AK} przeanalizowano dzia\xB3anie reprezentatywnej grupy pi\xEAciu aplikacji realizuj\xB9cych to zadanie. Stwierdzono ukierunkowanie istniej\xB9cych rozwi\xB9za\xF1 na w\xB9sk\xB9 grup\xEA modeli \ac{AK} \x9Cci\x9Cle powi\xB9zanych z klasycznym modelem ,,Game Of Life'' Conwaya. - \item Opracowano zestawienie cech hipotetycznego ,,idealnego symulatora''. Lista funkcji wynika z istniej\xB9cych rozwi\xB9za\xF1 oraz proponuje nowe, wprowadzone niedawno do literatury, jak np. obserwator lokalny\citep{siim, siwy}. - \item Zaprojektowano i zrealizowano programowy symulator przetwarzania kom\xF3rkowego, unikalny w por\xF3wnaniu z analizowanymi programami. Pakiet implementuje now\xB9 koncepcj\xEA obserwatora lokalnego, funkcji quasi-totalistycznych jako formatu reprezentacji \ac{FL} o znacznie wi\xEAkszej sile wyrazu ni\xBF w przypadku analizowanych symulator\xF3w. - \item Zrealizowano wizualizacj\xEA jedno-, dwu- oraz tr\xF3jwymiarowych automat\xF3w kom\xF3rkowych w trybach zar\xF3wno tekstowym, jak i graficznym. Do mo\xBFliwo\x9Cci wizualizacyjnych do\xB3\xB9czono interpretacj\xEA obraz\xF3w przetwarzania oraz list\xEA \ac{RE}. -\item Opracowano zestaw narz\xEAdzi wspomagaj\xB9cych prac\xEA z symulatorem oraz intensyfikuj\xB9cych prowadzenie eksperyment\xF3w. Do narz\xEAdzi tych zaliczaj\xB9 si\xEA rytmy przetwarzania (krokowy, ci\xB9g\xB3y), metody manipulowania przestrzeni\xB9 tr\xF3jwymarow\xB9 (obr\xF3t, przesuni\xEAcie, zbli\xBFenie/oddalenie) oraz wspomaganie definiowania konfiguracji (kopiowanie, wklejanie, modyfikowanie). -\item Wdro\xBFono \x9Crodki dokumentowania eksperyment\xF3w w postaci historii przetwarzania. Z uwagi na szacowan\xB9 pracoch\xB3onno\x9C\xE6 pomini\xEAto implmentacj\xEA form multimedialnych dokumentowania. -\item Przeprowadzono testy maj\xB9ce na celu zweryfikowanie poprawno\x9Cci dzia\xB3ania pakietu programowego oraz testy wydajno\x9Cciowe. Stwierdzono zgodno\x9C\xE6 aplikacji z formatami plik\xF3w wej\x9Cciowych \ac{N}, \ac{FQT} i KI. Zweryfikowano mo\xBFliwo\x9C\xE6 importowania i eksportowania podzbioru eksperyment\xF3w kompatybilnych z programami MCell, XLife i Life32. -\item W wyniku ogranicze\xF1 czasowych nie zaimplementowano trybu por\xF3wnawczego dla dw\xF3ch przetwarza\xF1, nie zapewniono zgodno\x9Cci z wszystkimi zak\xB3adanymi formatami plik\xF3w. Dodatkowo pomi\xEAto interpretacj\xEA obrazu na podstawie listy \ac{RE} oraz automatyczne uzupe\xB3nianie \ac{SN}. -\item Przy implementowaniu pakietu programowego utrwalono umiej\xEAtno\x9Cci pracy grupowej i wykorzystywania narz\xEAdzi pracy grupowej, takich jak repozytorium \ac{SVN}, czy \gls{bugtracker}. -\item Podczas budowania pakietu programowego ugruntowano umiej\xEAtno\x9Cci programistyczne w zakresie j\xEAzyka C++, grafiki tr\xF3jwymiarowej (biblioteki OpenGL) oraz implementowania aplikacji wieloplatformowych (z u\xBFyciem bibliotek Qt). -\item Napisano blisko pi\xEAtna\x9Ccie tysi\xEAcy linijek kodu o szacunkowej pracoch\xB3onno\x9Cci przekraczaj\xB9cej p\xF3\xB3tora tysi\xB9ca roboczogodzin. + \item W celu zapoznania si\xEA z symulacj\xB9 \ac{AK} przeanalizowano dzia\xB3anie reprezentatywnej grupy pi\xEAciu aplikacji realizuj\xB9cych to zadanie. Stwierdzono ukierunkowanie istniej\xB9cych rozwi\xB9za\xF1 na w\xB9sk\xB9 grup\xEA modeli \ac{AK} \x9Cci\x9Cle powi\xB9zanych z klasycznym modelem ,,Game Of Life'' Conwaya. Definiowanie s\xB9siedztwa jest zwykle ograniczone do wariacji n/t s\xB9siedztwa von Noumana i Moore'a. + \item Opracowano zestawienie cech hipotetycznego ,,idealnego symulatora''. Lista funkcji wynika z istniej\xB9cych rozwi\xB9za\xF1 oraz proponuje nowe, wprowadzone niedawno do literatury, jak np. obserwator lokalny czy definiowane regu\xB3 elementarnych\citep{siim, siwy}. + \item Zaprojektowano i zrealizowano programowy symulator przetwarzania kom\xF3rkowego, unikalny w por\xF3wnaniu z analizowanymi programami. Pakiet implementuje now\xB9 koncepcj\xEA obserwatora lokalnego, funkcj\xEA quasi-totalistyczn\xB9 jako format reprezentacji \ac{FL}. Zrealizowany symulator oddziela elementy modelu i dane \ac{AK} od wizualizacji. Zastosowanie standard\xF3w plik\xF3w zaproponowanych przez dr Paw\xB3a Siwaka\citep{sicw} pozwala na definiowanie modelu \ac{AK} w spos\xF3b znacznie szerszy ni\xBF analizowane programy. + \item Zrealizowano wizualizacj\xEA jedno-, dwu- oraz tr\xF3jwymiarowych automat\xF3w kom\xF3rkowych. Zaimplementowano tryb tekstowy dla jedno- i dwuwymiarowych \ac{AK}, oraz tryb graficzny dla konfiguracji dwu- i tr\xF3jwymiarowych. Do mo\xBFliwo\x9Cci wizualizacyjnych do\xB3\xB9czono interpretacj\xEA obraz\xF3w przetwarzania(dob\xF3r znaku, koloru) oraz list\xEA \ac{RE}. + \item Opracowano zestaw narz\xEAdzi wspomagaj\xB9cych prac\xEA z symulatorem oraz intensyfikuj\xB9cych prowadzenie eksperyment\xF3w. Do narz\xEAdzi tych zaliczaj\xB9 si\xEA rytmy przetwarzania (krokowy, ci\xB9g\xB3y, co n-iteracji), metody manipulowania przestrzeni\xB9 tr\xF3jwymarow\xB9 (obr\xF3t, przesuni\xEAcie, zbli\xBFenie/oddalenie) oraz wspomaganie definiowania konfiguracji (kopiowanie, wklejanie, modyfikowanie). Zrealizowano wspomaganie doboru modelu w postaci uzupe\xB3niania \ac{FL}. + \item Wdro\xBFono \x9Crodki dokumentowania eksperyment\xF3w w postaci historii przetwarzania. Z uwagi na szacowan\xB9 pracoch\xB3onno\x9C\xE6 pomini\xEAto implmentacj\xEA form multimedialnych dokumentowania. Nie zrealizowano zapis\xF3w do pliku obraz\xF3w przetwarzania (diagram\xF3w ST, ,,plansz'' 2-D, czy ,,sze\x9Ccian\xF3w'' 3-D). + \item Zwr\xF3cono szczeg\xF3ln\xB9 uwag\xEA na rozdzielenie wizualizacji od oblicze\xF1 w implementacji\citep{iowp}. Ponadto skrupulatnie zaprojektowano i przetestowano interfejs graficzny \ac{GUI} pod k\xB9tem komfortu pracy operatora. Zrealizowano szereg odczepialnych pask\xF3w z narz\xEAdziami. Zaimplementowano algorytm wy\x9Cwietlania jedynie niezb\xEAdnych narz\xEAdzi dla danego trybu wizualizacji. Do oryginalnych napis\xF3w w j\xEAzyku angielskim dodano polskie t\xB3umaczenia. + \item Przeprowadzono testy maj\xB9ce na celu zweryfikowanie poprawno\x9Cci dzia\xB3ania pakietu programowego. Stwierdzono zgodno\x9C\xE6 aplikacji z formatami plik\xF3w wej\x9Cciowych \ac{N}, \ac{FQT}, REAK, ZIFW i KI. Zweryfikowano mo\xBFliwo\x9C\xE6 importowania i eksportowania podzbioru eksperyment\xF3w kompatybilnych z programami MCell, XLife i Life32. + \item W wyniku ogranicze\xF1 czasowych nie zaimplementowano trybu por\xF3wnawczego dla dw\xF3ch przetwarza\xF1, nie zapewniono zgodno\x9Cci z wszystkimi zak\xB3adanymi formatami plik\xF3w. Dodatkowo pomini\xEAto interpretacj\xEA obrazu na podstawie listy \ac{RE} oraz automatyczne uzupe\xB3nianie \ac{SN} w \ac{KB}. + \item Podczas budowania pakietu programowego ugruntowano umiej\xEAtno\x9Cci programistyczne w zakresie j\xEAzyka C++, grafiki tr\xF3jwymiarowej (biblioteki OpenGL) oraz implementowania aplikacji wieloplatformowych (z u\xBFyciem bibliotek Qt). \end{enumerate} % vim:fencs=cp1250:fenc=cp1250 Modified: trunk/qcell/doc/licenciate_thesis/style.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/style.tex 2007-02-15 13:19:51 UTC (rev 331) +++ trunk/qcell/doc/licenciate_thesis/style.tex 2007-02-16 15:25:32 UTC (rev 332) @@ -77,7 +77,7 @@ \def\przerwa{4.5} %\addtocontents{toc}{\setcounter{\protect\tocdepth}{4}} %\setcounter{secnumdepth}{-1} -\setcounter{secnumdepth}{3} +%\setcounter{secnumdepth}{3} %\setcounter{tocdepth}{4} \renewcommand{\cftchapleader}{\cftdotfill{\przerwa}\author} \renewcommand{\cftsecleader}{\cftdotfill{\przerwa}\author \cftdotfill{\przerwa}} Modified: trunk/qcell/doc/licenciate_thesis/titlepage.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/titlepage.tex 2007-02-15 13:19:51 UTC (rev 331) +++ trunk/qcell/doc/licenciate_thesis/titlepage.tex 2007-02-16 15:25:32 UTC (rev 332) @@ -28,6 +28,9 @@ \end{center} \vspace{\stretch{6}} + \begin{center} + 15.02.2007 + \end{center} % Promotorzy % TODO: Wyjustowa\xE6 do prawej This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dhu...@us...> - 2007-02-16 19:32:49
|
Revision: 334 http://svn.sourceforge.net/qcell/?rev=334&view=rev Author: dhubleizh Date: 2007-02-16 11:32:47 -0800 (Fri, 16 Feb 2007) Log Message: ----------- - automatic symbol table adding and removing Modified Paths: -------------- trunk/qcell/baseheaders/simulationwindow.h trunk/qcell/basesources/Renderer.cpp trunk/qcell/basesources/simulationwindow.cpp trunk/qcell/visgui/MainWindow.cpp Modified: trunk/qcell/baseheaders/simulationwindow.h =================================================================== --- trunk/qcell/baseheaders/simulationwindow.h 2007-02-16 18:13:07 UTC (rev 333) +++ trunk/qcell/baseheaders/simulationwindow.h 2007-02-16 19:32:47 UTC (rev 334) @@ -126,6 +126,7 @@ Ui::simulationWindowClass ui; void back1DTable(); + int getSymbolCount(); protected slots: void zPlaneChange(int i); @@ -140,9 +141,6 @@ void symbolTableChange(int row, int column); void symbolTableColorChange(int row, int column); - void addSymbol(void); - void removeSymbol(void); - void perspectiveUpdate(int mode); void GridView2DEdit(int row, int column); @@ -174,6 +172,8 @@ public slots: void NViewModeChange(int mode); void NViewMaskSet(int maskx, int masky, int maskz); + void addSymbol(void); + void removeSymbol(); }; Modified: trunk/qcell/basesources/Renderer.cpp =================================================================== --- trunk/qcell/basesources/Renderer.cpp 2007-02-16 18:13:07 UTC (rev 333) +++ trunk/qcell/basesources/Renderer.cpp 2007-02-16 19:32:47 UTC (rev 334) @@ -373,13 +373,13 @@ baseSymbols.primitiveID = 0; baseSymbols.textSybmol = '.'; addSymbol(baseSymbols); - setSymbolColor(0, QColor(0,0,0)); + setSymbolColor(0, QColor(255,255,255)); baseSymbols.hide = 0; baseSymbols.primitiveID = 0; baseSymbols.textSybmol = '*'; addSymbol(baseSymbols); - setSymbolColor(1, QColor(255,255,255)); + setSymbolColor(1, QColor(0,0,255)); translation.resize(3); rotation.resize(3); Modified: trunk/qcell/basesources/simulationwindow.cpp =================================================================== --- trunk/qcell/basesources/simulationwindow.cpp 2007-02-16 18:13:07 UTC (rev 333) +++ trunk/qcell/basesources/simulationwindow.cpp 2007-02-16 19:32:47 UTC (rev 334) @@ -1055,7 +1055,20 @@ SYMBOL symbol; symbol.primitiveID = 0; symbol.hide = 0; - symbol.textSybmol = '1'; + int symbol_nr = renderer->getSymbolCount(); + + if (symbol_nr < 10) + { + symbol.textSybmol = QChar((int)'0' + symbol_nr); + } + else if (symbol_nr > 9 && symbol_nr < 'Z'-'A') + { + symbol.textSybmol = QChar((int)'A' + (symbol_nr-10)); + } + else if (symbol_nr > 9 && symbol_nr > (int)('Z'-'A') && symbol_nr < (int)('z'-'a')) + { + symbol.textSybmol = QChar((int)'a' + (symbol_nr - 10)); + } renderer->addSymbol(symbol); renderer->setSymbolColor(renderer->getSymbolCount()-1, QColor(255, 255, 255)); @@ -1669,3 +1682,8 @@ table1DMem->removeRow(table1DMem->rowCount()-1); } +int simulationWindow::getSymbolCount() +{ + return symbolTable->rowCount(); +} + Modified: trunk/qcell/visgui/MainWindow.cpp =================================================================== --- trunk/qcell/visgui/MainWindow.cpp 2007-02-16 18:13:07 UTC (rev 333) +++ trunk/qcell/visgui/MainWindow.cpp 2007-02-16 19:32:47 UTC (rev 334) @@ -1560,6 +1560,26 @@ sw->getFunctionTable()->setFunctionPointer(local_function); //************************************************ + int alph_size = local_function->getAlphabetSize(); + int diff = alph_size - sw->getSymbolCount(); + SYMBOL sym; + if (diff > 0) + { + for (int i = 0; i < diff; i++) + { + sym.textSybmol = QChar(sw->getSymbolCount()+ 1 + i); + sw->addSymbol(); + } + } + else if (diff < 0) + { + diff = abs(diff); + for(int i = 0; i < diff; i++) + { + sw->removeSymbol(); + } + } + // Unlock stuff sw->ui.tabWidget->setTabEnabled(5, 1); sw->ui.functionTab->setEnabled(true); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <le...@us...> - 2007-02-16 18:13:15
|
Revision: 333 http://svn.sourceforge.net/qcell/?rev=333&view=rev Author: lessm Date: 2007-02-16 10:13:07 -0800 (Fri, 16 Feb 2007) Log Message: ----------- -neigborhood bug resolved -examples added Modified Paths: -------------- trunk/qcell/basesources/neigborhoodtools.cpp Added Paths: ----------- trunk/qcell/bin/colision.CAE trunk/qcell/bin/colision_example.CAE trunk/qcell/bin/mov2ways.CAE trunk/qcell/bin/speed12.CAE Modified: trunk/qcell/basesources/neigborhoodtools.cpp =================================================================== --- trunk/qcell/basesources/neigborhoodtools.cpp 2007-02-16 15:25:32 UTC (rev 332) +++ trunk/qcell/basesources/neigborhoodtools.cpp 2007-02-16 18:13:07 UTC (rev 333) @@ -18,18 +18,18 @@ connect(ui.maskValue, SIGNAL(valueChanged(int)), SLOT(maskValueSet(int))); - connect(ui.AddNeigborButton, SIGNAL(clicked(bool)), SLOT(addNeigbor(void))); - connect(ui.DelNeigborButton, SIGNAL(clicked(bool)), SLOT(delNeigbor(void))); +// connect(ui.AddNeigborButton, SIGNAL(clicked(bool)), SLOT(addNeigbor(void))); +// connect(ui.DelNeigborButton, SIGNAL(clicked(bool)), SLOT(delNeigbor(void))); mx = my = mz = 0; - ui.neigborTable->setColumnWidth(0, 35); +// ui.neigborTable->setColumnWidth(0, 35); selectedNaigbour = 0; - connect(ui.neigborTable, SIGNAL(cellClicked(int, int)), SLOT(tableChange(int, int))); +// connect(ui.neigborTable, SIGNAL(cellClicked(int, int)), SLOT(tableChange(int, int))); - connect(ui.ClearSelectedButton, SIGNAL(clicked(bool)), SLOT(clearButtonPress())); - connect(ui.SetNButton, SIGNAL(clicked(bool)), SLOT(setButtonPress())); - connect(ui.SetZeroButton, SIGNAL(clicked(bool)), SLOT(setZeroButtonPress())); +// connect(ui.ClearSelectedButton, SIGNAL(clicked(bool)), SLOT(clearButtonPress())); +// connect(ui.SetNButton, SIGNAL(clicked(bool)), SLOT(setButtonPress())); +// connect(ui.SetZeroButton, SIGNAL(clicked(bool)), SLOT(setZeroButtonPress())); } NeigborhoodTools::~NeigborhoodTools() @@ -160,23 +160,23 @@ void NeigborhoodTools::setNeigborNumber(int num) { - ui.neigborTable->setRowCount(num); +// ui.neigborTable->setRowCount(num); } void NeigborhoodTools::addNeigbor(void) { - if(ui.neigborTable->rowCount()<maxNaigbours) - { - ui.neigborTable->setRowCount(ui.neigborTable->rowCount()+1); - } +// if(ui.neigborTable->rowCount()<maxNaigbours) +// { +// ui.neigborTable->setRowCount(ui.neigborTable->rowCount()+1); +// } } void NeigborhoodTools::delNeigbor(void) { - if(ui.neigborTable->rowCount()>1) - { - ui.neigborTable->setRowCount(ui.neigborTable->rowCount()-1); - } +// if(ui.neigborTable->rowCount()>1) +// { +// ui.neigborTable->setRowCount(ui.neigborTable->rowCount()-1); +// } } void NeigborhoodTools::tableChange(int row, int column) Added: trunk/qcell/bin/colision.CAE =================================================================== --- trunk/qcell/bin/colision.CAE (rev 0) +++ trunk/qcell/bin/colision.CAE 2007-02-16 18:13:07 UTC (rev 333) @@ -0,0 +1,71 @@ +<Experiment iterations="8" > +<Neighbourhood> + <Neighbour x="0" /> + <Neighbour x="-1" /> + <Neighbour x="1" /> +</Neighbourhood> +<LocalFunction ArgumentsNumber="3" InputAlphabet="4" > + <Sums> +0; +</Sums> + <Values FillValue="-1" > +0+0,0=0; +0+1,0=1; +0+2,0=0; +0+3,0=1; +0+0,1=0; +0+2,1=0; +0+0,2=2; +0+1,2=3; +0+3,2=3; +0+0,3=2; +0+1,3=3; +0+3,3=3; +1+0,0=0; +1+0,2=3; +2+0,0=0; +2+1,0=3; +3+0,0=0; +3+3,0=0; +3+0,3=0; +</Values> +</LocalFunction> +<CalculationData width="41" fill="0" DataType="char" > + <Section value="1" >4;5;6;</Section> +</CalculationData> +<CalculationData width="41" fill="0" DataType="char" > + <Section value="1" >29;32;</Section> + <Section value="2" >35;38;</Section> +</CalculationData> +<CalculationData width="41" fill="0" DataType="char" > + <Section value="1" >30;33;</Section> + <Section value="2" >34;37;</Section> +</CalculationData> +<CalculationData width="41" fill="0" DataType="char" > + <Section value="1" >31;</Section> + <Section value="2" >36;</Section> + <Section value="3" >33;34;</Section> +</CalculationData> +<CalculationData width="41" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" /> + <Section value="3" >32;35;</Section> +</CalculationData> +<CalculationData width="41" fill="0" DataType="char" > + <Section value="1" >33;36;</Section> + <Section value="2" >31;34;</Section> +</CalculationData> +<CalculationData width="41" fill="0" DataType="char" > + <Section value="1" >37;</Section> + <Section value="2" >30;</Section> + <Section value="3" >33;34;</Section> +</CalculationData> +<CalculationData width="41" fill="0" DataType="char" > + <Section value="1" >35;38;</Section> + <Section value="2" >29;32;</Section> +</CalculationData> +<CalculationData width="41" fill="0" DataType="char" > + <Section value="1" >36;39;</Section> + <Section value="2" >28;31;</Section> +</CalculationData> +</Experiment> Added: trunk/qcell/bin/colision_example.CAE =================================================================== --- trunk/qcell/bin/colision_example.CAE (rev 0) +++ trunk/qcell/bin/colision_example.CAE 2007-02-16 18:13:07 UTC (rev 333) @@ -0,0 +1,14 @@ +<Experiment iterations="0" > +<Neighbourhood> + <Neighbour x="0" /> + <Neighbour x="-1" /> + <Neighbour x="1" /> +</Neighbourhood> +<LocalFunction ArgumentsNumber="3" InputAlphabet="4" > + <Sums> +0; +</Sums> + <Values FillValue="-1" /> +</LocalFunction> +<CalculationData width="30" fill="0" DataType="char" /> +</Experiment> Added: trunk/qcell/bin/mov2ways.CAE =================================================================== --- trunk/qcell/bin/mov2ways.CAE (rev 0) +++ trunk/qcell/bin/mov2ways.CAE 2007-02-16 18:13:07 UTC (rev 333) @@ -0,0 +1,36 @@ +<Experiment iterations="8" > +<Neighbourhood> + <Neighbour x="0" /> + <Neighbour x="-1" /> + <Neighbour x="1" /> +</Neighbourhood> +<LocalFunction ArgumentsNumber="3" InputAlphabet="4" > + <Sums> +0; +</Sums> + <Values FillValue="-1" > +0+0,0=0; +0+1,0=1; +0+2,0=0; +0+0,1=0; +0+0,2=2; +1+0,0=0; +2+0,0=0; +</Values> +</LocalFunction> +<CalculationData width="30" fill="0" DataType="char" /> +<CalculationData width="30" fill="0" DataType="char" /> +<CalculationData width="30" fill="0" DataType="char" /> +<CalculationData width="30" fill="0" DataType="char" /> +<CalculationData width="30" fill="0" DataType="char" /> +<CalculationData width="30" fill="0" DataType="char" /> +<CalculationData width="30" fill="0" DataType="char" /> +<CalculationData width="30" fill="0" DataType="char" > + <Section value="1" >11;</Section> + <Section value="2" >16;</Section> +</CalculationData> +<CalculationData width="30" fill="0" DataType="char" > + <Section value="1" >12;</Section> + <Section value="2" >15;</Section> +</CalculationData> +</Experiment> Added: trunk/qcell/bin/speed12.CAE =================================================================== --- trunk/qcell/bin/speed12.CAE (rev 0) +++ trunk/qcell/bin/speed12.CAE 2007-02-16 18:13:07 UTC (rev 333) @@ -0,0 +1,2542 @@ +<Experiment iterations="720" > +<Neighbourhood> + <Neighbour x="0" /> + <Neighbour x="-1" /> + <Neighbour x="1" /> +</Neighbourhood> +<LocalFunction ArgumentsNumber="3" InputAlphabet="4" > + <Sums> +0; +</Sums> + <Values FillValue="-1" > +0+0,0=0; +0+1,0=0; +0+2,0=0; +0+0,1=0; +0+0,2=1; +1+0,0=2; +2+0,0=0; +</Values> +</LocalFunction> +<CalculationData width="11" fill="0" DataType="char" /> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >7;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >6;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >5;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >4;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >3;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >2;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >1;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >0;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >10;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" /> + <Section value="2" >9;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="char" > + <Section value="1" >8;</Section> +</CalculationData> +<CalculationData width="11" fill="0" DataType="cha... [truncated message content] |
From: <dhu...@us...> - 2007-02-16 21:53:31
|
Revision: 335 http://svn.sourceforge.net/qcell/?rev=335&view=rev Author: dhubleizh Date: 2007-02-16 13:53:26 -0800 (Fri, 16 Feb 2007) Log Message: ----------- - REAK an ZIFW saving Modified Paths: -------------- trunk/qcell/baseheaders/LocalFunction.h trunk/qcell/parsers/FQT/FQTParserPlugin.cpp trunk/qcell/parsers/REAK/REAKParserPlugin.cpp trunk/qcell/parsers/ZIFW/ZIFWParserPlugin.cpp trunk/qcell/visgui/MainWindow.cpp Modified: trunk/qcell/baseheaders/LocalFunction.h =================================================================== --- trunk/qcell/baseheaders/LocalFunction.h 2007-02-16 19:32:47 UTC (rev 334) +++ trunk/qcell/baseheaders/LocalFunction.h 2007-02-16 21:53:26 UTC (rev 335) @@ -89,7 +89,6 @@ void valueTableFromString(QString *string); void sumArgumentsFromString(QString *string); - QVector<int> valueTranslation(int value); QString valueFormTableToString(int index); @@ -119,6 +118,7 @@ // void setScript(QString scriptData); + QVector<int> valueTranslation(int value); // method set type of function (normally function type is set automatically when setSumArguments, setProductArguments, setSwitchFunction or setScript methosd ar used) void setFunctonType(LocalFunction::FUNCTION_TYPE type); Modified: trunk/qcell/parsers/FQT/FQTParserPlugin.cpp =================================================================== --- trunk/qcell/parsers/FQT/FQTParserPlugin.cpp 2007-02-16 19:32:47 UTC (rev 334) +++ trunk/qcell/parsers/FQT/FQTParserPlugin.cpp 2007-02-16 21:53:26 UTC (rev 335) @@ -356,22 +356,34 @@ QDomDocument doc; doc.setContent(content); + qDebug(content.toAscii()); QDomElement root = doc.firstChild().toElement(); - root.removeChild(root.firstChild()); + if (root.firstChild().nodeName() == "LocalFunction") + { + root.removeChild(root.firstChild()); + } QDomElement values = root.firstChild().toElement(); int free_args = lf.getNumberOfArgs() - lf.getSummedArguments().count(); int num_combinations = pow(lf.getAlphabetSize(), free_args); QChar fill_value = values.attribute("FillValue")[0]; int index = 0; QString values_txt = values.text(); + qDebug() << values_txt; values_txt.chop(1); +qDebug() << values_txt; values_txt.remove(0, 1); +qDebug() << values_txt; foreach(QString sum_line, values_txt.split(";\n")) { + qDebug() << sum_line; QStringList tokens = sum_line.split('='); + qDebug() << tokens; QStringList sum_and_free = tokens[0].split('+'); + qDebug() << sum_and_free; QString sum = sum_and_free.takeFirst(); + qDebug() << sum; QStringList free = sum_and_free.first().split(','); + qDebug() << free; if (!fqt.contains(sum)) { Modified: trunk/qcell/parsers/REAK/REAKParserPlugin.cpp =================================================================== --- trunk/qcell/parsers/REAK/REAKParserPlugin.cpp 2007-02-16 19:32:47 UTC (rev 334) +++ trunk/qcell/parsers/REAK/REAKParserPlugin.cpp 2007-02-16 21:53:26 UTC (rev 335) @@ -246,150 +246,50 @@ QByteArray REAKParserPlugin::parseOut(QString content, const QString type, const QString subtype) { /// @todo Write parsing out of REAK - this WILL be hard -// // The resulting array to write to file by the end backend -// QByteArray result; -// // Generic class for parsing out XMLString -// Neighbourhood N; -// QVector<NContainer> neighbours; -// // Number of dimensions -// int dimensions; -// // Maximum found dimensions -// int max_x, max_y,max_z, min_x, min_y, min_z; -// // Needs to be set to 1, as there needs to be at least one of each -// // dimensions for this implementation -// max_x = max_y = max_z = min_x = min_y = min_z = 0; -// -// if(!N.fromXmlString(&content)) -// { -// qDebug(tr("Unable to parse out internal data!").toAscii()); -// } -// -// dimensions = N.getDimension(); -// -// // Filetype and dimensions declaration -// result.append('N'); -// result.append(QString::number(dimensions)); -// result.append('\n'); -// -// // Sizes of dimensions -// // Get out neighbours vector -// neighbours = N.getNeighbours(); -// //Determin the maximum of each supported dimension -// -// for(int i = 0; i < neighbours.size(); i++) -// { -// if(neighbours[i].x > max_x) -// { -// max_x = neighbours[i].x; -// } -// else if (neighbours[i].x < min_x) -// { -// min_x = neighbours[i].x; -// } -// if(dimensions > 1) -// { -// if(neighbours[i].y > max_y) -// { -// max_y = neighbours[i].y; -// } -// else if (neighbours[i].y < min_y) -// { -// min_y = neighbours[i].y; -// } -// } -// else -// { -// neighbours[i].y = 0; -// } -// if(dimensions == 3) -// { -// if (neighbours[i].z > max_z) -// { -// max_z = neighbours[i].z; -// } -// else if (neighbours[i].z < min_z) -// { -// min_z = neighbours[i].z; -// } -// } -// else -// { -// neighbours[i].z = 0; -// } -// } -// -// // Construct a space filled with '-' -// // At least one is needed always, even when the rest of dimensions is 0, -// // that's why the +1 everywhere -// QVector<QVector<QVector<char> > > table((abs(min_z)+max_z+1), -// QVector<QVector<char> >((abs(min_y)+max_y+1), -// QVector<char>((abs(min_x)+max_x+1), '-') -// ) -// ); -// -// // Adding dimensions declaration to file -// if (dimensions == 1) -// { -// result.append('0' + table[0][0].size()); -// } -// else -// { -// result.append('0' + table[0].size()); -// result.append(' '); -// result.append('0' + table[0][0].size()); -// -// if (dimensions == 3) -// { -// result.append(' '); -// result.append('0' + table.size()); -// } -// } -// // and number of neighbours -// result.append(' '); -// result.append(QString::number(N.getNeighbourNumber())); -// result.append('\n'); -// -// // Adding zero points coordinates -// int zero_x, zero_y, zero_z; -// zero_x = abs(min_x); -// zero_y = abs(min_y); -// zero_z = abs(min_z); -// -// result.append('0' + zero_x); -// if(dimensions > 1) -// { -// result.append(' '); -// result.append('0' + zero_y); -// } -// if (dimensions == 3) -// { -// result.append(' '); -// result.append('0' + zero_z); -// } -// result.append('\n'); -// -// // Filling default space with proper points -// for(int i = 0; i < neighbours.size(); i++) -// { -// table[zero_z+neighbours[i].z][zero_y+neighbours[i].y][zero_x+neighbours[i].x] = ('0' + i + 1); -// } -// -// // Creating proper result format -// for (int z = 0; z < table.size(); z++) -// { -// for (int y = 0; y < table[z].size(); y++) -// { -// for ( int x = 0; x < table[z][y].size(); x++) -// { -// result.append(table[z][y][x]); -// } -// -// result.append('\n'); -// } -// } -// - return QByteArray(); + // The resulting array to write to file by the end backend + QByteArray result; + // Generic class for parsing out XMLString + LocalFunction lf; + if(!lf.fromXmlString(&content)) + { + qDebug(tr("Unable to parse out internal data!").toAscii()); + return QByteArray(); + } + else if (lf.getFunctonType() != LocalFunction::SWITCH) + { + qDebug(tr("This format cannot store this function type.") + .toAscii() + ); + + return QByteArray(); + } + + // Filetype + result.append("REAK\n"); + // Function specyfication + result.append(QString("%1 %2\n") + .arg(lf.getAlphabetSize()) + .arg(lf.getNumberOfArgs()) + ); + + QVector<int> tmp_args; + for (int i = 0; i < lf.getValueTableSize(); i++) + { + if (lf.getValueAt(i) > -1) + { + tmp_args = lf.valueTranslation(i); + tmp_args.remove(0, 1); + for (int j = 0; j < tmp_args.count(); j++) + { + result.append(QString::number(tmp_args[j])); + } + + result.append(QString(" %1\n").arg(lf.getValueAt(i))); + } + } + + return result; } Q_EXPORT_PLUGIN2(REAKFileParser, REAKParserPlugin) Modified: trunk/qcell/parsers/ZIFW/ZIFWParserPlugin.cpp =================================================================== --- trunk/qcell/parsers/ZIFW/ZIFWParserPlugin.cpp 2007-02-16 19:32:47 UTC (rev 334) +++ trunk/qcell/parsers/ZIFW/ZIFWParserPlugin.cpp 2007-02-16 21:53:26 UTC (rev 335) @@ -6,7 +6,6 @@ * Last Update: czw lis 30 14:19:22 CET 2006 */ #include "ZIFWParserPlugin.h" -#include <QDebug> ZIFWParserPlugin::ZIFWParserPlugin() { @@ -260,48 +259,72 @@ QByteArray ZIFWParserPlugin::parseOut(QString content, const QString type, const QString subtype) { -// // The resulting array to write to file by the backend -// QByteArray result; -// // Generic type to parse XML request -// LocalFunction lf; -// -// // Check if we can use the generic type from the XML string -// if(!lf.fromXmlString(&content)); -// { -// qDebug(tr("Unable to parse out internal data!").toAscii()); -// -// return QByteArray(); -// } -// -// // Header -// result.append("ZIFW"); -// result.append('\n'); -// -// // Second line -// // Num of args -// result.append(lf.getNumberOfArgs()); -// result.append(' '); -// // Num of arg values -// result.append(lf.getAlphabetSize()); -// result.append(' '); -// // Num of return values -// result.append(lf.getMaxReturnValues()); -// result.append(' '); -// result.append('\n'); -// -// // Third line - summed args -// foreach(int arg, lf.getSummedArguments()) -// { -// result.append(QString::number(arg)[0].toAscii()); -// result.append(','); -// } -// // Get rid of the penging `,' -// result.chop(1); -// result.append('\n'); -// -// /// @todo Main function writing -// - return QByteArray(); + // The resulting array to write to file by the backend + QByteArray result; + // Generic type to parse XML request + LocalFunction lf; + // Multi Map to store this shit + QMultiMap<int, QVector<int> > function; + + // Check if we can use the generic type from the XML string + if(!lf.fromXmlString(&content)) + { + qDebug(tr("Unable to parse out internal data!").toAscii()); + + return QByteArray(); + } + else if (lf.getFunctonType() != LocalFunction::SWITCH) + { + qDebug(tr("This format cannot store this function type.") + .toAscii() + ); + + return QByteArray(); + } + + // Filetype + result.append("REAK\n"); + // Function specyfication + result.append(QString("%1 %2\n") + .arg(lf.getAlphabetSize()) + .arg(lf.getNumberOfArgs()) + ); + + // Map all the values to a map indexed by return value + QVector<int> tmp_args; + for (int i = 0; i < lf.getValueTableSize(); i++) + { + if (lf.getValueAt(i) > -1) + { + tmp_args = lf.valueTranslation(i); + tmp_args.remove(0, 1); + function.insert(lf.getValueAt(i), tmp_args); + } + } + + QVector<int> added_values; + foreach(int key, function.keys()) + { + if (added_values.contains(key)) + { + continue; + } + added_values.append(key); + result.append(QString("%1: {").arg(key)); + foreach(QVector<int> v, function.values(key)) + { + for (int i = 0; i < v.count(); i++) + { + result.append(QString::number(v[i])); + } + result.append(','); + } + // Remove pending ',' + result.chop(1); + result.append("}\n"); + } + + return result; } Q_EXPORT_PLUGIN2(ZIFWFileParser, ZIFWParserPlugin) Modified: trunk/qcell/visgui/MainWindow.cpp =================================================================== --- trunk/qcell/visgui/MainWindow.cpp 2007-02-16 19:32:47 UTC (rev 334) +++ trunk/qcell/visgui/MainWindow.cpp 2007-02-16 21:53:26 UTC (rev 335) @@ -652,6 +652,12 @@ } else if (type == "LocalFunction") { +// if (local_function->getFunctonType() != LocalFunction::SUM_AND_SWITCH) +// { +// qDebug(tr("Saving non FQT function is not implemented.").toAscii()); +// return; +// } + if (!function_parsers.contains(subtype)) { qDebug(tr("The file extensions %1 isn't supported.") @@ -1096,14 +1102,23 @@ filters << filter; } fd.setFilters(filters); - fd.setDefaultSuffix("FQT"); +// fd.setDefaultSuffix("FQT"); if(fd.exec()) { if(!fd.selectedFiles().isEmpty()) { - callSaver(fd.selectedFiles().first(), "LocalFunction"); - + QString extension = fd.selectedFilter(); + extension.remove(QRegExp(".*\\(\\*\\.")); + extension.chop(1); + if (!fd.selectedFiles().first().endsWith(extension)) + { + callSaver(fd.selectedFiles().first().append('.').append(extension), "LocalFunction"); + } + else + { + callSaver(fd.selectedFiles().first(), "LocalFunction"); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <le...@us...> - 2007-02-16 22:20:55
|
Revision: 337 http://svn.sourceforge.net/qcell/?rev=337&view=rev Author: lessm Date: 2007-02-16 14:20:54 -0800 (Fri, 16 Feb 2007) Log Message: ----------- - colors changed Modified Paths: -------------- trunk/qcell/basesources/Renderer.cpp trunk/qcell/basesources/functiontable.cpp trunk/qcell/parsers/N/NParserPlugin.cpp trunk/qcell/visgui/MainWindow.cpp Modified: trunk/qcell/basesources/Renderer.cpp =================================================================== --- trunk/qcell/basesources/Renderer.cpp 2007-02-16 22:06:58 UTC (rev 336) +++ trunk/qcell/basesources/Renderer.cpp 2007-02-16 22:20:54 UTC (rev 337) @@ -75,7 +75,7 @@ glNewList(greed, GL_COMPILE); glBegin(GL_LINES); - glColor3f(1.0f, 1.0f, 1.0f); + glColor3f(0.0f, 0.0f, 0.0f); float bias = 1.0f; float mx = -storage.getSizeX(), my = -storage.getSizeY(), mz = -storage.getSizeZ(); @@ -167,7 +167,7 @@ void Renderer::initializeGL() { - qglClearColor(QColor(0,0,0)); + qglClearColor(QColor(255,255,255)); glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); Modified: trunk/qcell/basesources/functiontable.cpp =================================================================== --- trunk/qcell/basesources/functiontable.cpp 2007-02-16 22:06:58 UTC (rev 336) +++ trunk/qcell/basesources/functiontable.cpp 2007-02-16 22:20:54 UTC (rev 337) @@ -75,6 +75,7 @@ } // Edit proper cell + ui.functionTable->scrollToItem(item); ui.functionTable->editItem(item); } Modified: trunk/qcell/parsers/N/NParserPlugin.cpp =================================================================== --- trunk/qcell/parsers/N/NParserPlugin.cpp 2007-02-16 22:06:58 UTC (rev 336) +++ trunk/qcell/parsers/N/NParserPlugin.cpp 2007-02-16 22:20:54 UTC (rev 337) @@ -6,7 +6,7 @@ * Last Update: wto 28 lis 2006 11:23:55 CET */ #include "NParserPlugin.h" - +#include <QDebug> NParserPlugin::NParserPlugin() { supported_parser_types << "Neighbourhood"; @@ -15,6 +15,8 @@ QString NParserPlugin::realParser(const QByteArray content, const QString type, const QString subtype) { + QString costam(content); + qDebug() << content; QStringList result; // Used to doublecheck the format of a line in file QRegExp format; Modified: trunk/qcell/visgui/MainWindow.cpp =================================================================== --- trunk/qcell/visgui/MainWindow.cpp 2007-02-16 22:06:58 UTC (rev 336) +++ trunk/qcell/visgui/MainWindow.cpp 2007-02-16 22:20:54 UTC (rev 337) @@ -466,7 +466,8 @@ } file_content = file.readAll(); - file.close(); + qDebug()<<file_content; + file.close(); if (type == "Neighbourhood") { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dhu...@us...> - 2007-02-16 23:32:23
|
Revision: 341 http://svn.sourceforge.net/qcell/?rev=341&view=rev Author: dhubleizh Date: 2007-02-16 15:32:16 -0800 (Fri, 16 Feb 2007) Log Message: ----------- - in LIF import fill table with 0 instead -1 - maximum symbol adding bug fixed Modified Paths: -------------- trunk/qcell/baseheaders/simulationwindow.h trunk/qcell/basesources/simulationwindow.cpp trunk/qcell/parsers/Life-1.05/Life105ParserPlugin.cpp Modified: trunk/qcell/baseheaders/simulationwindow.h =================================================================== --- trunk/qcell/baseheaders/simulationwindow.h 2007-02-16 22:37:59 UTC (rev 340) +++ trunk/qcell/baseheaders/simulationwindow.h 2007-02-16 23:32:16 UTC (rev 341) @@ -91,7 +91,6 @@ int cycleTable, maxTime, usedSpace; char *storeCurentTable; CalculationData localView; - bool localViewFlag; QList< QVector<int> > dataToCopy; @@ -161,6 +160,7 @@ public: void storeSelectedData(void); void pasteStoredData(void); + bool localViewFlag; //for test only FunctionTable * getFunctionTable(void); @@ -168,6 +168,8 @@ void setSelectedCell(QVector<int> coord); void setSelectedFunctionRule(int index); void clearView(); + int getLocalObserversHistoryCount(); + CalculationData* getLocalObserversCD(int iteration); public slots: void NViewModeChange(int mode); Modified: trunk/qcell/basesources/simulationwindow.cpp =================================================================== --- trunk/qcell/basesources/simulationwindow.cpp 2007-02-16 22:37:59 UTC (rev 340) +++ trunk/qcell/basesources/simulationwindow.cpp 2007-02-16 23:32:16 UTC (rev 341) @@ -639,6 +639,8 @@ item->setCheckState(Qt::Unchecked); } } + + symbolTable->scrollToBottom(); } void simulationWindow::changeSymbol(int x, int y, int z) @@ -1064,14 +1066,19 @@ { symbol.textSybmol = QChar((int)'0' + symbol_nr); } - else if (symbol_nr > 9 && symbol_nr < 'Z'-'A') + else if (symbol_nr > 9 && symbol_nr < (int)('Z'-'A') + 10 + 1) { symbol.textSybmol = QChar((int)'A' + (symbol_nr-10)); } - else if (symbol_nr > 9 && symbol_nr > (int)('Z'-'A') && symbol_nr < (int)('z'-'a')) + else if (symbol_nr > 9 && symbol_nr > (int)('Z'-'A') && symbol_nr < (int)('z'-'a') + 10 + (int)('Z'-'A') + 2) { - symbol.textSybmol = QChar((int)'a' + (symbol_nr - 10)); + symbol.textSybmol = QChar((int)'a' + (symbol_nr - 10 - (int)('Z' - 'A') - 1)); } + else + { + qDebug(tr("To many symbols - cannot add.").toAscii()); + return; + } renderer->addSymbol(symbol); renderer->setSymbolColor(renderer->getSymbolCount()-1, symbol.color); @@ -1690,3 +1697,14 @@ return symbolTable->rowCount(); } +int simulationWindow::getLocalObserversHistoryCount() +{ + return loclaViewMemory.count(); +} + +CalculationData* simulationWindow::getLocalObserversCD(int iteration) +{ + return &loclaViewMemory[iteration]; +} + + Modified: trunk/qcell/parsers/Life-1.05/Life105ParserPlugin.cpp =================================================================== --- trunk/qcell/parsers/Life-1.05/Life105ParserPlugin.cpp 2007-02-16 22:37:59 UTC (rev 340) +++ trunk/qcell/parsers/Life-1.05/Life105ParserPlugin.cpp 2007-02-16 23:32:16 UTC (rev 341) @@ -53,6 +53,7 @@ summed_args.append(i); } lf.setSumArguments(summed_args); + lf.setDefaultValue(0); // Basic sanity check lines = QString(content).split('\n'); @@ -107,21 +108,21 @@ if (conway.exactMatch(lines[0])) { - if (lf.getValueTableSize() == 0) - { +// if (lf.getValueTableSize() == 0) +// { lf.setFunctionValue(1, 2, QVector<int>(1, 1)); lf.setFunctionValue(1, 3, QVector<int>(1, 1)); lf.setFunctionValue(1, 3, QVector<int>(1, 0)); - } - else - { - qDebug(tr("Double function declaration in line %1") - .arg(line_nr) - .toAscii() - ); - - return QString(); - } +// } +// else +// { +// qDebug(tr("Double function declaration in line %1") +// .arg(line_nr) +// .toAscii() +// ); +// +// return QString(); +// } } else if (rule.exactMatch(lines[0])) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <le...@us...> - 2007-02-17 03:22:37
|
Revision: 345 http://svn.sourceforge.net/qcell/?rev=345&view=rev Author: lessm Date: 2007-02-16 19:22:36 -0800 (Fri, 16 Feb 2007) Log Message: ----------- Modified Paths: -------------- trunk/qcell/baseheaders/Renderer.h trunk/qcell/baseheaders/simulationwindow.h trunk/qcell/basesources/Renderer.cpp trunk/qcell/basesources/simulationwindow.cpp trunk/qcell/bin/examples/dynamicmodelexample.FQT trunk/qcell/bin/observer.png trunk/qcell/doc/licenciate_thesis/chap2/Thumbs.db trunk/qcell/doc/licenciate_thesis/chap6/NTools.png trunk/qcell/doc/licenciate_thesis/chap6/iter1.png trunk/qcell/doc/licenciate_thesis/chap6/iter2.png trunk/qcell/doc/licenciate_thesis/chap6/iter3.png trunk/qcell/doc/licenciate_thesis/chap6/iter4.png trunk/qcell/doc/licenciate_thesis/chap6/mainwindow.png trunk/qcell/doc/licenciate_thesis/chap6/observer.png trunk/qcell/doc/licenciate_thesis/chap6/step.png trunk/qcell/parsers/N/NParserPlugin.cpp trunk/qcell/visgui/MainWindow.cpp Modified: trunk/qcell/baseheaders/Renderer.h =================================================================== --- trunk/qcell/baseheaders/Renderer.h 2007-02-17 03:19:21 UTC (rev 344) +++ trunk/qcell/baseheaders/Renderer.h 2007-02-17 03:22:36 UTC (rev 345) @@ -69,7 +69,9 @@ QVector<int> maskValue; bool showValues; - const char** texture; + //QString texture; + //const char** texture; + QPixmap texture; bool force2D; Modified: trunk/qcell/baseheaders/simulationwindow.h =================================================================== --- trunk/qcell/baseheaders/simulationwindow.h 2007-02-17 03:19:21 UTC (rev 344) +++ trunk/qcell/baseheaders/simulationwindow.h 2007-02-17 03:22:36 UTC (rev 345) @@ -170,6 +170,8 @@ void clearView(); int getLocalObserversHistoryCount(); CalculationData* getLocalObserversCD(int iteration); + void setLocalObserverMem(QList<CalculationData *> cdList); + void forceLOdataReset(void); public slots: void NViewModeChange(int mode); Modified: trunk/qcell/basesources/Renderer.cpp =================================================================== --- trunk/qcell/basesources/Renderer.cpp 2007-02-17 03:19:21 UTC (rev 344) +++ trunk/qcell/basesources/Renderer.cpp 2007-02-17 03:22:36 UTC (rev 345) @@ -138,7 +138,10 @@ { glEnable(GL_TEXTURE_2D); observerTexture = bindTexture(texture, GL_TEXTURE_2D); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); +// glGenTextures(1, &observerTexture); +// glBindTexture(GL_TEXTURE_2D, observerTexture); +// gluBuild2DMipmaps(GL_TEXTURE_2D, 3, 256, 256, GL_RGB, GL_BYTE, texture); +// glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); @@ -655,13 +658,14 @@ glDisable(GL_DEPTH_TEST); glBlendFunc(GL_ONE, GL_ONE); - glEnable(GL_BLEND); + //glEnable(GL_BLEND); glDisable(GL_LIGHTING); glEnable(GL_TEXTURE_2D); + glColor4f(1.0f, 1.0f, 1.0f, 1.0f); glCallList(observer); glDisable(GL_TEXTURE_2D); glEnable(GL_LIGHTING); - glDisable(GL_BLEND); + //glDisable(GL_BLEND); glEnable(GL_DEPTH_TEST); glPopMatrix(); } @@ -865,8 +869,8 @@ void Renderer::setTexture(const char *xpm[]) { -// texture = QPixmap(xpm); - texture = xpm; + texture = QPixmap(xpm); +// texture = xpm; } void Renderer::setOrtoPerspective(bool noClear) Modified: trunk/qcell/basesources/simulationwindow.cpp =================================================================== --- trunk/qcell/basesources/simulationwindow.cpp 2007-02-17 03:19:21 UTC (rev 344) +++ trunk/qcell/basesources/simulationwindow.cpp 2007-02-17 03:22:36 UTC (rev 345) @@ -662,7 +662,7 @@ ui.view3D->setLayout(new QVBoxLayout(ui.view3D)); renderer = new Renderer(ui.view3D); - renderer->setTexture((const char**)observer_xpm); + renderer->setTexture((const char **)observer_xpm); ui.view3D->layout()->addWidget(renderer); // Not needed anymore // renderer->resize(ui.view3D->width(), ui.view3D->height()); @@ -1707,4 +1707,25 @@ return &loclaViewMemory[iteration]; } +void simulationWindow::setLocalObserverMem(QList<CalculationData *> cdList) +{ + if(cdList.size()>loclaViewMemory.size()) + { + for(int i=0;i<loclaViewMemory.size();++i) + loclaViewMemory[loclaViewMemory.size() - 1 - i] = *(cdList[cdList.size()-1 - i]); + usedSpace = loclaViewMemory.size(); + cycleTable = loclaViewMemory.size()-1; + } + else + { + + } +} + +void simulationWindow::forceLOdataReset(void) +{ + usedSpace = 0; + localView = *getStorage(); + cycleTable = 0; +} Modified: trunk/qcell/bin/examples/dynamicmodelexample.FQT =================================================================== --- trunk/qcell/bin/examples/dynamicmodelexample.FQT 2007-02-17 03:19:21 UTC (rev 344) +++ trunk/qcell/bin/examples/dynamicmodelexample.FQT 2007-02-17 03:22:36 UTC (rev 345) @@ -1,4 +1,4 @@ FQT 3 4 4 1 - +0: ---------------- Modified: trunk/qcell/bin/observer.png =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap2/Thumbs.db =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap6/NTools.png =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap6/iter1.png =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap6/iter2.png =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap6/iter3.png =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap6/iter4.png =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap6/mainwindow.png =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap6/observer.png =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap6/step.png =================================================================== (Binary files differ) Modified: trunk/qcell/parsers/N/NParserPlugin.cpp =================================================================== --- trunk/qcell/parsers/N/NParserPlugin.cpp 2007-02-17 03:19:21 UTC (rev 344) +++ trunk/qcell/parsers/N/NParserPlugin.cpp 2007-02-17 03:22:36 UTC (rev 345) @@ -15,8 +15,6 @@ QString NParserPlugin::realParser(const QByteArray content, const QString type, const QString subtype) { - QString costam(content); - qDebug() << content; QStringList result; // Used to doublecheck the format of a line in file QRegExp format; Modified: trunk/qcell/visgui/MainWindow.cpp =================================================================== --- trunk/qcell/visgui/MainWindow.cpp 2007-02-17 03:19:21 UTC (rev 344) +++ trunk/qcell/visgui/MainWindow.cpp 2007-02-17 03:22:36 UTC (rev 345) @@ -448,6 +448,7 @@ if(!fd.selectedFiles().isEmpty()) { callParser(fd.selectedFiles().first(), "World"); + sw->forceLOdataReset(); } } @@ -828,6 +829,7 @@ iteration--; calc = *(data[iteration]); data.removeLast(); + // sw->setLocalObserverMem(data); sw->back1DTable(); } @@ -1216,6 +1218,7 @@ // Do the actual serializing deserialize(file.readAll()); + sw->forceLOdataReset(); file.close(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <le...@us...> - 2007-02-17 07:01:35
|
Revision: 348 http://svn.sourceforge.net/qcell/?rev=348&view=rev Author: lessm Date: 2007-02-16 23:01:25 -0800 (Fri, 16 Feb 2007) Log Message: ----------- Modified Paths: -------------- trunk/qcell/doc/licenciate_thesis/chap6/bTools.png trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex trunk/qcell/doc/licenciate_thesis/make.bat trunk/qcell/doc/licenciate_thesis/thesis.tex trunk/qcell/visgui/MainWindow.cpp Modified: trunk/qcell/doc/licenciate_thesis/chap6/bTools.png =================================================================== (Binary files differ) Modified: trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex 2007-02-17 06:16:27 UTC (rev 347) +++ trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex 2007-02-17 07:01:25 UTC (rev 348) @@ -1,4 +1,4 @@ -\usepackage{subfigure} +%\usepackage{subfigure} \chapterauthor{Leszek Smentek}{Obs\xB3uga programu} \label{chap:iop} @@ -271,8 +271,13 @@ \begin{figure}[htbp] \begin{center} \mbox{ - \subfigure {\scalebox{0.5}{\includegraphics[width=14cm]{chap6/iter1}}} \quad - \subfigure {\scalebox{0.5}{\includegraphics[width=14cm]{chap6/iter2}}} +% \subfigure { +\scalebox{0.5}{\includegraphics[width=14cm]{chap6/iter1}} +%} + \quad +% \subfigure { +\scalebox{0.5}{\includegraphics[width=14cm]{chap6/iter2}} +%} } \caption{Przebieg symulacji dla t=0,1} \label{fig:psdt01} @@ -282,8 +287,13 @@ \begin{figure}[htbp] \begin{center} \mbox{ - \subfigure {\scalebox{0.5}{\includegraphics[width=14cm]{chap6/iter3}}} \quad - \subfigure {\scalebox{0.5}{\includegraphics[width=14cm]{chap6/iter4}}} +% \subfigure { +\scalebox{0.5}{\includegraphics[width=14cm]{chap6/iter3}} +%} + \quad +% \subfigure { +\scalebox{0.5}{\includegraphics[width=14cm]{chap6/iter4}} +%} } \caption{Przebieg symulacji dla t=2,3} \label{fig:psdt23} @@ -352,4 +362,5 @@ Do przedstawienia poni\xBFszego eksperymentu u\xBFyto plik\xF3w "propagation1d.FQT", "propagation1d.N", "propagation1d.KI" znajduj\xB9cych si\xEA w katalogu "examples". + % vim:fencs=cp1250:fenc=cp1250 Modified: trunk/qcell/doc/licenciate_thesis/make.bat =================================================================== --- trunk/qcell/doc/licenciate_thesis/make.bat 2007-02-17 06:16:27 UTC (rev 347) +++ trunk/qcell/doc/licenciate_thesis/make.bat 2007-02-17 07:01:25 UTC (rev 348) @@ -19,7 +19,7 @@ %compile% echo Bibliography -bibtex %file +bibtex %file% echo After bibliography linking %compile% Modified: trunk/qcell/doc/licenciate_thesis/thesis.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/thesis.tex 2007-02-17 06:16:27 UTC (rev 347) +++ trunk/qcell/doc/licenciate_thesis/thesis.tex 2007-02-17 07:01:25 UTC (rev 348) @@ -24,7 +24,7 @@ % Bibliografia w zewn\xEAtrznym pliku z~Bibtexa \nocite{*} -\bibliographystyle{kupa} +\bibliographystyle{plplain} \bibliography{thesis} \appendix Modified: trunk/qcell/visgui/MainWindow.cpp =================================================================== --- trunk/qcell/visgui/MainWindow.cpp 2007-02-17 06:16:27 UTC (rev 347) +++ trunk/qcell/visgui/MainWindow.cpp 2007-02-17 07:01:25 UTC (rev 348) @@ -23,7 +23,7 @@ setDockNestingEnabled(true); baseDock = new BetterDockWidget(this); BaseTools* basetools = new BaseTools(baseDock); - baseDock->setWindowTitle(tr("Base tools")); + baseDock->setWindowTitle(tr("Basic tools")); baseDock->setWidget(basetools); baseDock->setDisabled(true); ((QVBoxLayout*)baseDock->layout())->addStretch(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |