Mercurial > hg > Papers > 2012 > nobu-thesis
changeset 4:be5b510b6d44 draft
add some files
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 21 Feb 2012 17:38:51 +0900 |
parents | bdf533da3b3e |
children | df67dc9e807d |
files | paper/Makefile paper/chapter1.tex paper/chapter2.tex paper/figure/conv1_linux.bb paper/figure/conv1_linux.pdf paper/graffle/conv1_linux.graffle paper/picins.sty paper/resume.tex |
diffstat | 8 files changed, 2387 insertions(+), 89 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/Makefile Thu Feb 16 20:43:25 2012 +0900 +++ b/paper/Makefile Tue Feb 21 17:38:51 2012 +0900 @@ -1,78 +1,45 @@ -TARGET = thesis - -SRC = $(wildcard *.tex) +DVIPDF = dvipdfmx +LATEX = platex +PS2PDF = ps2pdf14 +DVIPS = /usr/local/ptetex/bin/pdvips +BKMK2UNI = ~/src/bkmk2uni -LATEX = platex -BIBTEX = pbibtex -DVIPS = dvips -DVIPDFM = dvipdfmx -RM = rm -f -EBB = ebb +TARGET1 = thesis +TARGET2 = resume +#SLIDE1 = slide -# Option definitions -DVIPDFMOPT = -DVIPSOPT = -D 720 -mode esphi -O 0mm,0mm -N0 +PDFs = $(TARGET1).pdf $(TARGET2).pdf +DVIs = $(TARGET1).dvi $(TARGET2).dvi +TEXs = $(TARGET1).tex $(TARGET2).tex + +.SUFFIXES: .tex .dvi .pdf -# Suffixes definitions -.SUFFIXES: .tex .dvi +all: $(PDFs) -# Recipes -all: pdf# $(TARGET).ps - open $(TARGET).pdf +.dvi.pdf: + $(DVIPDF) $^ +.tex.dvi: + $(LATEX) $^ -dvi: - @echo "----------- make dvi file ($(TARGET).dvi) ----------" - $(LATEX) $(TARGET) - $(BIBTEX) $(TARGET) - $(LATEX) $(TARGET) - $(LATEX) $(TARGET) -pdf: dvi - $(DVIPDFM) $(DVIPDFMOPT) $(TARGET) +$(SLIDE1).pdf: $(SLIDE1).ps + $(PS2PDF) $^ + +$(SLIDE1).ps: $(SLIDE1).dvi + $(DVIPS) $^ + if [ -x $(BKMK2UNI) ]; then\ + mv $@ $@.tmp;\ + $(BKMK2UNI) -e < $@.tmp > $@;\ + fi clean: - $(RM) *~ \#* - @if [ -f $(TARGET).aux ];\ - then $(RM) $(TARGET).aux;\ - fi - @if [ -f $(TARGET).log ];\ - then $(RM) $(TARGET).log;\ - fi - @if [ -f $(TARGET).toc ];\ - then $(RM) $(TARGET).toc;\ - fi - @if [ -f $(TARGET).lof ];\ - then $(RM) $(TARGET).lof;\ - fi - @if [ -f $(TARGET).lot ];\ - then $(RM) $(TARGET).lot;\ - fi - @if [ -f $(TARGET).big ];\ - then $(RM) $(TARGET).big;\ - fi - @if [ -f $(TARGET).bbl ];\ - then $(RM) $(TARGET).bbl;\ - fi - @if [ -f $(TARGET).ilg ];\ - then $(RM) $(TARGET).ilg;\ - fi - @if [ -f $(TARGET).idx ];\ - then $(RM) $(TARGET).idx;\ - fi - @if [ -f $(TARGET).ind ];\ - then $(RM) $(TARGET).ind;\ - fi - @if [ -f $(TARGET).dvi ];\ - then $(RM) $(TARGET).dvi;\ - fi - @if [ -f $(TARGET).pdf ];\ - then $(RM) $(TARGET).pdf;\ - fi - @if [ -f $(TARGET).out ];\ - then $(RM) $(TARGET).out;\ - fi - @if [ -f $(TARGET).bbl ];\ - then $(RM) $(TARGET).bbl;\ - fi - @if [ -f $(TARGET).blg ];\ - then $(RM) $(TARGET).blg;\ - fi + rm -f *.{aux,log,nav,out,snm} + +distclean: clean + rm -f $(DVIs) $(PDFs) *.{dvi} + + +twice: distclean $(DVIs) .rmdvi $(PDFs) +.rmdvi: + rm -f $(DVIs) + +
--- a/paper/chapter1.tex Thu Feb 16 20:43:25 2012 +0900 +++ b/paper/chapter1.tex Tue Feb 21 17:38:51 2012 +0900 @@ -1,15 +1,9 @@ \chapter{Continuation based C (CbC)} -CbC のプログラムはコードセグメント毎に記述され, コード間をgoto(軽量継続)により処理を移る. -構文は C と同じであるが, ループ制御や関数コールが取り除かれる. - -%\section{CbC とは} -\subsection{コードセグメント} - - -\subsection{継続(goto)} -コードセグメントの記述は C の関数の構文と同じで, 型に ``\verb+__code+'' を使うことで宣言できる. -コードセグメントへの移動は ``goto'' の後にコードセグメント名と引数を並べて記述することで行える. +\section{CbC とは} +Continuation based C (以下 CbC) は, 当研究室が開発している言語である. +CbC のプログラムはコードセグメント毎に記述され, コード間をgoto(軽量継続)により処理を移る. +構文は C と同じであるが, ループ制御や関数コールが取り除いたことで状態遷移記述を行えることに特徴を持つ. 図\ref{fig:cs}はコードセグメント間の処理の流れを表している. \begin{figure}[htpb] @@ -22,15 +16,29 @@ -\subsection{CbC のプログラム例} +\section{コードセグメント} +コードセグメント(code segment)は CbC プログラムの基本単位になる. コードセグメントは C の関数と違って戻値を持たず, 処理が終われば次のコードセグメントへと処理を移る. -C において関数呼び出しを繰り返し行う場合, 呼び出された関数の引数の数だけスタックに値が積まれていく. -だが, 戻値を持たないコードセグメントではスタックに値を積んでいく必要な無く, スタックは変更されない. +コードセグメントの記述は C の関数の構文と同じで, 型に ``\verb+__code+'' を使うことで宣言できる. + +%軽量継続により並列化, ループ制御, 関数コールとスタックの操作を意識した最適化がソースコードレベルで行えるようになる. -軽量継続により並列化, ループ制御, 関数コールとスタックの操作を意識した最適化がソースコードレベルで行えるようになる. +\section{継続(goto)} +コードセグメントへの移動は ``goto'' の後にコードセグメント名と引数を並べて記述することで行える. +これはGCC内部においては関数呼び出しとして扱われる. +C において関数呼び出しを繰り返し行う場合, 呼び出された関数の引数の数だけスタックに値が積まれていく. +だが, 戻値を持たないコードセグメントではスタックにつまれた値(環境)を保持する必要が無い為, スタックポインタが変更されない関数呼び出しとなる. -ソースコード\ref{fig:factorial}は CbC で書いたプログラムの例である. -与えられた数 x の階上を計算して出力するプログラムとなっている. + +\section{CbC のプログラム例} +CbC のプログラム例を示す. +ソースコード\ref{src:factorial}は与えられた数 x の階上を計算して出力するプログラムである. \lstinputlisting[label=src:factorial, caption=階乗を計算する CbC プログラムの例]{src/factorial.cbc} + + + + + +
--- a/paper/chapter2.tex Thu Feb 16 20:43:25 2012 +0900 +++ b/paper/chapter2.tex Tue Feb 21 17:38:51 2012 +0900 @@ -1,9 +1,11 @@ -\chapter{Gnu Compiler Collection (GCC)} - +\chapter{GCC, The Gnu Compiler Collection} \section{GCC とは} + \subsection{cc1} + + \section{GCC の内部表現} GCC-4.6 への実装の前に, GCC で扱われる内部表現について触れておく.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/figure/conv1_linux.bb Tue Feb 21 17:38:51 2012 +0900 @@ -0,0 +1,5 @@ +%%Title: ./conv1_linux.pdf +%%Creator: extractbb 20110311 +%%BoundingBox: 0 0 468 285 +%%CreationDate: Tue Feb 21 17:16:25 2012 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/graffle/conv1_linux.graffle Tue Feb 21 17:38:51 2012 +0900 @@ -0,0 +1,1497 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>ActiveLayerIndex</key> + <integer>0</integer> + <key>ApplicationVersion</key> + <array> + <string>com.omnigroup.OmniGraffle</string> + <string>138.33.0.157554</string> + </array> + <key>AutoAdjust</key> + <true/> + <key>BackgroundGraphic</key> + <dict> + <key>Bounds</key> + <string>{{0, 0}, {559, 783}}</string> + <key>Class</key> + <string>SolidGraphic</string> + <key>ID</key> + <integer>2</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <key>CanvasOrigin</key> + <string>{0, 0}</string> + <key>ColumnAlign</key> + <integer>1</integer> + <key>ColumnSpacing</key> + <real>36</real> + <key>CreationDate</key> + <string>2012-02-20 18:12:42 +0000</string> + <key>Creator</key> + <string>Nobuyasu Oshiro</string> + <key>DisplayScale</key> + <string>1 0/72 in = 1 0/72 in</string> + <key>GraphDocumentVersion</key> + <integer>8</integer> + <key>GraphicsList</key> + <array> + <dict> + <key>Bounds</key> + <string>{{311.86206, 256}, {72.137924, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>62</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 1.07}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{239.72418, 256}, {72.137924, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>61</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 1.17}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{168.00006, 256}, {71.724136, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>60</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 1.58}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{311.86206, 228}, {72.137924, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>59</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 1.07}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{239.72418, 228}, {72.137924, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>58</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 1.85}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{168.00006, 228}, {71.724136, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>57</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 1.91}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{124.00006, 256}, {44, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>56</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 -m64\ +-O2}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{124.00006, 228}, {44, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>55</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 -m32\ +-O2}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{94.000061, 228}, {30, 56}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>54</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 gcc\ +4.6}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{311.86206, 200}, {72.137924, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>28</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 1.13}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{239.72418, 200}, {72.137924, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>27</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 1.15}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{168.00006, 200}, {71.724136, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>26</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 2.64}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{311.86206, 172}, {72.137924, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>25</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 1.12}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{239.72418, 172}, {72.137924, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>24</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 3.677}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{168.00006, 172}, {71.724136, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>23</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 4.66}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{124.00006, 200}, {44, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>22</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 -m64\ +-O2}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{124.00006, 172}, {44, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>21</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 -m32\ +-O2}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{94.000061, 172}, {30, 56}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>20</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 gcc\ +4.5}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{312, 144}, {72, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>11</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 3.97}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{240, 144}, {72, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>10</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 4.52}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{168, 144}, {72, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>9</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 6.70}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{94, 144}, {75, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>8</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 MC(32bit)}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{312, 116}, {72, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>7</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 ./conv1 3}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{240, 116}, {72, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>6</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 ./conv1 2}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{168, 116}, {72, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>5</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 ./conv1 1}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{94, 116}, {75, 28}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>4</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006299}</string> + <string>{0.50711799, -0.224086}</string> + <string>{0.50711799, 0.26717901}</string> + <string>{-0.27430999, -0.47402799}</string> + <string>{0.27978, -0.47847801}</string> + <string>{0.29393801, 0.54304397}</string> + <string>{-0.28623199, 0.55380398}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 Linux\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\fs20 \cf0 ( +\f1 \'92\'50\'88\'ca +\f0 : +\f1 \'95\'62 +\f0 )}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + </array> + <key>GridInfo</key> + <dict/> + <key>GuidesLocked</key> + <string>NO</string> + <key>GuidesVisible</key> + <string>YES</string> + <key>HPages</key> + <integer>1</integer> + <key>ImageCounter</key> + <integer>1</integer> + <key>KeepToScale</key> + <false/> + <key>Layers</key> + <array> + <dict> + <key>Lock</key> + <string>NO</string> + <key>Name</key> + <string>Layer 1</string> + <key>Print</key> + <string>YES</string> + <key>View</key> + <string>YES</string> + </dict> + </array> + <key>LayoutInfo</key> + <dict> + <key>Animate</key> + <string>NO</string> + <key>circoMinDist</key> + <real>18</real> + <key>circoSeparation</key> + <real>0.0</real> + <key>layoutEngine</key> + <string>dot</string> + <key>neatoSeparation</key> + <real>0.0</real> + <key>twopiSeparation</key> + <real>0.0</real> + </dict> + <key>LinksVisible</key> + <string>NO</string> + <key>MagnetsVisible</key> + <string>NO</string> + <key>MasterSheets</key> + <array/> + <key>ModificationDate</key> + <string>2012-02-20 18:22:12 +0000</string> + <key>Modifier</key> + <string>Nobuyasu Oshiro</string> + <key>NotesVisible</key> + <string>NO</string> + <key>Orientation</key> + <integer>2</integer> + <key>OriginVisible</key> + <string>NO</string> + <key>PageBreaks</key> + <string>YES</string> + <key>PrintInfo</key> + <dict> + <key>NSBottomMargin</key> + <array> + <string>float</string> + <string>41</string> + </array> + <key>NSHorizonalPagination</key> + <array> + <string>int</string> + <string>0</string> + </array> + <key>NSLeftMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + <key>NSPaperSize</key> + <array> + <string>coded</string> + <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAx7X05TU2l6ZT1mZn2WgVMCgUoDhg==</string> + </array> + <key>NSPrintReverseOrientation</key> + <array> + <string>int</string> + <string>0</string> + </array> + <key>NSRightMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + <key>NSTopMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + </dict> + <key>PrintOnePage</key> + <false/> + <key>ReadOnly</key> + <string>NO</string> + <key>RowAlign</key> + <integer>1</integer> + <key>RowSpacing</key> + <real>36</real> + <key>SheetTitle</key> + <string>Canvas 1</string> + <key>SmartAlignmentGuidesActive</key> + <string>YES</string> + <key>SmartDistanceGuidesActive</key> + <string>YES</string> + <key>UniqueID</key> + <integer>1</integer> + <key>UseEntirePage</key> + <false/> + <key>VPages</key> + <integer>1</integer> + <key>WindowInfo</key> + <dict> + <key>CurrentSheet</key> + <integer>0</integer> + <key>ExpandedCanvases</key> + <array> + <dict> + <key>name</key> + <string>Canvas 1</string> + </dict> + </array> + <key>Frame</key> + <string>{{974, 113}, {693, 938}}</string> + <key>ListView</key> + <true/> + <key>OutlineWidth</key> + <integer>142</integer> + <key>RightSidebar</key> + <false/> + <key>ShowRuler</key> + <true/> + <key>Sidebar</key> + <true/> + <key>SidebarWidth</key> + <integer>120</integer> + <key>VisibleRegion</key> + <string>{{0, 0}, {558, 783}}</string> + <key>Zoom</key> + <real>1</real> + <key>ZoomValues</key> + <array> + <array> + <string>Canvas 1</string> + <real>1</real> + <real>1</real> + </array> + </array> + </dict> + <key>saveQuickLookFiles</key> + <string>YES</string> +</dict> +</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/picins.sty Tue Feb 21 17:38:51 2012 +0900 @@ -0,0 +1,578 @@ +% PICINS.STY --- Style File zum Einbinden von Bildern +% Autor: J. Bleser, E. Lang +% Hochschulrechenzentrum +% Technische Hochschule Darmstadt +% !!! Dieses Style-File ist urheberrechtlich geschuetzt !!! +% !!! Aenderungen nur mit Zustimmung der Autoren !!! +\message{Option `picins' Version 3.0 Sep. 1992, TH Darmstadt/HRZ} +\newbox\@BILD% +\newbox\@TEXT% +\newdimen\d@breite% +\newdimen\d@hoehe% +\newdimen\d@xoff% +\newdimen\d@yoff% +\newdimen\d@shad% +\newdimen\d@dash% +\newdimen\d@boxl% +\newdimen\d@pichskip% +\newdimen\d@tmp +\newdimen\d@tmpa +\newdimen\d@bskip +\newdimen\hsiz@% +\newdimen\p@getot@l% +\newcount\c@breite +\newcount\c@hoehe +\newcount\c@xoff +\newcount\c@yoff +\newcount\c@pos +\newcount\c@shad +\newcount\c@dash +\newcount\c@boxl +\newcount\c@zeilen% +\newcount\@changemode% +\newcount\c@piccaption% +\newcount\c@piccaptionpos% +\newcount\c@picpos +\newcount\c@whole% +\newcount\c@half% +\newcount\c@tmp +\newcount\c@tmpa +\newcount\c@tmpb +\newcount\c@tmpc +\newcount\c@tmpd +\newskip\d@leftskip +\newif\if@list \@listfalse% +\newif\if@offset% + + +\c@piccaptionpos=1% +\c@picpos=0 +\d@shad=4pt% +\d@dash=4pt% +\d@boxl=10pt% +\d@pichskip=1em% +\@changemode=0% +\def\@captype{figure}% +\let\old@par=\par% + +\def\pichskip#1{\d@pichskip #1\relax} + + +\def\shadowthickness#1{\d@shad #1\relax} + + +\def\dashlength#1{\d@dash #1\relax} + + +\def\boxlength#1{\d@boxl #1\relax} + + +\def\picchangemode{\@changemode=1}% +\def\nopicchangemode{\@changemode=0}% + + +\def\piccaptionoutside{\c@piccaptionpos=1}% +\def\piccaptioninside{\c@piccaptionpos=2}% +\def\piccaptionside{\c@piccaptionpos=3}% +\def\piccaptiontopside{\c@piccaptionpos=4}% + +\def\piccaption{\@ifnextchar [{\@piccaption}{\@piccaption[]}} +\def\@piccaption[#1]#2{\c@piccaption=1\def\sh@rtf@rm{#1}\def\capti@nt@xt{#2}} +\def\make@piccaption{% + \hsiz@\d@breite% + \ifnum\c@piccaptionpos=2% + \advance\hsiz@ -2\fboxsep% + \fi% + \ifnum\c@piccaptionpos>2% + \hsiz@\hsize\advance\hsiz@-\d@breite\advance\hsiz@-\d@pichskip% + \fi% + \setbox\@TEXT=\vbox{\hsize\hsiz@\caption[\sh@rtf@rm]{\capti@nt@xt}}% +} + + + +\def\newcaption{\refstepcounter\@captype\@dblarg{\@newcaption\@captype}} +\long\def\@newcaption#1[#2]#3{% + \old@par% + \addcontentsline{\csname ext@#1\endcsname }{#1}% + {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}} + \begingroup\@parboxrestore\normalsize% + \@newmakecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\old@par% + \endgroup% +} +\long\def\@newmakecaption#1#2{% + \vskip 10pt% + \setbox\@tempboxa \hbox {#1: #2}% + \ifdim \wd\@tempboxa >\hsize% + \setbox0=\hbox{#1: }\dimen0=\hsize\advance\dimen0 by-\wd0 + \setbox1=\vtop{\hsize=\dimen0 #2} + \hbox{\box0 \box1} + \par + \else \hbox to\hsize {\hfil \box \@tempboxa \hfil} + \fi +} + + + + + +\def\parpic{% + \@ifnextchar ({\iparpic}{\iparpic(0pt,0pt)} +} +\def\iparpic(#1,#2){% + \@ifnextchar ({\@offsettrue\iiparpic(#1,#2)}% + {\@offsetfalse\iiparpic(#1,#2)(0pt,0pt)} +} +\def\iiparpic(#1,#2)(#3,#4){% + \@ifnextchar [{\iiiparpic(#1,#2)(#3,#4)}{\iiiparpic(#1,#2)(#3,#4)[l]} +} +\def\iiiparpic(#1,#2)(#3,#4)[#5]{% + \@ifnextchar [{\ivparpic(#1,#2)(#3,#4)[#5]}{\ivparpic(#1,#2)(#3,#4)[#5][]} +} +\def\ivparpic(#1,#2)(#3,#4)[#5][#6]#7{% + \let\par=\old@par\par% + \hangindent0pt\hangafter1% + \setbox\@BILD=\hbox{#7}% + \d@breite=#1\d@breite=\the\d@breite% + \ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi% + \c@breite=\d@breite\divide\c@breite by65536% + \multiply\c@piccaption\c@piccaptionpos% + \d@hoehe=#2\d@hoehe=\the\d@hoehe% + \ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi% + \c@hoehe=\d@hoehe\divide\c@hoehe by65536% + \d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536% + \d@yoff=\d@hoehe% + \advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536% + \c@pos=1\unitlength1pt% + \if@offset% + \setbox\@BILD=\hbox{% + \begin{picture}(\c@breite,\c@hoehe)% + \put(0,0){\makebox(\c@breite,\c@hoehe){}}% + \put(\c@xoff,\c@yoff){\box\@BILD}% + \end{picture}% + }% + \else% + \setbox\@BILD=\hbox{% + \begin{picture}(\c@breite,\c@hoehe)% + \put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}% + \end{picture}% + }% + \fi% + \ifnum\c@piccaption=2% + \make@piccaption% + \advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT% + \c@hoehe=\d@hoehe\divide\c@hoehe by65536% + \setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}% + \hbox{\hspace{\fboxsep}\box\@TEXT}% + \vspace{4pt}}% + \fi% + \@tfor\@tempa := #5\do{% + \if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa l\c@pos=1\fi% + \if\@tempa r\c@pos=2\fi% + }% + \ifnum\c@piccaption=1% + \make@piccaption% + \advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT% + \c@hoehe=\d@hoehe\divide\c@hoehe by65536% + \setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}\hbox{\box\@TEXT}\vspace{4pt}}% + \fi% + \ifodd\count0\c@picpos=0\else\c@picpos=\@changemode\fi% + \pagetotal=\the\pagetotal% + \d@tmp=\pagegoal\advance\d@tmp by-\pagetotal\advance\d@tmp by-\baselineskip% + \ifdim\d@hoehe>\d@tmp% + \vskip 0pt plus\d@hoehe\relax\pagebreak[3]\vskip 0pt plus-\d@hoehe\relax% + \ifnum\c@picpos=1\c@picpos=0\else\c@picpos=\@changemode\fi% + \fi% + \ifnum\c@picpos=1\ifnum\c@pos=1\c@pos=2\else\c@pos=1\fi\fi% + \ifnum\@listdepth>0 + \@listtrue\parshape 0% + \advance\hsize -\rightmargin% + \d@leftskip \leftskip% + \leftskip \@totalleftmargin% + \if@inlabel\rule{\linewidth}{0pt}\vskip-\baselineskip\relax\fi% + \else\@listfalse\medskip% + \fi% + \if@list\d@tmpa=\linewidth\else\d@tmpa=\hsize\fi% + \ifnum\c@piccaption=3% + \make@piccaption% + \d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT% + \ifdim\d@hoehe>\d@tmp% + \setbox\@TEXT=\vbox to\d@hoehe{\vfill\box\@TEXT\vspace{.2\baselineskip}\vfill}% + \else% + \setbox\@BILD=\vbox to\d@tmp{\vfill\box\@BILD\vfill}% + \d@hoehe\d@tmp% + \fi% + \fi% + \ifnum\c@piccaption=4% + \make@piccaption% + \d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT% + \setbox\@TEXT=\vbox to\d@hoehe{\vspace{-10pt}\box\@TEXT\vfil}% + \advance\d@hoehe-\d@tmp% + \fi% + \ifnum\c@pos=1\d@tmpa=0pt% + \ifnum\c@piccaption>2% + \setbox\@BILD=\hbox{\box\@BILD\hspace{\d@pichskip}\hbox{\box\@TEXT}}% + \fi% + \else\advance\d@tmpa by-\wd\@BILD\d@breite=-\d@breite% + \ifnum\c@piccaption>2% + \d@tmpa=0pt% + \setbox\@BILD=\hbox{\hbox{\box\@TEXT}\hspace{\d@pichskip}\box\@BILD}% + \fi% + \fi% + \p@getot@l\the\pagetotal% + \d@bskip\d@hoehe\advance\d@bskip by\parskip\advance\d@bskip by.3\baselineskip% + {\noindent\hspace*{\d@tmpa}\relax% + \box\@BILD\nopagebreak\vskip-\d@bskip\relax\nopagebreak}% + \d@tmp=-\d@hoehe\divide\d@tmp by\baselineskip% + \c@zeilen=\d@tmp\advance\c@zeilen by-1% + \ifdim\d@breite<0pt\advance\d@breite by-\d@pichskip% + \else\advance\d@breite by\d@pichskip% + \fi% + \hangindent=\d@breite% + \hangafter=\c@zeilen% + \let\par=\x@par% + \ifnum\c@piccaption=3% + \hangindent0pt\hangafter1\let\par=\old@par% + \vskip\d@hoehe\vskip.2\baselineskip% + \fi% + \c@piccaption=0% +} + + + + +\newdimen\ptoti +\newdimen\ptotii +\def\x@par{% + \ptoti\pagetotal% + \old@par% + \ptotii\pagetotal% + \ifdim\ptoti=\ptotii% + \d@tmp\d@hoehe% + \else% + \d@tmp\baselineskip% + \multiply\d@tmp by\prevgraf% + \advance\d@tmp by\parskip% + \global\advance\d@hoehe by-\d@tmp\d@tmp=\d@hoehe% + \fi% + \ifdim\d@hoehe>0pt% + \divide\d@tmp by\baselineskip\c@zeilen=-\d@tmp\advance\c@zeilen by-1% + \c@zeilen=\the\c@zeilen% + \else\c@zeilen=0 + \fi + \ifnum\c@zeilen<0\hangafter=\c@zeilen\hangindent=\d@breite% + \else\let\par=\old@par% + \hangindent 0pt% + \leftskip \d@leftskip% + \if@list\parshape \@ne \@totalleftmargin \linewidth% + \advance\hsize \rightmargin% + \fi% + \fi% +} + + +\def\picskip#1{% + \let\par=\old@par% + \par% + \pagetotal\the\pagetotal% + \c@tmp=#1\relax% + \ifnum\c@tmp=0% + \d@tmp\baselineskip\multiply\d@tmp by\prevgraf\advance\d@tmp\parskip% + \ifdim\p@getot@l<\pagetotal + \advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex% + \ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi% + \fi% + \ifdim\p@getot@l=\pagetotal% + \advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex% + \ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi% + \fi% + \else\hangafter=-\c@tmp\hangindent=\d@breite% + \fi% + \leftskip \d@leftskip% + \if@list\parshape \@ne \@totalleftmargin \linewidth% + \advance\hsize \rightmargin% + \fi% +} + + + + + + +\def\hpic{% + \@ifnextchar ({\ihpic}{\ihpic(0pt,0pt)} +} +\def\ihpic(#1,#2){% + \@ifnextchar ({\@offsettrue\iihpic(#1,#2)}% + {\@offsetfalse\iihpic(#1,#2)(0pt,0pt)} +} +\def\iihpic(#1,#2)(#3,#4){% + \@ifnextchar [{\iiihpic(#1,#2)(#3,#4)}{\iiihpic(#1,#2)(#3,#4)[l]} +} +\def\iiihpic(#1,#2)(#3,#4)[#5]{% + \@ifnextchar [{\ivhpic(#1,#2)(#3,#4)[#5]}{\ivhpic(#1,#2)(#3,#4)[#5][]} +} +\def\ivhpic(#1,#2)(#3,#4)[#5][#6]#7{% + \setbox\@BILD=\hbox{#7}% + \d@breite=#1\d@breite=\the\d@breite% + \ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi% + \c@breite=\d@breite\divide\c@breite by65536% + \d@hoehe=#2\d@hoehe=\the\d@hoehe% + \ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi% + \c@hoehe=\d@hoehe\divide\c@hoehe by65536% + \d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536% + \d@yoff=\d@hoehe% + \advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536% + \c@pos=0\d@tmpa=\parindent\parindent=0pt\unitlength1pt% + \if@offset + \setbox\@BILD=\hbox{% + \begin{picture}(\c@breite,\c@hoehe)% + \put(0,0){\makebox(\c@breite,\c@hoehe){}}% + \put(\c@xoff,\c@yoff){\box\@BILD}% + \end{picture}% + }% + \else% + \setbox\@BILD=\hbox{% + \begin{picture}(\c@breite,\c@hoehe)% + \put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}% + \end{picture}% + }% + \fi% + \@tfor\@tempa := #5\do{% + \if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa t\c@pos=1\fi% + \if\@tempa b\c@pos=2\fi% + }% + \ifnum\c@pos=0\parbox{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi% + \ifnum\c@pos=1\parbox[t]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi% + \ifnum\c@pos=2\parbox[b]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi% + \parindent=\d@tmpa% +} + + + + + + +\def\Rahmen(#1,#2)#3{% + \c@whole=\@wholewidth\divide\c@whole by65536% + \c@half=\@halfwidth\divide\c@half by65536% + \c@tmpa=#1\advance\c@tmpa by\c@whole\advance\c@tmpa by\c@whole% + \c@tmpb=#2\advance\c@tmpb by\c@whole\advance\c@tmpb by\c@whole% + \begin{picture}(\c@tmpa,\c@tmpb)% + \put(\c@whole,\c@half){\framebox(#1,#2){#3}}% + \end{picture}% + \global\advance\d@breite by2\@wholewidth% + \global\advance\d@hoehe by2\@wholewidth% +} + + +\def\Schatten(#1,#2)#3{% + \c@whole=\@wholewidth\divide\c@whole by65536% + \c@half=\@halfwidth\divide\c@half by65536% + \c@shad=\d@shad\divide\c@shad by65536% + \c@tmp=\c@whole\advance\c@tmp by\c@whole\c@tmpd=\c@tmp% + \advance\c@tmp by\c@shad% + \advance\c@tmpd by#1% + \advance\c@half by\c@shad% + \c@tmpa=#1\advance\c@tmpa by\c@tmp% + \c@tmpb=#2\advance\c@tmpb by\c@tmp% + \begin{picture}(\c@tmpa,\c@tmpb)% + \put(\c@whole,\c@half){\framebox(#1,#2){#3}}% + \put(\c@shad,0){\rule{\c@tmpd pt}{\c@shad pt}}% + \put(\c@tmpd,0){\rule{\c@shad pt}{#2 pt}}% + \end{picture}% + \global\advance\d@breite by2\@wholewidth\global\advance\d@breite by\d@shad% + \global\advance\d@hoehe by2\@wholewidth\global\advance\d@hoehe by\d@shad% +} + + +\def\Oval(#1,#2)#3{% + \@wholewidth=0.4pt% + \c@tmpa=\the#1\divide\c@tmpa by2% + \c@tmpb=\the#2\divide\c@tmpb by2% + \begin{picture}(#1,#2)% + \put(\c@tmpa,\c@tmpb){\oval(#1,#2)}% + \put(0.4,0.4){#3}% + \end{picture}% + \global\advance\d@breite by1pt\global\advance\d@hoehe by1pt% +} + + +\def\Strich(#1,#2)#3{% + \c@whole=\@wholewidth\divide\c@whole by65536% + \c@half=\@halfwidth\divide\c@half by65536% + \c@dash=\d@dash\divide\c@dash by65536% + \c@tmp=\c@whole\advance\c@tmp by\c@whole% + \c@tmpa=#1\advance\c@tmpa by\c@tmp% + \c@tmpb=#2\advance\c@tmpb by\c@tmp% + \c@tmpc=#1\advance\c@tmpc by\c@whole% + \c@tmpd=#2\advance\c@tmpd by\c@whole% + \begin{picture}(\c@tmpa,\c@tmpb)% + \put(\c@half,\c@half){\dashbox{\c@dash}(\c@tmpc,\c@tmpd){#3}}% + \end{picture}% + \global\advance\d@breite by2\@wholewidth% + \global\advance\d@hoehe by2\@wholewidth% +} + + +\def\Kasten(#1,#2)#3{% + \@wholewidth=0.4pt% + \c@boxl=\d@boxl\divide\c@boxl by65536\c@boxl=\the\c@boxl% + \c@tmpa=#1\advance\c@tmpa by\c@boxl% + \c@tmpb=#2\advance\c@tmpb by\c@boxl% + \c@tmp=#2% + \begin{picture}(\c@tmpa,\c@tmpb)% + \put(0,\c@boxl){\framebox(#1,#2){#3}}% + \put(\c@boxl,0){\line(-1,1){\c@boxl}}% + \put(\c@boxl,0){\line(1,0){#1}\line(-1,1){\c@boxl}}% + \put(\c@boxl,0){\put(#1,0){\line(0,1){\c@tmp}% + \put(0,\c@tmp){\line(-1,1){\c@boxl}}}}% + \end{picture}% + \global\advance\d@breite by\d@boxl% + \global\advance\d@hoehe by\d@boxl% +} + + + + + +\newbox\env@box% +\newdimen\d@envdp +\newcount\c@hsize +\newcount\c@envdp +\newdimen\d@envb + +\long\def\frameenv{\@ifnextchar [{\@frameenv}{\@frameenv[\textwidth]}} +\long\def\@frameenv[#1]{% + \hsiz@=\textwidth \textwidth=#1 \d@envb=#1 + \advance\textwidth by-2\@wholewidth + \advance\textwidth by-2\fboxsep + \hsize=\textwidth \linewidth=\textwidth + \setbox\env@box=\vbox\bgroup}% +\def\endframeenv{% + \egroup% + \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@ + \c@breite=\d@envb \divide\c@breite by65536 + \advance\d@envb by-2\@wholewidth + \c@hsize=\d@envb \divide\c@hsize by65536% + \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box% + \advance\d@envdp by2\fboxsep% + \d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth + \c@hoehe=\d@hoehe \divide\c@hoehe by65536 + \c@envdp=\d@envdp \divide\c@envdp by65536% + \c@tmp=\@wholewidth \divide\c@tmp by65536 + \vskip\@wholewidth% + \unitlength 1pt\noindent% + \begin{picture}(\c@breite,\c@hoehe)(0,0) + \put(\c@tmp,\c@tmp){\framebox(\c@hsize,\c@envdp){\box\env@box}} + \end{picture}% +} + + + +\long\def\shadowenv{\@ifnextchar [{\@shadowenv}{\@shadowenv[\textwidth]}} +\long\def\@shadowenv[#1]{% + \hsiz@=\textwidth \textwidth=#1 \d@envb=#1 + \advance\textwidth by-2\@wholewidth + \advance\textwidth by-2\fboxsep + \advance\textwidth by-\d@shad% + \hsize=\textwidth \linewidth=\textwidth + \setbox\env@box=\vbox\bgroup}% +\def\endshadowenv{% + \egroup + \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@ + \d@tmpa=\d@envb + \c@breite=\d@envb \divide\c@breite by65536 + \advance\d@envb by-2\@wholewidth \advance\d@envb by-\d@shad + \c@hsize=\d@envb \divide\c@hsize by65536% + \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box% + \advance\d@envdp by2\fboxsep% + \c@envdp=\d@envdp \divide\c@envdp by65536% + \d@hoehe=\d@envdp + \advance\d@hoehe by2\@wholewidth \advance\d@hoehe by\d@shad + \c@hoehe=\d@hoehe \divide\c@hoehe by65536 + \c@shad =\d@shad \divide\c@shad by65536 + \c@tmp=\@wholewidth \divide\c@tmp by65536 + \advance\d@tmpa by-2\d@shad + \c@xoff =\d@tmpa \divide\c@xoff by65536 + \advance\c@xoff by\c@shad \advance\c@xoff by-1 + \advance\d@envdp by\@wholewidth + \vskip\@halfwidth + \unitlength 1pt\noindent% + \begin{picture}(\c@breite,\c@hoehe)(0,0) + \put(\c@tmp,\c@shad){\framebox(\c@hsize,\c@envdp){\box\env@box}} + \put(\c@shad,0){\rule{\d@tmpa}{\d@shad}}% + \put(\c@xoff,0){\rule{\d@shad}{\d@envdp}}% + \end{picture}% + \vskip\@halfwidth +} + + +\long\def\dashenv{\@ifnextchar [{\@dashenv}{\@dashenv[\textwidth]}} +\long\def\@dashenv[#1]{% + \hsiz@=\textwidth \textwidth=#1 \d@envb=#1 + \advance\textwidth by-2\@wholewidth \advance\textwidth by-2\fboxsep + \hsize=\textwidth \linewidth=\textwidth + \setbox\env@box=\vbox\bgroup}% +\long\def\enddashenv{% + \egroup + \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@ + \c@breite=\d@envb \divide\c@breite by65536 + \advance\d@envb by-\@wholewidth + \c@hsize=\d@envb \divide\c@hsize by65536% + \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box% + \advance\d@envdp by2\fboxsep% + \advance\d@envdp by\@wholewidth + \d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth + \c@hoehe=\d@hoehe \divide\c@hoehe by65536 + \c@envdp=\d@envdp \divide\c@envdp by65536% + \c@dash=\d@dash \divide\c@dash by65536% + \c@whole=\@wholewidth \divide\c@whole by65536 + \c@half=\@halfwidth \divide\c@half by 65536 + \noindent\unitlength 1pt + \begin{picture}(\c@breite,\c@hoehe)(0,0) + \put(\c@half,\c@whole){\dashbox{\c@dash}(\c@hsize,\c@envdp){\box\env@box}} + \end{picture}% +} + + +\long\def\ovalenv{\@ifnextchar [{\@ovalenv}{\@ovalenv[\textwidth]}}% +\long\def\@ovalenv[#1]{% + \hsiz@=\textwidth \textwidth=#1 \d@envb=#1 + \advance\textwidth by-4\fboxsep + \hsize=\textwidth \linewidth=\textwidth + \setbox\env@box=\vbox\bgroup}% +\long\def\endovalenv{% + \egroup + \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@ + \@wholewidth=0.4pt + \c@breite=\d@envb \divide\c@breite by65536 + \advance\d@envb by-2\@wholewidth + \c@hsize=\d@envb \divide\c@hsize by65536% + \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box% + \advance\d@envdp by4\fboxsep% + \c@envdp=\d@envdp \divide\c@envdp by65536% + \d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth + \c@hoehe=\d@hoehe \divide\c@hoehe by65536 + \c@tmpa=\c@hsize \divide\c@tmpa by2% + \c@tmpb=\c@envdp \divide\c@tmpb by2% + \d@tmpa=2\fboxsep \advance\d@tmpa by\@wholewidth + \c@xoff=\d@tmpa \divide\c@xoff by65536% + \advance\d@tmpa by\dp\env@box + \c@yoff=\d@tmpa \divide\c@yoff by65536% + \unitlength 1pt\noindent + \begin{picture}(\c@breite,\c@hoehe)(0,0) + \put(\c@tmpa,\c@tmpb){\oval(\c@hsize,\c@envdp)} + \put(\c@xoff,\c@yoff){\box\env@box}% + \end{picture}% +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/resume.tex Tue Feb 21 17:38:51 2012 +0900 @@ -0,0 +1,241 @@ +\documentclass[twocolumn,twoside,9.5pt]{jarticle} +%\usepackage[dvips]{graphicx} +\usepackage[dvipdfm]{graphicx} +\usepackage{picins} +\usepackage{fancyhdr} +\usepackage{listings} +\usepackage{url} +\pagestyle{fancy} + +\lhead{\parpic{\includegraphics[height=1zw,clip,keepaspectratio]{figure/emblem-bitmap.eps}}琉球大学主催 工学部情報工学科 卒業研究発表会} +\rhead{} +\cfoot{} + +\setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}} +\setlength{\headheight}{0mm} +\setlength{\headsep}{5mm} +\setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}} +\setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}} +\setlength{\textwidth}{181mm} +\setlength{\textheight}{261mm} +\setlength{\footskip}{0mm} +\pagestyle{empty} + +\begin{document} +\title{Continuation based C コンパイラのGCC-4.6における実装} +\author{学籍番号:085711E 氏名:大城信康 {}{} 指導教員 : 河野真治} +%\date{H23 11/18 fri} +%\date{平成23 年11 月18 日} +\maketitle +\thispagestyle{fancy} + +\section{研究背景と目的} +当研究室ではプログラムをコードセグメント (Code Segment) 単位で記述するプログラミング言語 Continuation based C (以下CbC) を開発している. +コードセグメントは並列実行の単位として使うことができ, プログラムの正しさを示す単位としても使用することができる.これにより, + Many Core での並列実行を高い性能と高い信頼性で実現することができると考えている. + +GCC をベースとした CbC のコンパイラ (以下 CbC-GCC)は, GCC のアップデートに合わせて変更する必要がある. +本研究では, GCC-4.5 をベースとしていた CbC-GCC を GCC-4.6 へのアップデートを行い, Intel64 に対応するとともに, CbC の拡張を行う. + +%\subsection{研究内容} +%今回 GCC-4.5 をベースとしていた CbC-GCC を GCC-4.6 へとアップデートを行った. + +%現在の GCC ベースの CbC (以下CbC-GCC) コンパイラには幾つかのバグが見られる. +%特に Code Segmtne への処理移動が jmp でなく call で行われる部分あげられる. +%現在 CbC を実装した GCC コンパイラのバージョンは,初めに実装が行われた GCC-4.2 よりバージョンを上げた GCC-4.5 となる. +%本研究では,CbC-GCC を GCC-4.6 へのバージョンアップすると共に実装を突き詰めることを目的とする. +%また,GCC に変わるコンパイラとして注目されてきている LLVM への CbC の実装の考察も行う. +\section{Continuation basede C (CbC)} +CbC のプログラムはコードセグメント毎に記述され, コード間をgoto(軽量継続)により処理を移る. +構文は C と同じであるが, ループ制御や関数コールが取り除かれる. + +\subsection{コードセグメント} +コードセグメントの記述は C の関数の構文と同じで, 型に``\_\_code'' を使うことで宣言できる. +コードセグメントへの移動は``goto'' の後にコードセグメント名と引数を並べて記述することで行える. +図\ref{fig:cs}はコードセグメント間の処理の流れを表している. + +\begin{figure}[htpb] + \begin{center} +\scalebox{0.35}{\includegraphics{figure/codesegment.pdf}} + \end{center} + \caption{コードセグメント間の継続(goto)} + \label{fig:cs} +\end{figure} + +\subsection{軽量継続(light-weight continuation)} +コードセグメントは C の関数と違って返り値を持たず, 処理が終われば次のコードセグメントへと処理を移る. +C において関数呼び出しを繰り返し行う場合, 呼び出された関数の引数の数だけスタックに値が積まれていく. +だが, 返り値を持たないコードセグメントではスタックに値を積んでいく必要な無く, スタックは変更されない. +この継続は軽量継続と呼ばれ CbC における重要な機能になる. +%軽量継続により並列化, ループ制御, 関数コールとスタックの操作を意識した最適化がソースコードレベルで行えるようになる. + + + +\section{GCC-4.6 への実装} +GCCでの軽量継続を Tail Call Ellimination (末尾除去)を強制することで実装する. +これにより, コードセグメント間の移動を, call ではなく jmp 命令で実現する. +コードセグメント自体には戻値はない. + +図\ref{fig:continue}は Tail Call Elimination によるプログラムの処理の流れを表す. +\begin{figure}[htpb] + \begin{center} +\scalebox{0.30}{\includegraphics{figure/continuation.pdf}} + \end{center} + \caption{Tail Call Elimination の例} + \label{fig:continue} +\end{figure} + +\subsection{expand\_call 関数} +GCCでは, ある関数が Tail Call Elimination を行えるかどうかは expand\_call 関数で以下の条件で判断される. + +\begin{itemize} + \item caller 側と callee 側の戻値の型が一致している. + \item 関数呼び出しがリターンの直前に行われている. + \item 呼出先関数の引数に用いられるスタックサイズが呼出元関数のそれより少ない. + \item 引数の並びのコピーに上書きがない. +\end{itemize} + +CbC の実装では上記の条件を, 以下の様にして解決させている. + +\begin{itemize} + \item コードセグメントは void 型で統一する + \item Cの関数からコードセグメントにgotoする場合は返す値の型チェックを行わない. + \item goto の直後に retrun を置く. + \item スタックサイズは関数宣言時に決まったサイズにする. + \item 引数は一旦, 一時変数にコピーして重なりがないようにする. +\end{itemize} + +GCCでは, この他にもTCEを禁止するルールがあり, GCC-4.5, 4.6 でも +Tail Call Elimination にかからないコードセグメントがある. +この点を改善する必要がある. + + +\subsection{環境付き継続} +CbC には通常の C の関数からコードセグメントに継続する際, + その関数から値を戻す処理への継続を得ることができる. +これを環境付き継続という. +これらは, 以下の二種類の CbC で定義した特殊変数である. +\_\_environment は, 環境を表す情報である. +\_\_return は, これを環境付き継続の行き先であり, 関数の戻値と \_\_environment の二つの引数を持つ +コードセグメントである. 例えば, 以下のように使うと, \verb+main()+ は 1 を返す. + +\begin{verbatim} +__code c1(__code ret(int,void *),void *env) { + goto ret(1,env); +} + +int main() { + goto c1(__return, __environment); +} +\end{verbatim} + +GCC内部では, \verb+__return+ は, 関数内で定義された \verb+_cbc_internal_return+関数へのポインタを返す. +戻値は, \verb+cbc_internal_return+ 関数内で定義された変数\verb+retval+を通して返される(Listing\ref{code:retval}) . +\begin{figure}[h] + \begin{minipage}[b]{.45\textwidth} + \begin{lstlisting}[caption=環境付き継続を行うコード,label=code:retval] +({ +__label__ _cbc_exit0; +int retval; // should be thread local +void _cbc_internal_return(int retval_, + void *_envp){ + retval = retval_; + goto _cbc_exit0; +} +if (0) { + _cbc_exit0: + return retval; + } +_cbc_internal_return; +}) + \end{lstlisting} + \end{minipage} + \hfill +\end{figure} + +\subsubsection{環境付き継続の問題と改良} +環境付き継続で特に重要になってくるのが retval 変数の値をどこに確保するかである. +元々の実装ではListing\ref{code:retval}の様に static で値の確保を行なっていた. +しかしこれではスレッドセーフではない. +そこで retval 変数の値を static thread local で確保することでこの問題の解決を行った. + +\section{構文の追加} + +\subsection{``\_\_rectype''構文} +%\verb+__rectype+キーワードはリカーシブタイプを宣言する時に使われる. +通常, 関数定義において引数の中に自分自身を指す関数ポインタを入れることはできない. +そこで, \verb+__rectype+を使うことでlisting\ref{code:rectype}の用な宣言が行うことができる. +この時\verb+__rectype+は funcPtr を指す. +\begin{figure}[h] + \begin{minipage}[b]{.45\textwidth} + \begin{lstlisting}[caption=\_\_rectype 構文使用例,label=code:rectype] +typedef (*funcPtr)(int,__rectype*); + \end{lstlisting} + \end{minipage} + \hfill +\end{figure} + +\subsection{selftype 構文} +selftype 構文は構造体の宣言時に使われる. +listing\ref{code:selftype}な宣言が行える. +この場合, selftype は struct node を指す. +\begin{figure}[h] + \begin{minipage}[b]{.45\textwidth} + \begin{lstlisting}[caption=selftype 構文使用例,label=code:selftype] +struct node { + int num; + selftype child; +} + \end{lstlisting} + \end{minipage} + \hfill +\end{figure} + +\section{評価} +今回実装を行った GCC-4.6 ベース と安定版である GCC-4.4 ベース, + それと Micro-C の CbC コンパイラでベンチマークを行った. +プログラムは Micro-C のベンチマークを使用した. +引数 1 は C で書かれたプログラムをただ CbC へと変換したプログラムである. +引数 2 と 3 は Micro-C 用に手動で最適化を行ったプログラムになる. +Linux 上で 32bit と 64bit それぞれに最適化オプション(-O2)をつけての評価を行った. +結果を図\ref{fig:linux_conv}に示す. +\begin{figure}[htpb] + \begin{center} +\scalebox{0.33}{\includegraphics{figure/conv1_linux.pdf}} + \end{center} + \caption{それぞれのコンパイラにより生成されたコードの速度比較(Linux)} + \label{fig:linux_conv} +\end{figure} + +\subsection{評価の考察} +まず, Micro-C 版より GCC 版コンパイラの方が結果が良いことが確認できる. +GCC-4.5 と GCC-4.6 版を比較してみると手動で最適化を行なっている引数 2 と 3 の結果に余り差はみられない. +しかし CbC へと変換しただけの引数 1 の場合には GCC-4.6 版が 32bit 版は 2.43倍, 64bit 版は 1.68 倍と優っている. +これは GCC-4.5 に比べ GCC-4.6 の最適化が修正されている為である. + +\section{今後の課題} +今回, CbC コンパイラを GCC-4.6 へとアップデートを行った. +アップデートに伴い実装の修正と Intel64 ビットへの対応を行った. +また, CbC の記述に便利な新たな構文の追加も行うことができた. + +GCC 版 CbC コンパイラは細かい実装の除けば, 以後 GCC のアップデートに合わせていくだけとなる. +CbC コンパイラの今後としては LLVM への実装, もしくは Google go 言語での実装の検討を行なっていく予定である. + +%今後は本稿で述べた CbC-GCC の問題点を改善していく必要がある. +%また,CbC を GCC だけでなく LLVM での実装や,C 言語以外の言語への変更も検討していく. + +\thispagestyle{fancy} +\begin{thebibliography}{3} + +\bibitem{1}{河野真治}: +``継続を基本とした言語 CbC の gcc 上の実装''. 日本ソフトウェア科学会第 19 回大会論文集, Sep, 2002 + +\bibitem{2}{与儀健人,河野真治}: +``Continuation based CコンパイラのGCC-4.2による実装''. 琉球大学 情報工学科 学位論文, 2008 + +\bibitem{3}{GNU Compiler Collection (GCC) Internals}: +``http://gcc.gnu.org/onlinedocs/gccint/'' + + +\end{thebibliography} +\end{document}